76630315 Datastage Routines

Embed Size (px)

Citation preview

  • 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 #