Download - 76630315 Datastage Routines
-
8/9/2019 76630315 Datastage Routines
1/64
DATASTAGE ROUTINES________________________________________
BL:
BOT v2.3.0 Returns BLANK if psse! v"ue is NOT NULL #r BLANK$ fter tri%%in&sp'es
DtIn ( )):Tri%*Ar&+,
If IsNu""*DtIn, #r DtIn ( )) T-enAns ( ))En! E"se
Ans ( DtInEn!
-e'/i"eRe'#r!s:
un'ti#n -e'/i"eRe'#r!s*Ar&+$Ar&2,
v1r%i"e ( Ar&+ : )) : Ar&2v#unt" ( 0
OpenSe4 v1r%i"e T# i"er E"se"" DSL#&5rn*)nn#t #pen ):v1r%i"e $ )nn#t Open 1r%i"e),En!
L##p
Re!Se4 Du%%6 r#% i"er E"se E7it 89 t en!#ffi"ev#unt" ( v#unt" ; +Repet
"#seSe4 i"er
Ans(v#unt"Return *v#unt",
-e'/i"eSiE ( )GLEISND_O_02_200?0@0_+2?00.'sv)
9>D ( )"" tr ):DIR:)C&rep ):NA>E>D ( )'%p s ):DIR:)C&rep ):NA>E
"" DSE7e'ute*)UNI)$ >D$ Output$ S6ste%Return#!e,
-
8/9/2019 76630315 Datastage Routines
2/64
Ans ( Output
-e'/I!#'sSent:
-e'/s If I!#' !e"iver6 #= 'tu""6 sent n6 I!#'s t# SA1.
T-is r#utine Fi"" te%pt t# re! t-e DtSt&e Dire't#r "#& f#r t-e #= n%e spe'ifie! s
n r&u%ent.
If t-e #= -s ft" err#r Fit- )N# "in/ fi"e)$ t-e r#utine Fi"" '#p6 t-e IDO "in/ fi"e*s, int#t-e interf'e err#r f#"!er.In 'se t-e ft" err#r =#ve is n#t f#un! t-e r#utine =#rts t-e #=.
A si%p"e "#& #f F-i'- runs pr#!u'e err#r "in/ fi"e is %intine! in t-e %#!u"es "#&!ire't#r6.
HINLUDE DSINLUDE OBONTROL.J
vR#utineN%e ( )-e'/I!#'sSent)Ans ( )O/)
If S6ste%*+, T-enOsT6pe ( NTOsDe"i% ( N#nOsDe"i% ( >#ve ( %#ve En! E"seOsT6pe ( UNIOsDe"i% (
N#nOsDe"i% ( >#ve ( %v f En!
v#=Jn!"e ( DSAtt'-#=*#=N%e$ DS.ERRATAL,vLstRunStrt ( DSGet#=Inf#*v#=Jn!"e$ DS.OBSTARTTI>ESTA>1,vLstRunEn! ( DSGet#=Inf#*v#=Jn!"e$ DS.OBLASTTI>ESTA>1,
9 Get t-e !e"iver6 "#& f#r t-e "st runvL#&Su%%r6 ( DSGetL#&Su%%r6 * v#=Jn!"e$ DS.LOGANM$ vLstRunStrt$
vLstRunEn!$ 00,vL#&Su%%r6 ( -n&e*vL#&Su%%r6$>$,
9 >nipu"te vL#&Su%%r6 Fit-in r#utine t# return sttus1#sOfStr ( In!e7*D#Fn'se*vL#&Su%%r6,$)sent)$+,vL#&>s& ( vL#&Su%%r61#sOfStr$20P
9 N#F F#r/ #ut SttusIf 1#sOfStr ( 0 t-enSttus ( NOT SENTvL#&>s& (
-
8/9/2019 76630315 Datastage Routines
3/64
en! e"seSttus ( SENTvL#&>s& ( vL#&Su%%r61#sOfStr$20Pen!
Ans ( Sttus
vErr ( DSDet'-#=*v#=Jn!"e,"" DSL#&Inf#*)#= ) : #=N%e : ) Det'-e!) $ vR#utineN%e,
99999 >/e "#& entr6 t# /eep tr'/ #f -#F #ften t-e p'/ !#esnt F#r/ 99999999
v>ess&eT#5rite ( %t*>#!u"e_Run_1r%$ )+2 L), : %t*Sttus$ )+0 L), : ) ) :vL#&>s&vI!#'L#&i"e1t- ( Interf'e_R##t_1t-_1r%: OsDe"i% : )"#&s) : OsDe"i% :)I!#'SentL#&."#&)
99999999 Open t-e "#& fi"eO1ENSEQ vI!#'L#&i"e1t- TO vI!#'L#&i"e T-en
"" DSL#&Inf#*)I!#'SentL#& Open) $ vR#utineN%e,
99 L=e" t# return t# if fi"e is 'rete!i"erete!:
999 5rite t-e "#& entr6vIsLstRe'#r! ( Nu""
L##p Unti" vIsLstRe'#r! D#READSEQ vRe'#r! r#% vI!#'L#&i"e T-en9"" DSL#&Inf#*)Re'#r! Re! ) : vRe'#r! $ vR#utineN%e,
En! E"se9"" DSL#&Inf#*)En! #f fi"e re'-e! ) $ vR#utineN%e,vIsLstRe'#r! ( TrueEn!
Repet
5RITESEQ v>ess&eT#5rite T# vI!#'L#&i"e T-en"" DSL#&Inf#*)L#& entr6 'rete! : ) : v>ess&eT#5rite$ vR#utineN%e,En! E"se"" DSL#&t"*)nn#t Frite t# ) : vI!#'L#&i"e1t-$ vR#utineN%e,
En!
En! E"se"" DSL#&Inf#*)#u"! n#t #pen fi"e ) : vI!#'L#&i"e1t- $ vR#utineN%e,"" DSL#&Inf#*)retin& neF fi"e ) : vI!#'L#&i"e1t- $ vR#utineN%e,REATE vI!#'L#&i"e ELSE "" DSL#&t"*)#u"! n#t 'rete fi"e ) :vI!#'L#&i"e1t- $ vR#utineN%e,5EOSEQ vI!#'L#&i"e5RITESEQ %t*)>#!u"e Run)$ )+2 L), : %t*)Sttus)$ )+0 L), : ) ) : )>ess&e) T#vI!#'L#&i"e E"se ABORT"" DSL#&Inf#*)L#& fi"e 'rete! : ) : vI!#'L#&i"e1t- $ vR#utineN%e,
-
8/9/2019 76630315 Datastage Routines
4/64
GOTO i"erete!En!
9999 A=#rt t-e !e"iver6 se4uen'e n! Frite err#r %ess&e t# t-e "#&. 999999999999If Sttus ( NOT SENT T-en"" DSL#&Inf#*)N# I!#'s Fere 'tu""6 sent t# SA1 Tr6in& t# '"en up IDO Lin/i"es: )$ vR#utineN%e,
vI!#'Sr'Lin/1t- ( ie"!*Interf'e_R##t_1t-_1r%$ OsDe"i%$ +$ ?, : OsDe"i% :)!spr#e't) : OsDe"i% : ie"!*Interf'e_R##t_1t-_1r%$ OsDe"i%$ ?$ +,vI!#'T&tLin/1t- ( Interf'e_R##t_1t-_1r%: OsDe"i% : )err#r)Os%! ( >#ve : ) ) : vI!#'Sr'Lin/1t- : OsDe"i% : #=N%e : ).9."n/ ) :vI!#'T&tLin/1t- : OsDe"i%"" DSE7e'ute*OsT6pe$ Os%!$ OsOutput$ OsSttus,If OsSttus 0 T-en"" DSL#&5rn*)Err#r F-en tr6in& t# %#ve "in/ fi"e*s,)$ vR#utineN%e,L#&>ess>#vei" ( T-e %#ve '#%%n! *:Os%!:, returne! sttus:OsSttus:::>:OsOutput"" DSL#&5rn*L#&>ess>#vei"$ vR#utineN%e,
"" DSL#&t"*)"enin& up #f IDO Lin/ i"es fi"e!)$ vR#utineN%e,En!E"seL#&>ess>#veOK ( )Lin/ fi"es Fere %#ve! t# ) : vI!#'T&tLin/1t-"" DSL#&Inf#*L#&>ess>#veOK$ vR#utineN%e,L#&>essRetr6 ( )#= ) : #=N%e : ) is re!6 t# =e re"un'-e!.)"" DSL#&Inf#*L#&>essRetr6$ vR#utineN%e,En!En! E"se"" DSL#&Inf#*)De"iver6 #= "#& in!i'tes run OK )$ vR#utineN%e,En!
"er>ppin&T="e:
SUBROUTINE "er>ppin&T="e *"er_>ppin&_T="e$ Err#r'#!e,
Err#r #!e ( 0 89 set t-is t# n#np_J.GEN)99En! E"se
99En!
#%D#tR%v:
DtIn ( )):*Ar&+,
If IsNu""*DtIn, #r DtIn ( )) T-enAns ( ))En! E"seDtIn ( Erep"'e*DtIn$ ).)$ )),
-
8/9/2019 76630315 Datastage Routines
5/64
DtIn ( Erep"'e*DtIn$ )$)$ )),Ans ( DtInEn!
#p6i"es:
>#ve fi"es fr#% #ne !ire't#r6 t# n#t-er
un'ti#n #p6#fi"es*s#ur'eDir$S#ur'ei"e>s/$Tr&etDir$Tr&eti"e>s/$"&s,
R#utineN%e ( )#p6i"es)
If S#ur'eDir ( T-en S#ur'eDir ( .If Tr&etDir ( T-en Tr&etDir ( .
If S#ur'ei"e>s/ ( Or S#ur'eDir ( Tr&etDir T-en Return*0,
If S#ur'eDir . T-en Open1t- S#ur'eDir T# v E"se "" DSU.DS>/Dir*>/Sttus$S#ur'eDir$$, En! En! If Tr&etDir . T-en Open1t- Tr&etDir T# v E"se "" DSU.DS>/Dir*>/Sttus$Tr&etDir$$, En! En!
If S6ste%*+, T-enOsT6pe ( NTOsDe"i% ( N#nOsDe"i% ( #p6 ( '#p6 "& ( "&sEn! E"seOsT6pe ( UNIOsDe"i% ( N#nOsDe"i% ( #p6 ( 'p f
En!
If "&s )) t-en "& ( N#nOsDe"i%:"&s E"se "& ( ))
S#ur'e5#r/i"es ( Tri%s*#nvert*$$>$S#ur'ei"e>s/,,S#ur'ei"eList ( Sp"i'e*Reuse*S#ur'eDir,$OsDe"i%$S#ur'e5#r/i"es,
#nvert N#nOsDe"i% T# OsDe"i% In S#ur'ei"eList
Tr&et5#r/i"es ( Tri%s*#nvert*$$>$Tr&eti"e>s/,,Tr&eti"eList ( Sp"i'e*Reuse*Tr&etDir,$OsDe"i%$Tr&et5#r/i"es,
-
8/9/2019 76630315 Datastage Routines
6/64
#nvert N#nOsDe"i% T# OsDe"i% In Tr&eti"eList
Os%! ( #p6: : "& : ) ) :S#ur'ei"eList: :Tr&eti"eList
"" DSL#&Inf#*#p6in& : S#ur'ei"eList: t# :Tr&eti"eList$R#utineN%e,"" DSE7e'ute*OsT6pe$Os%!$OsOutput$OsSttus,If OsSttus T-en
"" DSL#&5rn*T-e #p6 '#%%n! *:Os%!:, returne! sttus:OsSttus:::>:OsOutput$ R#utineN%e,En! E"se"" DSL#&Inf#*i"es %#ve!...$DS>#vei"es,En!
Ans ( OsSttus
#p6#f#%reRO5S:
un'ti#n '#p6#f'#%preR#Fs*#"u%n_N%e$#"u%n_"ue,
HINLUDE DSINLUDE OBONTROL.J
v#=N%e(DSGet#=Inf#*DS.>E$ DS.OBNA>E,vSt&eN%e(DSGetSt&eInf#*DS.>E$ DS.>E$ DS.STAGENA>E,
v#%%#nN%e(-e'/Su%*v#=N%e, : -e'/Su%*vSt&eN%e, :-e'/Su%*#"u%n_N%e,
#%%#n v#%%#nN%e Lst"ue
vLst"ue(Lst"uevNeF"ue(#"u%n_"ue
If vNeF"uevLst"ue T-en Ans(+ E"se Ans(0
Lst"ue(vNeF"ue
#p6OfVST1Ke6L##/up
-e'/ if /e6 psse! e7ists in fi"e psse!Ar&+: Js- fi"e t# "##/ inAr&2: Ke6 t# "##/ f#rAr&3: Nu%=er #f fi"e t# use )+) #r )2)
9 R#utine t# "##/ t# see if t-e /e6 psse! e7ists in t-e fi"e psse!9 If s#$ t-en t-e n#n/e6 fie"! fr#% t-e fi"e is returne!9 If n#t f#un!$ )999N#t #un!999) is returne!99 T-e r#utine re4uires t-e Unierse fi"e n%e! t# -ve =een 'rete! previ#us"69
-
8/9/2019 76630315 Datastage Routines
7/64
HINLUDE DSINLUDE OBONTROL.J
EQUATE R#utineN%e TO VST1Ke6L##/up
9 "" DSL#&Inf#*)R#utine strte!)$R#utineN%e,
#%%#n VST1/e6"##/up Init+$ Se4i"e+$ Init2$ Se4i"e2$ Ret"$ %s&te7t
Ans ( 0
If NOT*Init+, An! Ar&3 ( )+) T-en9 N#t initi"ise!. T-eref#re #pen fi"e
Init+ ( +Open Ar&+ TO Se4i"e+ T-en "erfi"e Se4i"e+E"se"" DSL#&Inf#*)Open fi"e! +)$R#utineN%e,%s&te7t ( )nn#t #pen VST1 'reti#n '#ntr#" fi"e ):Ar&+"" DSL#&t"*%s&te7t$R#utineN%e,
Ans ( +En!En!
If NOT*Init2, An! Ar&3 ( )2) T-en9 N#t initi"ise!. T-eref#re #pen fi"e
Init2 ( +Open Ar&+ TO Se4i"e2 T-en "erfi"e Se4i"e2E"se"" DSL#&Inf#*)Open fi"e! 2)$R#utineN%e,%s&te7t ( )nn#t #pen VST1 'reti#n '#ntr#" fi"e ):Ar&+
"" DSL#&t"*%s&te7t$R#utineN%e,Ans ( +En!En!
9 Re! t-e fi"e t# &et t-e !t f#r t-e /e6 psse!$ if n#t f#un!$ return )999N#t #un!999)If Ar&3 ( )+)T-enRe! Ret" r#% Se4i"e+$ Ar&2 E"se Ret" ( )999N#t #un!999)En!E"se
Re! Ret" r#% Se4i"e2$ Ar&2 E"se Ret" ( )999N#t #un!999)En!
Ans ( Ret"
rete+2-rTS:
un'ti#n rete+2-rTS*#=N%e,
HINLUDE DSINLUDE OBONTROL.J
-
8/9/2019 76630315 Datastage Routines
8/64
v#=Jn!"e ( DSAtt'-#=*#=N%e$ DS.ERRATAL,
v#=StrtTi%e ( DSGet#=Inf#*v#=Jn!"e$ DS.OBSTARTTI>ESTA>1,
vDte ( Tri%*v#=StrtTi%e$ ))$)A),vDte ( Tri%*vDte$ ):)$)A),vDte ( Tri%*vDte$ ) )$ )A),
vDte ( vDte+$+2P
Ans(vDte
reteE%pt6i"e:
un'ti#n reteE%pt6i"e*Ar&+$Ar&2,
9rete E%pt6 i"e
v1r%i"e ( Ar&+ : )) : Ar&2
OpenSe4 v1r%i"e T# i"er E"se"" DSL#&5rn*)nn#t #pen ):v1r%i"e $ )nn#t Open 1r%i"e),En!
5e#fSe4 i"er"#seSe4 i"er
Ans()+)
Dtetrns:
Dte"
un'ti#n Dtetrns*Dte",
un'ti#n De"etei"es*S#ur'eDir$i"e>s/$"&s,
9 un'ti#n ReverseDte*Dte",9 Dte %t =e in t-e f#r% #f DD.>>.MM i.e. 0+.+0.039 '#nvert t# MMMM>>DD SA1 f#r%t
Ans ( )20) : Dte"$2P : Dte"?$2P : Dte"+$2P
De"etei"es:
R#utineN%e ( )De"etei"es)
-
8/9/2019 76630315 Datastage Routines
9/64
If S#ur'eDir ( T-en S#ur'eDir ( .
If i"e>s/ ( S#ur'eDir ( T-en Return*0,
If S6ste%*+, T-enOsT6pe ( NTOsDe"i% ( N#nOsDe"i% (
De"ete ( !e" En! E"seOsT6pe ( UNIOsDe"i% ( N#nOsDe"i% ( De"ete ( r% : "&s : En!
5#r/i"es ( Tri%s*#nvert*$$>$i"e>s/,,
i"eList ( Sp"i'e*Reuse*S#ur'eDir,$OsDe"i%$5#r/i"es,
#nvert N#nOsDe"i% T# OsDe"i% In i"eList
Os%! ( De"ete : : i"eList
"" DSL#&Inf#*De"etin& :i"eList$R#utineN%e,"" DSE7e'ute*OsT6pe$Os%!$OsOutput$OsSttus,If OsSttus T-enResi!7( In!e7*OsOutput$)n#ne7istent)$+,if In!e7*OsOutput$)n#ne7istent)$+, ( 0 t-en"" DSL#&Inf#*T-e De"ete '#%%n! *:Resi!7:Os%!:, returne! sttus
:OsSttus:::>:OsOutput$R#utineN%e,En!E"se"" DSL#&Inf#*N# i"es %t'-e! 5i"! r! De"ete Fs n#t re4uire!...$R#utineN%e,
OsSttus ( 0En!En! E"se"" DSL#&Inf#*i"es !e"ete!...$R#utineN%e,En!
Ans ( OsSttus
Dis'#nne'tNetF#r/Drive:
>p NetF#r/ Drive #n 5in!#Fs Server:
un'ti#n Dis'#nne'tnetF#r/!rive*Drive_Letter,
R#utineN%e ( )>pNetF#r/Drive)
-
8/9/2019 76630315 Datastage Routines
10/64
If Drive_Letter ( T-en Return*0,
OsT6pe ( NTOsDe"i% ( N#nOsDe"i% ( #p6 ( '#p6
Os%! ( net use : Drive_Letter : ): !e"ete)
"" DSL#&Inf#*Dis'#nne'tin& NetF#r/ Drive: : Os%!$R#utineN%e,
"" DSE7e'ute*OsT6pe$Os%!$OsOutput$OsSttus,
If OsSttus T-en"" DSL#&5rn*T-e #p6 '#%%n! *:Os%!:, returne! sttus:OsSttus:::>:OsOutput$ R#utineN%e,En! E"se"" DSL#&Inf#*Drive: : Drive_Letter : Dis'#nne'te! $R#utineN%e,
En!
Ans ( OsSttus
D#s%!:
>#ve fi"es fr#% #ne !ire't#r6 t# n#t-er:
un'ti#n D#s%!*%!,
R#utineN%e ( )D#s%!)
If S6ste%*+, T-enOsT6pe ( NTOsDe"i% ( N#nOsDe"i% ( En! E"seOsT6pe ( UNIOsDe"i% ( N#nOsDe"i% ( En!
Os%! ( %!
"" DSL#&Inf#*)>D ( ) : %!$R#utineN%e,"" DSE7e'ute*OsT6pe$Os%!$OsOutput$OsSttus,If OsSttus T-en"" DSL#&5rn*T-e '#%%n! *:Os%!:, returne! sttus:OsSttus:::>:OsOutput$ R#utineN%e,En! E"se"" DSL#&Inf#*T-e '#%%n! *:Os%!:, Fs su''essfu"":OsSttus:::>:OsOutput$R#utineN%e,
-
8/9/2019 76630315 Datastage Routines
11/64
En!
Ans ( OsSttus : ) ) : OsOutput
DS>#vei"es:>#ve fi"es fr#% #ne !ire't#r6 t# n#t-er:
f S#ur'eDir ( T-en S#ur'eDir ( .
If Tr&etDir ( T-en Tr&etDir ( .
If i"e>s/ ( Or S#ur'eDir ( Tr&etDir T-en Return*0,
If S6ste%*+, T-enOsT6pe ( NTOsDe"i% ( N#nOsDe"i% ( >#ve ( %#ve En! E"seOsT6pe ( UNI
OsDe"i% ( N#nOsDe"i% ( >#ve ( %v f En!
5#r/i"es ( Tri%s*#nvert*$$>$i"e>s/,,
i"eList ( Sp"i'e*Reuse*S#ur'eDir,$OsDe"i%$5#r/i"es,
#nvert N#nOsDe"i% T# OsDe"i% In i"eList
Os%! ( >#ve: : i"eList: :Tr&etDir
"" DSL#&Inf#*>#vin& :i"eList: t# :Tr&etDir$DS>#vei"es,"" DSE7e'ute*OsT6pe$Os%!$OsOutput$OsSttus,If OsSttus T-en"" DSL#&Inf#*T-e %#ve '#%%n! *:Os%!:, returne! sttus:OsSttus:::>:OsOutput$DS>#vei"es,En! E"se"" DSL#&Inf#*i"es %#ve!...$DS>#vei"es,En!
Ans ( OsSttus
R#utine N%e:Err#r>&%tDu%%6:
"ue: T-e "ue t# Be >ppe!ie"!N%e: T-e N%e #f t-e s#ur'e fie"! t-t t-e "ue is '#ntine! in#r%t: T-e n%e #f t-e Js- fi"e '#ntinin& t-e %ppin& !tDefu"t: T-e Defu"t v"ue t# return if v"ue is n#t f#un!>s&: n6 te7t 6#u Fnt t# st#re &inst n err#rSeverit6In!: T-e Err#r Severit6 In!i't#r: IInf#r%ti#n$ 55rnin&$ EErr#r$ t"Err#rL#&In!: An In!i't#r t# in!i'te #f err#rs s-#u"! =e "#&&e! *N#te t-is is n#t 6et
-
8/9/2019 76630315 Datastage Routines
12/64
i%p"e%ente!,Js-i"eL#'ti#n: A Js-fi"e '#u"! =e eit-er "#'" t# t-e >#!u"e #r Generi'. Enter )G)f#r Generi' )L) f#r L#'"
9 UNTION >p*"ue$ie"!N%e$#r%t$Defu"t$>s&$Err#rL#&In!,99 E7e'utes "##/up &inst -s-e! fi"e usin& /e69
9 Input 1r%eters : Ar&+: "ue ( T-e "ue t# =e >ppe! #r '-e'/e!9 Ar&2: ie"!N%e ( T-e N%e #f t-e fie"! t-t is eit-er t-e Tr&et #f t-e Derivti#n #rt-e s#ur'eie"! t-t v"ue is '#ntine! in9 Ar&3: #r%t ( T-e n%e #f t-e Js- fi"e '#ntinin& t-e %ppin& !t9 Ar&?: Defu"t ( T-e Defu"t v"ue t# return if v"ue is n#t f#un!9 Ar&: >s& ( An6 te7t 6#u Fnt st#re! &inst n err#r9 Ar&@: Severit6In! ( An In!i't#r t# t-e servit6 Leve"9 Ar&: Err#rL#&In! ( An In!i't#r t# in!i'te if err#rs s-#u"! =e "#&&e!9 Ar&W: Js-fi"eL#'ti#n ( An In!i't#r t# in!i'te #f err#rs s-#u"! =e "#&&e! *N#te t-isis n#t 6et i%p"e%ente!,9
9 Return "ues: If t-e "ue is n#t f#un!$ return v"ue is: +. #r t-e Defu"t v"ue if t-tis supp"ie!9 If #r%t T="e n#t f#un!$ return v"ue is: 2999
R#utineN%e ( >p
#%%#n Js-L##/up i"eJn!"es*+00,$ i"esOpene!#%%#n Ti'/et#%%#n Ti'/et_Gr#up$ Ti'/et_Se4uen'e$ Set_Ke6$ >#!_R##t_1t-$
Generi'_R##t_1t-$ -/_Js-_i"e_N%e$ >#!_Run_Nu%
DEUNL#&T#Js-i"e*>#!RunNu%$Ti'/et_Gr#up$Ti'/et_Se4uen'e$Set_Ke6$T="e$ie"!N%e$Ke6$Err#r$Te7t$Severit6In!, ""in& DSU.L#&T#Js-i"e
If *Ans ( )+) #r Ans ( )2) #r Upse*Ans,( )BLOKED), n! Err#rL#&In! ( )M) T-en
Ret_#!e(L#&T#Js-i"e*>#!_Run_Nu%$Ti'/et_Gr#up$Ti'/et_Se4uen'e$Set_Ke6$T="e$ie"!N%e$-/_"ue$Ans$>s&$Severit6In!,
En!
RETURN*Ans,
i"eE7ists:
>#ve fi"es fr#% #ne !ire't#r6 t# n#t-er
un'ti#n i"e E7its*i"en%e,
R#utine N%e ( )i"e E7ists)
-
8/9/2019 76630315 Datastage Routines
13/64
i"e #un! ( TRUE
O1ENSEQ i"eN%e TO i"e ON ERROR STO1 )nn#t #pen fi"e *):i"eN%e:),)TJENLOSESEQ i"eEND ELSEi"e#un! ( ALSE 89 fi"e n#t f#un!
END
Ans ( i"e#un!
i"eSi
-
8/9/2019 76630315 Datastage Routines
14/64
un'ti#n in!i"eSuffi7*Ar&+,
i"e_N%e(Ar&+
9 Gets ri! #f t-e e7tensi#n prt #f t-e fi"en%eE7tensi#n ( In!e7*i"e_N%e$ ).)$ +,If E7tensi#n 0 T-en
>6LenRe!(In!e7*i"e_N%e$ ).)$ +, +i"e_N%e(i"e_N%e0$>6LenRe!PEn! E"seEn!
9 Gets t-e ti%est%p. D#esnt -n!"e t-e 'se F-ere t-ere re suffi7 t6pes n!ti%est%p #n"6 '#ntins !i&its Fit-#ut )_) in=etFeenIf In!e7*i"e_N%e$ )_)$ @, ( 0 T-en>6LenRe!(In!e7*i"e_N%e$ )_)$ ?, ; +>6Ti%est%p ( i"e_N%e>6LenRe!$Len*i"e_N%e,+PEn! E"se
>6Ti%est%p ( ie"!*i"e_N%e$)_)$,:)_):ie"!*i"e_N%e$)_)$@,En!
Ti%est%pEn!1#s ( In!e7*i"e_N%e$>6Ti%est%p$+, ; Len*>6Ti%est%p,>6Suffi7 ( i"e_N%eTi%est%pEn!1#s ; +$ Len*i"e_N%e,P
Ans ( >6Suffi7
in!Ti%eSt%p:
un'ti#n in!Ti%eSt%p*Ar&+,
i"e_N%e(Ar&+
9 Gets ri! #f t-e e7tensi#n prt #f t-e fi"en%eE7tensi#n ( In!e7*i"e_N%e$ ).)$ +,If E7tensi#n 0 T-en>6LenRe!(In!e7*i"e_N%e$ ).)$ +, +i"e_N%e(i"e_N%e0$>6LenRe!PEn! E"seEn!
9 Gets t-e ti%est%p. D#esnt -n!"e t-e 'se F-ere t-ere re suffi7 t6pes n!ti%est%p #n"6 '#ntins !i&its Fit-#ut )_) in=etFeenIf In!e7*i"e_N%e$ )_)$ @, ( 0 T-en>6LenRe!(In!e7*i"e_N%e$ )_)$ ?, ; +Ti%est%p ( i"e_N%e>6LenRe!$Len*i"e_N%e,+PEn! E"seTi%est%p ( ie"!*i"e_N%e$)_)$,:)_):ie"!*i"e_N%e$)_)$@,En!
Ans ( Ti%est%p
-
8/9/2019 76630315 Datastage Routines
15/64
f#r%t-r&e:
un'ti#n #r%t-r&e*Ar&+,
v-r&e(Tri%*Ar&+$ 0$ )L),v-r&e(v-r&e+00v-r&e(>T*v-r&e$)R2),
Ans(v-r&e
f#r%tG-r&e:
Ans(+
vLen&t-(Len*Ar&+,v>inus(If Ar&++$+P( T-en + E"se 0
If Ar&+(0.00 T-en
Ans(Ar&+
En!E"se
If v>inus(+ T-en
vStrin&(Ar&+2$vLen&t-+PvStrin&(:Tri%*vStrin&$ 0$L,
En!e"se
vStrin&(Tri%*Ar&+$ 0$L,
en!
Ans(vStrin&
En!
T1i"e:
S'ript_1t-: -e pt- t# F-ere t-e Uni7 S'ript fi"e "ivesi"e_1t-: T-e "ue t# Be >ppe!i"e_N%e: T-e N%e #f t-e s#ur'e fie"! t-t t-e "ue is '#ntine! inI1_A!!ress: T-e n%e #f t-e Js- fi"e '#ntinin& t-e %ppin& !t
User_ID: T-e Defu"t v"ue t# return if v"ue is n#t f#un!1ssF#r!: An6 te7t 6#u Fnt t# st#re &inst n err#rTr&et_1t-: T-e tr&et pt- F-ere t-e if"e is t# sve! #n t-e tr&et server
-
8/9/2019 76630315 Datastage Routines
16/64
9 UNTION T1i"e*S'ript_1t-$i"e_1t-$i"e_N%e$I1_A!!ress$User_ID$1ssF#r!$Tr&et_1t-,99
R#utineN%e ( T1i"e
Os%! ( S'ript_1t- : )ftp_put.s-):) ):i"e_1t-:) ):i"e_N%e:) ):I1_A!!ress:)):User_ID:) ):1ssF#r!:) ):Tr&et_1t- :) ):S'ript_1t-
"" DSL#&Inf#*tp :i"e_N%e: t# : I1_A!!ress : :Tr&et_1t-$T1i"e,"" DSL#&Inf#*tp S'ript ( :S'ript_1t-$T1i"e,
"" DSE7e'ute*)UNI)$Os%!$OsOutput$OsSttus,If OsSttus T-en
"" DSL#&Inf#*T-e T1 '#%%n! *:Os%!:, returne! sttus:OsSttus:::>:OsOutput$DS>#vei"es,En! E"se"" DSL#&Inf#*i"es T1!...: *:Os%!:,$T1i"e,En!
Ans ( OsSttus
RETURN*Ans,
T1%&et:
9 UNTION T1i"e*S'ript_1t-$S#ur'e_1t-$i"e_5i"!_r!$I1_A!!ress$User_ID$1ssF#r!$Tr&et_1t-,99
R#utineN%e ( T1%&et
Os%! ( S'ript_1t-:)ftp_>&et.s-):) ):S#ur'e_1t-:) ):i"e_5i"!_r!:)
):I1_A!!ress:) ):User_ID:) ):1ssF#r!:) ):Tr&et_1t-:) ):S'ript_1t-
9Os%! ( S'ript_1t- : )test.s-)
"" DSL#&Inf#*tp :i"e_5i"!_r!: r#% : I1_A!!ress : :S#ur'e_1t- : t# :Tr&et_1t-$R#utineN%e,
"" DSE7e'ute*)UNI)$Os%!$OsOutput$OsSttus,If OsSttus T-en"" DSL#&Inf#*T-e T1 '#%%n! *:Os%!:, returne! sttus:OsSttus:::>:OsOutput$DS>#vei"es,
-
8/9/2019 76630315 Datastage Routines
17/64
En! E"se"" DSL#&Inf#*i"es T1!...: *:Os%!:,$R#utineN%e,En!
Ans ( OsSttus
RETURN*Ans,
#n'tente A"" Input Ar&u%ents t# Output usin& TAB '-r'ter #n'tente A""R#utine()GBI#n'tIte%)
t ( -r*00,
If ISNULL*IND, TJEN 1ttern ( )) ELSE 1ttern ( IND +$+PIf ISNULL*KORG, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KORG +$?PIf ISNULL*T5EG, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :T5EG +$2P
If ISNULL*S1ART, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :S1ART +$2PIf ISNULL*5ERKS, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :5ERKS +$?PIf ISNULL*AUART, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :
AUART +$?PIf ISNULL*KDAT, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KDAT +$WPIf ISNULL*KUNAG, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KUNAG +$+0PIf ISNULL*KUNRE, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :
KUNRE +$+0PIf ISNULL*>ATNR, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :>ATNR +$+WPIf ISNULL*1STM, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :1STM +$?PIf ISNULL*K5>ENG, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :K5>ENG +$+PIf ISNULL*BLNR, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :BLNR +$+@PIf ISNULL*G1OS, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :G1OS +$@P
If ISNULL*KARA, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KARA +$?PIf ISNULL*VOR_DT_1ODE, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t: VOR_DT_1ODE +$WPIf ISNULL*VA5B, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t : VA5B+$+@PIf ISNULL*LGORT, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :LGORT +$?PIf ISNULL*KAUS, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KAUS +$3PIf ISNULL*KBUR, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :
-
8/9/2019 76630315 Datastage Routines
18/64
KBUR +$?PIf ISNULL*KGR1, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KGR1 +$3PIf ISNULL*VLSJ, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :VLSJ +$+PIf ISNULL*VTER>, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :VTER> +$?PIf ISNULL*KURSK, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :
KURSK +$PIf ISNULL*TA>+, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :TA>+ +$+PIf ISNULL*RK>E, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :RK>E +$3PIf ISNULL*ARKT, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :
ARKT +$?0PIf ISNULL*KTGR>, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KTGR> +$2PIf ISNULL*VVTAD, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :VVTAD +$2P
If ISNULL*LAND2, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :LAND2 +$3PIf ISNULL*NA>E+, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :NA>E+ +$3PIf ISNULL*1STLV, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :1STLV+$+0PIf ISNULL*ORT0+, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :ORT0+ +$3PIf ISNULL*KOSTL, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KOSTL+$+0PIf ISNULL*5AERS, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :
5AERS +$PIf ISNULL*KUNRG, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KUNRG +$+0PIf ISNULL*KUN5E, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KUN5E +$+0P
Ans ( 1ttern
GBI#n'tIte%:#n'tente A"" Input Ar&u%ents t# Output usin& TAB '-r'ter:
R#utine()GBI#n'tIte%)
t ( -r*00,
If ISNULL*IND, TJEN 1ttern ( )) ELSE 1ttern ( IND +$+PIf ISNULL*KNU>, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KNU> +$+@PIf ISNULL*K1OSN, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t : K1OSN+$@PIf ISNULL*KSJL, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t : KSJL+$?P
-
8/9/2019 76630315 Datastage Routines
19/64
If ISNULL*KBETR, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t : KBETR+$++PIf ISNULL*K5ERT, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :K5ERT +$+3PIf ISNULL*5AERS, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :5AERS +$PIf ISNULL*KA5RT, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t :KA5RT +$+P
If ISNULL*KJERK, TJEN 1ttern ( 1ttern : t ELSE 1ttern ( 1ttern : t : KJERK+$+P
Ans ( 1ttern
G>#nvert:Re'eive G> strin& n! '-n&e /n#Fn strin&s t# re4uire! v"ues:DtIn ( )):Tri%*Ar&+,
If IsNu""*DtIn, #r DtIn ( )) T-enAns ( ))
En! E"seDtIn ( Erep"'e *DtIn$)HBH)$)),DtIn ( Erep"'e *DtIn$)NULL)$)),DtIn ( Erep"'e *DtIn$)X"t8)$)),DtIn ( Erep"'e *DtIn$)X&t8)$)),DtIn ( Erep"'e *DtIn$)X4u#t8)$),DtIn ( Erep"'e *DtIn$)Xp#s8)$)),DtIn ( Erep"'e *DtIn$)X%p)$)X),DtIn ( Erep"'e *DtIn$)X+2?)$)C),
Ans ( DtInEn!
G>#r%tin&:
99 UNTION G>#r%tin&*SFit'-$ A""_R#F,99 Rep"'es s#%e spe'i" '-r'ters F-en 'retin& t-e G> fi"e99 Input 1r%eters : Ar&+: SFit'- ( Step t# '-n&e.9 Ar&2: A""_R#F ( R#F '#ntinin& t-e G> Re'#r!.9
DtIn(Tri%*A""_R#F,
If SFit'-(+ T-enIf IsNu""*DtIn, #r DtIn( )) T-en
Ans ( )HBH)En!E"seDtIn%t ( Erep"'e *DtIn $)X)$ )X%p8),DtIn%t ( Erep"'e *DtIn%t $))$ )Xp#s8),DtIn%t ( Erep"'e *DtIn%t $)$ )X4u#t8),
-
8/9/2019 76630315 Datastage Routines
20/64
Ans ( DtIn%tEn!En!E"seIf SFit'-(2 T-enDtIn%t ( Erep"'e *DtIn $))$ )X&t8),DtIn%t ( Erep"'e *DtIn%t $))$ )X"t8),
Ans ( DtIn%tEn!E"se9 in" Rep"'e$ After t-e >er&e #f "" G> se&%entsDtIn%t ( Erep"'e *DtIn $)C)$ )X+2?),
Ans ( DtIn%tEn!En!
Gener"#unter:
O>>ON #unter O"!1r%$ T#t#unt
Ne7tI! ( I!entifier
I UNASSIGNED*O"!1r%, T-enO"!1r% ( Ne7tI!T#t#unt ( 0END
I Ne7tI! ( O"!1r% TJENT#t#unt ;( +END ELSEO"!1r% ( Ne7tI!T#t#unt ( +END
Ans ( T#t#unt
GetNe7tust#%erNu%=er:
Se4uen'e nu%=er &enert#r.R#utine t# &et t-e ne7t se4uen'e nu%=er t# use f#r 'ust#%er fr#% fi"e$ n! sve t-eus!e v"ue in t-e fi"e.
T-e r#utine r&u%ent is t-e n%e ss#'ite! Fit- t-e super &r#up t-t t-e 'ust#%er is=ein& 'rete! in.
T-e r#utine uses fi"e t# st#re t-e ne7t vi"="e nu%=er. It re!s t-e nu%=er$ t-enin're%ents n! st#res t-e v"ue in '#%%#n$ Fritin& t-e ne7t v"ue ='/ t# fi"e e'-ti%e.
-
8/9/2019 76630315 Datastage Routines
21/64
9 R#utine t# &enerte t-e ne7t 'ust#%er nu%=er. T-e r&u%ent is strin& use! t#9 i!entif6 t-e super &r#up f#r t-e 'ust#%er.99 T-e r#utine uses Unierse fi"e t# st#re t-e ne7t nu%=er t# use. T-is9 v"ue is st#re! in re'#r! n%e! fter t-e supp"ie! r&u%ent. T-e9 r#utine re!s t-e nu%=er$ t-en in're%ents n! st#res t-e v"ue9 in '#%%#n st#r&e$ Fritin& t-e ne7t v"ue ='/ t# fi"e e'- ti%e.
9
9 De'"re s-re! %e%#r6 st#r&e.#%%#n ustSe4uen'es Initi"i
-
8/9/2019 76630315 Datastage Routines
22/64
9 R#utine t# &enerte se4uenti" nu%=er. T-e r&u%ent is strin& use! t#9 i!entif6 t-e se4uen'e.99 NOTE: T-is r#utine uses "#'/in& t# ""#F %u"tip"e pr#'esses t# ''ess t-e9 s%e se4uen'e.99 T-e r#utine uses Unierse fi"e t# st#re t-e ne7t nu%=er t# use. T-is9 v"ue is st#re! in re'#r! n%e! fter t-e supp"ie! r&u%ent. T-e
9 r#utine "F6s tte%pts t# re! t-e nu%=er fr#% t-e fi"e$ s# t-t t-e9 re'#r! f#r t-e se4uen'e =e'#%es "#'/e!. It in're%ents n! st#res t-e9 v"ue in '#%%#n st#r&e$ Fritin& t-e ne7t v"ue ='/ t# fi"e e'-9 ti%e. 5ritin& ='/ t-is v"ue frees t-e "#'/.9
9 De'"re s-re! %e%#r6 st#r&e.#%%#n Err#rT="eSe4uen'es Initi"i
-
8/9/2019 76630315 Datastage Routines
23/64
9 Get1r%eterArr6*Ar&+,9 De'ripti#n: Get pr%eters9 5ritten =6:9 N#tes:9 B& #f Tri'/s ersi#n 2.3.0 Re"ese Dte 200++00+9 Ar&+ ( 1t- n! N%e #f 1r%eter i"e99 Resu"t ( * + ( 1r%eter n%es$ 2 ( 1r%eter v"ues,
9 DEUN i"e#un!*A, ""in& DSU.i"e#un!
'B"n/ ( 'N%e ( +'"ue ( 2
v1r%i"e ( Ar&+1r% ( 'B"n/v1r%nt ( 0vurR#utineN%e ( R#utine: Get1r%eterArr6
vi"e! ( ALSED#ne ( ALSE
I v1r%i"e AND i"e#un!*v1r%i"e, T-enO1ENSEQ v1r%i"e TO -1r%i"e T-enL##pREADSEQ vLineRF RO> -1r%i"eON ERROR"" DSL#&5rn*Err#r fr#% :v1r%i"e:8 Sttus ( :STATUS*,$vurR#utineN%e,LOSE -1r%i"evi"e! ( TRUE
D#ne ( TRUEEn! T-envLine ( TRI>*vLineRF,virst-r ( LET*vLine$+,vRe%r/ ( LET*vLine$?,I NOT*virst-r ( 'B"n/ OR virst-r ( OR virst-r ( 9 OR virst-r ( )OR virst-r ( )) OR virst-r ( 8 OR virst-r ( : OR virst-r ( ORvRe%r/ ( RE> , TJENv1r%nt ;( + 8 9 A!! t# n6 pr%eter rr6 psse! s n r&u%ent1r%+$v1r%nt ( TRI>*IELD*vLine$($'N%e,,1r%2$v1r%nt ( IELD*vLine$($'"ue,
ENDEND ELSED#ne ( TRUEENDUnti" D#ne D# RepetLOSE -1r%i"e
En! E"se"" DSL#&5rn*Err#r fr#% :v1r%i"e:8 Sttus ( :STATUS*,$vurR#utineN%e,vi"e! ( TRUEEn!
-
8/9/2019 76630315 Datastage Routines
24/64
En! E"sevi"e! ( TRUEEn!
"" DSL#&Inf#*)"ues "#!e! fr#% fi"e: ):v1r%i"e:A>:1r%$vurR#utineN%e,If vi"e! T-en
Ans ( )ERROR)
En! E"seAns ( 1r%En!LstD6#f>#nt-:
Returns t-e Lst D6 #f t-e >#nt-
Deffun DSR>ess&e*A+$A2, ""in& )9DtSt&e9DSR_>ESSAGE)E4ute Trnsf#r%N%e T# )#nvert>#nt-)
9 -e'/ t-e f#r%t #f t-e input v"ue.
If IsNu""*Ar&+, #r *Len*Ar&+, @, T-en
Ans ( ))G#T# E7itLstD6>#nt-En!
InMer ( Su=strin&s*Ar&+$+$?,In>#nt- ( Su=strin&s*Ar&+$$2,
If In>#nt- + Or In>#nt- +2 T-enAns ( ))
G#T# E7itLstD6>#nt-En!
9 Generte t-e re4uire! #utput$ !epen!in& #n t-e A'ti#n r&u%ent.Be&in sese In>#nt- ( )+)9 Intern" !te f#r first !6 #f %#nt-.OutDt ()3+)
se In>#nt- ( )2)9 Intern" !te f#r first !6 #f %#nt-.
if %#!*Nu%*InMer,$?,0 t-enOutDt ( )2W)en!if %#!*Nu%*InMer,$?,(0 t-enOutDt ( )2)en!
se In>#nt- ( )3)9 Intern" !te f#r first !6 #f %#nt-.OutDt ( )3+)
-
8/9/2019 76630315 Datastage Routines
25/64
se In>#nt- ( )?)9 Intern" !te f#r first !6 #f %#nt-.OutDt ( )30)
se In>#nt- ( ))9 Intern" !te f#r first !6 #f %#nt-.OutDt ()3+)
se In>#nt- ( )@)9 Intern" !te f#r first !6 #f %#nt-.OutDt ()30)
se In>#nt- ( ))9 Intern" !te f#r first !6 #f %#nt-.OutDt ()3+)
se In>#nt- ( )W)9 Intern" !te f#r first !6 #f %#nt-.OutDt ()3+)
se In>#nt- ( ))9 Intern" !te f#r first !6 #f %#nt-.OutDt ()30)
se In>#nt- ( )+0)9 Intern" !te f#r first !6 #f %#nt-.OutDt ()30)
se In>#nt- ( )++)9 Intern" !te f#r first !6 #f %#nt-.
OutDt ()3+)
se In>#nt- ( )+2)9 Intern" !te f#r first !6 #f %#nt-.OutDt ()3+)
En! seAns(OutDt:)):In>#nt-:)):InMer
E7itLstD6>#nt-:
L#&T#Err#ri"e:
L#&s err#rs t# n err#r -s-e! fi"e
9 UNTIONL#&T#Err#ri"e*T="e$ie"!_N%e$-e'/_"ue$Err#r_Nu%=er$Err#r_Te7t_+$Err#r_Te7t_2$ Err#r_Te7t_3$A!!iti#n"_>ess&e,999 1"'es t-e 'urrent 5rites Err#r >ess&es t# Js- i"e9
-
8/9/2019 76630315 Datastage Routines
26/64
9 Input 1r%eters : Ar&+: T="e ( T-e n%e #f #ntr#" t="e =ein& '-e'/e!9 Ar&2: ie"!_N%e ( T-e n%e #f t-e ie"! t-t is in err#r9 Ar&3: -e'/_"ue ( T-e v"ue use! t# "##/ up in t-e Js- fi"e t# &et tr6 n! &et "##/ up %t'-9 Ar&?: Err#r_Nu%=er ( T-e err#r nu%=er returne!9 Ar&: Err#r_Te7t_+ ( irst err#r %ess&e r&u%ent. Use! t# =ui"! t-e !efu"t err#r%ess&e9 Ar&@: Err#r_Te7t_2 ( Se'#n! err#r %ess&e r&u%ent. Use! t# =ui"! t-e !efu"t err#r
%ess&e9 Ar&: Err#r_Te7t_3 ( T-ri! err#r %ess&e r&u%ent. Use! t# =ui"! t-e !efu"t err#r%ess&e9 Ar&W: A!!iti#n"_>ess&e ( An6 te7t t-t '#u"! =e st#re! &inst n err#r9
R#utineN%e ( )L#&T#Err#ri"e)
#%%#n Js-L##/up i"eJn!"es*+00,$ i"esOpene!#%%#n Ti'/etErr#r#%%#n >#!RunID$ Ti'/eti"eID$ Ti'/etSe4uen'e$Ti'/etSetKe6$ #=St&eN%e$ >#!R##t1t-
HINLUDE DSINLUDE OBONTROL.J
Ans ( )ERROR)
If S6ste%*+, T-enOsT6pe ( NTOsDe"i% ( N#nOsDe"i% ( >#ve ( %#ve
En! E"seOsT6pe ( UNIOsDe"i% ( N#nOsDe"i% ( >#ve ( %v f En!
#=N%e ( DSGet#=Inf# *DS.>E $ DS.OBNA>E,
1t- ( >#!R##t1t- : OsDe"i% :)err#r) : OsDe"i%i"eN%e ( )Err#rL#&_J.) : >#!RunID
1t-i"e ( 1t- : i"eN%e"" DSL#&Inf#*1t-:) '-e'/in& ) : 1t-i"e$R#utineN%e,
v>ess&e ( )INLOG Err#r L#& ( ) : 1t-i"e9"" DSL#&Inf#*v>ess&e$ R#utineN%e ,
v>ess&e ( )INLOG Err#r L#& Dt ( ) : >#!RunID : )C) : Ti'/eti"eID : )C) :Ti'/etSe4uen'e : )C) : Ti'/etSetKe6 : )C) : T="e : )C) : ie"!_N%e : )C) : -e'/_"ue :)C) : Err#r_Nu%=er : )C) : A!!iti#n"_>ess&e9"" DSL#&Inf#*v>ess&e$ R#utineN%e ,
-
8/9/2019 76630315 Datastage Routines
27/64
Ke6 ( #=N%e : #=St&eN%e : >#!RunID: Ti'/eti"eID : Ti'/etSe4uen'e :Ti'/etSetKe6 : T="e : ie"!_N%eErr_Re' ( ))Err_Re' + ( #=N%eErr_Re' 2 ( #=St&eN%eErr_Re' 3 ( >#!RunIDErr_Re' ? ( Ti'/eti"eID
Err_Re' ( Ti'/etSe4uen'eErr_Re' @ ( Ti'/etSetKe6Err_Re' ( T="eErr_Re' W ( ie"!_N%eErr_Re' ( -e'/_"ueErr_Re' +0 ( Err#r_Nu%=erErr_Re' ++ ( Err#r_Te7t_+Err_Re' +2 ( Err#r_Te7t_2Err_Re' +3 ( Err#r_Te7t_3Err_Re' +? ( A!!iti#n"_>ess&e
9 Atte%pt t# fin! t-e t="e n%e in #ur ''-e.L#'te i"eN%e in i"esOpene! Settin& 1OS T-en
5rite Err_Re' T# i"eJn!"es*1OS,$ Ke6 T-enTAns ( 0En! E"seTAns ( +En!En! E"se
9 T="e is n#t in ''-e #f #pene! t="es$ s# #pen it.
Openpt- 1t-i"e T# i"eJn!"es*1OS, T-eni"esOpene!+ ( i"eN%e5rite Err_Re' T# i"eJn!"es*1OS,$ Ke6 T-en TAns ( 0E"seTAns ( +En!En! E"seTAns ( 2En!En!
Ans ( )ERROR)
Return*Ans,
L#&T#Js-i"e:
9 UNTIONL#&T#Js-i"e*>#!RunNu%$TGrp$TSe&$SetKe6$T="e$ie"!N$Ke6"ue$Err#r$>s&$Severit6In!,99
-
8/9/2019 76630315 Datastage Routines
28/64
9 1"'es t-e 'urrent 5rites Err#r >ess&es t# J- i"e99 Input 1r%eters : Ar&+: >#!RunNu% ( T-e uni4ue nu%=er ""#'te! t# run #f n>#!u"e9 Ar&2: Ti'/et_Gr#up ( T-e Ti'/et Gr#up Nu%=er #f t-e urrent R#F9 Ar&3: Ti'/et_Se4uen'e ( T-e Ti'/et Se4uen'e Nu%=er #f t-e urrent R#F9 Ar&?: Set_Ke6 ( A Ke6 t# i!entif6 set #f r#Fs e.&. n Inv#i'e Nu%=er t# set #finv#i'e "ines
9 Ar&: T="e ( T-e n%e #f #ntr#" t="e =ein& '-e'/e!9 Ar&@: ie"!N ( T-e n%e #f t-e ie"! t-t is in err#r9 Ar&: Ke6"ue ( T-e v"ue use! t# "##/ up in t-e Js- fi"e t# &et tr6 n! &et "##/up %t'-9 Ar&W: Err#r ( T-e err#r nu%=er returne!9 Ar&: >s& ( An6 te7t t-t '#u"! =e st#re! &inst n err#r9 Ar&+0: Severit6In! ( An In!i't#r t# stte t-e err#r severit6 "eve"
R#utineN%e ( )L#&T#Js-i"e)
#%%#n Js-L##/up i"eJn!"es*+00,$ i"esOpene!
#%%#n Ti'/et#%%#n Ti'/et_Gr#up$ Ti'/et_Se4uen'e$ Set_Ke6$#=_St&e_N%e$ >#!_R##t_1t-$ Generi'_R##t_1t-$ -/_Js-_i"e_N%e$>#!_Run_Nu%
HINLUDE DSINLUDE OBONTROL.J
TAns ( 0
If S6ste%*+, T-enOsT6pe ( NT
OsDe"i% ( N#nOsDe"i% ( >#ve ( %#ve En! E"seOsT6pe ( UNIOsDe"i% ( N#nOsDe"i% ( >#ve ( %v f En!
#=N%e ( DSGet#=Inf# *DS.>E $ DS.OBNA>E,
9 St&eN%e ( DSGetSt&eInf# *DS.>E$DS.>E$ DS.STAGENA>E,
1t- ( >#!_R##t_1t- : OsDe"i% :)err#r) : OsDe"i%i"eN%e ( )Err#rL#&_J.) : >#!_Run_Nu%
1t-i"e ( 1t- : i"eN%e
9>ess&e ( )INLOG Err#r L#& ( ) : 1t-i"e9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
-
8/9/2019 76630315 Datastage Routines
29/64
9>ess&e ( )INLOG Err#r L#& Dt ( ) : >#!RunNu% : )C) : TGrp : )C) : TSe4 : )C) :Set_Ke6 : )C) : T="e : )C) : ie"!N : )C) : Ke6"ue : )C) : Err#r : )C) : >s&9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
Ke6 ( #=N%e : #=_St&e_N%e : >#!RunNu%: TGrp : TSe4 : SetKe6 : T="e :ie"!NErr_Re' ( ))
Err_Re' + ( #=N%eErr_Re' 2 ( #=_St&e_N%eErr_Re' 3 ( >#!RunNu%Err_Re' ? ( TGrpErr_Re' ( TSe4Err_Re' @ ( SetKe6Err_Re' ( T="eErr_Re' W ( ie"!NErr_Re' ( Ke6"ueErr_Re' +0 ( Err#rErr_Re' ++ ( >s&
Err_Re' +2 ( Severit6In!
9 Atte%pt t# fin! t-e t="e n%e in #ur ''-e.L#'te i"eN%e in i"esOpene! Settin& 1OS T-en
5rite Err_Re' T# i"eJn!"es*1OS,$ Ke6 T-enTAns ( 0En! E"seTAns ( +En!En! E"se
9 T="e is n#t in ''-e #f #pene! t="es$ s# #pen it.Openpt- 1t-i"e T# i"eJn!"es*1OS, T-eni"esOpene!+ ( i"eN%e5rite Err_Re' T# i"eJn!"es*1OS,$ Ke6 T-en TAns ( 0E"seTAns ( +En!En! E"seTAns ( 2En!En!
Ans ( TAns
RETURN*Ans,
>n!t#r6ie"!-e'/: -e'/ F-et-er t-e fie"! n%e psse! is %n!t#r6
R#utine t# '-e'/ t# see if t-e psse! fie"! is p#pu"te!$ n! if n#t$ t# '-e'/ t# see if it is%n!t#r6. If t-e fie"! '#ntins )Y)$ t-en it is -n!"e! s if it is ="n/.
-
8/9/2019 76630315 Datastage Routines
30/64
T-e r#utine uses '#ntr#" t="e '#ntinin& pr#'ess n%e$ fie"! n%e$ &r#up n%e n!e7'"usi#n f"& t# '#ntr#" %n!t#r6 #r n#t.
T-e r#utine r&u%ents re t-e fie"! n%e$ t-e fie"!$ t-e &r#up /e6$ F-et-er t-is is t-efirst %n!t#r6 '-e'/ f#r t-e re'#r!$ n! t-e pr#'ess n%e F-en t-e first '-e'/ f"& is)M).
A vri="e /ept in %e%#r6 *>n!"ist, is use! t# re'#r! t-e %n!t#r6 '-e'/ fi"ures.
5-en t-e psse! fie"! n%e is )Get%n!)$ n# pr#'essin& is perf#r%e! e7'ept t# returnt-e >n!"ist fie"!.
9 R#utine t# '-e'/ F-et-er t-e psse! fie"! is fi""e!$ n! if n#t$ F-et-er it is %n!t#r6.99 T-e r#utine uses Unierse fi"e )>ANDATORM_IELD_J) F-i'- '#ntins t-e%n!t#r6 fie"! '#ntr#"s9
9 Ar&+ ie"! n%e t# =e '-e'/e! *"iter",9 Ar&2 ie"! v"ue9 Ar&3 Gr#up n%e9 Ar&? +st '"" f#r re'#r!9 Ar& T-e pr#'ess n%e #n t-e first '"" *t-is is sve! in st#r&e f#r su=se4uent '""s,9
9 De'"re s-re! %e%#r6 st#r&e.#%%#n >n!t#r6 Initi"in!t#r6ie"!-e'/
9 "" DSL#&Inf#*)R#utine strte!):Ar&+$R#utineN%e,
If NOT*Initi"iANDATORM_IELD_J) TO Se4i"e E"se"" DSL#&t"*)nn#t #pen >n!t#r6 fie"! '#ntr#" fi"e)$R#utineN%e,
Ans ( +En!
9 "" DSL#&Inf#*)Initi"isti#n #%p"ete)$R#utineN%e,En!
If Ar&? ( )M)T-en>n!"ist ( ))1r#'essIn ( )):Tri%*Ar&,If IsNu""*1r#'essIn, #r 1r#'essIn ( )) T-en 1r#'ess ( ) )E"se 1r#'ess ( 1r#'essInEn!
-
8/9/2019 76630315 Datastage Routines
31/64
If Ar&+ ( )Get%n!) T-en Ans ( >n!"istE"seDtIn ( )):Tri%*Ar&2,Gr#upIn ( )):Tri%*Ar&3,If IsNu""*Gr#upIn, #r Gr#upIn ( )) T-en Gr#up ( ) )E"se Gr#up ( Gr#upIn
If IsNu""*DtIn, #r DtIn ( )) #r DtIn ( )Y)T-en99 ie"! is ="n/ '-e'/ f#r %n!t#r699 "" DSL#&Inf#*Ar&+:) ="n/ '-e'/in& F-et-er %n!t#r6)$R#utineN%e,9%6strin& ( 1r#'ess:Ar&+:Gr#up:))Re! Retv" r#% Se4i"e$ %6strin&t-en9 "" DSL#&Inf#*Ar&+:) Gr#up spe'ifi'""6 e7'"u!e!)$R#utineN%e,
Ans ( 0en!e"se%6strin& ( 1r#'ess:Ar&+:Gr#upRe! Retv" r#% Se4i"e$ %6strin&t-en9 "" DSL#&Inf#*Ar&+:) Gr#up spe'ifi'""6 in'"u!e!)$R#utineN%e,
Ans ( +en!e"se%6strin& ( 1r#'ess:Ar&+:)ALL)
Re! Retv" r#% Se4i"e$ %6strin&t-en9 "" DSL#&Inf#*Ar&+:) G"#=" %n!t#r6)$R#utineN%e,
Ans ( +en!e"se9 "" DSL#&Inf#*Ar&+:) ="n/ n#t %n!t#r6)$R#utineN%e,
Ans ( 0en!en!en!
En!E"se
Ans ( 09 "" DSL#&Inf#*Ar&+:) N#t ="n/)$R#utineN%e,En!If Ans ( +T-enIf >n!"ist ( ))T-en >n!"ist ( Ar&+E"se >n!"ist ( >n!"ist:)$):Ar&+en!
-
8/9/2019 76630315 Datastage Routines
32/64
En!
>p:*R#utinue N%e,
9 UNTION >p*"ue$ie"!N%e$#r%t$Defu"t$>s&$Err#rL#&In!,9
9 E7e'utes "##/up &inst -s-e! fi"e usin& /e699 Input 1r%eters : Ar&+: "ue ( T-e "ue t# Be >ppe!9 Ar&2: ie"!N%e ( T-e N%e #f t-e fie"! t-t is eit-er t-e Tr&et #f t-e Derivti#n #rt-e s#ur'eie"! t-t v"ue is '#ntine! in9 Ar&3: #r%t ( T-e n%e #f t-e Js- fi"e '#ntinin& t-e %ppin& !t9 Ar&?: Defu"t ( T-e Defu"t v"ue t# return if v"ue is n#t f#un!9 Ar&: >s& ( An6 te7t 6#u Fnt st#re! &inst n err#r9 Ar&@: Severit6In! ( An In!i't#r t# t-e servit6 Leve"9 Ar&: Err#rL#&In! ( An In!i't#r t# in!i'te if err#rs s-#u"! =e "#&&e!9 Ar&W: Js-fi"eL#'ti#n ( An In!i't#r t# in!i'te #f err#rs s-#u"! =e "#&&e! *N#te t-is
is n#t 6et i%p"e%ente!,99 Return "ues: If t-e "ue is n#t f#un!$ return v"ue is: +. #r t-e Defu"t v"ue if t-tis supp"ie!9 If #r%t T="e n#t f#un!$ return v"ue is: 2999
R#utineN%e ( >p
#%%#n Js-L##/up i"eJn!"es*+00,$ i"esOpene!#%%#n Ti'/et#%%#n Ti'/et_Gr#up$ Ti'/et_Se4uen'e$ Set_Ke6$#=_St&e_N%e$ >#!_R##t_1t-$ Generi'_R##t_1t-$ -/_Js-_i"e_N%e$>#!_Run_Nu%
9>ess&e ( )>p #= St&e N%e (() : #=_St&e_N%e9 "" DSL#&Inf#*>ess&e$ R#utineN%e ,
9>ess&e ( )>p >#! R##t 1t- (() : >#!_R##t_1t-9 "" DSL#&Inf#*>ess&e$ R#utineN%e ,
9>ess&e ( )Generi' R##t 1t- (() : Generi'_R##t_1t-9 "" DSL#&Inf#*>ess&e$ R#utineN%e ,
9>ess&e ( )>p -/_Js-_i"e_N%e (() : -/_Js-_i"e_N%e9 "" DSL#&Inf#*>ess&e$ R#utineN%e ,
9>ess&e ( )>p >#!_Run_Nu% (() : >#!_Run_Nu%9 "" DSL#&Inf#*>ess&e$ R#utineN%e ,
DEUN
-
8/9/2019 76630315 Datastage Routines
33/64
L#&T#Js-i"e*>#!RunNu%$Ti'/et_Gr#up$Ti'/et_Se4uen'e$Set_Ke6$T="e$ie"!N%e$Ke6$Err#r$Te7t$Severit6In!, ""in& DSU.L#&T#Js-i"e9
If Len*-/_Js-_i"e_N%e, ( 3 An! Js-i"eL#'ti#n ( )G) T-en #r%t_E7tn (-/_Js-_i"e_N%e E"se #r%t_E7tn ( >#!_Run_Nu% +$P
If S6ste%*+, T-en
OsT6pe ( NTOsDe"i% ( N#nOsDe"i% ( >#ve ( %#ve En! E"seOsT6pe ( UNIOsDe"i% ( N#nOsDe"i% ( >#ve ( %v f En!
#"u%n1#siti#n ( 01#siti#nReturn ( 0T="e ( #r%t
If Js-i"eL#'ti#n ( )G) t-en1t-#r%t ( Generi'_R##t_1t- : OsDe"i% :)f#r%t) : OsDe"i%: #r%t : )_J.) :#r%t_E7tnEn! E"se1t-#r%t ( >#!_R##t_1t- : OsDe"i% :)f#r%t) : OsDe"i% : #r%t : )_J.) :#r%t_E7tn
En!
If IsNu""*"ue, t-en -/_"ue ( )) E"se -/_"ue ( "ue
9>ess&e ( )>p 1t-#r%t (() : 1t-#r%t9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
9>ess&e ( )"ue (() : "ue9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
9>ess&e ( )#r%t (() : #r%t9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
9>ess&e ( )Defu"t (() : Defu"t9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
9>ess&e ( )Err#rL#&In! (() : Err#rL#&In!9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
9 Set t-e Defu"t AnsFer f#r if v"ue is n#t f#un!
-
8/9/2019 76630315 Datastage Routines
34/64
Be&in sese Upse*Defu"t, ( )NODE)Defu"t_Ans ( )+)
se Defu"t ( )1ASS)Nu%ie"!s ( D'#unt*-/_"ue$ )C),If Nu%ie"!s + T-enDefu"t_Ans ( ie"!*-/_"ue$)C)$2,
9>ess&e ( )Nu% ie"!s + Defu"t_Ans (() : Defu"t_Ans : )) : -/_"ue9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
En! E"seDefu"t_Ans ( -/_"ue
9>ess&e ( )Nu% ie"!s NG 0 Defu"t_Ans (() : Defu"t_Ans : )) : -/_"ue9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
En!
se TRUEIf Upse*ie"!*Defu"t$)C)$+,, )BL) T-en Defu"t_Ans ( Defu"t E"se Defu"t_Ans (+
En! se
9 Deter%ine if Fe re returnin& #ne '#"u%n #r entire r#F.If Nu%*#"u%n1#siti#n, t-en
#"u%n1#siti#n ( Int*#"u%n1#siti#n,
If #"u%n1#siti#n 0 n! #"u%n1#siti#n T-en1#siti#nReturn ( +En!En!
9 Atte%pt t# fin! t-e t="e n%e in #ur ''-e.L#'te #r%t in i"esOpene! Settin& 1OS T-en
Re! Re' r#% i"eJn!"es*1OS,$ -/_"ue T-enIf 1#siti#nReturn T-en Ans ( Re'#"u%n1#siti#n E"se Ans ( Re'En! E"se
Ans ( Defu"t_Ans
En!En! E"se
9 T="e is n#t in ''-e #f #pene! t="es$ s# #pen it.Openpt- 1t-#r%t T# i"eJn!"es*1OS, T-eni"esOpene!+ ( #r%tRe! Re' r#% i"eJn!"es*1OS,$ -/_"ue E"seRe' ( Defu"t_AnsEn!If 1#siti#nReturn An! Re' Defu"t_Ans T-en
Ans ( Re'#"u%n1#siti#nEn! E"se
-
8/9/2019 76630315 Datastage Routines
35/64
Ans ( Re'En!En! E"se
Ans ( )2)En!En!
If Upse*ie"!*Defu"t$)C)$+,, ( )BL) n! Ans 2 T-enIf -/_"ue ( )) t-en
Ans ( ie"!*Defu"t$)C)$2,En!En!
9>ess&e ( )Outsi!e LOGGING) : >#!_Run_Nu%: )C) : Ti'/et_Gr#up : )C) :Ti'/et_Se4uen'e )C) : Set_Ke6 : )C) : T="e : )C) : ie"!N%e : )C) : -/_"ue : )C) : >s&9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
9>ess&e ( )OUTSIDE 1ASS Trns Defu"t_Ans (() : Defu"t_Ans : ) Ans (( ) : Ans
9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
L#&1ss ( )N)If *Defu"t ( )1ASS) n! Defu"t_Ans Ans, t-en L#&1ss ( )M)If L#&1ss ( )M)T-en9>ess&e ( )1ASS Trns Defu"t_Ans (() : Defu"t_Ans : ) Ans (( ) : Ans9"" DSL#&Inf#*>ess&e$ R#utineN%e ,En!
If *Ans ( )+) #r Ans ( )2) #r Upse*Ans,( )BLOKED) #r L#&1ss ( )M) #rSeverit6In! ( )I), n! Err#rL#&In! ( )M) T-en
9>ess&e ( )5rite t# L#& Ans(( ) : Ans : ) Err#rIn!(( ) : Err#rL#&In!
9>ess&e ( )LOGGING) : >#!_Run_Nu%: )C) : Ti'/et_Gr#up : )C) : Ti'/et_Se4uen'e :)C) : T="e : )C) : ie"!N%e : )C) : -/_"ue : )C) : Ans9"" DSL#&Inf#*>ess&e$ R#utineN%e ,
Ret_#!e(L#&T#Js-i"e*>#!_Run_Nu%$Ti'/et_Gr#up$Ti'/et_Se4uen'e$Set_Ke6$T="e$ie"!N%e$-/_"ue$Ans$>s&$Severit6In!,
En!
RETURN*Ans,
Output#=Stts: Outputs t-e #= "in/ sttisti's
-
8/9/2019 76630315 Datastage Routines
36/64
HINLUDE DSINLUDE OBONTROL.J
-#= ( DSAtt'-#=*#=N%e$ DS.ERRATAL,
Strt_TS ( DSGet#=Inf# *-#=$ DS.OBSTARTTI>ESTA>1,En!_TS ( DSGet#=Inf# *-#=$DS.OBLASTTI>ESTA>1,E"pse!_Se's_nt ( DSGet#=Inf# *-#=$DS.OBELA1SED,#=_Ter%_Sttus ( DSGet#=Inf# *-#=$DS.OBINTERI>STATUS,
User_Sttus ( DSGet#=Inf# *-#=$DS.USERSTATUS,
Err#!e ( DSDet'-#=*-#=,
Ans ( Strt_TS : )C) : En!_TS : )C) : E"pse!_Se's_nt : )C) : #=_Ter%_Sttus : )C) :User_Sttus
1ttern:
R#utine()1ttern)
r_Len ( "en*"ue,1ttern ( "ue
#r i ( + T# r_LenIf Nu%*"ue i$+P, T-en1ttern i$+P ( )n)en!E"seIf A"p-*"ue i$+P, T-en1tterni$+P ( ))
en!E"se1tterni$+P ( "ue i$+Pen!en!Ne7t i
Ans ( 1ttern
-e'/s psse! fie"! t# see if it %t'-es t-e pttern F-i'- is "s# psse!.:
T-e input fie"! is '-e'/e! t# see if it '#nf#r%s t# t-e f#r%t t-t is "s# psse! s
se'#n! pr%eter.
T-e resu"t #f t-e r#utine is True is t-e pttern %t'-es t-e re4uire! f#r%t$ n! f"se if it!#es n#t.
If t-e se'#n! pr%eter is e%pt6$ t-en true is returne!.
E4ute Trnsf#r%N%e T# )1ttern>t'--e'/)
Be&in se
-
8/9/2019 76630315 Datastage Routines
37/64
se Ar&2 ( )) 89 N# pttern s# return trueAns ( +
se Ar&3 ( )) 89 On"6 + pttern psse!Ans ( Ar&+ >t'-es Ar&2
se + 89 A"" #t-er 'ses
Ans ( Ar&+ >t'-es Ar&2 : JAR*23, : Ar&3
En! se
1repre#=:
HINLUDE DSINLUDE OBONTROL.J#=_Jn!"e ( DSAtt'-#= *#=_N%e$ DS.ERR5ARN,Err#!e+(DS1repre#=*#=_Jn!"e,Err#!e2 ( DSDet'-#=*#=_Jn!"e,
Ans( Err#!e2
Rn&e-e'/:
9 UNTION >p*"ue$ie"!N%e$#r%t$Defu"t$>s&$Err#rL#&In!,99 E7e'utes "##/up &inst -s-e! fi"e usin& /e699 Input 1r%eters : Ar&+: "ue ( T-e "ue t# =e '-e'/e!9 Ar&2: >in"ue ( T-e >in "ue ""#Fe!9 Ar&3: >7"ue ( T-e >7 "ue ""#Fe!9 Ar&?: ie"!N%e ( T-e N%e #f t-e S#ur'e fie"! =ein& '-e'/e!
9 Ar&: >s& ( An6 te7t 6#u Fnt st#re! &inst n err#r9 Ar&@: Severit6In! ( An In!i't#r t# t-e servit6 Leve"9 Ar&: Err#rL#&In! ( An In!i't#r t# in!i'te if err#rs s-#u"! =e "#&&e!99 Return "ues: If t-e "ue is n#t f#un!$ return v"ue is +. e"se t-e v"ue supp"ie! isreturne!999
R#utineN%e ( Rn&e-/
#%%#n Ti'/et#%%#n Ti'/et_Gr#up$ Ti'/et_Se4uen'e$Set_Ke6$ >#!_R##t_1t-$Generi'_R##t_1t-$ -/_Js-_i"e_N%e$ >#!_Run_Nu%
DEUNL#&T#Js-i"e*>#!RunNu%$Ti'/et_Gr#up$Ti'/et_Se4uen'e$Set_Ke6$T="e$ie"!N%e$Ke6$Err#r$Te7t$Severit6In!, ""in& DSU.L#&T#Js-i"e
T="e ( )>in: ) : >in"ue )t# >7: ) : >7"ue>s&+ ( ))>s&2 ( ))
-
8/9/2019 76630315 Datastage Routines
38/64
>s&3 ( ))>s&? ( ))
Ans ( ))If Nu% *"ue, ( 0 t-en>s&+ ( )"ue is n#t nu%=er)
Ans ( 2En!
If Nu% *"ue, ( 0 t-en>s&2 ( )>in"ue is n#t nu%=er)
Ans ( 2En!
If Nu% *"ue, ( 0 t-en>s&3 ( )>7"ue is n#t nu%=er)
Ans ( 2En!
If Ans 2 T-en
If "ue >in"ue Or "ue >7"ue T-en>s&? ( )"ue is #utsi!e t-e Rn&e)
Ans ( +En!En!
Output>s& ( >s& : >s&+ : >s&2 : >s&3: >s&?
9"" DSL#&Inf#*Output>s&$ R#utineN%e ,
If Ans + n! Ans 2 t-en Ans ( "ue
If *Ans ( )+) #r Ans ( )2), n! Err#rL#&In! ( )M) T-en
Ret_#!e(L#&T#Js-i"e*>#!_Run_Nu%$Ti'/et_Gr#up$Ti'/et_Se4uen'e$Set_Ke6$T="e$ie"!N%e$"ue$Ans$Output>s&$Severit6In!,En!
RETURN*Ans,
Re!1r%eter:
Re! pr%eter v"ue fr#% '#nfi&urti#n fi"e
99 un'ti#n : Re!1r%eter Re! pr%eter v"ue fr#% '#nfi&urti#n fi"e9 Ar& : 1r%eterN%e *!efu"t(OB_1ARA>ETER,9 Defu"t"ue *!efu"t(,9 #nfi& fi"e *!efu"t(1ATJ'#nfi&.ini,9 Return : 1r%eter v"ue fr#% '#nfi& fi"eun'ti#n Re!pr%eters*pr%etersn%e$Defu"tv"ue$#nfi&i"e,
-
8/9/2019 76630315 Datastage Routines
39/64
9 un'ti#n : Re!1r%eter Re! pr%eter v"ue fr#% '#nfi&urti#n fi"e9 Ar& : 1r%eterN%e *!efu"t(OB_1ARA>ETER,9 Defu"t"ue *!efu"t(,9 #nfi& fi"e *!efu"t(1ATJ'#nfi&.ini,9 Return : 1r%eter v"ue fr#% '#nfi& fi"e9
If 1r%eterN%e ( )) T-en 1r%eterN%e ( )OB_1ARA>ETER)If #nfi&i"e ( )) T-en #nfi&i"e ( 1ATJ:)'#nfi&.ini)
1r%eter"ue ( Defu"t"ue
OpenSe4 #nfi&i"e T# ff&E"se "" DSL#&t"*)Err#r #penin& fi"e ):#nfi&i"e$ )Re!1r%eter),
L##p5-i"e Re!Se4 Line r#% ff&If Tri%*ie"!*Line$($+,, ( 1r%eterN%e
T-en1r%eter"ue ( Tri%*ie"!*Line$($2,,E7itEn!Repet
"#seSe4 ff&
Ans ( 1r%eter"ue
RETURN*Ans,
ReturnNu%=er:
Strin&(Ar&+
S"en(Len*Strin&,
S'-e'/(0Rnu%())
#r S'-e'/ ( + t# S"en
S'-r(Su=strin&s*Strin&$S'-e'/$+,
If NU>*S'-r, t-en
Rnu%(Rnu%:S'-r
En!Ne7t Outer
Ans(Rnu%
-
8/9/2019 76630315 Datastage Routines
40/64
ReturnNu%=ers:
"en&t-(0"en&t-(LEN*Ar&+,8"en&t-+(+8Outer("en&t-8
p#stNu%('#unter(+8#r Outer ( "en&t- t# + Step +
Ar&2(Ar&+Outer$+PIf NU>*Ar&2,
t-en"en&t-2('#unter+if "en&t-2 ( 0t-en"en&t-2('#unterp#stNu%(RIGJT*Ar&+$"en&t-2,
ENDe"sep#stNu%(RIGJT*Ar&+$'#unter,END
END'#unter('#unter;+
Ne7t OuterAns(p#stNu%
ReverseDte:
un'ti#n ReverseDte*Dte",
9 un'ti#n ReverseDte*Dte"",9 Dte %t =e in t-e f#r% #f DD>>MMMM i.e. 0++02003 #r D>>MMMM ++02003
If Len*Dte", ( t-enNDte" ( )0) : Dte"En! E"se
NDte" ( Dte"En!
Ans ( NDte"$?P : NDte"3$2P : NDte"+$2P
Run#=:
T-e r#utine runs #=. #= pr%eters %6 =e supp"ie!. T-e resu"t is !6n%i' rr6'#ntinin& t-e #= sttus$ n! r#F '#unt inf#r%ti#n f#r e'- "in/. T-e r#utineUti"it6GetRun#=Inf# 'n =e use! t# interpret t-is resu"t.
-
8/9/2019 76630315 Datastage Routines
41/64
As Fe"" s t-e #= n%e n! #= pr%eters$ t-e r#utine pr%eters ""#F t-e #=Frnin& "i%it n! r#F '#unt "i%it t# =e set.
#r%t #f returne! !6n%i' rr6:
Sttus+(#=n%e(inis-SttusSttus2(#=n%e
Sttus3(#=StrtTi%eSt%pSttus?(#=St#pTi%eSt%pSttus(Lin/N%es *v"ue %r/ > !e"i%ite!,Sttus@(R#F#unt *v"ue %r/ > !e"i%ite!,
un'ti#nRun#=*Ar&+$Ar&2$Ar&3$Ar&?,
9 De%#nstrte -#F t# run #= Fit-in t-e GUI !eve"#p%ent envir#%ent. Ar&u%ents%69 =e psse! in. T-e resu"t is !6n%i' rr6 Fit- t-e resu"tin& sttus n! run
9 sttisti's *r#F '#unts f#r ever6 "in/ #n ever6 st&e in t-e #=,9
HINLUDE DSINLUDE OBONTROL.J
E4ute R#utineN%e T# Run#=E4ute Run#=N%e t# Ar&+E4ute 1r%s T# Ar&2E4ute R#FLi%it T# Ar&3E4ute 5rnLi%it T# Ar&?
Di% 1r%*+00$2, 89 Li%ite! t# %7 #f +00 pr%eters
Deffun DSR>ess&e*A+$ A2$ A3, ""in& )9DtSt&e9DSR_>ESSAGE)Deffun DSRTi%est%p ""in& )DSR_TI>ESTA>1)
#=Jn!"e ( Inf# (
1r%#unt ( D'#unt*1r%s$C,If R#FLi%it ( T-en R#FLi%it ( 0If 5rnLi%it ( T-en 5rnLi%it ( 0
#r 1r%Nu% ( + t# 1r%#unt1r%*1r%Nu%$+, ( ie"!*ie"!*1r%s$C$1r%Nu%,$($+,1r%*1r%Nu%$2, ( ie"!*ie"!*1r%s$C$1r%Nu%,$($2,Ne7t 1r%Nu%
#=StrtTi%e ( DSRTi%est%p*,#=Jn!"e ( DSAtt'-#=*Run#=N%e$ DS.ERRATAL,
9 1repre t-e #=
-
8/9/2019 76630315 Datastage Routines
42/64
-
8/9/2019 76630315 Datastage Routines
43/64
-
8/9/2019 76630315 Datastage Routines
44/64
If 5rnLi%it ( T-en 5rnLi%it ( 0
#r 1r%Nu% ( + t# 1r%#unt1r%*1r%Nu%$+, ( ie"!*ie"!*1r%s$C$1r%Nu%,$($+,1r%*1r%Nu%$2, ( ie"!*ie"!*1r%s$C$1r%Nu%,$($2,Ne7t 1r%Nu%
9 Att'- t# t-e #=
#=Jn!"e ( DSAtt'-#=*Run#=N%e$ DS.ERR5ARN,If #=Jn!"e ( 0T-en "" DSL#&Inf#*)#= ):Run#=N%e:) n#t strte! tt'- fi"e!)$R#utineN%e,E"se
9 1repre t-e #=Err#r#!e ( DS1repre#=*#=Jn!"e,
>ess&e ( DSR>ess&e*DSTAGE_TR_I_00+?$ Att'-in& #= f#r pr#'essin& Z+ Sttus #f Att'-%ent ( Z2$ Run#=N%e:>:#=Jn!"e ,"" DSL#&Inf#*>ess&e$ R#utineN%e,
Li%itErr ( DSSet#=Li%it*#=Jn!"e$ DS.LI>ITRO5S$ R#FLi%it,Li%itErr ( DSSet#=Li%it*#=Jn!"e$ DS.LI>IT5ARN$ 5rnLi%it,
9 Nee! t# '-e'/ if err#r #''urre!.ListOf1r%s ( DSGet#=Inf#*#=Jn!"e$ DS.1ARA>LIST,List#unt ( D'#unt*ListOf1r%s$$,#r 1r%Nu% ( + T# 1r%#unt
>ess&e ( DSR>ess&e*DSTAGE_TR_I_00+$ Settin& #= 1r% Z+ Settin&t# Z2$ 1r%*1r%Nu%$+,:>:1r%*1r%Nu%$2,,
"" DSL#&Inf#*>ess&e$ R#utineN%e,Err#!e ( DSSet1r%*#=Jn!"e$ 1r%*1r%Nu%$+,$1r%*1r%Nu%$2,,
Ne7t 1r%Nu%
Err#!e ( DSRun#=*#=Jn!"e$ DS.RUNNOR>AL,Err#!e ( DSDet'-#=*#=Jn!"e,En!
Ans ( 0
RunS-e""#%%n!ReturnSttus:
un'ti#n RunS-e""'#%%n!returnsttus*#%%n!,
"" DSL#&Inf#*Runnin& '#%%n!::#%%n!$RunS-e""#%%n!ReturnSttus,
"" DSE7e'ute*UNI$#%%n!$Ans$Ret,
"" DSL#&Inf#*Output fr#% '#%%n!::Ans$RunS-e""#%%n!ReturnSttus,
Return*Ret,
-
8/9/2019 76630315 Datastage Routines
45/64
-
8/9/2019 76630315 Datastage Routines
46/64
-
8/9/2019 76630315 Datastage Routines
47/64
Fit-in t-e #= 1r#perties#= #ntr#" Fin!#F =6 enterin& )""DSU.Set1r%s*>6Dir$>6i"e$Err#r#!e,)
#r An!reF 5e==s e6es #n"6
T-e r#utine '#u"! =e %!e t# F#r/ #ff -s-e! fi"e$ #r envir#n%ent vri="es 4uiteesi"6.
It is n#t p#ssi="e t# 'rete #= 1r%eters #nt-ef"6 =e'use t-e6 re referen'e! Fit-in #= vi n EQUATE #f t-e f#r%
#=1r%ZZ+ ( STAGEO>.STATUS$+#=1r%ZZ2 ( STAGEO>.STATUS$2 et'
T-is is t-en '#%pi"e! up....S# f#r&et it
Su=r#utinues SetDspr%sf#r%fi"e*inputAr&$Err#r'#!e,
HINLUDE DSINLUDE DSD_STAGE.JHINLUDE DSINLUDE OBONTROL.JHINLUDE DSINLUDE DSD.JHINLUDE DSINLUDE DSD_RTSTATUS.J
E4u Set1r%s T# SetDS1r%sr#%i"e
Err#r#!e ( 0 8 9 set t-is t# n#n$InputAr&,,
1r%Dir ( Ar&List+If 1r%Dir ( T-en1r%Dir ( .En!1r%i"e ( Ar&List2If 1r%i"e ( T-en1r%i"e ( #=N%eEn!
If S6ste%*+, T-enDe"i% (
-
8/9/2019 76630315 Datastage Routines
48/64
En! E"seDe"i% ( En!1r%1t- ( 1r%Dir:De"i%:1r%i"e
"" DSL#&Inf#*Settin& #= 1r%eters fr#% e7tern" s#ur'e :1r%1t-$Set1r%s,"" DSL#&Inf#*#=N%e: :1r%List$Set1r%s,
OpenSe4 1r%1t- T# 1r%i"er On Err#rErr#r#!e ( +"" DSL#&t"*i"e #pen err#r #n :1r%1t-:. Sttus ( :Sttus*,$Set1r%s,En! E"se"" DSL#&5rn*i"e :1r%1t-: n#t f#un! usin& !efu"t pr%eters.$Set1r%s,ReturnEn!
Sttusi"eN%e ( i"eInf#*DSRTO>.RTSTATUS.AR$+,
Re!vu L#'/Ite% r#% DSRTO>.RTSTATUS.AR$ #=N%e$ + On Err#r"" DSL#&t"*i"e re! err#r f#r :#=N%e: #n :Sttusi"eN%e:. Sttus (:Sttus*,$Set1r%s,Err#r#!e ( +ReturnEn! E"se"" DSL#&t"*i"e! t# re! :#=N%e: re'#r! fr#% :Sttusi"eN%e$Set1r%s,Err#r#!e ( 2ReturnEn!
SttusI! ( #=N%e:.:STAGEO>.5AE.NU>Re!v 1r%"ues r#% DSRTO>.RTSTATUS.AR$ SttusI!$OB.1ARA>.ALUES On Err#rRe"ese DSRTO>.RTSTATUS.AR$ #=N%e On Err#r Nu""Err#r#!e ( +"" DSL#&t"*i"e re! err#r f#r :SttusI!: #n :Sttusi"eN%e:. Sttus (:Sttus*,$Set1r%s,ReturnEn! E"se
Re"ese DSRTO>.RTSTATUS.AR$ #=N%e On Err#r Nu""Err#r#!e ( 2"" DSL#&t"*i"e! t# re! :SttusI!: re'#r! fr#% :Sttusi"eN%e$Set1r%s,ReturnEn!
L##pRe!Se4 1r%Dt r#% 1r%i"er On Err#rRe"ese DSRTO>.RTSTATUS.AR$ #=N%e On Err#r Nu""Err#r#!e ( ?
-
8/9/2019 76630315 Datastage Routines
49/64
"" DSL#&t"*i"e re! err#r #n :1r%1t-:. Sttus ( :Sttus*,$Set1r%s,ReturnEn! E"seE7itEn!#nvert ( T# > In 1r%Dt1r%N%e ( Tri%*1r%Dt+,De" 1r%Dt+
1r%"ue ( #nvert*>$($Tri%B*1r%Dt,,
L#'te*1r%N%e$1r%List$+81r%1#s,T-enIf In!e7*Upse*1r%N%e,$1ASS5ORD$+, ( 0T-en "" DSL#&Inf#*1r%eter ):1r%N%e:) set t# ):1r%"ue:)$Set1r%s,E"se "" DSL#&Inf#*1r%eter ):1r%N%e:) set =ut n#t !isp"6e! #n"#&$Set1r%s,En!E"se"" DSL#&5rn*1r%eter :1r%N%e: !#es n#t e7ist in #=
:#=N%e$Set1r%s,#ntinueEn!1r%"ues+$1r%1#s ( 1r%"ueRepet
5ritev 1r%"ues On DSRTO>.RTSTATUS.AR$ SttusI!$OB.1ARA>.ALUES On Err#rRe"ese DSRTO>.RTSTATUS.AR$ #=N%e On Err#r Nu""Err#r#!e (
"" DSL#&t"*i"e Frite err#r f#r :SttusI!: #n :Sttusi"eN%e:. Sttus (:Sttus*,$Set1r%s,ReturnEn! E"seRe"ese DSRTO>.RTSTATUS.AR$ #=N%e On Err#r Nu""Err#r#!e ( @"" DSL#&t"*Un="et# Frite :SttusI!: re'#r! #n :Sttusi"eN%e:. Sttus ( :Sttus*,$Set1r%s,ReturnEn!Re"ese DSRTO>.RTSTATUS.AR$ #=N%e On Err#r Nu""
STAGEO>.OB.STATUSOB.1ARA>.ALUES ( 1r%"ues
set1r%s#ri"eSp"it:Usin& v"ues fr#% '#ntr#" fi"e t-is r#utine Fi"" run #= %u"tip"e ti%es "#!in& t-espe'ifie! nu%=er #f r#Fs f#r e'- #= run.
un'ti#n set1r%s#ri"eSp"it:*#ntr#"i"en%e$#=n%e,
999999999999999999999999999999999999999999999999999999999999999999999999 Ni'/ B#n!.... 99 T-is r#utine retrieves v"ues fr#% '#ntr#" fi"e n! psses t-e% s pr%ters t# 9
-
8/9/2019 76630315 Datastage Routines
50/64
9 #= F-i'- is run #n'e f#r e'- re'#r! in t-e '#ntr#" fi"e. 99 999999999999999999999999999999999999999999999999999999999999999999999999HINLUDE DSINLUDE OBONTROL.J
E4ute R#utine TO set1r%s#ri"eSp"it
"" DSL#&Inf#*Strtin& R#utine $ R#utine,
vi"eN%e ( #ntr#"i"eN%ev#=N%e ( #=N%evRe'#r! ( +
99999999 Open #ntr#" i"e n! retrieve sp"it v"ues.
"" DSL#&Inf#*Openin& i"e: :vi"eN%e$ R#utine,O1EN vi"eN%e TO vILE ELSE "" DSL#&t"*)nt #pen fi"e: ):vi"eN%e$R#utine,"" DSL#&Inf#*i"e is #pen: :vi"eN%e$ R#utine,
99999999 Strt "##p F-i'- &ets pr%eters fr#% '#ntr#" fi"e n! runs #=.L##p
99 -e'/ re'#r! e7ists f#r re'#r! i!READ vStrt RO> vILE$ vRe'#r!T-en
"" DSL#&Inf#*L##p Strte!: :vi"eN%e$ R#utine,
"" DSL#&Inf#*#ntr#" i"e ID: :vRe'#r!$ R#utine,READ vStrt RO> vILE$ vRe'#r!$ ?T-enREAD vSt#p RO> vILE$ vRe'#r!$ T-en"" DSL#&Inf#*L#! Re'#r!s: :vStrt: t# :vSt#p$ R#utine,En!En!
99 Set #= 1r%eters n! Run #=.
vNeFi"e ( Sin&"eInv#i'e:vRe'#r!
v#=Jn!"e ( DSAtt'-#=*v#=N%e$ DS.ERRATAL,Err#!e ( DSSet1r%*v#=Jn!"e$ StrtID$ vStrt,Err#!e ( DSSet1r%*v#=Jn!"e$ St#pID$ vSt#p,Err#!e ( DSSet1r%*v#=Jn!"e$ neFfi"e$ vNeFi"e ,
Err#!e ( DSRun#=*v#=Jn!"e$ DS.RUNNOR>AL,Err#!e ( DS5it#r#=*v#=Jn!"e,
-
8/9/2019 76630315 Datastage Routines
51/64
vRe'#r! ( vRe'#r!;+En!
E"se99 If re'#r! is e%pt6 "eve "##pG#T# L=e"+En!
Repet99999999 En! #f L##p
L=e"+:"" DSL#&Inf#*A"" re'#r!s -ve =een pr#'esse!$ R#utine,
Ans ( vStrt : $ : vSt#p
SetUserSttus:
un'ti#n Setusersttus*Ar&+,
"" DSSetUserSttus*Ar&+,Ans(Ar&+
S>ARTNu%=er#nversi#n#nverts nu%=ers in f#r%t +23?$@ t# f#r%t +23?.
un'ti#n S>ARTNU>BER'#nversi#n*r&+,
IN1 ( ONERT*)$)$).)$Ar&+, 8 9 #%%s t# !e'i%" p#int
5RK ( ION*IN1$)>D33), 8 9 '#nvert t# intern" t# 3 !e'i%" p"'esAns ( OON*5RK$)>D23), 8 9 '#nvert t# e7tern" t 2 !e'i%" p"'es
Ti'/etErr#r#%%#n
Re4uire! t# use t-e )L#&T#Err#ri"e) R#utine. T-is st#res vri="es use! =6 t-e r#utinein s-re! %e%#r6:
9 UNTIONTi'/etErr#r#%%#n*>#!_Run_ID$Ti'/et_Gr#up$Ti'/et_Se4uen'e$Ti'/et_Set_Ke6$#=
_St&e_N%e$>#!_R##t_1t-,
99 1"'es t-e 'urrent R#F Ti'/et in #%%#n99 Input 1r%eters : Ar&+: >#!_Run_ID ( T-e uni4ue nu%=er ""#'te! t# run #f n>#!u"e9 Ar&2: Ti'/et_i"e_ID ( T-e i"e ID ssi&ne! t# t-e s#ur'e #f t-e urrent R#F9 Ar&3: Ti'/et_Se4uen'e ( T-e Ti'/et Se4uen'e Nu%=er #f t-e urrent R#F9 Ar&?: Ti'/et_Set_Ke6 ( I!entifies set #f r#Fs e.&. n Inv#i'e nu%=er t# set #finv#i'e "ines9 Ar&: #=_St&e_N%e ( T-e N%e #f t-e St&e in t-e #= 6#u Fnt re'#r!e! in t-eerr#r "#&
-
8/9/2019 76630315 Datastage Routines
52/64
9 Ar&@: >#!_R##t_1t- ( R##t #f t-e %#!u"e use! f#r "#'ti#n #f err#r -s- fi"e99 D#nt Return Ans =ut nee! t# /eep t-e '#%pi"er -pp6
Ans ( ))R#utineN%e ( Err#rTi'/et#%%#n
#%%#n Ti'/etErr#r#%%#n >#!RunID$ Ti'/eti"eID$ Ti'/etSe4uen'e$ SetKe6$#=St&eN%e$ >#!R##t1t-
>#!RunID ( >#!_Run_IDTi'/eti"eID ( Ti'/et_i"e_IDTi'/etSe4uen'e ( Ti'/et_Se4uen'eSetKe6 ( Ti'/et_Set_Ke6#=St&eN%e ( #=_St&e_N%e>#!R##t1t- ( >#!_R##t_1t-RETURN*Ans,
TARte:
un'ti#n TvRte*%tt_Bse$%tt_TA,
Bse#r%te! ( )):*>tt_Bse,Tv#r%te! ( )):*>tt_TA,
If IsNu""*Bse#r%te!, #r Bse#r%te! ( )0) #r Bse#r%te!( )) T-enAns ( 0En! E"se
Tv#r%te! ( Erep"'e*Tv#r%te!$ ).)$ )),Tv#r%te! ( Erep"'e*Tv#r%te!$ )$)$ )),
Bse#r%te! ( Erep"'e*Bse#r%te!$ ).)$ )),Bse#r%te! ( Erep"'e*Bse#r%te!$ )$)$ )),
Ans ( Erep"'e*Tv#r%te!Bse#r%te!$ ).)$ )),En!
TATest:
un'ti#n Tvtest*>tt_TA$D"'#,
#untr6 ( TRI>*D"'#,:)8)Test#untr6 (#unt*)AT8BE8M8V8DE8DK8EE8ES8I8GB8GR8JU8IE8IT8LT8LU8L8>T8NL81L81T8SE8SI8SK8)$ #untr6,
Be&in sese >tt_TA 0Rep"6 ( )B3)se >tt_TA ( 0 An! D"'# ( )R) An! Test#untr6 ( 0
-
8/9/2019 76630315 Datastage Routines
53/64
Rep"6 ( )A+)se >tt_TA ( 0 An! D"'# )R) An! Test#untr6 ( +Rep"6 ( )E@)se >tt_TA ( 0 An! D"'# )R) An! Test#untr6 ( 0Rep"6 ( )E)se TrueRep"6 ( )Err#r)En! se
Ans ( Rep"6
UnTri"e:
un'ti#n Untrfi"e*Ar&+,
DIR ( )interf'e!s-=#r!!s-=!_!ev_!/_intS#ur'e)
NA>E ( )GLEISND_O_02_200?0@0_+2?00.'sv)
9>D ( )"" tr ):DIR:)C&rep ):NA>E
9>D ( )'%p s ):DIR:)C&rep ):NA>E
>D ( )tr 7vvf ):DIR:NA>E
99s6nt7( tr 7vvf %6fi"e.tr9
"" DSE7e'ute*)UNI)$ >D$ Output$ S6ste%Return#!e,
Ans ( Output
Uti"it6>ess&eT##ntr#""erL#&
5rite n inf#r%ti#n" %ess&e t# t-e "#& #f t-e '#ntr#""in& #=
T-is r#utine t/es user !efine! %ess&e n! !isp"6s it in t-e #= "#& #f t-e'#ntr#""in& se4uen'e s n inf#r%ti#n" %ess&e.
T-e r#utine s-#u"! =e use! sprin&"6 in pr#!u'ti#n #=s t# v#i! !e&r!in& t-e
perf#r%n'e.
T-e return v"ue #f t-e fun'ti#n is "F6s +.:
un'ti#n Uti"it6>ess&eT##ntr#""erL#&*Ar&+,
9 5rite n inf#r%ti#n" %ess&e t# t-e "#& #f t-e '#ntr#""in& #=.99 T-is fun'ti#n is %in"6 inten!e! f#r !eve"#p%ent purp#ses$ =ut 'n =e use!9 Fit-in pr#!u'ti#n envir#n%ent f#r tr'in& !t v"ues. T-e user s-#u"!
-
8/9/2019 76630315 Datastage Routines
54/64
9 use t-is fun'ti#n 'uti#us"6$ s it Fi"" 'use !e'rese in perf#r%n'e9 if '""e! #ften.9Hin'"u!e DSINLUDE OBONTROL.J
E4ute R#utineN%e T# )Uti"it6>ess&eT##ntr#""erL#&)
Input>s& ( Ar&+
If Isnu""*Input>s&, T-enInput>s& ( ) )
En!
"" DSL#&T##ntr#""er*Input>s&,Ans ( +
UTL1r#p&te1r%s:
R#utine ""#Fs #= t# in-erit pr%eter v"ues fr#% #= #ntr#".
T-is r#utine ""#Fs #= t# in-erit pr%eter v"ues fr#% #= #ntr#" =6 "istin& t-epr%eters #f '-i"! #= n! t-erefter fin! t-e pr%eter in t-e prent #=$ &ettin& v"uen! settin& pr%eter v"ue in '-i"! #=.
Input Ar&u%ent : #= -n!"e *set =6 usin& DSAtt'-#= in #= #ntr#",
Output : If pr%eter is n#t f#un! t-e r#utine returns 3$ #t-erFise 0.
un'ti#n UTLprp&tepr%*Jn!"e,
in'"u!e DSINLUDE OBONTROL.JE4u >e T# UTL#=Run
Ans ( 01rent#=N%e ( DSGet#=Inf#*DS.>E$DS.OBNA>E,
-i"!1r%s ( #nvert*$$>$DSGet#=Inf#*Jn!"e$DS.1ARA>LIST,,1r%#unt ( D'#unt*-i"!1r%s$>,If 1r%#unt T-en1rent1r%s ( #nvert*$$>$DSGet#=Inf#*DS.>E$DS.1ARA>LIST,,
L##pT-is1r% ( -i"!1r%s+De" -i"!1r%s+999 in! #= pr%eter in prent #= n! set pr%eter in '-i"! #= t# v"ue #f prent.L#'te*T-is1r%$1rent1r%s81r%1#s, T-enT-is"ue ( DSGet1r%Inf#*DS.>E$T-is1r%$DS.1ARA>ALUE,1r%Sttus ( DSSet1r%*Jn!"e$T-is1r%$T-is"ue,"" DSL#&Inf# *)Settin&: ):T-is1r%:) T#: ):T-is"ue$ )UTL1r#p&te1r%s),En!E"se999 If t-e pr%eter is n#t f#un! in prent #=:
-
8/9/2019 76630315 Datastage Routines
55/64
999 Frite Frnin& t# "#& fi"e.999 return '#!e '-n&e! t# 3."" DSL#&5rn *)1r%eter : ):T-is1r%:) !#es n#t e7ist in ):1rent#=N%e$)UTL1r#p&te1r%s),
Ans ( 3En!5-i"e -i"!1r%s D# RepetEn!
Return*Ans,
UTLRunRe'epti#n#=:
T-is r#utines ""#Fs &eneri' strtin& #f re'epti#n #=s Fit-#ut 'retin& spe'ifi'Re'epti#n 1r#'essin& Se4uen'e.
T-is r#utines ""#Fs &eneri' strtin& #f re'epti#n #=s Fit-#ut 'retin& spe'ifi'Re'epti#n 1r#'essin& Se4uen'e. Deter%ines #= t# "un'- *se4uen'e #r e"e%entr6 #=,
Att'-es #= 1r#p&tes pr%eters usin& r#utine UTL1r#p&te1r%s. Runs #= n! t/es 'ti#n up#n resu"t *n6 Frnin& Fi"" "e! t# return '#!e NOT OK,
O="i&t#r6 pr%eters in input re : #untr6_1r% i"eset_N%e_T6pe_1r% A=#rt_>s&_1r% >#!u"e_Run_1r%
un'ti#nUti"runre'epti#n#=*'#untr6pr%$fi"eset_n%e_t6pepr%$%#!u"erunpr%$A=#rt_%s&_pr%,
HINLUDE DSINLUDE DS_UNS.JHINLUDE DSINLUDE OBONTROL.JEQU Ti%eHH Lit )O'#nv*Ti%e*,$ >TS:,:: )
Ans ( 3
vRe'#=N%eBse ( #untr6_1r% : )_) : i"eset_N%e_T6pe_1r% : )_Re'epti#n)
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 Define #= t# "un'- Se4uen'e #r #= *START, 999999 999
LHDefineSe4HSTART:su%%r6H+$+ ( Ti%eHH:#nvert*>$ ) )$DS>/e>s&*)DSTAGE_SG_>_00Z+ *OB Z2, strte!)$
-
8/9/2019 76630315 Datastage Routines
56/64
)Re'epti#n#=):>:vRe'#=N%eBse,,99 If Se4uenti" #= e7ists strt Se4uenti" #=.v#=Suffi7 ( )_Se4)vRe'#=N%e ( vRe'#=N%eBse : v#=Suffi7G#T# LHAtt'-#=HSTART
LHDefine#=HSTART:99 If n# Se4uenti" #= strt E"e%entr6 #=
v#=Suffi7 ( )_#=)vRe'#=N%e ( vRe'#=N%eBse : v#=Suffi7G#T# LHAtt'-#=HSTART
LHErrN##=HSTART:99 If n# #= f#un! Frn n! en! #=>s& ( DS>/e>s&*)N# #= f#un! t# tt'-) : vRe'#=N%eBse : )_Se4 #r _#=)$ )),>s&I! ( )Re'epti#n#=)G#T# LHERROR
LHAtt'-#=HSTART:
"" DSL#&Inf#*DS>/e>s&*)-e'/in& presen'e #f ) : vRe'#=N%e : ) f#r ) :>#!u"e_Run_1r%$ )),$ )),
=Re'ep#= ( vRe'#=N%e-Re'ep#= ( DSAtt'-#=*=Re'ep#=$ DS.ERRNONE,If *N#t*-Re'ep#=,, T-en
Att'-Err#r>s&H ( DSGetLstErr#r>s&*,If Att'-Err#r>s&H ( )*DSOpen#=, nn#t fin! #= ) : vRe'#=N%e T-enIf v#=Suffi7 ( )_Se4) T-en G#T# LHDefine#=HSTARTE"seG#T# LHErrN##=HSTARTEn!
En!>s& ( DS>/e>s&*)DSTAGE_SG_>_000+Err#r '""in& DSAtt'-#=*Z+,LZ2)$
=Re'ep#=:>:Att'-Err#r>s&H,>s&I! ( )Re'epti#n#=)8 G#T# LHERRORG#T# LHERROREn!If -Re'ep#= ( 2 T-enG#T# LHRe'ep#=1repreHSTARTEn!999 999999 Define #= t# "un'- Se4uen'e #r #= *END, 999
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 Setup $ Run n! 5it f#r Re'epti#n #= *START, 999999 999
LHRe'ep#=1repreHSTART:999 A'tivit6 )Re'epti#n#=): Setup$ Run n! 5it f#r #=-Re'ep#= ( DS1repre#=*-Re'ep#=,If *N#t*-Re'ep#=,, T-en>s& ( DS>/e>s&*)DSTAGE_SG_>_00+2Err#r '""in& DS1repre#=*Z+,LZ2)$
-
8/9/2019 76630315 Datastage Routines
57/64
=Re'ep#=:>:DSGetLstErr#r>s&*,,>s&I! ( )Re'epti#n#=)8 G#T# LHERROREn!su%%r6H+$+ ( Ti%eHH:#nvert*>$ ) )$DS>/e>s&*)DSTAGE_SG_>_00Z+ *OB Z2, strte!)$)Re'epti#n#=):>:vRe'#=N%e,,
G#T# LH1r#p&te1r%sHSTART
LH1r#p&te1r%sHSTART:999 A'tivit6 )1r#p&te1r%s): 1r#p&tin& pr%eters fr#% prent #= t# '-i"! #=usin& seprte r#utine.su%%r6H+$+ ( Ti%eHH:#nvert*>$ ) )$DS>/e>s&*)DSTAGE_SG_>_00WZ+ *ROUTINE Z2, strte!)$)1r#p&te1r%s):>:)DSU.UTL1r#p&te1r%s),,RtnO/ ( DS-e'/R#utine*)DSU.UTL1r#p&te1r%s),If *N#t*RtnO/,, T-en>s& ( DS>/e>s&*)DSTAGE_SG_>_000BASI r#utine is n#t 't"#&e!: Z+)$)DSU.UTL1r#p&te1r%s),
>s&I! ( )1r#p&te1r%s)8 G#T# LHERROREn!"" DSU.UTL1r#p&te1r%s*r1r#p&te1r%s$ -Re'ep#=,su%%r6H+$+ ( Ti%eHH:#nvert*>$ ) )$DS>/e>s&*)DSTAGE_SG_>_00@?Z+ finis-e!$ rep"6(Z2)$)1r#p&te1r%s):>:r1r#p&te1r%s,,I!A=#rtR'tZZResu"t+ZZ+ ( r1r#p&te1r%sI!A=#rtR'tZZN%eZZ3 ( )DSU.UTL1r#p&te1r%s)999 -e'/in& resu"t #f r#utine. If 0 t-en =#rt pr#'essin&.If *r1r#p&te1r%s 0,T-en G#T# LHABORT
G#T# LHRe'ep#=RunHSTART
LHRe'ep#=RunHSTART:Err#!e ( DSRun#=*-Re'ep#=$ DS.RUNNOR>AL,If *Err#!e DSE.NOERROR, T-en>s& ( DS>/e>s&*)DSTAGE_SG_>_0003Err#r '""in& DSRun#=*Z+,$ '#!e(Z2EP)$ =Re'ep#=:>:Err#!e,>s&I! ( )Re'epti#n#=)8 G#T# LHERROREn!Err#!e ( DS5it#r#=*-Re'ep#=,
G#T# LHRe'ep#=HINISJED
999 999999 Setup $ Run n! 5it f#r Re'epti#n #= *END, 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 erifi'ti#n #f resu"t #f Re'epti#n #= *START, 999999 999
LHRe'ep#=HINISJED:
-
8/9/2019 76630315 Datastage Routines
58/64
#=Re'ep#=Sttus ( DSGet#=Inf#*-Re'ep#=$ DS.OBSTATUS,#=Re'ep#=Usersttus ( DSGet#=Inf#*-Re'ep#=$ DS.USERSTATUS,su%%r6H+$+ ( Ti%eHH:#nvert*>$ ) )$DS>/e>s&*)DSTAGE_SG_>_00@3Z+ finis-e!$ sttus(Z2EP)$)Re'epti#n#=):>:#=Re'ep#=Sttus,,I!Re'ep#=ZZResu"t2ZZ ( #=Re'ep#=UsersttusI!Re'ep#=ZZResu"t+ZZ@ ( #=Re'ep#=SttusI!Re'ep#=ZZN%eZZ ( vRe'#=N%e
Du%%6 ( DSDet'-#=*-Re'ep#=,=Re'ep#=e"se ( TrueIf *#=Re'ep#=Sttus ( DSS.RUNOK,T-en G#T# LHSe4Su''essHSTART8 =Re'ep#=e"se ( "seIf =Re'ep#=e"se T-en G#T# LHSe4i"HSTART
999 999999 erifi'ti#n #f resu"t #f Re'epti#n #= *END, 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
999 Definiti#n #f 'ti#ns t# t/e #n fi"ure #r su''ess *START, 999999 999LHSe4i"HSTART:999 Se4uen'er )i"): Fit unti" inputs re!6"" DSL#&Inf#*DS>/e>s&*)R#utine SEQUENER #ntr#" En! Se4uen'e Rep#rts AIL #n Re'epti#n #=)$ )),$ )i"),G#T# LHABORT
LHSe4Su''essHSTART:999 Se4uen'er )Su''ess): Fit unti" inputs re!6
"" DSL#&Inf#*DS>/e>s&*)R#utine SEQUENER #ntr#" En! Se4uen'e Rep#rts SUESS #n Re'epti#n #=)$ )),$ )Su''ess),G#T# LHINISJ
999 999999 Definiti#n #f 'ti#ns t# t/e #n fi"ure #r su''ess *END, 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 999
LHERROR:"" DSL#&5rn*DS>/e>s&*)DSTAGE_SG_>_000#ntr#""er pr#="e%: Z+)$ >s&,$
>s&I!,su%%r6H+$+ ( Ti%eHH:#nvert*>$ ) )$DS>/e>s&*)DSTAGE_SG_>_002E7'epti#n rise!: Z+)$ >s&I!:)$ ):>s&,,=A=n!#nin& ( TrueG#T# LHINISJ
LHABORT:su%%r6H+$+ ( Ti%eHH:#nvert*>$ ) )$DS>/e>s&*)DSTAGE_SG_>_00@Se4uen'e fi"e!)$ )),,"" DSL#&Inf#*su%%r6H$ )UTLRunRe'epti#n#=),"" DSL#&5rn*)Unre'#ver="e err#rs in r#utine UTLRunRe'epti#n#=$ see entries
-
8/9/2019 76630315 Datastage Routines
59/64
=#ve)$ )UTLRunRe'epti#n#=),Ans ( 3G#T# LHEIT
99999999999999999999999999999999999999999999999999LHINISJ:If =A=n!#nin& T-en G#T# LHABORTsu%%r6H+$+ ( Ti%eHH:#nvert*>$ ) )$
DS>/e>s&*)DSTAGE_SG_>_00?Se4uen'e finis-e! OK)$ )),,"" DSL#&Inf#*su%%r6H$ )UTLRunRe'epti#n#=),
Ans ( 0
"i!teie"!:
-e'/s t-e "en&t- n! !t t6pe #f v"ue. A"s# '-e'/s v"ue is v"i! !te if t-e t6peis Dte. An6 err#rs re "#&&e! t# t-e Err#r Js- i"e
ie"!_"ue: T-e v"ue fr#% t-e fie"! =ein& v"i!te!ie"!_N%e: T-e n%e #f t-e fie"! =ein& v"i!te!
Len&t-: T-e %7i%u% "en&t- #f t-e fie"! =ein& v"i!te!Dt_T6pe: T-e !t t6pe e7pe'te! p#ssi="e v"ues *Nu%eri'$ A"p-$ Dte$ -r,Dte_#r%t: If Dt_T6pe is Dte T-en t-e f#r%t %ust =e spe'ifie!. T-e s6nt7 f#rt-is is t-e s%e s f#r t-e I'#nv fun'ti#n. i.e )DM>D?$2$2P) f#r !te in t-e f#r%t200?+223
HINLUDE DSINLUDE OBONTROL.JvR#utineN%e ( "i!teie"!DEUNL#&T#Err#ri"e*T="e$ie"!_N%e$-e'/_"ue$Err#r_Nu%=er$Te7t_+$Te7t_2$ Te7t_3$>ess&e, ""in& )DSU.L#&T#Err#ri"e)
#%%#n Js-L##/up i"eJn!"es*+00,$ i"esOpene!#%%#n Ti'/etErr#r#%%#n >#!RunID$ Ti'/eti"eID$ Ti'/etSe4uen'e$Ti'/etSetKe6$ #=St&eN%e$ >#!R##t1t-
Ans ( )START)
vDt_T6pe ( D#Fn'se*Dt_T6pe,
BEGIN ASE99999999 -e'/ t-e r&u%ents9 "ue =ein& '-e'/e! is nu""ASE isNu""*ie"!_"ue,
"" DSTrnsf#r%Err#r*)T-e v"ue =ein& '-e'/e! is Nu"" ie"!_N%e ( ) :ie"!_N%e$ vR#utineN%e,9 Ar&u%ent f#r t-e !t t6pe is n#t v"i!ASE vDt_T6pe )'-r) AND vDt_T6pe )"p-) AND vDt_T6pe )nu%eri') AND vDt_T6pe )!te)"" DSTrnsf#r%Err#r*)T-e v"ue ) : Dt_T6pe : ) is n#t v"i! !t t6pe f#r r#utine: )$vR#utineN%e,9 Len&t- is n#t nu%=erASE N#t*Nu%*Len&t-,,"" DSTrnsf#r%Err#r*)T-e "en&t- supp"ie! is n#t nu%=er : ie"! -e'/e! ) :ie"!_N%e$ vR#utineN%e,
-
8/9/2019 76630315 Datastage Routines
60/64
ASE vDt_T6pe ( )!te) An! *Dte_#r%t ( )) OR isNu""*Dte_#r%t,,END ASE999999999
99999999 -e'/ T-e "ues999 -e'/ t-e !t t6pe #f supp"ie! v"ue 999If vDt_T6pe ( nu%eri' T-en
If Nu%*ie"!_"ue, T-envErr ( OKEn! E"sevErr ( L#&T#Err#ri"e*)N#T="e)$ie"!_N%e$ie"!_"ue$+0002$Te7t+$Te7t2$Te7t3$"ue pr#vi!e! is n#tnu%eri',
Ans ( N#t Nu%eri'PEn!En! E"se
If vDt_T6pe ( "p- T-en
If A"p-*ie"!_"ue, T-envErr ( OKEn! E"sevErr ( L#&T#Err#ri"e*)N#T="e)$ie"!_N%e$ie"!_"ue$+0003$Te7t+$Te7t2$Te7t3$"ue pr#vi!e! is n#t"p-,
Ans ( N#t A"p-PEn!En! E"se
If vDt_T6pe ( !te T-en
vErr ( I'#nv*ie"!_"ue$Dte_#r%t,vErr ( Sttus*,If vErr 0 T-envErr ( L#&T#Err#ri"e*)N#T="e)$ie"!_N%e$ie"!_"ue$+000?$Te7t+$Te7t2$Te7t3$"ue pr#vi!e! is n#t v"i! !te f#r %s/ :Dte_#r%t,
Ans ( Inv"i! DtePEn!En! E"seEn!En!
En!
999 -e'/ t-e "en&t- #f t-e supp"ie! v"ue 999If Len*ie"!_"ue, ( Len&t- T-envErr ( OKEn! E"sevErr ( L#&T#Err#ri"e*)N#T="e)$ie"!_N%e$ie"!_"ue$+000+$Te7t+$Te7t2$Te7t3$"ue pr#vi!e! is n#t t-e'#rre't "en&t-,
Ans ( Ans : Len&t- Err#rP
-
8/9/2019 76630315 Datastage Routines
61/64
En!
Ans ( Ans
t-e'/SG:
un'ti#n t'-e'/S&*Ar&+,
Strin&(Ar&+
S"en(Len*Strin&,
S'-e'/(0-r-e'/(0
#r S'-e'/ ( + t# S"en
S'-r(Su=strin&s*Strin&$S'-e'/$+,
If NU>*S'-r, + t-en
-r-e'/(-r-e'/;+
en!
Ne7tAns(-r-e'/
5rite1r%i"e:
un'ti#n Fritepr%fi"e*Ar&+$Ar&2$r&3$r&?,
Ar&+8 i"e 1t-Ar&2: i"e N%eAr&3: 1r%eter N%eAr&?: 1r%eter "ue
v1r%i"e ( Ar&+ : )) : Ar&2v1r%N%e ( Ar&3v1r%"ue ( Ar&?
If Ar&? ( 2@ T-env1r%"ue ( ))En!
OpenSe4 v1r%i"e T# i"er E"se"" DSL#&5rn*)nn#t #pen ):v1r%i"e $ )nn#t Open 1r%i"e),En!
L##pRe!Se4 Du%%6 r#% i"er E"se E7it 89 t en!#ffi"eRepet
-
8/9/2019 76630315 Datastage Routines
62/64
-
8/9/2019 76630315 Datastage Routines
63/64
If ParameterName $ // T0en ParameterName $ /%O&'P#R#TR/ If ConfigFile $ // T0en ConfigFile $ +P#T:/-config.ini/
ParameterValue $ DefaultValue
O!en1e2 ConfigFile To fCfg l3e Call D14ogFatal(/rror o!ening file /:ConfigFile, /ReadParameter/)
4oo! 50ile Read1e2 4ine From fCfg If Trim(Field(4ine,$,6)) $ ParameterName T0en ParameterValue $ Trim(Field(4ine,$,7)) 8it nd Re!eat
Clo3e1e2 fCfg
#n3 $ ParameterValue
RTURN(#n3)
You can define parameters values in you config file (/ds/config?ini as an example) in theform :
Parameter = Value Inputile = /ds/file!dat
"o set the value of parameter #Inputile#$ in your %o& code :
DFFUN ReadParameter(ParameterName, DefafaultValue, ConfigFile) C#44IN9/D1U.ReadParameter/
PrmName $ In!utFilePrmConfig $ -d3-config.ini
PrmDefault $ D19etParamInfo(D1%., PrmName, D1%.P#R#DF#U4T)PrmValue $ ReadParameter(PrmName, PrmDefault, PrmConfig)rrCode $ D11etParam(D1%., PrmName, PrmValue)
Call D14ogInfo(/In!utFile i3 /:PrmValue, D1%oName)
***************************************************** FUNCTION ExecSQLProc(dataSource,userName,password)== !ETU!N ("#s)***************************************************
$INCLU%E UNI&E!SE'INCLU%E O%C'
** I#ta+se parameters O%C
"#s = -
.e#/ = SQL'NULL'EN&
.Co## = SQL'NULL'%C
.stmt = SQL'NULL'ST0T
** Co##ect to %ataSource
status = SQL"++ocE#/(.E#/)status = SQL"++ocCo##ect(.E#/, .Co##)status = SQLCo##ect(.Co##, dataSource, userName , password )
I1 status = SQL'E!!O!T.e#Ca++ %SLo2I#1o(3Co##ecto# 4O 3 , 3ExecSQLProc3)"#s = -5oto F#a++6E#d E+seCa++ %SLo2I#1o(3Co##ecto# O4 3 , 3ExecSQLProc3)E#d
** Executo# re7uest (.ere, m6 stored procedure )
status = SQL"++ocStmt(.Co##, .Stmt)
http://www.tek-tips.com/viewthread.cfm?qid=268113http://www.tek-tips.com/viewthread.cfm?qid=268113 -
8/9/2019 76630315 Datastage Routines
64/64
Stmt= 3exec 06StoredProc 83
Ca++ %SLo2I#1o(3re7uest SQL9 3 9 Stmt, 3ExecSQLProc3)
status = SQLExec%rect(.Stmt, Stmt)
I1 status:SQL'SUCCESS "N% status:SQL'SUCCESS';IT'INFOT.e#Ca++ %SLo2I#1o(3!e7uest 4O 3, 3ExecSQLProc3)"#s = -5oto F#a++6E#d E+seCa++ %SLo2I#1o(3!e7uest O4 3, 3ExecSQLProc3)E#d
** I1 m6 stored proc retur# a resu+t , put t #