SeanHoppe.com › Cleo CodeSamples › TPMC Exit Point Long Parm List -- Copy Records After Outbound Enveloping
For additional EXTOL EDI Integrator RPGLE Examples: Sean Hoppe Consulting Group Coding Samples
h Debug(*Yes) Datedit(*Ymd)
H DEBUG DATEDIT(*YMD)
F* CRTRPGPGM
F* OPTION(*NOXREF)
*
F* Warning: This program does not set on the LR indicator
*
H* SYNOPSIS :
H* PGM will be called each time a Nordstrom (4420) 856 is enveloped/wrapped sent. Given that this
H* PGM is only called for Nordstroms (4420) we do not have to test for the partner ID.
H* The pgm will read LMREF3 to get E1SCTL. With E1SCTL we will read the Nodstrom VEDXSHS record
H* to determine the carrier (E1VIA). We will get the 1st 3 characters of E1VIA to see if value
H* is 'UPS. If 'UPS' we will run 5 SQL insert statements to copy the data from
H* VEDXSHx tables to VEFXSHx tables.
H*
H* After exit point program is called a separate CL will be called to run
H* CRTAPPDTA(B). CRTAPPDTA(B) will envelope the data and wait for the next successful S2K
H* job to wrap and send the data. CRTAPPDTA(B) will also updated the process flag in VEFXSHS.
H* CRTAPPDTA FSET(VAI856S4) TEXT('NORDSTROM/UPS outbound ASN')
H* ERROPT(*NO) CRTENV(*YES) TRDPNR(4420) GROUP(SH) MSGID(856)
H* MSGCLS(O856_4420U) RSLTMETHOD(*RUNTIME) PARCHLDREL(*YES)
*
H* User name : SHOPPE
H* Date generated: 09/02/14
*
*================================================================
F* Maintenance :
*================================================================
* EXTOL Message Logs
FEXLLMRL1 IF E K DISK
FVEDXSHSL1 IF E K DISK
* Temporary variables
DSCTL S 7A
D@SCTL s Like(E1SCTL)
D@E1VIA s Like(E1VIA)
D@CMP s Like(E1CMP)
D*
*
* Parameter declarations
D P1PARM DS
* O : MAP Function status
D P1FSTS 1 1
D P2PARM DS
* O : MAP In process status
D P2ISTS 1 1
D P3PARM DS
* FLD: Trading pnr msg cls exit
* I : MAP Message level event code
D P3MLEV 1 2
* I : MAP Processing option
D P3PROP 3 3
* I : MAP Scheduling priority
D P3SCPR 4 4
* I : MAP Submit with job name
D P3SBJN 5 14
* I : MAP Submit with job desc
D P3SBJD 15 24
* I : MAP Submit with job desc libr
D P3SJDL 25 34
* I : MAP Submit to job queue
D P3SBJQ 35 44
* I : MAP Submit job queue priority
D P3SBJP 45 45
* I : MAP Submit with user name
D P3SBJU 46 55
* I : MAP Submit with routing data
D P3SRTG 56 95
* I : MAP Days to retain data
D P3DRDT 96 98P 0
* I : MAP Days to retain logs
D P3DRLG 99 101P 0
* I : MAP Hours before ack is late
D P3HRAL 102 104P 2
* I : MAP Exit point status
D P3EXST 105 105
* I : MAP Exit point operation
D P3EXOP 106 106
* I : MAP Exit action on return
D P3EACT 107 107
* I : MAP Return value pass
D P3PRTN 108 114
* I : MAP Function status - pass
D P3FSPA 115 115
* I : MAP In process status - pass
D P3ISPA 116 116
* I : MAP Return value fail
D P3FRTN 117 123
* I : MAP Function status - fail
D P3FSFA 124 124
* I : MAP In process status - fail
D P3ISFA 125 125
* I : MAP External pgm parm type
D P3EXPT 126 126
* I : MAP External program name
D P3EXPG 127 136
* I : MAP External program library
D P3EXLB 137 146
* I : MAP Exit command string
D P3ECMD 147 402
D P4PARM DS
* FLD: Log of message
* I : MAP Message log number
D P4MSLN 1 6P 0
* I : MAP Connection log number
D P4CNLN 7 10P 0
* I : MAP Interchange log number
D P4INLN 11 15P 0
* I : MAP Group log number
D P4GPLN 16 20P 0
* I : MAP Application data log #
D P4APLN 21 25P 0
* I : MAP Trading partner codeRef 1
D P4TPC1 26 31
* I : MAP Group code Ref 1
D P4GPC1 32 37
* I : MAP Message ID
D P4MSID 38 43
* I : MAP Message class
D P4MSCL 44 53
* I : MAP Message ID Ref 1
D P4MSI1 54 59
* I : MAP Message class Ref 1
D P4MSC1 60 69
* I : MAP Message direction
D P4MSDI 70 70
* I : MAP Function status - message
D P4FSTM 71 71
* I : MAP In process status - msg
D P4ISTM 72 72
* I : MAP Ack status - message
D P4ASTM 73 73
* I : MAP Reference # 1
D P4REF1 74 103
* I : MAP Reference # 2
D P4REF2 104 133
* I : MAP Reference # 3
D P4REF3 134 163
* I : MAP Reference date 1
D P4RFD1 164 169P 0
* I : MAP Reference date 2
D P4RFD2 170 175P 0
* I : MAP Message control reference
D P4MSCR 176 189
* I : MAP Controlling agncy log msg
D P4CTAM 190 191
* I : MAP Standard class log of msg
D P4SCLM 192 192
* I : MAP Industry group log of msg
D P4IGLM 193 193
* I : MAP V-R Log of message
D P4VRLM 194 199
* I : MAP Industry group ID log msg
D P4IGIM 200 205
* I : MAP Common access reference
D P4CARF 206 240
* I : MAP Transfer status
D P4STTF 241 241
* I : MAP Transfer sequence
D P4SQTF 242 243P 0
* I : MAP Start wrapped record
D P4WRRS 244 248P 0
* I : MAP Start wrap char position
D P4WRCS 249 251P 0
* I : MAP Application file name
D P4GFIL 252 261
* I : MAP Record format name
D P4RCFM 262 271
* I : MAP Relative record number
D P4RRNM 272 276P 0
* I : MAP Start nonwrapped record
D P4NWRS 277 281P 0
* I : MAP End nonwrapped record
D P4NWRE 282 286P 0
* I : MAP Start nonwrap record(app)
D P4NWAS 287 291P 0
* I : MAP End nonwrap record (app)
D P4NWAE 292 296P 0
* I : MAP Sequence# of assoc. ack.
D P4AREF 297 302P 0
* I : MAP Translation job control
D P4TJOB 303 308P 0
/EJECT
*****************************************************************
* Entry parameters
C *ENTRY PLIST
C PARM P0RTN 7
C P1FSTS PARM P1FSTS WP0001 1 Function status
C P2ISTS PARM P2ISTS WP0002 1 In process stat
C P3MLEV PARM WP0003 2 Message level e
C P3PROP PARM WP0004 1 Processing opti
C P3SCPR PARM WP0005 1 Scheduling prio
C P3SBJN PARM WP0006 10 Submit with job
C P3SBJD PARM WP0007 10 Submit with job
C P3SJDL PARM WP0008 10 Submit with job
C P3SBJQ PARM WP0009 10 Submit to job q
C P3SBJP PARM WP0010 1 Submit job queu
C P3SBJU PARM WP0011 10 Submit with use
C P3SRTG PARM WP0012 40 Submit with rou
C P3DRDT PARM WP0013 5 0 Days to retain
C P3DRLG PARM WP0014 5 0 Days to retain
C P3HRAL PARM WP0015 5 2 Hours before ac
C P3EXST PARM WP0016 1 Exit point stat
C P3EXOP PARM WP0017 1 Exit point oper
C P3EACT PARM WP0018 1 Exit action on
C P3PRTN PARM WP0019 7 Return value pa
C P3FSPA PARM WP0020 1 Function status
C P3ISPA PARM WP0021 1 In process stat
C P3FRTN PARM WP0022 7 Return value fa
C P3FSFA PARM WP0023 1 Function status
C P3ISFA PARM WP0024 1 In process stat
C P3EXPT PARM WP0025 1 External pgm pa
C P3EXPG PARM WP0026 10 External progra
C P3EXLB PARM WP0027 10 External progra
C P3ECMD PARM WP0028 256 Exit command st
C P4MSLN PARM WP0029 11 0 Message log num
C P4CNLN PARM WP0030 7 0 Connection log
C P4INLN PARM WP0031 9 0 Interchange log
C P4GPLN PARM WP0032 9 0 Group log numbe
C P4APLN PARM WP0033 9 0 Application dat
C P4TPC1 PARM WP0034 6 Trading partner
C P4GPC1 PARM WP0035 6 Group code
C P4MSID PARM WP0036 6 Message ID
C P4MSCL PARM WP0037 10 Message class
C P4MSI1 PARM WP0038 6 Message ID
C P4MSC1 PARM WP0039 10 Message class
C P4MSDI PARM WP0040 1 Message directi
C P4FSTM PARM WP0041 1 Function status
C P4ISTM PARM WP0042 1 In process stat
C P4ASTM PARM WP0043 1 Ack status - me
C P4REF1 PARM WP0044 30 Reference # 1
C P4REF2 PARM WP0045 30 Reference # 2
C P4REF3 PARM WP0046 30 Reference # 3
C P4RFD1 PARM WP0047 11 0 Reference date
C P4RFD2 PARM WP0048 11 0 Reference date
C P4MSCR PARM WP0049 14 Message control
C P4CTAM PARM WP0050 2 Controlling agn
C P4SCLM PARM WP0051 1 Standard class
C P4IGLM PARM WP0052 1 Industry group
C P4VRLM PARM WP0053 6 V-R Log of mess
C P4IGIM PARM WP0054 6 Industry group
C P4CARF PARM WP0055 35 Common access r
C P4STTF PARM WP0056 1 Transfer status
C P4SQTF PARM WP0057 2 0 Transfer sequen
C P4WRRS PARM WP0058 9 0 Start wrapped r
C P4WRCS PARM WP0059 5 0 Start wrap char
C P4GFIL PARM WP0060 10 Application fil
C P4RCFM PARM WP0061 10 Record format n
C P4RRNM PARM WP0062 9 0 Relative record
C P4NWRS PARM WP0063 9 0 Start nonwrappe
C P4NWRE PARM WP0064 9 0 End nonwrapped
C P4NWAS PARM WP0065 9 0 Start nonwrap r
C P4NWAE PARM WP0066 9 0 End nonwrap rec
C P4AREF PARM WP0067 11 0 Sequence# of as
C P4TJOB PARM WP0068 11 0 Translation job
*****************************************************************
*
* Key to the Item Cross Reference File by 2nd Item/Xref Type/Address Number
C KeyEFXSHSR KLIST
C KFLD @CMP
C KFLD @SCTL
*
* Query message log number LF to retrieve S2K control number.
* place control number into variable SCTL
C P4MSLN CHAIN EXLLMRL1 98
*
C MOVEL LMREF3 SCTL
C MOVEL LMREF3 @SCTL
C
C* Select Shipment record to determine carrier code.
C* We will copy data if data if 1st 3 characters are 'UPS'
C MOVE 1 @CMP
C KeyEFXSHSR CHAIN EDXSHSR 97
C EVAL @E1VIA =%SUBST(E1VIA:1:3)
C*
C @E1VIA IFEQ 'UPS'
C
C* Move data from VEDXSHH->VEFXSHH
C/EXEC SQL
C+ INSERT INTO VEFXSHH SELECT * FROM VEDXSHH
C+ WHERE VEDXSHH.E0SCTL = :SCTL
C/END-EXEC
C
C* Move data from VEDXSHS->VEFXSHS
C/EXEC SQL
C+ INSERT INTO VEFXSHS SELECT * FROM VEDXSHS
C+ WHERE VEDXSHS.E1SCTL = :SCTL
C/END-EXEC
C
C* Move data from VEDXSHO->VEFXSHO
C/EXEC SQL
C+ INSERT INTO VEFXSHO SELECT * FROM VEDXSHO
C+ WHERE VEDXSHO.E2SCTL = :SCTL
C/END-EXEC
C
C* Move data from VEDXSHB->VEFXSHB
C/EXEC SQL
C+ INSERT INTO VEFXSHB SELECT * FROM VEDXSHB
C+ WHERE VEDXSHB.E3SCTL = :SCTL
C/END-EXEC
C
C* Move data from VEDXSHD->VEFXSHD
C/EXEC SQL
C+ INSERT INTO VEFXSHD SELECT * FROM VEDXSHD
C+ WHERE VEDXSHD.E4SCTL = :SCTL
C/END-EXEC
C ENDIF
*
* User code should set PGM.*Return code to non-blank on fail;
* the suggested usage is message ID of an appropriate error message
* (the return code field is 7 character alpha)
* .
C MOVE *BLANK P0RTN
* .
*================================================================
* Exit program: Direct
*================================================================
C RETURN
*================================================================