Top Banner

of 24

Web Services From RPG With HTTPAPI

Oct 19, 2015

Download

Documents

inogomezpy5435
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • C o n s u m i n g

    W e b S e r v i c e s f r o m R P G u s i n g H T T P A P I

    P r e s e n t e d b y

    S c o t t K l e m e n t

    h t t p : / / w w w . s c o t t k l e m e n t . c o m

    2 0 0 4 - 2 0 0 9 , S c o t t K l e m e n t

    T h e r e a r e 1 0 t y p e s o f p e o p l e i n t h e w o r l d .

    T h o s e w h o u n d e r s t a n d b i n a r y , a n d t h o s e w h o d o n t .

    2

    W h y W e b S e r v i c e s ?

    H o w i s t h i s d i f f e r e n t f r o m t h e W e b a p p l i c a t i o n s I s e e a l l

    t h e t i m e ?

    C o u l d n ' t I j u s t a u t o m a t e t h o s e ?

    W h a t g o o d i s a W e b s e r v i c e ?

    A w e b s e r v i c e p r o v i d e s t h e a b i l i t y t o c a l l a

    p r o g r a m ( o r p r o c e d u r e ) o v e r t h e W e b .

    I ' l l a n s w e r t h e s e q u e s t i o n s , b u t f i r s t s o m e

    b a c k g r o u n d . . .

  • 3W e b A p p l i c a t i o n s

    A W e b b r o w s e r d i s p l a y s a w e b p a g e c o n t a i n i n g i n p u t

    f i e l d s

    T h e u s e r t y p e s s o m e d a t a o r m a k e s s o m e s e l e c t i o n s

    T h e b r o w s e r s e n d s t h e d a t a t o a w e b s e r v e r w h i c h t h e n

    p a s s e s i t o n t o a p r o g r a m

    A f t e r p r o c e s s i n g , t h e p r o g r a m s p i t s o u t a n e w w e b p a g e

    f o r t h e b r o w s e r t o d i s p l a y

    I n a t y p i c a l w e b a p p l i c a t i o n . . .

    4

    W e b E n a b l e d I n v o i c e

  • 5W e b E n a b l e d I n v o i c e

    6

    A n i d e a i s b o r n

    A u t o m a t i c a l l y d o w n l o a d t h e i n v o i c e i n a p r o g r a m .

    R e a d t h e i n v o i c e f r o m t h e d o w n l o a d f i l e , g e t t h e i n v o i c e

    n u m b e r a s a s u b s t r i n g o f t h e 3 r d l i n e

    G e t t h e d a t e a s a s u b s t r i n g o f t h e 4 t h l i n e

    G e t t h e a d d r e s s e s f r o m l i n e s 6 - 9

    E u r e k a ! O u r c o m p a n y c o u l d s a v e t i m e !

    P r o b l e m : T h e d a t a i s i n t e n d e d f o r p e o p l e t o

    r e a d . N o t a c o m p u t e r p r o g r a m !

    D a t a c o u l d b e m o v e d , i m a g e s i n s e r t e d , c o l o r s a d d e d

    E v e r y v e n d o r ' s i n v o i c e w o u l d b e c o m p l e x & d i f f e r e n t

  • 7N e e d t o K n o w " W h a t "

    W h e r e t h e y s i t o n a p a g e .

    W h a t t h e y l o o k l i k e

    W h a t y o u w a n t t o k n o w i s w h a t t h i n g s a r e ,

    r a t h e r t h a n :

    T h e v e n d o r n e e d s t o s e n d d a t a t h a t ' s

    " m a r k e d u p . "

    8

    " M a r k e d U p " D a t a

  • 9" M a r k e d U p " D a t a w i t h X M L

    < i n v o i c e >

    < r e m i t t o >

    < c o m p a n y > A c m e W i d g e t s , I n c < / c o m p a n y >

    < / r e m i t t o >

    < s h i p t o >

    < n a m e > S c o t t K l e m e n t < / n a m e >

    < a d d r e s s >

    < a d d r l i n e 1 > 1 2 3 S e s a m e S t . < / a d d r l i n e 1 >

    < c i t y > N e w Y o r k < / c i t y >

    < s t a t e > N Y < / s t a t e >

    < p o s t a l C o d e > 5 4 3 2 1 < / p o s t a l C o d e >

    < / a d d r e s s >

    < / s h i p t o >

    < b i l l t o >

    < n a m e > W a y n e M a d d e n < / n a m e >

    < c o m p a n y > P e n t o n M e d i a - L o v e l a n d < / c o m p a n y >

    < a d d r e s s >

    < a d d r l i n e 1 > 2 2 1 E . 2 9 t h S t . < / a d d r l i n e 1 >

    < c i t y > L o v e l a n d < / c i t y >

    < s t a t e > C O < / s t a t e >

    < p o s t a l C o d e > 8 0 5 3 8 < / p o s t a l C o d e >

    < / a d d r e s s >

    < / b i l l t o >

    1 0

    " M a r k e d U p " D a t a w i t h X M L

    < i t e m l i s t >

    < i t e m >

    < i t e m n o > 5 6 0 7 1 < / i t e m n o >

    < d e s c r i p t i o n > B l u e W i d g e t < / d e s c r i p t i o n >

    < q u a n t i t y > 3 4 < / q u a n t i t y >

    < p r i c e > 1 . 5 0 < / p r i c e >

    < l i n e t o t a l > 5 1 . 0 0 < / l i n e t o t a l >

    < / i t e m >

    < i t e m >

    < i t e m n o > 9 8 4 0 2 < / i t e m n o >

    < d e s c r i p t i o n > R e d W i d g e t w i t h a H a t < / d e s c r i p t i o n >

    < q u a n t i t y > 9 < / q u a n t i t y >

    < p r i c e > 6 . 7 1 < / p r i c e >

    < l i n e t o t a l > 6 0 . 3 9 < / l i n e t o t a l >

    < / i t e m >

    < i t e m >

    < i t e m n o > 1 1 0 1 1 < / i t e m n o >

    < d e s c r i p t i o n > C h e r r y W i d g e t < / d e s c r i p t i o n >

    < q u a n t i t y > 9 0 6 < / q u a n t i t y >

    < p r i c e > 0 . 5 0 < / p r i c e >

    < l i n e t o t a l > 4 5 3 . 0 0 < / l i n e t o t a l >

    < / i t e m >

    < / i t e m l i s t >

    < t o t a l > 5 6 4 . 3 9 < / t o t a l >

    < / i n v o i c e >

  • 1 1

    W h a t i s a W e b S e r v i c e ?

    V e r y s i m i l a r i n c o n c e p t t o t h e C A L L c o m m a n d .

    C A L L P G M ( E X C H R A T E ) P A R M ( u s e u r o & D O L L A R S & E U R O S )

    R u n s o v e r t h e W e b , s o c a n c a l l p r o g r a m s o n

    o t h e r c o m p u t e r s a n y w h e r e i n t h e w o r l d .

    W o r k s o n i n t r a n e t s a s w e l l

    A p r o g r a m c a l l ( o r s u b p r o c e d u r e c a l l ) t h a t

    w o r k s o v e r t h e W e b .

    I m a g i n e w h a t y o u c a n d o . . . .

    1 2

    I m a g i n e t h e s e s c e n a r i o s . . .

    I m a g i n e s o m e s c e n a r i o s :

    Y o u ' r e w r i t i n g a p r o g r a m t h a t g e n e r a t e s p r i c e q u o t e s . Y o u r q u o t e s a r e i n U S

    d o l l a r s . Y o u r c u s t o m e r i s i n G e r m a n y . Y o u c a n c a l l a p r o g r a m t h a t ' s l o c a t e d

    o u t o n t h e I n t e r n e t s o m e w h e r e t o g e t t h e c u r r e n t e x c h a n g e r a t e f o r t h e E u r o .

    Y o u ' r e a c c e p t i n g c r e d i t c a r d s f o r p a y m e n t . A f t e r y o u r c u s t o m e r k e y s a c r e d i t

    c a r d n u m b e r i n t o y o u r a p p l i c a t i o n , y o u c a l l a p r o g r a m o n y o u r b a n k ' s c o m p u t e r

    t o g e t t h e p u r c h a s e a p p r o v e d i n s t a n t l y .

    Y o u ' v e a c c e p t e d a n o r d e r f r o m a c u s t o m e r , a n d w a n t t o s h i p t h e g o o d s v i a

    U P S . Y o u c a n c a l l a p r o g r a m r u n n i n g o n U P S ' s c o m p u t e r s y s t e m a n d h a v e i t

    c a l c u l a t e t h e c o s t o f t h e s h i p m e n t w h i l e y o u w a i t .

    L a t e r , y o u c a n t r a c k t h a t s a m e s h i p m e n t b y c a l l i n g a t r a c k i n g p r o g r a m o n

    U P S ' s s y s t e m . Y o u c a n h a v e u p - t o - t h e - m i n u t e i n f o r m a t i o n a b o u t w h e r e t h e

    p a c k a g e i s .

    T h e s e a r e n o t j u s t d r e a m s o f t h e f u t u r e . T h e y a r e a r e a l i t y t o d a y w i t h W e b s e r v i c e s .

  • 1 3

    E x a m p l e s o f W e b S e r v i c e s

    U n i t e d P a r c e l S e r v i c e ( U P S ) p r o v i d e s w e b s e r v i c e s f o r :

    V e r i f y i n g P a c k a g e D e l i v e r y

    V i e w i n g t h e s i g n a t u r e t h a t w a s p u t o n a p a c k a g e

    P a c k a g e T i m e - i n - T r a n s i t

    C a l c u l a t i n g R a t e s a n d S e r v i c e s

    O b t a i n i n g c o r r e c t s h i p p i n g i n f o r m a t i o n ( z i p c o d e s , e t c . )

    F e d E x p r o v i d e s w e b s e r v i c e s a s w e l l .

    U n i t e d S t a t e s P o s t a l S e r v i c e

    A m a z o n . c o m

    V a l i d a t e C r e d i t C a r d s

    G e t S t o c k Q u o t e s

    C h e c k t h e W e a t h e r

    1 4

    H o w d o t h e y w o r k ?

    Y o u m a k e a n X M L d o c u m e n t t h a t s p e c i f i e s t h e p r o g r a m

    ( o r o p e r a t i o n ) t o c a l l , a s w e l l a s i t s i n p u t p a r a m e t e r s .

    Y o u u s e t h e H T T P p r o t o c o l ( t h e o n e y o u r b r o w s e r u s e s

    t o d o w n l o a d w e b p a g e s ) t o s e n d t h a t X M L d o c u m e n t t o

    a W e b s e r v e r .

    T h e W e b s e r v e r r u n s a p r o g r a m o n i t s s i d e , a n d o u t p u t s

    a n e w X M L d o c u m e n t c o n t a i n i n g t h e o u t p u t p a r a m e t e r s .

    A p r o g r a m c a l l o v e r t h e W e b .

  • 1 5

    S O A P a n d W S D L

    A l t h o u g h t h e r e ' s a f e w d i f f e r e n t w a y s o f c a l l i n g w e b s e r v i c e s t o d a y , t h i n g s a r e b e c o m i n g

    m o r e a n d m o r e s t a n d a r d i z e d . T h e i n d u s t r y i s s t a n d a r d i z i n g o n a t e c h n o l o g y c a l l e d S O A P .

    S O A P = S i m p l e O b j e c t A c c e s s P r o t o c o l

    S O A P i s a n X M L l a n g u a g e t h a t d e s c r i b e s t h e p a r a m e t e r s t h a t y o u p a s s t o t h e p r o g r a m s

    t h a t y o u c a l l . W h e n c a l l i n g a W e b s e r v i c e , t h e r e a r e t w o S O A P d o c u m e n t s - - a n i n p u t

    d o c u m e n t t h a t y o u s e n d t o t h e p r o g r a m y o u ' r e c a l l i n g , a n d a n o u t p u t d o c u m e n t t h a t g e t s

    s e n t b a c k t o y o u .

    T h e f o r m a t o f a S O A P m e s s a g e c a n b e d e t e r m i n e d f r o m a n o t h e r X M L d o c u m e n t c a l l e d a

    W S D L ( p r o n o u n c e d " w i z - d u l l " ) d o c u m e n t .

    W S D L = W e b S e r v i c e s D e s c r i p t i o n L a n g u a g e

    A W S D L d o c u m e n t w i l l d e s c r i b e t h e d i f f e r e n t " p r o g r a m s y o u c a n c a l l " ( o r " o p e r a t i o n s " y o u

    c a n p e r f o r m ) , a s w e l l a s t h e p a r a m e t e r s t h a t n e e d t o b e p a s s e d t o t h o s e o p e r a t i o n s .

    1 6

    W S D L

    < d e f i n i t i o n s >

    < t y p e s >

    d e f i n i t i o n o f t y p e s . . . . . . . .

    < / t y p e s >

    < m e s s a g e >

    d e f i n i t i o n o f a m e s s a g e . . . .

    < / m e s s a g e >

    < p o r t T y p e >

    d e f i n i t i o n o f a p o r t . . . . . . .

    < / p o r t T y p e >

    < b i n d i n g >

    d e f i n i t i o n o f a b i n d i n g . . . .

    < / b i n d i n g >

    < s e r v i c e >

    a l o g i c a l g r o u p i n g o f p o r t s . . .

    < / s e r v i c e >

    < / d e f i n i t i o n s >

    < t y p e s > = t h e d a t a t y p e s t h a t

    t h e w e b s e r v i c e u s e s .

    < m e s s a g e > = t h e m e s s a g e s

    t h a t a r e s e n t t o a n d r e c e i v e d

    f r o m t h e w e b s e r v i c e .

    < p o r t T y p e > = t h e o p e r a t i o n s

    ( o r , p r o g r a m s / p r o c e d u r e s y o u

    c a n c a l l f o r t h i s w e b s e r v i c e .

    < b i n d i n g > = t h e n e t w o r k

    p r o t o c o l u s e d .

    < s e r v i c e > = a g r o u p i n g o f

    p o r t s . ( M u c h l i k e a s e r v i c e

    p r o g r a m c o n t a i n s a g r o u p o f

    s u b p r o c e d u r e s . )

  • 1 7

    S O A P

    < s o a p : E n v e l o p e x m l n s : s o a p = " h t t p : / / w w w . w 3 . o r g / 2 0 0 1 / 1 2 / s o a p - e n v e l o p e "

    s o a p : e n c o d i n g S t y l e = " h t t p : / / w w w . w 3 . o r g / 2 0 0 1 / 1 2 / s o a p - e n c o d i n g " >

    < s o a p : H e a d e r >

    ( o p t i o n a l ) c o n t a i n s h e a d e r i n f o , l i k e p a y m e n t i n f o o r a u t h e n t i c a t i o n i n f o

    ( c r y p t o k e y , u s e r i d / p a s s w o r d , e t c )

    < / s o a p : H e a d e r >

    < s o a p : B o d y >

    . . .

    C o n t a i n s t h e o p e r a t i o n n a m e ( i . e . t h e " p r o c e d u r e t o c a l l " ) a s

    w e l l a s p a r a m e t e r i n f o . T h e s e a r e a p p l i c a t i o n d e f i n e d .

    . . .

    < s o a p : F a u l t >

    ( o p t i o n a l ) e r r o r i n f o .

    < / s o a p : F a u l t >

    . . .

    < / s o a p : B o d y >

    < / s o a p : E n v e l o p e >

    H e r e ' s t h e s k e l e t o n o f a S O A P m e s s a g e :

    1 8

    S a m p l e S O A P D o c u m e n t s

    < ? x m l v e r s i o n = " 1 . 0 " ? >

    < S O A P : E n v e l o p e >

    < S O A P : B o d y >

    < C o n v e r s i o n R a t e >

    < F r o m C u r r e n c y > U S D < / F r o m C u r r e n c y >

    < T o C u r r e n c y > E U R < / T o C u r r e n c y >

    < / C o n v e r s i o n R a t e >

    < / S O A P : B o d y >

    < / S O A P : E n v e l o p e >

    I ' v e r e m o v e d t h e n a m e s p a c e a n d e n c o d i n g i n f o r m a t i o n t o k e e p t h i s e x a m p l e c l e a r a n d

    s i m p l e . ( I n a r e a l p r o g r a m , y o u ' d n e e d t h o s e t o b e i n c l u d e d a s w e l l . )

    < ? x m l v e r s i o n = " 1 . 0 " ? >

    < S O A P : E n v e l o p e >

    < S O A P : B o d y >

    < C o n v e r s i o n R a t e R e s p o n s e >

    < C o n v e r s i o n R a t e R e s u l t > 0 . 7 2 0 7 < / C o n v e r s i o n R a t e R e s u l t >

    < / C o n v e r s i o n R a t e R e s p o n s e >

    < / S O A P : B o d y >

    < / S O A P : E n v e l o p e >

    Inpu

    t Mes

    sage

    Ou

    tpu

    t Mes

    sage

  • 1 9

    S o a p U I ( 1 / 2 )

    C l i c k F i l e / N e w W S D L P r o j e c t

    P R O J E C T N A M E

    c a n b e a n y n a m e u s e

    s o m e t h i n g y o u ' l l

    r e m e m b e r .

    I N I T I A L W S D L

    c a n b e e i t h e r a U R L o n

    t h e w e b , o r a f i l e o n

    y o u r h a r d d r i v e .

    Y o u c a n u s e " B r o w s e "

    t o n a v i g a t e v i a a

    s t a n d a r d W i n d o w s f i l e

    d i a l o g .

    S o a p U I i s a n o p e n s o u r c e ( f r e e o f c h a r g e ) p r o g r a m t h a t y o u c a n u s e t o g e t t h e S O A P

    m e s s a g e s y o u ' l l n e e d f r o m a W D S L d o c u m e n t . h t t p : / / w w w . s o a p u i . o r g

    2 0

    S o a p U I ( 2 / 2 )

    S o a p A c t i o n i s f o u n d i n t h e

    b o x t o t h e l e f t . ( H i g h l i g h t

    t h e " O p e r a t i o n " n o t t h e

    r e q u e s t .

    I f y o u e x p a n d t h e t r e e

    o n t h e l e f t , a n d d o u b l e -

    c l i c k t h e o p e r a t i o n , i t

    s h o w s y o u t h e S O A P

    m e s s a g e .

    Y o u c a n e d i t t h e S O A P

    a n d c l i c k t h e g r e e n

    a r r o w t o g i v e i t a t r y .

  • 2 1

    H T T P A P I

    N o w t h a t y o u k n o w t h e X M L d a t a t h a t n e e d s t o b e s e n t a n d r e c e i v e d , y o u n e e d a m e t h o d

    o f s e n d i n g t h a t d a t a t o t h e s e r v e r , a n d g e t t i n g i t b a c k .

    N o r m a l l y w h e n w e u s e t h e W e b , w e u s e a W e b b r o w s e r . T h e b r o w s e r c o n n e c t s t o a w e b

    s e r v e r , i s s u e s o u r r e q u e s t , d o w n l o a d s t h e r e s u l t a n d d i s p l a y s i t o n t h e s c r e e n .

    W h e n m a k i n g a p r o g r a m - t o - p r o g r a m c a l l , h o w e v e r , a b r o w s e r i s n ' t t h e r i g h t t o o l . I n s t e a d ,

    y o u n e e d a t o o l t h a t k n o w s h o w t o s e n d a n d r e c e i v e d a t a f r o m a W e b s e r v e r t h a t c a n b e

    i n t e g r a t e d r i g h t i n t o y o u r R P G p r o g r a m s .

    T h a t ' s w h a t H T T P A P I i s f o r !

    H T T P A P I i s a f r e e ( o p e n s o u r c e ) t o o l t o a c t l i k e a n H T T P c l i e n t ( t h e r o l e u s u a l l y p l a y e d

    b y t h e b r o w s e r . )

    H T T P A P I w a s o r i g i n a l l y w r i t t e n b y m e ( S c o t t K l e m e n t ) t o a s s i s t w i t h a p r o j e c t t h a t I h a d

    b a c k i n 2 0 0 1 .

    S i n c e I t h o u g h t i t m i g h t b e u s e f u l t o o t h e r s , I m a d e i t f r e e a n d a v a i l a b l e t o e v e r y o n e .

    h t t p : / / w w w . s c o t t k l e m e n t . c o m / h t t p a p i /

    2 2

    M o r e a b o u t H T T P A P I

    I n e e d e d a w a y t o a u t o m a t e d o w n l o a d i n g A C S u p d a t e s

    f r o m t h e U n i t e d S t a t e s P o s t a l S e r v i c e

    A f r i e n d n e e d e d a w a y t o t r a c k p a c k a g e s w i t h U P S f r o m

    h i s R P G s o f t w a r e

    S i n c e m a n y p e o p l e s e e m e d t o n e e d t h i s t y p e o f

    a p p l i c a t i o n , I d e c i d e d t o m a k e i t p u b l i c l y a v a i l a b l e u n d e r

    a n O p e n S o u r c e l i c e n s e

    H o w d i d H T T P A P I c o m e a b o u t ?

  • 2 3

    C u r r e n c y E x c h a n g e E x a m p l e

    I ' v e s h o w n y o u t h e s a m p l e W S D L a n d S O A P d o c u m e n t s f o r X M e t h o d . n e t ' s " C u r r e n c y

    E x c h a n g e " d e m o n s t r a t i o n w e b s e r v i c e .

    O v e r t h e n e x t s e v e r a l s l i d e s , w e ' l l l o o k a t a n R P G e x a m p l e t h a t u s e s H T T P A P I t o c o n s u m e

    t h i s C u r r e n c y E x c h a n g e S e r v i c e .

    T h i s t y p e o f p r o g r a m i s o f t e n r e f e r r e d t o a s a W e b S e r v i c e C o n s u m e r .

    I n b u s i n e s s , a c u s t o m e r t h a t u t i l i z e s y o u r p r o d u c t i s r e f e r r e d t o a s a " c o n s u m e r " . F o r

    e x a m p l e , i f m y c o m p a n y m a k e s s a u s a g e , a n d y o u b u y o n e f r o m t h e g r o c e r y s t o r e a n d e a t

    i t , y o u ' r e t h e " e n d c o n s u m e r . "

    T h i s i s a n a l o g o u s t o a p r o g r a m t h a t u s e s a w e b s e r v i c e . W h e n t h e s e r v i c e i s u s e d , i t ' s

    r e f e r r e d t o a s " c o n s u m i n g " t h e s e r v i c e . T h e r e f o r e , a p r o g r a m t h a t u t i l i z e s a W e b s e r v i c e i s

    a W e b S e r v i c e C o n s u m e r .

    2 4

    W e b S e r v i c e C o n s u m e r ( 1 / 4 )

    H D F T A C T G R P ( * N O ) B N D D I R ( ' L I B H T T P / H T T P A P I ' )

    D E X C H R A T E P R E x t P g m ( ' E X C H R A T E ' )

    D C o u n t r y 1 3 A c o n s t

    D C o u n t r y 2 3 A c o n s t

    D A m o u n t 1 5 P 5 c o n s t

    D E X C H R A T E P I

    D C o u n t r y 1 3 A c o n s t

    D C o u n t r y 2 3 A c o n s t

    D A m o u n t 1 5 P 5 c o n s t

    / c o p y l i b h t t p / q r p g l e s r c , h t t p a p i _ h

    D I n c o m i n g P R

    D r a t e 8 F

    D d e p t h 1 0 I 0 v a l u e

    D n a m e 1 0 2 4 A v a r y i n g c o n s t

    D p a t h 2 4 5 7 6 A v a r y i n g c o n s t

    D v a l u e 3 2 7 6 7 A v a r y i n g c o n s t

    D a t t r s * d i m ( 3 2 7 6 7 )

    D c o n s t o p t i o n s ( * v a r s i z e )

    D S O A P s 3 2 7 6 7 A v a r y i n g

    D r c s 1 0 I 0

    D r a t e s 8 F

    D R e s u l t s 1 2 P 2

    D m s g s 5 0 A

    D w a i t s 1 A

    A p r o g r a m t h a t

    u s e s a W e b

    S e r v i c e i s c a l l e d

    a " W e b S e r v i c e

    C o n s u m e r " .

    T h e a c t o f c a l l i n g

    a W e b s e r v i c e i s

    r e f e r r e d t o a s

    " c o n s u m i n g a

    w e b s e r v i c e . "

  • 2 5

    W e b S e r v i c e C o n s u m e r ( 2 / 4 )

    / f r e e

    S O A P =

    ' < ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " i s o - 8 8 5 9 - 1 " s t a n d a l o n e = " n o " ? > '

    + ' < S O A P : E n v e l o p e '

    + ' x m l n s : S O A P = " h t t p : / / s c h e m a s . x m l s o a p . o r g / s o a p / e n v e l o p e / " '

    + ' x m l n s : t n s = " h t t p : / / w w w . w e b s e r v i c e X . N E T / " > '

    + ' < S O A P : B o d y > '

    + ' < t n s : C o n v e r s i o n R a t e > '

    + ' < t n s : F r o m C u r r e n c y > ' + % t r i m ( C o u n t r y 1 ) + ' < / t n s : F r o m C u r r e n c y > '

    + ' < t n s : T o C u r r e n c y > ' + % t r i m ( C o u n t r y 2 ) + ' < / t n s : T o C u r r e n c y > '

    + ' < / t n s : C o n v e r s i o n R a t e > '

    + ' < / S O A P : B o d y > '

    + ' < / S O A P : E n v e l o p e > ' ;

    r c = h t t p _ u r l _ p o s t _ x m l (

    ' h t t p : / / w w w . w e b s e r v i c e x . n e t / C u r r e n c y C o n v e r t o r . a s m x '

    : % a d d r ( S O A P ) + 2

    : % l e n ( S O A P )

    : * N U L L

    : % p a d d r ( I n c o m i n g )

    : % a d d r ( r a t e )

    : H T T P _ T I M E O U T

    : H T T P _ U S E R A G E N T

    : ' t e x t / x m l '

    : ' h t t p : / / w w w . w e b s e r v i c e X . N E T / C o n v e r s i o n R a t e ' ) ;

    C o n s t r u c t i n g t h e

    S O A P m e s s a g e i s

    d o n e w i t h a b i g

    E V A L s t a t e m e n t .

    T h i s r o u t i n e t e l l s

    H T T P A P I t o s e n d

    t h e S O A P

    m e s s a g e t o a

    W e b s e r v e r , a n d

    t o p a r s e t h e X M L

    r e s p o n s e .

    A s H T T P A P I r e c e i v e s t h e X M L

    d o c u m e n t , i t ' l l c a l l t h e I N C O M I N G

    s u b p o c e d u r e f o r e v e r y X M L

    e l e m e n t , p a s s i n g t h e " r a t e "

    v a r i a b l e a s a p a r a m e t e r .

    2 6

    W e b S e r v i c e C o n s u m e r ( 3 / 4 )

    i f ( r c < > 1 ) ;

    m s g = h t t p _ e r r o r ( ) ;

    e l s e ;

    R e s u l t = % d e c h ( A m o u n t * r a t e : 1 2 : 2 ) ;

    m s g = ' R e s u l t = ' + % c h a r ( R e s u l t ) ;

    e n d i f ;

    d s p l y m s g ' ' w a i t ;

    * i n l r = * o n ;

    / e n d - f r e e

    P I n c o m i n g B

    D I n c o m i n g P I

    D r a t e 8 F

    D d e p t h 1 0 I 0 v a l u e

    D n a m e 1 0 2 4 A v a r y i n g c o n s t

    D p a t h 2 4 5 7 6 A v a r y i n g c o n s t

    D v a l u e 3 2 7 6 7 A v a r y i n g c o n s t

    D a t t r s * d i m ( 3 2 7 6 7 )

    D c o n s t o p t i o n s ( * v a r s i z e )

    / f r e e

    i f ( n a m e = ' C o n v e r s i o n R a t e R e s u l t ' ) ;

    r a t e = % f l o a t ( v a l u e ) ;

    e n d i f ;

    / e n d - f r e e

    P E

    I f a n e r r o r o c c u r s ,

    a s k H T T P A P I

    w h a t t h e e r r o r i s .

    D i s p l a y t h e e r r o r

    o r r e s u l t o n t h e

    s c r e e n .

    T h i s i s c a l l e d f o r

    e v e r y X M L e l e m e n t

    i n t h e r e s p o n s e .

    W h e n t h e e l e m e n t i s

    a " C o n v e r s i o n R a t e

    R e s u l t " e l e m e n t ,

    s a v e t h e v a l u e , s i n c e

    i t ' s t h e e x c h a n g e

    r a t e w e ' r e l o o k i n g

    f o r !

  • 2 7

    W e b S e r v i c e C o n s u m e r ( 4 / 4 )

    C o m m a n d E n t r y

    R e q u e s t l e v e l : 1

    P r e v i o u s c o m m a n d s a n d m e s s a g e s :

    > c a l l e x c h r a t e p a r m ( ' U S D ' ' E U R ' 1 8 5 . 5 0 )

    D S P L Y R e s u l t = 1 3 3 . 6 9

    B o t t o m

    T y p e c o m m a n d , p r e s s E n t e r .

    = = = >

    F 3 = E x i t F 4 = P r o m p t F 9 = R e t r i e v e F 1 0 = I n c l u d e d e t a i l e d m e s s a g e s

    F 1 1 = D i s p l a y f u l l F 1 2 = C a n c e l F 1 3 = I n f o r m a t i o n A s s i s t a n t F 2 4 = M o r e k e y s

    H e r e ' s a s a m p l e o f t h e o u t p u t f r o m c a l l i n g t h e p r e c e d i n g p r o g r a m :

    2 8

    W h a t J u s t H a p p e n e d ?

    H T T P A P I d o e s n o t k n o w h o w t o c r e a t e a n X M L d o c u m e n t , b u t i t d o e s

    k n o w h o w t o p a r s e o n e .

    I n t h e p r e v i o u s e x a m p l e :

    T h e S O A P d o c u m e n t w a s c r e a t e d i n a v a r i a b l e u s i n g a b i g E V A L s t a t e m e n t .

    T h e v a r i a b l e t h a t c o n t a i n e d t h e S O A P d o c u m e n t w a s p a s s e d t o H T T P A P I

    a n d H T T P A P I s e n t i t t o t h e W e b s i t e .

    T h e s u b p r o c e d u r e w e c a l l e d ( h t t p _ u r l _ p o s t _ x m l ) u t i l i z e s H T T P A P I ' s

    b u i l t - i n X M L p a r s e r t o p a r s e t h e r e s u l t a s i t c o m e s o v e r t h e w i r e .

    A s e a c h X M L e l e m e n t i s r e c e i v e d , t h e I n c o m i n g ( ) s u b p r o c e d u r e i s c a l l e d .

    W h e n t h a t s u b p r o c e d u r e f i n d s a < C o n v e r s i o n R a t e R e s u l t > e l e m e n t , i t

    s a v e s t h e e l e m e n t ' s v a l u e t o t h e " r a t e " v a r i a b l e .

    W h e n h t t p _ u r l _ p o s t _ x m l ( ) h a s c o m p l e t e d , t h e r a t e v a r i a b l e i s s e t .

    Y o u c a n m u l t i p l y t h e i n p u t c u r r e n c y a m o u n t b y t h e r a t e t o g e t t h e o u t p u t

    c u r r e n c y a m o u n t .

  • 2 9

    N o ! L e t M e P a r s e I t !

    I f y o u d o n ' t w a n t t o u s e H T T P A P I ' s X M L p a r s e r , y o u c a n c a l l t h e

    h t t p _ u r l _ p o s t ( ) A P I i n s t e a d o f h t t p _ u r l _ p o s t _ x m l ( ) .

    I n t h a t s i t u a t i o n , t h e r e s u l t w i l l b e s a v e d t o a s t r e a m f i l e i n t h e I F S , a n d y o u

    c a n u s e a n o t h e r X M L p a r s e r i n s t e a d o f t h e o n e i n H T T P A P I .

    . . .

    r c = h t t p _ u r l _ p o s t (

    ' h t t p : / / w w w . w e b s e r v i c e x . n e t / C u r r e n c y C o n v e r t o r . a s m x '

    : % a d d r ( S O A P ) + 2

    : % l e n ( S O A P )

    : ' / t m p / C u r r e n c y E x c h a n g e R e s u l t . s o a p '

    : H T T P _ T I M E O U T

    : H T T P _ U S E R A G E N T

    : ' t e x t / x m l '

    : ' h t t p : / / w w w . w e b s e r v i c e X . N E T / C o n v e r s i o n R a t e ' ) ;

    . . .

    F o r e x a m p l e , y o u m a y w a n t t o u s e R P G ' s b u i l t i n s u p p o r t f o r X M L i n V 5 R 4 t o

    p a r s e t h e d o c u m e n t r a t h e r t h a n l e t H T T P A P I d o i t . ( X M L - S A X o p - c o d e )

    3 0

    I s / F R E E r e q u i r e d ?

    I n m y e x a m p l e s s o f a r , i ' v e u s e d f r e e f o r m a t R P G . I t ' s n o t

    r e q u i r e d , h o w e v e r , y o u c a n u s e f i x e d f o r m a t i f y o u p r e f e r . J u s t

    u s e E V A L o r C A L L P s t a t e m e n t s .

    . . .

    c e v a l S O A P = ' < ? x m l v e r s i o n = " 1 . 0 " > '

    c + ' < S O A P - E N V : E n v e l o p e . .

    . . . a n d s o o n . . .

    c c a l l p h t t p _ u r l _ p o s t _ x m l (

    c ' h t t p : / / w w w . w e b s e r v i c e x . n e t / ' +

    c ' C u r r e n c y C o n v e r t o r . a s m x '

    c : % a d d r ( S O A P ) + 2

    c : % l e n ( S O A P )

    c : * N U L L

    c : % p a d d r ( I n c o m i n g )

    c : % a d d r ( r a t e )

    c : H T T P _ T I M E O U T

    c : H T T P _ U S E R A G E N T

    c : ' t e x t / x m l '

    c : ' h t t p : / / w w w . w e b s e r v i c e X . N E T / ' +

    c C o n v e r s i o n R a t e ' )

    . . .

  • 3 1

    H a n d l i n g E r r o r s w i t h H T T P A P I

    D h t t p _ e r r o r P R 8 0 A

    D p e E r r o r N o 1 0 I 0 o p t i o n s ( * n o p a s s )

    M o s t o f t h e H T T P A P I r o u t i n e s r e t u r n 1 w h e n s u c c e s s f u l

    A l t h o u g h t h i s a l l o w s y o u t o d e t e c t w h e n s o m e t h i n g h a s f a i l e d , i t o n l y t e l l s

    y o u t h a t s o m e t h i n g f a i l e d , n o t w h a t f a i l e d

    T h e h t t p _ e r r o r ( ) r o u t i n e c a n t e l l y o u a n e r r o r n u m b e r , a m e s s a g e , o r b o t h

    T h e f o l l o w i n g i s t h e p r o t o t y p e f o r t h e h t t p _ e r r o r ( ) A P I

    i f ( r c < > 1 ) ;

    m s g = h t t p _ e r r o r ( ) ;

    / / y o u c a n n o w p r i n t t h i s m e s s a g e o n t h e s c r e e n ,

    / / o r p a s s i t b a c k t o a c a l l i n g p r o g r a m ,

    / / o r w h a t e v e r y o u l i k e .

    e n d i f ;

    T h e h u m a n - r e a d a b l e m e s s a g e i s p a r t i c u l a r l y u s e f u l f o r l e t t i n g t h e u s e r

    k n o w w h a t ' s g o i n g o n .

    3 2

    H a n d l i n g E r r o r s , c o n t i n u e d

    T h e e r r o r n u m b e r i s u s e f u l w h e n t h e p r o g r a m a n t i c i p a t e s a n d t r i e s t o h a n d l e

    c e r t a i n e r r o r s .

    i f ( r c < > 1 ) ;

    h t t p _ e r r o r ( e r r n u m ) ;

    s e l e c t ;

    w h e n e r r n u m = H T T P _ N O T R E G ;

    / / a p p n e e d s t o b e r e g i s t e r e d w i t h D C M

    e x s r R e g i s t e r A p p ;

    w h e n e r r n u m = H T T P _ N D A U T H ;

    / / s i t e r e q u i r e s a u s e r i d / p a s s w o r d

    e x s r R e q u e s t A u t h ;

    o t h e r ;

    m s g = h t t p _ e r r o r ( ) ;

    e n d s l ;

    e n d i f ;

    T h e s e a r e c o n s t a n t s

    t h a t a r e d e f i n e d i n

    H T T P A P I _ H ( a n d

    i n c l u d e d w i t h H T T P A P I )

  • 3 3

    W S D L 2 R P G

    I n s t e a d o f S o a p U I , y o u m i g h t c o n s i d e r u s i n g W S D L 2 R P G a n o t h e r o p e n s o u r c e

    p r o j e c t , t h i s o n e f r o m T h o m a s R a d d a t z . Y o u g i v e W S D L 2 R P G t h e U R L o r I F S p a t h o f

    a W S D L f i l e , a n d i t g e n e r a t e s t h e R P G c o d e t o c a l l H T T P A P I .

    W S D L 2 R P G U R L ( ' / h o m e / k l e m s c o t / C u r r e n c y C o n v e r t o r . w s d l ' )

    S R C F I L E ( L I B S C K / Q R P G L E S R C )

    S R C M B R ( C U R R C O N V )

    T h e n c o m p i l e C U R R C O N V a s a m o d u l e , a n d c a l l i t w i t h t h e a p p r o p r i a t e p a r a m e t e r s .

    C o d e i s s t i l l b e t a , n e e d s m o r e w o r k .

    T h e R P G i t g e n e r a t e s o f t e n n e e d s t o b e t w e a k e d b e f o r e i t ' l l c o m p i l e .

    T h e c o d e i t g e n e r a t e s i s m u c h m o r e c o m p l e x t h a n w h a t y o u ' d u s e i f y o u g e n e r a t e d i t

    y o u r s e l f , o r u s e d S o a p U I

    C a n o n l y d o S O A P ( n o t P O X o r R E S T )

    B u t d o n ' t b e a f r a i d t o h e l p w i t h t h e p r o j e c t ! I t ' l l b e r e a l l y n i c e w h e n i t ' s p e r f e c t e d !

    h t t p : / / w w w . t o o l s 4 0 0 . d e / E n g l i s h / F r e e w a r e / W S D L 2 R P G / w s d l 2 r p g . h t m l

    3 4

    A b o u t S S L w i t h H T T P A P I

    T h e n e x t e x a m p l e ( U P S p a c k a g e t r a c k i n g ) r e q u i r e s t h a t y o u c o n n e c t u s i n g

    S S L . ( T h i s i s e v e n m o r e i m p o r t a n t w h e n w o r k i n g w i t h a b a n k ! )

    H T T P A P I s u p p o r t s S S L w h e n y o u s p e c i f y " h t t p s : " i n s t e a d o f " h t t p : " a t t h e

    b e g i n n i n g o f t h e U R L .

    I t u s e s t h e S S L r o u t i n e s i n t h e o p e r a t i n g s y s t e m , t h e r e f o r e y o u m u s t h a v e a l l

    o f t h e r e q u i r e d s o f t w a r e i n s t a l l e d . I B M r e q u i r e s t h e f o l l o w i n g :

    D i g i t a l C e r t i f i c a t e M a n a g e r ( o p t i o n 3 4 o f I B M i , 5 7 x x - S S 1 )

    T C P / I P C o n n e c t i v i t y U t i l i t i e s f o r i S e r i e s ( 5 7 x x - T C 1 )

    I B M H T T P S e r v e r f o r i S e r i e s ( 5 7 x x - D G 1 )

    I B M D e v e l o p e r K i t f o r J a v a ( 5 7 x x - J V 1 )

    I B M C r y p t o g r a p h i c A c c e s s P r o v i d e r ( 5 7 2 2 - A C 3 ) ( p r e - V 5 R 4 o n l y )

    B e c a u s e o f ( h i s t o r i c a l ) i m p o r t / e x p o r t l a w s , 5 7 2 2 - A C 3 i s n o t s h i p p e d w i t h i . H o w e v e r ,

    i t ' s a n o - c h a r g e i t e m . Y o u j u s t h a v e t o o r d e r i t s e p a r a t e l y f r o m y o u r b u s i n e s s p a r t n e r .

    I t i s i n c l u d e d a u t o m a t i c a l l y i n V 5 R 4 a n d l a t e r a s 5 7 x x - N A E

  • 3 5

    U P S E x a m p l e ( s l i d e 1 o f 1 1 )

    T h i s d e m o n s t r a t e s t h e " U P S T r a c k i n g T o o l " t h a t ' s p a r t o f U P S O n L i n e

    T o o l s . T h e r e a r e a f e w d i f f e r e n c e s b e t w e e n t h i s a n d t h e p r e v i o u s

    e x a m p l e :

    Y o u h a v e t o r e g i s t e r w i t h U P S t o u s e t h e i r s e r v i c e s ( b u t i t ' s f r e e )

    Y o u ' l l b e g i v e n a n a c c e s s k e y , a n d y o u ' l l n e e d t o s e n d i t w i t h e a c h

    r e q u e s t .

    U P S r e q u i r e s S S L t o a c c e s s t h e i r w e b s i t e .

    U P S d o e s n o t u s e S O A P o r W S D L f o r t h e i r W e b s e r v i c e s b u t d o e s

    u s e X M L . S o m e f o l k s c a l l t h i s " P l a i n O l d X M L " ( P O X ) .

    I n s t e a d o f W S D L , t h e y p r o v i d e y o u w i t h d o c u m e n t a t i o n t h a t

    e x p l a i n s t h e f o r m a t o f t h e X M L m e s s a g e s .

    T h a t d o c u m e n t w i l l b e a v a i l a b l e f r o m t h e i r w e b s i t e a f t e r y o u ' v e

    s i g n e d u p a s a d e v e l o p e r .

    3 6

    U P S E x a m p l e ( s l i d e 2 o f 1 1 )

  • 3 7

    U P S E x a m p l e ( s l i d e 3 o f 1 1 )

    3 8

    U P S E x a m p l e ( s l i d e 4 o f 1 1 )

    . . .

    D U P S _ U S E R I D C ' < p u t y o u r u s e r i d h e r e > '

    D U P S _ P A S S W D C ' < p u t y o u r p a s s w o r d h e r e > '

    D U P S _ L I C E N S E C ' < p u t y o u r a c c e s s l i c e n s e h e r e >

    . . .

    d a c t s 1 0 I 0

    d a c t i v i t y d s q u a l i f i e d

    d d i m ( 1 0 )

    d D a t e 8 A

    d T i m e 6 A

    D D e s c 2 0 A

    D C i t y 2 0 A

    D S t a t e 2 A

    D S t a t u s 2 0 A

    D S i g n e d B y 2 0 A

    . . .

    / / A s k u s e r f o r t r a c k i n g n u m b e r .

    e x f m t T r a c k N o ;

    U P S p r o v i d e s t h e s e

    w h e n y o u s i g n u p a s a

    d e v e l o p e r .

  • 3 9

    U P S E x a m p l e ( s l i d e 5 o f 1 1 )

    p o s t D a t a =

    ' < ? x m l v e r s i o n = " 1 . 0 " ? > ' +

    ' < A c c e s s R e q u e s t x m l : l a n g = " e n - U S " > ' +

    ' < A c c e s s L i c e n s e N u m b e r > ' + U P S _ L I C E N S E + ' < / A c c e s s L i c e n s e N u m b e r > ' +

    ' < U s e r I d > ' + U P S _ U S E R I D + ' < / U s e r I d > ' +

    ' < P a s s w o r d > ' + U P S _ P A S S W D + ' < / P a s s w o r d > ' +

    ' < / A c c e s s R e q u e s t > ' +

    ' < ? x m l v e r s i o n = " 1 . 0 " ? > ' +

    ' < T r a c k R e q u e s t x m l : l a n g = " e n - U S " > ' +

    ' < R e q u e s t > ' +

    ' < T r a n s a c t i o n R e f e r e n c e > ' +

    ' < C u s t o m e r C o n t e x t > E x a m p l e 1 < / C u s t o m e r C o n t e x t > ' +

    ' < X p c i V e r s i o n > 1 . 0 0 0 1 < / X p c i V e r s i o n > ' +

    ' < / T r a n s a c t i o n R e f e r e n c e > ' +

    ' < R e q u e s t A c t i o n > T r a c k < / R e q u e s t A c t i o n > ' +

    ' < R e q u e s t O p t i o n > a c t i v i t y < / R e q u e s t O p t i o n > ' +

    ' < / R e q u e s t > ' +

    ' < T r a c k i n g N u m b e r > ' + T r a c k i n g N o + ' < / T r a c k i n g N u m b e r > ' +

    ' < / T r a c k R e q u e s t > ' ;

    r c = h t t p _ u r l _ p o s t _ x m l ( ' h t t p s : / / w w w c i e . u p s . c o m / u p s . a p p / x m l / T r a c k '

    : % a d d r ( p o s t D a t a ) + 2

    : % l e n ( p o s t D a t a )

    : % p a d d r ( S t a r t O f E l e m e n t )

    : % p a d d r ( E n d O f E l e m e n t )

    : * N U L L ) ;

    i f ( r c < > 1 ) ;

    m s g = h t t p _ e r r o r ( ) ;

    / / R E P O R T E R R O R T O U S E R

    e n d i f ;

    T h e S t a r t O f E l e m e n t

    a n d E n d O f E l e m e n t

    r o u t i n e s a r e c a l l e d w h i l e

    h t t p _ u r l _ p o s t _ x m l i s

    r u n n i n g

    4 0

    U P S E x a m p l e ( s l i d e 6 o f 1 1 )

    . . .

    f o r R R N = 1 t o a c t ;

    m o n i t o r ;

    t e m p D a t e = % d a t e ( a c t i v i t y ( R R N ) . d a t e : * I S O 0 ) ;

    s c D a t e = % c h a r ( t e m p D a t e : * U S A ) ;

    o n - e r r o r ;

    s c D a t e = * b l a n k s ;

    e n d m o n ;

    m o n i t o r ;

    t e m p T i m e = % t i m e ( a c t i v i t y ( R R N ) . t i m e : * H M S 0 ) ;

    s c T i m e = % c h a r ( t e m p T i m e : * H M S ) ;

    o n - e r r o r ;

    s c T i m e = * b l a n k s ;

    e n d m o n ;

    s c D e s c = a c t i v i t y ( R R N ) . d e s c ;

    s c C i t y = a c t i v i t y ( R R N ) . c i t y ;

    s c S t a t e = a c t i v i t y ( R R N ) . s t a t e ;

    s c S t a t u s = a c t i v i t y ( R R N ) . s t a t u s ;

    i f ( s c S i g n e d B y = * b l a n k s ) ;

    s c S i g n e d B y = a c t i v i t y ( R R N ) . S i g n e d B y ;

    e n d i f ;

    w r i t e S F L R E C ;

    e n d f o r ;

    . . .

    S i n c e t h e

    S t a r t O f E l e m e n t a n d

    E n d O f E l e m e n t r o u t i n e s

    r e a d t h e X M L d a t a a n d

    p u t i t i n t h e a r r a y , w h e n

    h t t p _ u r l _ p o s t _ x m l i s

    c o m p l e t e , w e ' r e r e a d y t o

    l o a d t h e a r r a y i n t o t h e

    s u b f i l e .

  • 4 1

    U P S E x a m p l e ( s l i d e 7 o f 1 1 )

    < ? x m l v e r s i o n = " 1 . 0 " ? >

    < T r a c k R e s p o n s e >

    < S h i p m e n t >

    . . .

    < P a c k a g e >

    < A c t i v i t y >

    < A c t i v i t y L o c a t i o n >

    < A d d r e s s >

    < C i t y > M I L W A U K E E < / C i t y >

    < S t a t e P r o v i n c e C o d e > W I < / S t a t e P r o v i n c e C o d e >

    < P o s t a l C o d e > 5 3 2 0 7 < / P o s t a l C o d e >

    < C o u n t r y C o d e > U S < / C o u n t r y C o d e >

    < / A d d r e s s >

    < C o d e > A I < / C o d e >

    < D e s c r i p t i o n > D O C K < / D e s c r i p t i o n >

    < S i g n e d F o r B y N a m e > D E N N I S < / S i g n e d F o r B y N a m e >

    < / A c t i v i t y L o c a t i o n >

    < S t a t u s >

    < S t a t u s T y p e >

    < C o d e > D < / C o d e >

    < D e s c r i p t i o n > D E L I V E R E D < / D e s c r i p t i o n >

    < / S t a t u s T y p e >

    < S t a t u s C o d e >

    < C o d e > K B < / C o d e >

    < / S t a t u s C o d e >

    < / S t a t u s >

    < D a t e > 2 0 0 4 1 1 0 9 < / D a t e >

    < T i m e > 1 1 5 4 0 0 < / T i m e >

    < / A c t i v i t y >

    T h i s i s w h a t t h e

    r e s p o n s e f r o m U P S w i l l

    l o o k l i k e .

    H T T P A P I w i l l c a l l t h e

    S t a r t O f E l e m e n t

    p r o c e d u r e f o r e v e r y

    " s t a r t " X M L e l e m e n t .

    H T T P A P I w i l l c a l l t h e

    E n d O f E l e m e n t

    p r o c e d u r e f o r e v e r y

    " e n d " X M L e l e m e n t . A t

    t h a t t i m e , i t ' l l a l s o p a s s

    t h e v a l u e .

    4 2

    U P S E x a m p l e ( s l i d e 8 o f 1 1 )

    < A c t i v i t y >

    < A c t i v i t y L o c a t i o n >

    < A d d r e s s >

    < C i t y > O A K C R E E K < / C i t y >

    < S t a t e P r o v i n c e C o d e > W I < / S t a t e P r o v i n c e C o d e >

    < C o u n t r y C o d e > U S < / C o u n t r y C o d e >

    < / A d d r e s s >

    < / A c t i v i t y L o c a t i o n >

    < S t a t u s >

    < S t a t u s T y p e >

    < C o d e > I < / C o d e >

    < D e s c r i p t i o n > O U T F O R D E L I V E R Y < / D e s c r i p t i o n >

    < / S t a t u s T y p e >

    < S t a t u s C o d e >

    < C o d e > D S < / C o d e >

    < / S t a t u s C o d e >

    < / S t a t u s >

    < D a t e > 2 0 0 4 1 1 0 9 < / D a t e >

    < T i m e > 0 7 1 0 0 0 < / T i m e >

    < / A c t i v i t y >

    . . .

    < / P a c k a g e >

    < / S h i p m e n t >

    < / T r a c k R e s p o n s e >

    T h e r e a r e a d d i t i o n a l < A c t i v i t y > s e c t i o n s a n d o t h e r X M L t h a t I o m i t t e d

    b e c a u s e i t w a s t o o l o n g f o r t h e p r e s e n t a t i o n .

  • 4 3

    U P S E x a m p l e ( s l i d e 9 o f 1 1 )

    P S t a r t O f E l e m e n t B

    D S t a r t O f E l e m e n t P I

    D U s e r D a t a * v a l u e

    D d e p t h 1 0 I 0 v a l u e

    D n a m e 1 0 2 4 A v a r y i n g c o n s t

    D p a t h 2 4 5 7 6 A v a r y i n g c o n s t

    D a t t r s * d i m ( 3 2 7 6 7 )

    D c o n s t o p t i o n s ( * v a r s i z e )

    / f r e e

    i f p a t h = ' / T r a c k R e s p o n s e / S h i p m e n t / P a c k a g e ' a n d n a m e = ' A c t i v i t y ' ;

    a c t = a c t + 1 ;

    e n d i f ;

    / e n d - f r e e

    P E

    T h i s i s c a l l e d d u r i n g h t t p _ u r l _ p o s t _ x m l ( ) f o r e a c h s t a r t e l e m e n t t h a t U P S

    s e n d s . I t ' s u s e d t o a d v a n c e t o t h e n e x t a r r a y e n t r y w h e n a n e w p a c k a g e r e c o r d

    i s r e c e i v e d .

    4 4

    U P S E x a m p l e ( s l i d e 1 0 o f 1 1 )

    P E n d O f E l e m e n t B

    D E n d O f E l e m e n t P I

    D U s e r D a t a * v a l u e

    D d e p t h 1 0 I 0 v a l u e

    D n a m e 1 0 2 4 A v a r y i n g c o n s t

    D p a t h 2 4 5 7 6 A v a r y i n g c o n s t

    D v a l u e 3 2 7 6 7 A v a r y i n g c o n s t

    D a t t r s * d i m ( 3 2 7 6 7 )

    D c o n s t o p t i o n s ( * v a r s i z e )

    / f r e e

    s e l e c t ;

    w h e n p a t h = ' / T r a c k R e s p o n s e / S h i p m e n t / P a c k a g e / A c t i v i t y ' ;

    s e l e c t ;

    w h e n n a m e = ' D a t e ' ;

    a c t i v i t y ( a c t ) . D a t e = v a l u e ;

    w h e n n a m e = ' T i m e ' ;

    a c t i v i t y ( a c t ) . T i m e = v a l u e ;

    e n d s l ;

    w h e n p a t h = ' / T r a c k R e s p o n s e / S h i p m e n t / P a c k a g e / A c t i v i t y ' +

    ' / A c t i v i t y L o c a t i o n ' ;

    s e l e c t ;

    w h e n n a m e = ' D e s c r i p t i o n ' ;

    a c t i v i t y ( a c t ) . D e s c = v a l u e ;

    w h e n n a m e = ' S i g n e d F o r B y N a m e ' ;

    a c t i v i t y ( a c t ) . S i g n e d B y = v a l u e ;

    e n d s l ;

    T h i s i s c a l l e d f o r e a c h

    e n d i n g v a l u e . W e u s e i t

    t o s a v e t h e r e t u r n e d

    p a c k a g e i n f o r m a t i o n

    i n t o a n a r r a y .

    R e m e m b e r , t h i s i s

    c a l l e d b y

    h t t p _ u r l _ p o s t _ x m l ,

    s o i t ' l l r u n b e f o r e t h e

    c o d e t h a t l o a d s t h i s

    a r r a y i n t o t h e s u b f i l e !

  • 4 5

    U P S E x a m p l e ( s l i d e 1 1 o f 1 1 )

    w h e n p a t h = ' / T r a c k R e s p o n s e / S h i p m e n t / P a c k a g e / A c t i v i t y ' +

    ' / A c t i v i t y L o c a t i o n / A d d r e s s ' ;

    s e l e c t ;

    w h e n n a m e = ' C i t y ' ;

    a c t i v i t y ( a c t ) . C i t y = v a l u e ;

    w h e n n a m e = ' S t a t e P r o v i n c e C o d e ' ;

    a c t i v i t y ( a c t ) . S t a t e = v a l u e ;

    e n d s l ;

    w h e n p a t h = ' / T r a c k R e s p o n s e / S h i p m e n t / P a c k a g e / A c t i v i t y ' +

    ' / S t a t u s / S t a t u s T y p e ' ;

    i f n a m e = ' D e s c r i p t i o n ' ;

    a c t i v i t y ( a c t ) . S t a t u s = v a l u e ;

    e n d i f ;

    e n d s l ;

    / e n d - f r e e

    P E

    4 6

    F o r M o r e I n f o r m a t i o n

    Y o u c a n d o w n l o a d H T T P A P I f r o m S c o t t ' s W e b s i t e :

    h t t p : / / w w w . s c o t t k l e m e n t . c o m / h t t p a p i /

    M o s t o f t h e d o c u m e n t a t i o n f o r H T T P A P I i s i n t h e s o u r c e c o d e i t s e l f .

    R e a d t h e c o m m e n t s i n t h e H T T P A P I _ H m e m b e r

    S a m p l e p r o g r a m s c a l l e d E X A M P L E 1 - E X A M P L E 2 0

    T h e b e s t p l a c e t o g e t h e l p f o r H T T P A P I i s i n t h e m a i l i n g l i s t . T h e r e ' s

    a l i n k t o s i g n u p f o r t h i s l i s t o n S c o t t ' s s i t e .

    I n f o a b o u t W e b S e r v i c e s :

    W e b S e r v i c e s : T h e N e x t B i g T h i n g b y S c o t t N . G e r a r d

    h t t p : / / w w w . s y s t e m i n e t w o r k . c o m / A r t i c l e . c f m ? I D = 1 1 6 0 7

    W i l l W e b S e r v i c e s S e r v e Y o u ? b y A a r o n B a r t e l l

    h t t p : / / w w w . s y s t e m i n e t w o r k . c o m / A r t i c l e . c f m ? I D = 1 9 6 5 1

    W 3 C o n s o r t i u m

    h t t p : / / w w w . w 3 . o r g a n d h t t p : / / w w w . w 3 s c h o o l s . c o m

  • 4 7

    F o r M o r e I n f o r m a t i o n

    W e b S e r v i c e i n f o , c o n t i n u e d

    C o n s u m i n g W e b S e r v i c e s w i t h H T T P A P I a n d S o a p U I b y S c o t t K l e m e n t

    h t t p : / / s y s t e m i n e t w o r k . c o m / a r t i c l e / r p g - c o n s u m i n g - w e b - s e r v i c e s - h t t p a p i - a n d - s o a p u i

    R e p o r t t h e W e a t h e r O n Y o u r S i g n - o n S c r e e n b y S c o t t K l e m e n t

    h t t p : / / s y s t e m i n e t w o r k . c o m / a r t i c l e / r e p o r t - w e a t h e r - y o u r - s i g n - s c r e e n

    C a l l a W e b S e r v i c e w i t h W S D L 2 R P G

    h t t p : / / s y s t e m i n e t w o r k . c o m / a r t i c l e / c a l l - w e b - s e r v i c e - w d s l 2 r p g

    S O A P M e s s a g e G e n e r a t o r ( a u t o m a t i c a l l y c o n v e r t s W S D L t o S O A P ) :

    h t t p : / / w w w . s o a p c l i e n t . c o m / s o a p m s g . h t m l

    W e b S e r v i c e X . n e t ( M a n y d e m o w e b s e r v i c e s )

    h t t p : / / w w w . W e b S e r v i c e X . n e t

    X M e t h o d s . n e t ( M o r e u s e f u l w e b s e r v i c e s )

    h t t p : / / w w w . x m e t h o d s . n e t

    U P S O n L i n e T o o l s

    h t t p : / / w w w . u p s . c o m / e _ c o m m _ a c c e s s / g e t t o o l s _ i n d e x

    S o a p U I ( O p e n S o u r c e ( f r e e ) p r o g r a m f o r t e s t i n g / a n a l y z i n g w e b s e r v i c e s a n d

    c o n v e r t i n g W S D L t o S O A P )

    h t t p : / / w w w . s o a p u i . o r g

    4 8

    T h i s P r e s e n t a t i o n

    Y o u c a n d o w n l o a d a P D F c o p y o f t h i s p r e s e n t a t i o n f r o m :

    h t t p : / / w w w . s c o t t k l e m e n t . c o m / p r e s e n t a t i o n s /

    T h a n k y o u !