SeanHoppe.com › Cleo CodeSamples › Inbound Exit Point using Long Parm List to Send Email When Inbound PO (850) is Translated
For additional EXTOL EDI Integrator RPGLE Examples: Sean Hoppe Consulting Group Coding Samples
h Debug(*Yes) Datedit(*Ymd)
**************************************************************************
*
* Warning: This program does not set on the LR.
*
**************************************************************************
* SYNOPSIS :
* External call program which uses the "long
* parameter list".
**************************************************************************
* Maintenance : Manually modified Synon program.
**************************************************************************
* BMR Date Description
* ---- ---------- ----------------------------------------------------------------
**************************************************************************
*
fExmmtrl0 if e k Disk
* Extol Message Class constants
fExllmrl1 if e k Disk
* Extol Log of Message File
*
* Data structures:
d*Pgmds EsDs Extname(EXPGSDS)
* Program data structure
d Jbdttm Ds
* Job date/time
* Parameter declarations
<---- LONG PARM LIST ---->
d Optrtn ds
* Listing of valid Return Request Qualifiers
* @@ in retruned value replace with the field prefix.
d @@UpdateFlag 1 10 Inz('UPDATEFLG')
*
* CL Commands to Perform
d Command s 100 Dim(6) Ctdata Perrcd(1) Commands
*
d @@Cmd s 3000
d @@Cmdlength s 15 5 Inz(3000)
*
d P0rtn s Like(W0rtn)
*
d @Cnln s 7 Trans status
d @MSG s 10 Trans status
d @TP s 6 TP Code
d @STAT s 3 State
d @PO s 10 PO Number
d @TO s 37 To email address
d @SUBJ s 33 Subject line
d @BODY s 240 Email body
d @Email s 3000 Email cmd
d @Const s 5 INZ('ADD') Msgclss const
**************************************************************************
* Mainline Program.
**************************************************************************
c Exsr Srinit
*
* Perform Functions to Override, Update and Close Files
c Exsr Mod0s1 Override Database
*
* A "Return code" of non-blank will be logged as a translation error:
c Eval W0Rtn = *Blanks *Return code
c Return
**************************************************************************
* Srdefn - Definitions
**************************************************************************
c Srdefn Begsr
*
* Entry parameters
c *Entry Plist
<---- LONG PARAMETER LIST ---->
*
* Parameters for 'QCMDEXC'
c Qcmd Plist
c Parm @Email
c Parm 3000 @@Cmdlength
*
* Key to the EXMMTRL0 - Message class constants
c KeyExmmtrl0 Klist
c Kfld P4MSID
c Kfld P4MSCL
c Kfld @CONST
*
c Endefn Endsr
**************************************************************************
* Srinit - Initialization.
**************************************************************************
c Srinit Begsr
*
* Initialise indicators for re-entry
c Move '0' *In
*
c Eninit Endsr
**************************************************************************
* Mod0s1 - Override the Address Book Master to the Correct Library.
**************************************************************************
c Mod0s1 Begsr
*
* Retrieve the Message Log data.
* This data will determine if inbound message was translated or error'd
c P4Msln Chain Exllmrl1 98
*
* If the Function Status is Translated then move 'Translated' into @MSG
c If LmFstm = 'T'
c Eval @MSG = 'Translated'
c ENDIF
*
* If the Function Status is Trans err then move 'Trans error' into @MSG
c If LmFstm = 'E'
c Eval @MSG = 'Trans err'
c ENDIF
*
C Eval @PO = LMREF1
C Eval @STAT = LMREF3
C Eval @SUBJ = P4TPC1
C Eval @TP = P4TPC1
*
* Setup of @SUBJ variable to for email subject
* Transation status and PO # are placed into subject line
c Eval %Subst(@SUBJ:8:2) = 'PO'
c Eval %Subst(@SUBJ:11:10) = @MSG
c Eval %Subst(@SUBJ:21:1) = '-'
c Eval %Subst(@SUBJ:22:10) = @PO
C
* Setup of @body variable to for email body
* Connection log number, msg control # (element ST02), and state (element N402)
* are passed into email body
C Eval @Body = 'Connection log:'
c MOVEL P4CNLN @Cnln
c Eval %Subst(@Body:16:7) = @Cnln
c Eval %Subst(@Body:24:5) = 'EDI#:'
c Eval %Subst(@Body:29:9) = P4Mscr
c Eval %Subst(@Body:39:6) = 'State:'
c Eval %Subst(@Body:45:2) = P4REf3
c* Eval %Subst(@Body:47:2) = ' )'
*
*
* Chain out to message class constant file
* PGM will retrieve all constant values from ADD1 thru ADD9
* Note: If > 9 ADDx constants are utilized, then increase size of @COUNT var
C MOVE 1 @COUNT 1 0
C MOVEL @COUNT @COUNTA 1
c Eval %Subst(@CONST:4:1) = @COUNTA
c KeyExmmtrl0 Chain Exmmtrl0 95
*
* If constants:ADDx exsist in respective message class
* Message class is determined by parms passed from extol, in long parm list
C DOW *in95 = *off
*
* Clear To-email address variable. Move MTCDAT from EXMMTRL0 to @TO var.
C CLEAR @TO
C MOVEL MTCDAT @TO
*
* Move to-email address to first record of table data
c Clear @@Cmd
c Eval @@Cmd = Command(1)
c Eval %Subst(@@Cmd:15:37) = @TO
c Eval @Email = @@Cmd
*
* Move subject line to second record of table data
c Clear @@Cmd
c Eval @@Cmd = Command(2)
c Eval %Subst(@@Cmd:37:32) = @SUBJ
c Eval %Subst(@Email:71:70) = @@Cmd
*
* Move body line to third record of table data
c Clear @@Cmd
c Eval @@Cmd = Command(3)
c Eval %Subst(@@Cmd:11:50) = @Body
c Eval %Subst(@Email:141:65) = @@Cmd
* Call EXENOTE command
c Call 'QCMDEXC' Qcmd 96
C*
C ADD 1 @COUNT
C MOVEL @COUNT @COUNTA 1
c Eval %Subst(@CONST:4:1) = @COUNTA
c KeyExmmtrl0 Chain Exmmtrl0 95
C enddo
*
c Endsr
** Command Override DBF Array
EXENOTE TOADR( ) FROMADR(ABCDE@ABC
DEFGH.com) FROMNAME(JOHND) SUBJECT(' ')
MESSAGE(' ')