web services from rpg with httpapi
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 !