SeanHoppe.com › ERP › VAI/S2K › R50MODS CL › CL :: EDUPDSC1
/*‚******************************************************************/
/*‚* DEVELOPED BY : VAI COMPUTER SYSTEMS INC. Copyright 1998, 2004 **/
/*‚* **/
/*‚* FOR : System 2000 **/
/*‚* PROGRAMMER : Chand Babu Log: 150054 **/
/*‚* DATE WRITTEN : 01/18/2005 **/
/*‚* MODULE : EDI **/
/*‚* **/
/*‚* MODIFIED BY : LARRY HAINES Log: 164919 G4919 **/
/*‚* DATE : 8/25/2005 **/
/*‚* DESCRIPTION : ADD F4 SEARCH FOR DOCUMENT ID **/
/*‚* **/
/*‚* MODIFIED BY : Bob Moloney Log: Rel 5.0 **/
/*‚* DATE : 08/06/2007 Scan: bm01 **/
/*‚* DESCRIPTION : Change company variables to 3 positions **/
/*‚* **/
/*‚* MODIFIED BY : James Lai Log: Rel 5.0 **/
/*‚* DATE : 09/04/2008 Scan: 235069 **/
/*‚* DESCRIPTION : Check user company authorization **/
/*‚* **/
/*‚*---------------------------------------------------------------**/
/*‚* SYSTEM NAME : AS/400 **/
/*‚*---------------------------------------------------------------**/
/*‚* DESCRIPTION : Extract EDI Documents to Send **/
/*‚*---------------------------------------------------------------**/
/*‚* *NOTE: If sending this program and customer does not have **/
/*‚* version of XASRVPG (service program) with log 236615 **/
/*‚* Then it will need to be sent, compiled & rebound to **/
/*‚* All Programs (XAUPPGCL). (all CL's in log 236615) **/
/*‚******************************************************************/
PGM
DCL VAR(&INKCKL) TYPE(*CHAR) LEN(1)
DCL VAR(&YYMM) TYPE(*CHAR) LEN(4)
DCL VAR(&RQSDTA) TYPE(*CHAR) LEN(256)
DCL VAR(&USER) TYPE(*CHAR) LEN(10) /* USER NME */
DCL VAR(&IN98) TYPE(*LGL) LEN(1) VALUE('1')
DCL VAR(&IN99) TYPE(*LGL) LEN(1) VALUE('1')
DCL VAR(&FLOC) TYPE(*CHAR) LEN(4)
DCL VAR(&TLOC) TYPE(*CHAR) LEN(4)
DCL VAR(&PGM) TYPE(*CHAR) LEN(10) +
VALUE('EDUPDSC1')
DCL VAR(&AUTYN) TYPE(*CHAR) LEN(1)
DCL VAR(&NRCPY) TYPE(*CHAR) LEN(2) VALUE('01')
DCL VAR(&ERR2) TYPE(*CHAR) LEN(1)
DCL VAR(&ERRFL) TYPE(*CHAR) LEN(1) VALUE('N')
DCL VAR(&APPL) TYPE(*CHAR) LEN(2) VALUE('AP')
DCL VAR(&PFILE) TYPE(*CHAR) LEN(8) +
VALUE('EDUPDSFM')
DCL VAR(&PREC1) TYPE(*CHAR) LEN(8) +
VALUE('EDUPDS01')
DCL VAR(&PREC2) TYPE(*CHAR) LEN(8)
DCL VAR(&PREC3) TYPE(*CHAR) LEN(8)
DCL VAR(&PEOJ) TYPE(*CHAR) LEN(1)
DCL VAR(&ERRDAT) TYPE(*CHAR) LEN(1)
DCL VAR(&ERRPID) TYPE(*CHAR) LEN(1)
DCL VAR(&ERRCOP) TYPE(*CHAR) LEN(1)
DCL VAR(&ERRMSG) TYPE(*CHAR) LEN(69) +
VALUE('Invalid data found! Please try +
again.')
DCL VAR(&ACCT) TYPE(*CHAR) LEN(7) VALUE('*ALL ')
DCL VAR(&FVEND) TYPE(*CHAR) LEN(6) VALUE(' ')
DCL VAR(&TVEND) TYPE(*CHAR) LEN(6) VALUE('999999')
DCL VAR(&FCUST) TYPE(*CHAR) LEN(7) VALUE(' ')
DCL VAR(&TCUST) TYPE(*CHAR) LEN(7) VALUE('9999999')
DCL VAR(&FREF) TYPE(*DEC ) LEN(9) VALUE(000000000)
DCL VAR(&TREF) TYPE(*DEC ) LEN(9) VALUE(999999999)
DCL VAR(&FORD) TYPE(*DEC) LEN(9) VALUE(000000000)
DCL VAR(&TORD) TYPE(*DEC ) LEN(9) VALUE(999999999)
DCL VAR(&FBOCD) TYPE(*DEC) LEN(3) VALUE(000)
DCL VAR(&TBOCD) TYPE(*DEC ) LEN(3) VALUE(999)
DCL VAR(&FAREF) TYPE(*CHAR) LEN(20) +
VALUE(' ')
DCL VAR(&TAREF) TYPE(*CHAR) LEN(20) +
VALUE('99999999999999999999')
DCL VAR(&FRDTE) TYPE(*DEC) LEN(6 0) VALUE(000000)
DCL VAR(&TRDTE) TYPE(*DEC) LEN(6 0) VALUE(999999)
DCL VAR(&EDST) TYPE(*CHAR) LEN(10) +
VALUE('*ALL ')
DCL VAR(&FD_A) TYPE(*CHAR) LEN(6)
DCL VAR(&TD_A) TYPE(*CHAR) LEN(6)
DCL VAR(&FREF_A) TYPE(*CHAR) LEN(9)
DCL VAR(&TREF_A) TYPE(*CHAR) LEN(9)
DCL VAR(&FORD_A) TYPE(*CHAR) LEN(9)
DCL VAR(&TORD_A) TYPE(*CHAR) LEN(9)
DCL VAR(&FBOCD_A) TYPE(*CHAR) LEN(3)
DCL VAR(&TBOCD_A) TYPE(*CHAR) LEN(3)
/**** WORKING FIELDS FOR SEARCH F4=IN04 ****/
DCL VAR(&COMP) TYPE(*CHAR) LEN(3) /* bm01 */
DCL VAR(&XCOMP) TYPE(*CHAR) LEN(3) /* bm01 */
DCL VAR(&XDESC) TYPE(*CHAR) LEN(30) VALUE(' ')
DCL VAR(&XVEND) TYPE(*CHAR) LEN(6)
DCL VAR(&XCUST) TYPE(*CHAR) LEN(7)
DCL VAR(&EOJ) TYPE(*CHAR) LEN(1)
DCL VAR(&XPO ) TYPE(*CHAR) LEN(9)
DCL VAR(&XINV) TYPE(*CHAR) LEN(12)
DCL VAR(&XPGM) TYPE(*CHAR) LEN(10) VALUE(EDUPDSC1)
DCL VAR(&ERR) TYPE(*CHAR) LEN(1)
DCL VAR(&ERRCMP) TYPE(*CHAR) LEN(3) /* bm01 */
DCL VAR(&CCYYMM) TYPE(*CHAR) LEN(6)
DCL VAR(&ERR_YEAR) TYPE(*CHAR) LEN(4)
DCL VAR(&APPLYL) TYPE(*CHAR) LEN(2)
DCL VAR(&CCYYPP) TYPE(*CHAR) LEN(6)
DCL VAR(&JOB) TYPE(*CHAR) LEN(10) /* Job Name */
DCL VAR(&SHP) TYPE(*CHAR) LEN(7)
DCL VAR(&ORD) TYPE(*CHAR) LEN(12)
DCL VAR(&INV) TYPE(*CHAR) LEN(9)
DCL VAR(&NETNAME) TYPE(*CHAR) LEN(30)
DCL VAR(&LGLHEAD) TYPE(*CHAR) LEN(10)
DCL VAR(&PNETY) TYPE(*CHAR) LEN(1) VALUE(' ')
DCL VAR(&XNETID) TYPE(*CHAR) LEN(15)
/* G4919 */ DCL VAR(&XEDST) TYPE(*CHAR) LEN(10)
/**** WORKING FIELDS FOR SEARCH F4=IN04 ****/
DCL VAR(&DISPLAY) TYPE(*CHAR) LEN(9)
DCL VAR(&SBMHOLD) TYPE(*CHAR) LEN(5) +
VALUE('*JOBD')
DCL VAR(&JOB_DATE ) TYPE(*CHAR) LEN(8)
DCL VAR(&JOB_TIME ) TYPE(*CHAR) LEN(8)
DCL VAR(&JOB_NAME ) TYPE(*CHAR) LEN(10)
DCL VAR(&JOB_USER ) TYPE(*CHAR) LEN(10)
DCL VAR(&JOB_NUMBER) TYPE(*CHAR) LEN(6)
DCL VAR(&RET_CODE) TYPE(*CHAR) LEN(3)
/*235069*/ DCL VAR(&CMP0) TYPE(*DEC) LEN(3 0)
/*235069*/ DCL VAR(&BAD) TYPE(*CHAR) LEN(1)
/*235069*/ DCL VAR(&RTN) TYPE(*CHAR) LEN(16)
DCLF FILE(EDUPDSFM)
RTVJOBA USER(&USER) OUTQ(&PRTID) DATE(&RPTDT) /*31777*/
/***************************************************************/
/**** CHECK IF USER IS AUTHORIZED ACCESS TO PROGRAM ****/
/***************************************************************/
CALL PGM(*LIBL/XACKSCC1) PARM(&USER &PGM &AUTYN)
IF COND(&AUTYN *EQ 'N') THEN(RETURN)
/* CHGVAR VAR(&CMP) VALUE('01') */
CALL PGM(XACHKCL) PARM(&USER &COMP &FLOC &IN98 +
&IN99)
CHGVAR VAR(&CMP) VALUE(&COMP)
IF COND(&IN98 *EQ '1') THEN(DO)
ENDDO
CHGVAR VAR(&XXPREV) VALUE('Y')
CHGVAR VAR(&XXTRANS) VALUE('Y')
CHGVAR VAR(&XXSEND) VALUE('Y')
/* RETRIEVE DEFAULT NETWORK FROM CONSTANTS FILE */
/* CALL PGM(EDNETW02) PARM(&XXNETW &NETNAME) */
CHGVAR VAR(&XXNETW) VALUE('*ALL')
PROMPT: SNDRCVF RCDFMT(EDUPDS01)
CHGVAR VAR(&$ERROR) VALUE(' ')
CHGVAR VAR(&$ERROR) +
VALUE(' ')
IF COND(&IN12 *EQ '1') THEN(DO)
RETURN
ENDDO
IF COND(&IN03 *EQ '1') THEN(DO)
RETURN
ENDDO
/* HELP */
IF COND(&IN95 = '1') THEN(DO)
CALL PGM(XAHLPPGM) PARM(&PFILE &PREC1 &PREC2 +
&PREC3) /* Call Help Program */
GOTO CMDLBL(PROMPT)
ENDDO
CHGVAR VAR(&IN80) VALUE('0')
CHGVAR VAR(&IN81) VALUE('0')
CHGVAR VAR(&IN82) VALUE('0')
CHGVAR VAR(&CROW) VALUE(000)
CHGVAR VAR(&CCOL) VALUE(000)
/********************************************************************/
/* PERFORM SEARCHES */
IF COND(&IN04 *EQ '1') THEN(DO) /* FIELD SEARCH */
/* SEARCH FROM COMPANY */
IF COND(&IN98 *EQ '0') THEN(DO)
IF COND(&CSRFLD *EQ 'CMP ') THEN(DO)
CHGVAR VAR(&CROW) VALUE(03)
CHGVAR VAR(&CCOL) VALUE(30)
CHGVAR VAR(&XCOMP) VALUE(' ')
CHGVAR VAR(&XDESC) VALUE(' ')
CALL PGM(SRCOMP) PARM(&XCOMP &XDESC &INKCKL)
IF COND(&INKCKL = 'C') THEN(DO)
RETURN
ENDDO
IF COND(&XCOMP *NE ' ') THEN(DO) /* bm01 */
CHGVAR VAR(&CMP ) VALUE(&XCOMP)
CHGVAR VAR(&CROW) VALUE(04)
CHGVAR VAR(&CCOL) VALUE(30)
ENDDO
GOTO CMDLBL(PROMPT)
ENDDO
ENDDO
/* SEARCH FROM VENDOR */
IF COND(&ATYP *EQ 'V' ) THEN(DO)
IF COND(&CSRFLD *EQ 'ACCT ') THEN(DO)
CHGVAR VAR(&CROW) VALUE(04)
CHGVAR VAR(&CCOL) VALUE(33)
CHGVAR VAR(&XVEND) VALUE(' ')
CHGVAR VAR(&EOJ) VALUE(' ')
CALL PGM(SPVEND) PARM(&CMP &XVEND &EOJ)
IF COND(&XVEND *NE ' ') THEN(DO)
CHGVAR VAR(&ACCT ) VALUE(&XVEND)
CHGVAR VAR(&CROW) VALUE(05)
CHGVAR VAR(&CCOL) VALUE(30)
ENDDO
GOTO CMDLBL(PROMPT)
ENDDO
ENDDO
IF COND(&ATYP *EQ 'C' ) THEN(DO)
/* SEARCH FROM CUSTOMER */
IF COND(&CSRFLD *EQ 'ACCT ') THEN(DO)
CHGVAR VAR(&CROW) VALUE(04)
CHGVAR VAR(&CCOL) VALUE(33)
CHGVAR VAR(&XCUST) VALUE(' ')
CHGVAR VAR(&EOJ) VALUE(' ')
CALL PGM(SRCUST) PARM(&CMP &XCUST &JOB &USER +
&PGM &SHP &ORD &INV)
IF COND(&XCUST = 'EOJ####') THEN(DO)
RETURN
ENDDO
IF COND(&XCUST *NE ' ') THEN(DO)
CHGVAR VAR(&ACCT ) VALUE(&XCUST)
CHGVAR VAR(&CROW) VALUE(05)
CHGVAR VAR(&CCOL) VALUE(30)
ENDDO
GOTO CMDLBL(PROMPT)
ENDDO
ENDDO
/* G4919 */ /* SEARCH DOCUMENT ID */
IF COND(&CSRFLD *EQ 'EDST ') THEN(DO)
CHGVAR VAR(&XEDST) VALUE(' ')
CHGVAR VAR(&CROW) VALUE(05)
CHGVAR VAR(&CCOL) VALUE(30)
CALL PGM(SRDOCID) PARM(&XEDST)
IF COND(&XEDST *NE ' ') THEN(DO)
CHGVAR VAR(&EDST) VALUE(&XEDST)
CHGVAR VAR(&CROW) VALUE(06)
CHGVAR VAR(&CCOL) VALUE(30)
ENDDO
GOTO CMDLBL(PROMPT)
/* G4919 */ ENDDO
/* SEARCH NETWORK ID */
IF COND(&CSRFLD *EQ 'XXNETW ') THEN(DO)
CHGVAR VAR(&XNETID) VALUE(' ')
CHGVAR VAR(&CROW) VALUE(06)
CHGVAR VAR(&CCOL) VALUE(30)
CALL PGM(SRNETW) PARM(&CMP &XNETID &NETNAME +
&LGLHEAD &PNETY) /*6KXN*/
IF COND(&XNETID *NE ' ') THEN(DO)
CHGVAR VAR(&XXNETW) VALUE(&XNETID)
CHGVAR VAR(&CROW) VALUE(07)
CHGVAR VAR(&CCOL) VALUE(30)
ENDDO
GOTO CMDLBL(PROMPT)
ENDDO
/* SEARCH PRINTER */
IF COND(&CSRFLD *EQ 'PRTID ') THEN(DO)
CHGVAR VAR(&CROW) VALUE(14)
CHGVAR VAR(&CCOL) VALUE(52)
CALL PGM(PRTSRH) PARM(&PRTID &INKCKL)
IF COND(&INKCKL = 'C') THEN(DO)
RETURN
ENDDO
IF COND(&PRTID *NE ' ') THEN(DO)
CHGVAR VAR(&CROW) VALUE(15)
CHGVAR VAR(&CCOL) VALUE(52)
ENDDO
ENDDO
GOTO CMDLBL(PROMPT)
ENDDO
/********************************************************************/
/*235069*/
/* EDIT COMPANY */
CHGVAR VAR(&CMP0) VALUE(&CMP)
/* 236615 CALLPRC PRC(SP_CMP_USR) PARM((&CMP0 *BYVAL) (&USER +
*BYVAL)) RTNVAL(&RTN) */
/* 236615 CHGVAR VAR(&BAD) VALUE(%SST(&RTN 1 1)) */
/* 236615 */ CALLPRC PRC(SP_CMP_USR) PARM((&CMP0 *BYVAL) (&USER +
*BYVAL)) RTNVAL(&BAD)
IF COND(&BAD *NE 'Y') THEN(DO)
CALLPRC PRC(SP_MSG_TXT) PARM(('XA00237' *BYVAL)) +
RTNVAL(&$ERROR)
GOTO CMDLBL(PROMPT)
ENDDO
/*235069*/
/* EDIT ACCOUNT type */
IF COND(&ATYP *NE 'C' *AND &ATYP *NE 'V' *AND +
&ACCT *NE '*ALL') THEN(DO)
CHGVAR VAR(&$ERROR) VALUE('Account Type must be +
C=Customer, V=Vendor.')
CHGVAR VAR(&CROW) VALUE(04)
CHGVAR VAR(&CCOL) VALUE(30)
GOTO CMDLBL(PROMPT)
ENDDO
IF COND(&ATYP *NE 'C' *AND &ATYP *NE 'V' *AND +
&ATYP *NE ' ') THEN(DO)
CHGVAR VAR(&$ERROR) VALUE('Account Type must be +
C=Customer, V=Vendor or blank')
CHGVAR VAR(&CROW) VALUE(04)
CHGVAR VAR(&CCOL) VALUE(30)
GOTO CMDLBL(PROMPT)
ENDDO
/* EDIT Send/Translation Flag */
/* IF COND(&XXTRANS *EQ 'N' *AND &XXSEND *EQ 'Y') + */
/* THEN(DO) */
/* CHGVAR VAR(&$ERROR) VALUE('Extracted Data must be + */
/* Translated to be Sent') */
/* CHGVAR VAR(&CROW) VALUE(15) */
/* CHGVAR VAR(&CCOL) VALUE(25) */
/* GOTO CMDLBL(PROMPT) */
/* ENDDO */
/********************************************************************/
CALL PGM(XACKPS) PARM(&RPTDT &PRTID &NRCPY +
&ERRDAT &ERRPID &ERRCOP)
IF COND(&ERRCOP *EQ 'E') THEN(DO)
CHGVAR VAR(&IN82) VALUE('1')
CHGVAR VAR(&$ERROR) VALUE(&ERRMSG)
ENDDO
IF COND(&ERRPID *EQ 'E') THEN(DO)
CHGVAR VAR(&IN81) VALUE('1')
CHGVAR VAR(&$ERROR) VALUE(&ERRMSG)
ENDDO
IF COND(&ERRDAT *EQ 'E') THEN(DO)
CHGVAR VAR(&IN80) VALUE('1')
CHGVAR VAR(&$ERROR) VALUE(&ERRMSG)
ENDDO
IF COND(&IN80 *EQ '1' *OR &IN81 *EQ '1' *OR +
&IN82 *EQ '1') THEN(DO)
GOTO CMDLBL(PROMPT)
ENDDO
CHGVAR VAR(&JOB_DATE) VALUE('*GETSYS')
CHGVAR VAR(&JOB_TIME) VALUE('*GETSYS')
CHGVAR VAR(&JOB_NAME) VALUE('*GETSYS')
CHGVAR VAR(&JOB_USER) VALUE('*GETSYS')
CHGVAR VAR(&JOB_NUMBER) VALUE('*GETSYS')
/* Allow the user to select batch here if docid = *NONE */
IF COND(&EDST = '*NONE') THEN(DO)
IF COND(&XXTRANS = 'Y') THEN(DO)
CALL PGM(EDSRNTFS) PARM(&JOB_DATE &JOB_TIME +
&JOB_NAME &JOB_USER &JOB_NUMBER 'F' &RET_CODE)
ENDDO
ELSE CMD(DO)
IF COND(&XXSEND = 'Y') THEN(DO)
CALL PGM(EDSRNTFS) PARM(&JOB_DATE &JOB_TIME +
&JOB_NAME &JOB_USER &JOB_NUMBER 'S' &RET_CODE)
ENDDO
ENDDO
IF COND(&RET_CODE = 'F12') THEN(GOTO +
CMDLBL(PROMPT))
IF COND(&IN03 *EQ '1') THEN(DO)
RETURN
ENDDO
ENDDO
CHGVAR VAR(&FD_A) VALUE(&FRDTE)
CHGVAR VAR(&TD_A) VALUE(&TRDTE)
CHGVAR VAR(&FREF_A) VALUE(&FREF )
CHGVAR VAR(&TREF_A) VALUE(&TREF )
CHGVAR VAR(&FORD_A) VALUE(&FORD )
CHGVAR VAR(&TORD_A) VALUE(&TORD )
CHGVAR VAR(&FBOCD_A) VALUE(&FBOCD)
CHGVAR VAR(&TBOCD_A) VALUE(&TBOCD)
IF COND(&IN06 *EQ '0') THEN(DO)
SUBMITJOB: SBMJOB CMD(CALL PGM(EDUPDSC2) PARM( +
&JOB_DATE +
&JOB_TIME +
&JOB_NAME +
&JOB_USER +
&JOB_NUMBER +
&CMP +
&ATYP +
&ACCT +
&EDST +
&XXNETW +
&FD_A +
&TD_A +
&FREF_A +
&TREF_A +
&FORD_A +
&TORD_A +
&FBOCD_A +
&TBOCD_A +
&FAREF +
&TAREF +
&XXPREV +
&XXTRANS +
&XXSEND +
&RPTDT +
&PRTID +
&NRCPY +
)) +
JOB(EDI_SEND)
ENDDO
IF COND(&IN06 *EQ '1') THEN(DO)
SNDF RCDFMT(EDUPDS02)
CALL PGM(EDUPDSC2) PARM( +
&JOB_DATE +
&JOB_TIME +
&JOB_NAME +
&JOB_USER +
&JOB_NUMBER +
&CMP +
&ATYP +
&ACCT +
&EDST +
&XXNETW +
&FD_A +
&TD_A +
&FREF_A +
&TREF_A +
&FORD_A +
&TORD_A +
&FBOCD_A +
&TBOCD_A +
&FAREF +
&TAREF +
&XXPREV +
&XXTRANS +
&XXSEND +
&RPTDT +
&PRTID +
&NRCPY +
)
ENDDO
ENDPGM