Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 22

class PayCycle method refreshAll(); method getPycyclBu(&PayCycle As string) Returns string; method findLowestStatus(&Status As string) Returns string; method

anyJobsRunning() Returns boolean; method currentJobActive() Returns boolean; method setUpApy2015(&PYCYCL_PROC_OPTION As string, &PAY_CYCLE As string, &PAY _CYCLE_SEQ_NUM As number, &SERVERNAME As string, &PYCYCL_DEL_REASON As string); method insertJobTbl(&JOB_TYPE As string, &PAY_RUN_AP_STATUS As string, &PRCSI NSTANCE As number, &PRCSTYPE As string, &PRCSNAME As string, &BUSPROC As string, &ACTIVITY As string, &EVENTNAME As string); method FinishRequest() Returns number; method validateServer(&servername As string, &prcstype As string) Returns num ber; method insertAeOpt(&OPRID As string, &RUN_CNTL_ID As string, &AE_APPLID As st ring, &AE_STATE_RECNAME As string, &AE_BIND_VAR As string, &AE_BIND_VALUE As str ing); method DelAERequestTbl(&sRunCntlID As string, &sProcessName As string); method SetUpApy2050(); method SetupAPFGProc(); method SetUpAEProc(); method serverupd(); private method countStatus(&Status As string) Returns number; method draftsApply() Returns boolean; method refreshNextStep(&STEP_TBL_NAME As string, &PAY_RUN_AP_STATUS As string ); method setupCrystal(&PRCSTYPE As string, &PRCSNAME As string, &FILENAME As st ring); end-class; /*************************************************************/ /* Method: getPycyclBu */ /*************************************************************/ /* */ /* Purpose: To concatenate a BU List for paycycle program */ /* so that it could be appended to sql statements */ /* involving pymnt_vchr_xref to force index scan */ /* */ /* Called by: AP_APY2015 */ /* Calls: (None) */ /* */ /*************************************************************/ method getPycyclBu /+ &PayCycle as String +/ /+ Returns String +/ Local Rowset &rs; Local number &i, &j; Local string &buList, &buList0, &bu; &rs = CreateRowset(Record.PYCYCL_BU); &rs.Fill("where pay_cycle = :1 and process_flg = 'Y'", &PayCycle); &j = 0; For &i = 1 To &rs.ActiveRowCount &bu = &rs.GetRow(&i).PYCYCL_BU.BUSINESS_UNIT.Value; If All(&bu) Then &j = &j + 1;

If None(&buList) Or &buList = " " Then &buList = "BUSINESS_UNIT IN ('" Else &buList = &buList ", '" &bu End-If; If &j = 1000 Then If None(&buList0) Then &buList0 = &buList; Else &buList0 = &buList0 End-If; &buList = " "; &j = 0; End-If; End-If; End-For; If All(&buList) Or &buList = " " Then If None(&buList0) Then &buList0 = &buList; Else If &buList <> " " Then &buList0 = &buList0 ") OR " End-If; End-If; &buList = "(" &buList0 "))"; Else &buList = "BUSINESS_UNIT IN (' ')"; End-If; Return &buList; end-method;

&bu "'";

"'";

") OR "

&buList;

&buList;

/*****************************************************************/ /* Method: countStatus */ /*****************************************************************/ /* */ /* Purpose: If all of the bank rows have the same status */ /* (which may have been advanced in the RowInit) */ /* update the overall status to match this new status */ /* */ /* Called by: findLowestStatus */ /* Calls: (None) */ /* */ /*****************************************************************/ method countStatus /+ &Status as String +/ /+ Returns Number +/ Local number &i, &j, &returnCount; &i = ActiveRowCount(Record.PYCYCL_STAT, 1, Record.PYCYCL_STATRPT); &returnCount = 0; For &j = 1 To &i If FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.PAY_RUN_AP_STATUS, &j) = &Status Then &returnCount = 1;

Break; End-If; End-For; Return &returnCount; end-method; /*****************************************************************/ /* Method: findLowestStatus */ /*****************************************************************/ /* */ /* Purpose: If all of the bank rows have the same status */ /* (which may have been advanced in the RowInit) */ /* update the overall status to match this new status */ /* */ /* Called by: PYCYCL_WORK.PYCYCL_REFRESH_STS.FieldChange */ /* Calls: countStatus */ /* */ /*****************************************************************/ method findLowestStatus /+ &Status as String +/ /+ Returns String +/ If %This.countStatus("U") <> 0 Then Return ("U"); Else If %This.countStatus("V") <> 0 Then Return ("V"); Else If %This.countStatus("X") <> 0 Then Return ("X"); Else If %This.countStatus("Y") <> 0 Then Return ("Y"); Else If %This.countStatus("Z") <> 0 Then Return ("Z"); Else If %This.countStatus("C") <> 0 And Not %This.anyJobsRunning() Then Return ("C"); Else Return (&Status); End-If; End-If; End-If; End-If; End-If; End-If; end-method; method currentJobActive /+ Returns Boolean +/ Local number &i, &PRCSINSTANCE; Local boolean &return = False; Local string &temp_fld; For &i = 1 To ActiveRowCount(PYCYCL_JOB_TBL.PAY_CYCLE); &PRCSINSTANCE = FetchValue(PYCYCL_JOB_TBL.PRCSINSTANCE, &i); &temp_fld = ""; SQLExec("Select 'x' from psprcsrqst where prcsinstance = :1 and runstatus in ('5','6','7')", &PRCSINSTANCE, &temp_fld); If &temp_fld = "x" Then

&return = True; Break; End-If; End-For; Return (&return); end-method; method anyJobsRunning /+ Returns Boolean +/ Local number &i; Local string &RUNSTATUS, &PRCSTYPE; Local boolean &return = False; For &i = 1 To ActiveRowCount(PYCYCL_JOB_TBL.PAY_CYCLE); &RUNSTATUS = FetchValue(PSPRCSRQST.RUNSTATUS, &i); &PRCSTYPE = FetchValue(PYCYCL_JOB_TBL.PRCSTYPE, &i); If &PRCSTYPE <> "Crystal Check" Then If &RUNSTATUS = "7" Or &RUNSTATUS = "5" Or &RUNSTATUS = "16" Or &RUNSTATUS = "6" Then &return = True; Break; End-If; End-If; End-For; Return (&return); end-method; method insertJobTbl /+ &JOB_TYPE as String, +/ /+ &PAY_RUN_AP_STATUS as String, +/ /+ &PRCSINSTANCE as Number, +/ /+ &PRCSTYPE as String, +/ /+ &PRCSNAME as String, +/ /+ &BUSPROC as String, +/ /+ &ACTIVITY as String, +/ /+ &EVENTNAME as String +/ Local number &CURRENT_ROW, &FIND, &JOB_ROW; Local string &FIND_STATUS; &CURRENT_ROW = ActiveRowCount(PYCYCL_JOB_TBL.PAY_CYCLE); InsertRow(Record.PYCYCL_JOB_TBL, &CURRENT_ROW); &JOB_ROW = 1; For &FIND = 1 To ActiveRowCount(PYCYCL_JOB_TBL.PAY_CYCLE); &FIND_STATUS = FetchValue(PYCYCL_JOB_TBL.PAY_RUN_AP_STATUS, &FIND); If None(&FIND_STATUS) Or &FIND_STATUS = " " Then &JOB_ROW = &FIND; Break; End-If; End-For; UpdateValue(PYCYCL_JOB_TBL.PAY_CYCLE, &JOB_ROW, PYCYCL_PNL_WRK4.PAY_CYCLE); UpdateValue(PYCYCL_JOB_TBL.PAY_CYCLE_SEQ_NUM, &JOB_ROW, PYCYCL_PNL_WRK4.PAY_C YCLE_SEQ_NUM); UpdateValue(PYCYCL_JOB_TBL.PAY_RUN_AP_STATUS, &JOB_ROW, &PAY_RUN_AP_STATUS); UpdateValue(PYCYCL_JOB_TBL.JOB_TYPE, &JOB_ROW, &JOB_TYPE); UpdateValue(PYCYCL_JOB_TBL.PRCSINSTANCE, &JOB_ROW, &PRCSINSTANCE); UpdateValue(PYCYCL_JOB_TBL.PRCSTYPE, &JOB_ROW, &PRCSTYPE); UpdateValue(PYCYCL_JOB_TBL.PRCSNAME, &JOB_ROW, &PRCSNAME); UpdateValue(PYCYCL_JOB_TBL.BANK_SETID, &JOB_ROW, PYCYCL_PNL_WRK4.BANK_SETID); UpdateValue(PYCYCL_JOB_TBL.BANK_CD, &JOB_ROW, PYCYCL_PNL_WRK4.BANK_CD);

UpdateValue(PYCYCL_JOB_TBL.BANK_ACCT_KEY, &JOB_ROW, PYCYCL_PNL_WRK4.BANK_ACCT _KEY); UpdateValue(PYCYCL_JOB_TBL.PYMNT_METHOD, &JOB_ROW, PYCYCL_PNL_WRK4.PYMNT_METH OD); UpdateValue(PYCYCL_JOB_TBL.PYMNT_FILENAME, &JOB_ROW, PYCYCL_PNL_WRK4.PYMNT_FI LENAME); UpdateValue(PYCYCL_JOB_TBL.BUSPROCNAME, &JOB_ROW, &BUSPROC); UpdateValue(PYCYCL_JOB_TBL.ACTIVITYNAME, &JOB_ROW, &ACTIVITY); UpdateValue(PYCYCL_JOB_TBL.EVENTNAME, &JOB_ROW, &EVENTNAME); end-method; method setUpApy2015 /+ &PYCYCL_PROC_OPTION as String, +/ /+ &PAY_CYCLE as String, +/ /+ &PAY_CYCLE_SEQ_NUM as Number, +/ /+ &SERVERNAME as String, +/ /+ &PYCYCL_DEL_REASON as String +/ Local string &dummy_value; Local ProcessRequest &RQST; SQLExec("DELETE FROM PS_AEREQUESTTBL WHERE OPRID = :1 AND RUN_CNTL_ID = :2 AN D AE_APPLID = 'AP_APY2015'", %OperatorId, &PAY_CYCLE); SQLExec("DELETE FROM PS_AEREQUESTPARM WHERE OPRID = :1 AND RUN_CNTL_ID = :2 A ND AE_APPLID = 'AP_APY2015'", %OperatorId, &PAY_CYCLE); SQLExec("INSERT INTO PS_AEREQUESTTBL (OPRID, RUN_CNTL_ID, AE_APPLID, CURTEMP INSTANCE, PROCESS_FREQUENCY, AE_PROCESS_STATUS, PROCESS_INSTANCE, PROCESS_ORIG, MARKET) VALUES (:1,:2, 'AP_APY2015', 0, 'A','N',0,' ',' ')", %OperatorId, &PAY_C YCLE); %This.insertAeOpt(%OperatorId, &PAY_CYCLE, "AP_APY2015", "AP_PAYSELCT_AET", " PAY_CYCLE", &PAY_CYCLE); %This.insertAeOpt(%OperatorId, &PAY_CYCLE, "AP_APY2015", "AP_PAYSELCT_AET", " PYCYCL_PROC_OPTION", &PYCYCL_PROC_OPTION); %This.insertAeOpt(%OperatorId, &PAY_CYCLE, "AP_APY2015", "PYCYCL_2_AET", "DES CR254", &PYCYCL_DEL_REASON); If %Page <> Page.PYMNT_EXPRESS And %Page <> Page.PYCYCL_RSTRT And %Page <> Page.EM_PYMNT_EXPRESS Then PYCYCL_PNL_WRK4.RUNCNTLID = &PAY_CYCLE; PYCYCL_PNL_WRK4.RUNLOCATION = "2"; PYCYCL_PNL_WRK4.SERVERNAME = &SERVERNAME; End-If; &RQST = CreateProcessRequest(); &RQST.ProcessType = "Application Engine"; &RQST.ProcessName = "AP_APY2015"; &RQST.RunControlID = &PAY_CYCLE; &RQST.RunLocation = &SERVERNAME; &RQST.RunDateTime = %Datetime; &RQST.Schedule(); If &RQST.Status = 0 Then If %Page <> Page.PYMNT_EXPRESS And %Page <> Page.PYCYCL_RSTRT And %Page <> Page.EM_PYMNT_EXPRESS Then If &PYCYCL_PROC_OPTION = "C" And &PAY_CYCLE_SEQ_NUM = (PYCYCL_STAT.PAY_CYCLE_SEQ_NUM + 1) Then SQLExec("Insert into ps_pycycl_job_tbl (pay_cycle, pay_cycle_seq_num ,pay_run_ap_status,job_type,bank_setid, bank_cd,bank_acct_key,pymnt_method,pymnt

_filename,prcsinstance,prcstype,prcsname,busprocname,activityname,eventname) val ues (:1,:2, 'N','P',' ',' ',' ',' ',' ',:3,'Application Engine','AP_APY2015',' ' ,' ',' ')", &PAY_CYCLE, &PAY_CYCLE_SEQ_NUM, &RQST.ProcessInstance); Else %This.insertJobTbl("P", PYCYCL_STAT.PAY_RUN_AP_STATUS, &RQST.Process Instance, "Application Engine", "AP_APY2015", "", "", ""); End-If; Else SQLExec("Insert into ps_pycycl_job_tbl (pay_cycle, pay_cycle_seq_num,pa y_run_ap_status,job_type,bank_setid, bank_cd,bank_acct_key,pymnt_method,pymnt_fi lename,prcsinstance,prcstype,prcsname,busprocname,activityname,eventname) values (:1,:2, 'N','P',' ',' ',' ',' ',' ',:3,'Application Engine','AP_APY2015',' ',' ',' ')", &PAY_CYCLE, &PAY_CYCLE_SEQ_NUM, &RQST.ProcessInstance); End-If; &dummy_value = ""; While &dummy_value = "" SQLExec("Select 'x' from psprcsrqst where prcsinstance = :1", &RQST.Pro cessInstance, &dummy_value); End-While; Else WinMessage(MsgGet(7250, 114, "Error submitting job"), 0); End-If; end-method; method draftsApply /+ Returns Boolean +/ Local string &x = ""; SQLExec("Select 'x' from ps_pycycl_mthd where pay_cycle = :1 and pymnt_method in ('BOO','DFT','BEF') AND PROCESS_FLG = 'Y'", PYCYCL_STAT_VW.PAY_CYCLE, &x); If All(&x) Then Return True; End-If; Return False; end-method; method refreshNextStep /+ &STEP_TBL_NAME as String, +/ /+ &PAY_RUN_AP_STATUS as String +/ Local string &sTrialRegFlg, &step_name, &run_level, &runcntlid, &PRCSTYPE, &p rcsname, &MULTIPLE_FLG, &SERVERNAME, &PAY_CYCLE_5, &sInvApprFlg; Local number &k, &i; Local Rowset &rsTmp; ScrollFlush(Record.PYCYCL_STAT, CurrentRowNumber(), Record.PYCYCL_STEP_VW); /* Check Fed Sched flg and allow Payment Selection Only */ SQLExec("SELECT TRIAL_REG_FLG FROM PS_PYCYCL_WRK_OPT WHERE PAY_CYCLE = :1", P YCYCL_STAT_VW.PAY_CYCLE, &sTrialRegFlg); If &sTrialRegFlg = "C" Then ScrollSelect(2, Record.PYCYCL_STAT, Record.PYCYCL_STEP_VW, Record.PYCYCL_S TEP_VW, "where step_tbl_name = :1 and pay_run_ap_status = :2 and step_name <> 'P ayment Selection & Creation'", &STEP_TBL_NAME, &PAY_RUN_AP_STATUS); Else SQLExec("SELECT 'X' FROM PS_PYCYCL_BU A, PS_EM_BUY_REG_TBL B, PS_INSTALLAT ION C WHERE A.PAY_CYCLE = :1 AND A.PROCESS_FLG = 'Y' AND A.BUSINESS_UNIT = B.BUS INESS_UNIT AND B.EM_PAYCYCL_APP_FLG = 'Y' AND C.MPA = 'Y'", PYCYCL_STAT_VW.PAY_C YCLE, &sInvApprFlg); If &PAY_RUN_AP_STATUS = "N" Or &PAY_RUN_AP_STATUS = "C" Or &PAY_RUN_AP_STATUS = "2" Or &PAY_RUN_AP_STATUS = "D" Then

If &sInvApprFlg = "X" Then ScrollSelect(2, Record.PYCYCL_STAT, Record.PYCYCL_STEP_VW, Record.PY CYCL_STEP_VW, "where step_tbl_name = :1 and pay_run_ap_status = :2 and step_name = 'Payment Selection'", &STEP_TBL_NAME, &PAY_RUN_AP_STATUS); Else ScrollSelect(2, Record.PYCYCL_STAT, Record.PYCYCL_STEP_VW, Record.PY CYCL_STEP_VW, "where step_tbl_name = :1 and pay_run_ap_status = :2", &STEP_TBL_N AME, &PAY_RUN_AP_STATUS); End-If; Else ScrollSelect(2, Record.PYCYCL_STAT, Record.PYCYCL_STEP_VW, Record.PYCYC L_STEP_VW, "where step_tbl_name = :1 and pay_run_ap_status = :2", &STEP_TBL_NAME , &PAY_RUN_AP_STATUS); If &sInvApprFlg = "X" And &PAY_RUN_AP_STATUS = "R" Then &rsTmp = GetLevel0()(1).PYCYCL_STAT (1).GetRowset(Scroll.PYCYCL_STEP _VW); For &i = 1 To &rsTmp.ActiveRowCount &rsTmp.GetRow(&i).PYCYCL_WK_OVRD3.PROCESS_RPT_PB.Enabled = False; &rsTmp.GetRow(&i).PYCYCL_WK_OVRD3.SERVERNAME.Enabled = False; End-For; End-If; End-If; End-If; &k = ActiveRowCount(Record.PYCYCL_STAT, 1, Record.PYCYCL_STEP_VW); For &i = &k To 1 Step - 1 &step_name = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STEP_VW.STEP_NAME, & i); &run_level = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STEP_VW.RUN_LEVEL, & i); If &run_level = "P" Then &runcntlid = ""; SQLExec("SELECT B.PRCSTYPE, B.PRCSNAME, B.MULTIPLE_FLG FROM PS_PYCYCL_S TEP_VW A, PS_PYCYCL_STEP_VW1 B WHERE A.STEP_TBL_NAME = :1 AND A.PAY_RUN_AP_STATU S = :2 AND A.STEP_NAME = :3 AND A.RUN_LEVEL = 'P' AND A.STEP_NAME = B.STEP_NAME AND B.JOB_TYPE = 'P'", PYCYCL_WRK_OPT.STEP_TBL_NAME, &PAY_RUN_AP_STATUS, &step_ name, &PRCSTYPE, &prcsname, &MULTIPLE_FLG); If None(&PRCSTYPE) Then &PRCSTYPE = ""; &prcsname = ""; &MULTIPLE_FLG = ""; Hide(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PROCESS_RPT_PB, &i); Else SQLExec("select SERVERNAME from ps_opr_def_pycycl where oprid = :1", %OperatorId, &SERVERNAME); If None(&SERVERNAME) Then SQLExec("SELECT A.SERVERNAME FROM PS_PMN_SRVRLIST A , PS_PRCSDEFN B WHERE A.SERVERNAME = B.SERVERNAME AND A.SERVERSTATUS IN ('3','5') AND PRCSTYP E = 'Application Engine' AND PRCSNAME = 'AP_APY2015'", &SERVERNAME); End-If; UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.SERVERNAME, &i, & SERVERNAME); UnHide(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PROCESS_RPT_PB, &i); End-If; UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PRCSTYPE, &i, &PRCST YPE); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PRCSNAME, &i, &prcsn ame);

UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.MULTIPLE_FLG, &i, &M ULTIPLE_FLG); Else Hide(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PROCESS_RPT_PB, &i); HideRow(Record.PYCYCL_STAT, 1, Record.PYCYCL_STEP_VW, &i); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PRCSNAME, &i, ""); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PRCSTYPE, &i, ""); End-If; &PAY_CYCLE_5 = Substring(PYCYCL_STAT_VW.PAY_CYCLE, 1, 5); If &PAY_CYCLE_5 = "QUICK" Then If &PAY_RUN_AP_STATUS = "N" Then If &step_name = "Payment Selection" Then Hide(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PROCESS_RPT_PB, &i); HideRow(Record.PYCYCL_STAT, 1, Record.PYCYCL_STEP_VW, &i); End-If; Else If &PAY_RUN_AP_STATUS <> "R" Then Hide(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PROCESS_RPT_PB, &i); HideRow(Record.PYCYCL_STAT, 1, Record.PYCYCL_STEP_VW, &i); End-If; End-If; Else If &PAY_RUN_AP_STATUS = "N" Or &PAY_RUN_AP_STATUS = "C" Or &PAY_RUN_AP_STATUS = "D" Then If &step_name <> "Payment Selection" Then If PYCYCL.DFT_PREAPPROVE = "N" And (PYCYCL.PROC_DFT_OPT = "Y" Or PYCYCL.PROC_DFT_ROUND = "Y") Then Hide(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PROCESS_RPT_PB, &i ); HideRow(Record.PYCYCL_STAT, 1, Record.PYCYCL_STEP_VW, &i); End-If; End-If; Else If &PAY_RUN_AP_STATUS = "R" Or &PAY_RUN_AP_STATUS = "1" Then If Not %This.draftsApply() Then If &step_name = "Draft Staging" Then Hide(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PROCESS_RPT_PB, &i); HideRow(Record.PYCYCL_STAT, 1, Record.PYCYCL_STEP_VW, &i); End-If; Else If &step_name = "Payment Creation" Then Hide(Record.PYCYCL_STAT, 1, PYCYCL_WK_OVRD3.PROCESS_RPT_PB, &i); HideRow(Record.PYCYCL_STAT, 1, Record.PYCYCL_STEP_VW, &i); End-If; End-If; End-If; End-If; End-If; End-For; end-method; method refreshAll Local Rowset &rs, &rsWrk, &rsWrkLvl2; Local Record &rec, &rdWrk; Local boolean &return = False;

Local boolean &bFG_Row, &bFG_Found; Local number &PROCESSINST, &PAY_CYCLE_SEQ_NUM, &I, &K, &JOB_ROW, &HOLD_PI, &S TARTPOS1, &PRCSINSTANCE; Local string &ERROR, &PAY_CYCLE, &pay_run_ap_status, &SERVERNAME, &EFT_FOUND, &STATUS, &BANK_STATUS, &PYMNT_METHOD, &BANK_SETID, &BANK_CD, &BANK_KEY, &BANK_M ETHOD, &BANK_FILENAME, &PYMNT_DOC_TYPE, &TEMP, &EFT_ROW, &JOB_SETID, &JOB_CD, &J OB_KEY, &JOB_METHOD, &JOB_FILENAME, &JOB_PRCSNAME, &step_name, &Test_Server, &ou tdesttype, &outdest, &runcntlid, &PRCSTYPE, &prcsname, &MULTIPLE_FLG, &outdestfi le, &outdestprinter, &wrkflw_generated, &trigger_wrkflw, &sText, &JOBTYPE2, &LOO P_STATUS, &PRNTCHK; &rs = GetLevel0()(1).PYCYCL_STAT (1).GetRowset(Scroll.PYCYCL_STATRPT); &PAY_CYCLE = PYCYCL_STAT_VW.PAY_CYCLE; SQLExec("select max(pay_cycle_seq_num) from ps_pycycl_stat where pay_cycle = :1", &PAY_CYCLE, &PAY_CYCLE_SEQ_NUM); ScrollFlush(Record.PYCYCL_JOB_TBL); ScrollSelect(1, Record.PYCYCL_JOB_TBL, Record.PYCYCL_JOB_TBL, "where pay_cycl e = :1 and pay_cycle_seq_num = :2", &PAY_CYCLE, &PAY_CYCLE_SEQ_NUM); ScrollFlush(Record.PYCYCL_STAT); ScrollSelect(1, Record.PYCYCL_STAT, Record.PYCYCL_STAT, "where pay_cycle = :1 and pay_cycle_seq_num = :2", &PAY_CYCLE, &PAY_CYCLE_SEQ_NUM); ScrollFlush(Record.PYCYCL_STAT, CurrentRowNumber(), Record.PYCYCL_STATRPT); ScrollSelect(2, Record.PYCYCL_STAT, Record.PYCYCL_STATRPT, Record.PYCYCL_STAT RPT, "where pay_cycle = :1 and pay_cycle_seq_num = :2", &PAY_CYCLE, &PAY_CYCLE_S EQ_NUM); &ERROR = "N"; SQLExec("SELECT 'Y' FROM PS_PYCYCL_JOB_TBL A, PSPRCSRQST B WHERE A.PAY_CYCLE = :1 AND A.PAY_CYCLE_SEQ_NUM = :2 AND A.PRCSNAME = 'AP_APY2015' AND A.PRCSINSTAN CE = B.PRCSINSTANCE AND B.RUNSTATUS IN ('3','10','8')", &PAY_CYCLE, &PAY_CYCLE_S EQ_NUM, &ERROR); If &ERROR = "Y" Then UpdateValue(PYCYCL_STAT.PAY_RUN_AP_STATUS, CurrentRowNumber(), "E"); Else If %This.anyJobsRunning() Then UpdateValue(PYCYCL_STAT.PAY_RUN_AP_STATUS, CurrentRowNumber(), "3"); Else &pay_run_ap_status = FetchValue(PYCYCL_STAT.PAY_RUN_AP_STATUS, CurrentR owNumber()); If &pay_run_ap_status <> "N" Then &pay_run_ap_status = %This.findLowestStatus(&pay_run_ap_status); UpdateValue(PYCYCL_STAT.PAY_RUN_AP_STATUS, CurrentRowNumber(), &pay_ run_ap_status); End-If; End-If; End-If; &pay_run_ap_status = FetchValue(PYCYCL_STAT.PAY_RUN_AP_STATUS, CurrentRowNumb er()); If &pay_run_ap_status = "8" Then SQLExec("SELECT WRKFLW_CERTIFY FROM PS_PYCYCL_WRK_OPT WHERE PAY_CYCLE = :1 ", PYCYCL_STAT_VW.PAY_CYCLE, &trigger_wrkflw); SQLExec("SELECT 'Y' FROM PS_GFAP_PYCERT_WL WHERE BUSPROCNAME = 'ENT_AP_PRO CESS_PAY_CYCLES' AND ACTIVITYNAME = 'PAYCYCLE_CERTIFICATION' AND EVENTNAME = 'Ce rtify' AND WORKLISTNAME = 'Certify Pay Cycle' AND PAY_CYCLE = :1 AND PAY_CYCLE_S EQ_NUM = :2", &PAY_CYCLE, &PAY_CYCLE_SEQ_NUM, &wrkflw_generated); If &wrkflw_generated <> "Y" Then If %PanelGroup = PanelGroup.PYCYCL_MGR Then

If &trigger_wrkflw = "Y" Then &return = TriggerBusinessEvent(BusProcess."ENT_AP_PROCESS_PAY_CYC LES", BusActivity."PAYCYCLE_CERTIFICATION", BusEvent."Certify"); End-If; End-If; End-If; End-If; If &pay_run_ap_status = "E" Then MessageBox(0, " ", 7250, 155, "The Pay Cycle has not processed successfull y. - Message not found."); &rsWrk = GetLevel0()(1).GetRowset(Scroll.PYCYCL_STAT); &rdWrk = &rsWrk(1).GetRecord(Record.PYCYCL_WORK); &rdWrk.SERVERNAME.Enabled = True; &rdWrk.RESET_CYCLE_PB.Enabled = True; &rsWrkLvl2 = &rsWrk(1).GetRowset(Scroll.PYCYCL_STEP_VW); For &I = 1 To &rsWrkLvl2.ActiveRowCount &rsWrkLvl2(&I).PYCYCL_WK_OVRD3.PROCESS_RPT_PB.Enabled = False; &rsWrkLvl2(&I).PYCYCL_WK_OVRD3.SERVERNAME.Enabled = False; End-For; &rsWrkLvl2 = &rsWrk(1).GetRowset(Scroll.PYCYCL_STATRPT); For &I = 1 To &rsWrkLvl2.ActiveRowCount &rsWrkLvl2(&I).PYCYCL_WRK_OVRD.PROCESS_RPT_PB.Enabled = False; &rsWrkLvl2(&I).PYCYCL_WRK_OVRD.SERVERNAME.Enabled = False; &rsWrkLvl2(&I).PYCYCL_STATRPT.OUTDESTTYPE.Enabled = False; &rsWrkLvl2(&I).PYCYCL_STATRPT.OUTDEST.Enabled = False; End-For; Else SQLExec("select SERVERNAME from ps_opr_def_pycycl where oprid = :1", %Oper atorId, &SERVERNAME); If None(&SERVERNAME) Then SQLExec("SELECT A.SERVERNAME FROM PS_PMN_SRVRLIST A , PS_PRCSDEFN B WHE RE A.SERVERNAME = B.SERVERNAME AND A.SERVERSTATUS IN ('3','5') AND PRCSTYPE = 'A pplication Engine' AND PRCSNAME = 'AP_APY2015'", &SERVERNAME); End-If; %This.refreshNextStep(PYCYCL_WRK_OPT.STEP_TBL_NAME, &pay_run_ap_status); &EFT_FOUND = "N"; &bFG_Found = False; &K = ActiveRowCount(Record.PYCYCL_STAT, 1, Record.PYCYCL_STATRPT); /* Loop thru pay cycle result grid */ For &I = &K To 1 Step - 1; &EFT_ROW = "N"; &bFG_Row = False; &STATUS = FetchValue(PYCYCL_STAT.PAY_RUN_AP_STATUS, 1); &BANK_STATUS = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.PAY_RUN _AP_STATUS, &I); &PYMNT_METHOD = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.PYMNT_ METHOD, &I); &BANK_SETID = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.BANK_SET ID, &I); &BANK_CD = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.BANK_CD, &I ); &BANK_KEY = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.BANK_ACCT_ KEY, &I); &BANK_METHOD = &PYMNT_METHOD; &BANK_FILENAME = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.PYMNT _FILENAME, &I); PYCYCL_PNL_WRK4.PYMNT_FILENAME = FetchValue(Record.PYCYCL_STAT, 1, PYCY CL_STATRPT.PYMNT_FILENAME, &I); &PYMNT_DOC_TYPE = ""; &PRNTCHK = "";

If &PYMNT_METHOD = "CHK" Then &PRNTCHK = "Y"; If FetchValue(Record.PYCYCL_STAT, 1, BANK_MTHD_VW.FORM_ID_POS, &I) < > "" And Substring(&PAY_CYCLE, 1, 5) <> "QUICK" Then &PRNTCHK = "N"; End-If; End-If; Evaluate &PYMNT_METHOD When = "EFT" &STARTPOS1 = Find(".", PYCYCL_PNL_WRK4.PYMNT_FILENAME) - 2; &TEMP = Substring(PYCYCL_PNL_WRK4.PYMNT_FILENAME, &STARTPOS1, Evaluate &TEMP When = "PM" &PYMNT_DOC_TYPE = "E"; &EFT_ROW = "Y"; When = "AD" &PYMNT_DOC_TYPE = "F"; End-Evaluate; Break; When = "ACH" &STARTPOS1 = Find(".", PYCYCL_PNL_WRK4.PYMNT_FILENAME) - 2; &TEMP = Substring(PYCYCL_PNL_WRK4.PYMNT_FILENAME, &STARTPOS1, Evaluate &TEMP When = "PM" &PYMNT_DOC_TYPE = "H"; &EFT_ROW = "Y"; When = "AD" &PYMNT_DOC_TYPE = "R"; End-Evaluate; Break; When = "CHK" &STARTPOS1 = Find(".", PYCYCL_PNL_WRK4.PYMNT_FILENAME) - 2; &TEMP = Substring(PYCYCL_PNL_WRK4.PYMNT_FILENAME, &STARTPOS1, Evaluate &TEMP When = "PM" &PYMNT_DOC_TYPE = "C"; When = "AD" &PYMNT_DOC_TYPE = "A"; When = "CP" &PYMNT_DOC_TYPE = "P"; End-Evaluate; Break; When = "BOO" &STARTPOS1 = Find(".", PYCYCL_PNL_WRK4.PYMNT_FILENAME) - 2; &TEMP = Substring(PYCYCL_PNL_WRK4.PYMNT_FILENAME, &STARTPOS1, Evaluate &TEMP When = "PM" &PYMNT_DOC_TYPE = "D"; When = "AD" &PYMNT_DOC_TYPE = "T"; End-Evaluate; Break; When = "BEF" &STARTPOS1 = Find(".", PYCYCL_PNL_WRK4.PYMNT_FILENAME) - 2; &TEMP = Substring(PYCYCL_PNL_WRK4.PYMNT_FILENAME, &STARTPOS1, Evaluate &TEMP When = "PM" &PYMNT_DOC_TYPE = "N";

2);

2);

2);

2);

2);

&EFT_ROW = "Y"; When = "AD" &PYMNT_DOC_TYPE = "M"; End-Evaluate; Break; When = "WIR" &PYMNT_DOC_TYPE = "W"; Break; When = "LC" &PYMNT_DOC_TYPE = "L"; Break; When = "GE" &STARTPOS1 = Find(".", PYCYCL_PNL_WRK4.PYMNT_FILENAME) - 2; &TEMP = Substring(PYCYCL_PNL_WRK4.PYMNT_FILENAME, &STARTPOS1, 2); Evaluate &TEMP When = "PM" &PYMNT_DOC_TYPE = "G"; &EFT_ROW = "Y"; When = "AD" &PYMNT_DOC_TYPE = "K"; End-Evaluate; Break; When = "" If &rs(&I).PYCYCL_STATRPT.STL_THROUGH.Value = "01" Then &bFG_Row = True; &PYMNT_DOC_TYPE = "Y"; /* translate for FG payment */ End-If; Break; When-Other Break; End-Evaluate; &runcntlid = ""; &HOLD_PI = 0; /* ICE 1109529001 */ /* If All(&BANK_SETID, &BANK_CD, &BANK_KEY, &BANK_METHOD, &BANK_ FILENAME) Then */ For &JOB_ROW = 1 To ActiveRowCount(PYCYCL_JOB_TBL.PAY_CYCLE); &JOB_SETID = FetchValue(PYCYCL_JOB_TBL.BANK_SETID, &JOB_ROW); &JOB_CD = FetchValue(PYCYCL_JOB_TBL.BANK_CD, &JOB_ROW); &JOB_KEY = FetchValue(PYCYCL_JOB_TBL.BANK_ACCT_KEY, &JOB_ROW); &JOB_METHOD = FetchValue(PYCYCL_JOB_TBL.PYMNT_METHOD, &JOB_ROW); &JOB_FILENAME = FetchValue(PYCYCL_JOB_TBL.PYMNT_FILENAME, &JOB_ROW); &JOB_PRCSNAME = FetchValue(PYCYCL_JOB_TBL.PRCSNAME, &JOB_ROW); If (&JOB_SETID = &BANK_SETID And &JOB_CD = &BANK_CD And &JOB_KEY = &BANK_KEY And &JOB_METHOD = &BANK_METHOD And &JOB_FILENAME = &BANK_FILENAME) Or (&EFT_ROW = "Y" And &JOB_PRCSNAME = "FIN2025") Then &PRCSINSTANCE = FetchValue(PYCYCL_JOB_TBL.PRCSINSTANCE, &JOB_ROW) ; If &PRCSINSTANCE > &HOLD_PI Then UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PRCSINSTANC E, &I, &PRCSINSTANCE); &HOLD_PI = &PRCSINSTANCE; End-If; End-If; End-For; /* End-If; */

&step_name = ""; &JOBTYPE2 = ""; SQLExec("SELECT B.PRCSTYPE, B.PRCSNAME, B.MULTIPLE_FLG, B.STEP_NAME,B.J OB_TYPE FROM PS_PYCYCL_STEP_VW A, PS_PYCYCL_STEP_VW1 B WHERE A.STEP_TBL_NAME = : 1 AND A.PAY_RUN_AP_STATUS = :2 AND A.RUN_LEVEL = 'B' AND A.PYMNT_DOC_TYPE = :3 A ND A.STEP_NAME = B.STEP_NAME ", PYCYCL_WRK_OPT.STEP_TBL_NAME, &BANK_STATUS, &PYM NT_DOC_TYPE, &PRCSTYPE, &prcsname, &MULTIPLE_FLG, &step_name, &JOBTYPE2); /* Check to see if the job is completed however the step name **/ /** has to be displayed **/ If &JOBTYPE2 <> "I" Then If &step_name = "" And &BANK_STATUS = "C" Then &LOOP_STATUS = "C"; While &step_name = "" Evaluate &LOOP_STATUS When "C" Evaluate &PRNTCHK When "Y" &LOOP_STATUS = "V"; Break; When-Other; &LOOP_STATUS = "Z"; Break; End-Evaluate; When "Z" &LOOP_STATUS = "Y"; Break; When "Y" &LOOP_STATUS = "X"; When "X" &LOOP_STATUS = "V"; Break; End-Evaluate; SQLExec("SELECT B.STEP_NAME FROM PS_PYCYCL_STEP_VW A, PS_PYCYC L_STEP_VW1 B WHERE A.STEP_TBL_NAME = :1 AND A.PAY_RUN_AP_STATUS = :2 AND A.RUN_L EVEL = 'B' AND A.PYMNT_DOC_TYPE = :3 AND A.STEP_NAME = B.STEP_NAME AND B.JOB_TYP E = 'P'", PYCYCL_WRK_OPT.STEP_TBL_NAME, &LOOP_STATUS, &PYMNT_DOC_TYPE, &step_nam e); If &LOOP_STATUS = "V" Then Break; End-If; End-While; End-If; End-If; /*Check if job is Info only then display the button and exit, else chec k and refer other columns */ If &JOBTYPE2 = "I" Then &PRCSTYPE = ""; &prcsname = ""; &MULTIPLE_FLG = ""; Gray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.SERVERNAME, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I); UnHide(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PROCESS_RPT_PB, &I); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.STEP_NAME, &I, &s tep_name); Hide(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.SERVERNAME, &I); Hide(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, &I); Hide(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I);

Else If (&EFT_ROW = "Y" And &EFT_FOUND = "Y") Or (&bFG_Row = True And &bFG_Found = True) Then Gray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.SERVERNAME, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, &I , "2"); Hide(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PROCESS_RPT_PB, &I); HideRow(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PROCESS_RPT_PB, &I ); Else If (&EFT_ROW = "Y" Or &bFG_Row = True) Then If &EFT_ROW = "Y" Then &sText = MsgGetText(6205, 30, "Electronic Payments - Messag e not found"); Else &sText = MsgGetText(7000, 741, "Financial Gateway Electroni c Payments - Message not found"); End-If; UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.STEP_NAME, &I, &sText); Hide(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.BANK_CD, &I); Hide(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.BANK_ACCT_KEY, &I); Hide(Record.PYCYCL_STAT, 1, PYCYCL_WORK.PYMNT_FILE_DESCR, &I); Hide(Record.PYCYCL_STAT, 1, BANK_MTHD_VW.FORM_ID, &I); Hide(Record.PYCYCL_STAT, 1, BANK_MTHD_VW.FORM_ID_POS, &I); Hide(Record.PYCYCL_STAT, 1, BANK_MTHD_VW.FILE_COPY_FORM, &I); Hide(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.FIRST_PYMNT_REF_ID, &I); If &EFT_ROW = "Y" Then &EFT_FOUND = "Y"; End-If; If &bFG_Row = True Then &bFG_Found = True; End-If; Else UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.STEP_NAME, &I, &step_name); End-If; &Test_Server = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.S ERVERNAME, &I); If All(&PRCSTYPE) Then If None(&Test_Server) Then UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.SERVERNAM E, &I, &SERVERNAME); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.SERVERNA ME, &I, &SERVERNAME); End-If; If &PRCSTYPE <> "Application Engine" Then &outdesttype = ""; &outdesttype = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STA TRPT.OUTDESTTYPE, &I); &outdest = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT .OUTDEST, &I); If None(&outdesttype) Then If &PRCSTYPE = "SQR Process" Or

&prcsname = "APY2055-" Then &outdesttype = "2"; Else &outdesttype = "3"; End-If; End-If; If None(&outdest) Then SQLExec("select srvrdestfile, srvrdestprinter from ps_op r_def_pycycl where oprid = :1", %OperatorId, &outdestfile, &outdestprinter); If &outdesttype = "2" Then &outdest = &outdestfile; End-If; If &outdesttype = "3" Then &outdest = &outdestprinter; End-If; End-If; Else If None(&outdesttype) Then &outdesttype = "2"; End-If; End-If; UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PRCSTYPE, & I, &PRCSTYPE); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PRCSNAME, & I, &prcsname); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.MULTIPLE_FL G, &I, &MULTIPLE_FLG); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PYMNT_DOC_T YPE, &I, &PYMNT_DOC_TYPE); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, &I, &outdesttype); UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I, &outdest); UnGray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.SERVERNAME, &I); Evaluate &prcsname When = "AP_APY2050" Hide(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, &I) ; Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I); Break; When = "AP_FG_PROC" Hide(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, &I) ; Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I); Break; When = "APY2055-" UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTY PE, &I, "2"); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, &I) ; Break; When-Other UnGray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, & I); UnGray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I); End-Evaluate; UnHide(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PROCESS_RPT_PB, &I);

&HOLD_PI = 0; Else &BANK_CD = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.BA NK_CD, &I); If All(&BANK_CD) Then &outdesttype = FetchValue(Record.PYCYCL_STAT, 1, PYCYCL_STA TRPT.OUTDESTTYPE, &I); If None(&outdesttype) And &pay_run_ap_status <> "U" Then UpdateValue(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDES TTYPE, &I, "2"); End-If; End-If; If &BANK_STATUS = "X" Then UnHide(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PROCESS_RPT_P B, &I); UnGray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.SERVERNAME, & I); UnGray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, & I); UnGray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I); Else If &BANK_STATUS = "C" Then &rec = &rs(&I).GetRecord(Record.PYCYCL_WRK_OVRD); If &rec.REPROCESS_POS_PB.Visible = True Then Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYP E, &I); Else UnGray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTT YPE, &I); End-If; UnGray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I ); Gray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PROCESS_RPT_ PB, &I); If &bFG_Row Then Gray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.SERVERNAM E, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYP E, &I); Hide(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYP E, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, & I); End-If; Else Gray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.SERVERNAME, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I); Hide(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PROCESS_RPT_ PB, &I); End-If; End-If; End-If; End-If; End-If; If &pay_run_ap_status = "3" Then

Gray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.PROCESS_RPT_PB, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.SERVERNAME, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDESTTYPE, &I); Gray(Record.PYCYCL_STAT, 1, PYCYCL_STATRPT.OUTDEST, &I); If %Page = Page.PYCYCL_MGR Then Gray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.REPROCESS_RPT_PB, &I) ; Gray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.REPROCESS_POS_PB, &I) ; Else Gray(Record.PYCYCL_STAT, 1, PYCYCL_WRK_OVRD.REPROCESS_RPT_PB, &I) ; End-If; End-If; End-For; End-If; end-method; method setupCrystal /+ &PRCSTYPE as String, +/ /+ &PRCSNAME as String, +/ /+ &FILENAME as String +/ If &PRCSTYPE = "Crystal" Or &PRCSTYPE = "Crystal Check" Then Evaluate PYCYCL_PNL_WRK4.OUTDESTTYPE When = "3" /* printer */ PYCYCL_PNL_WRK4.OUTPUTDEST = PYCYCL_PNL_WRK4.SRVRDESTPRINTER; Break; When = "2" /* file */ PYCYCL_PNL_WRK4.OUTPUTDEST = PYCYCL_PNL_WRK4.SRVRDESTFILE &FILENAME; Break; When = "6" /* Web */ PYCYCL_PNL_WRK4.OUTPUTDEST = "%%OUTDEST%%\" &FILENAME; Break; When-Other PYCYCL_PNL_WRK4.OUTDESTTYPE = "2"; PYCYCL_PNL_WRK4.OUTPUTDEST = PYCYCL_PNL_WRK4.SRVRDESTFILE &FILENAME; Break; End-Evaluate; PYCYCL_PNL_WRK4.PRCSNAME_LONG = &PRCSNAME; End-If; end-method; method FinishRequest /+ Returns Number +/ Local number &STARTPOS1; Local string &PYMNT_METHOD, &FORM_ID, &FORM_ID_POS, &FILE_COPY_FORM, &FILENAM E, &FILE_EXT, &TEMP; Local ProcessRequest &RQST; &PYMNT_METHOD = PYCYCL_STATRPT.PYMNT_METHOD; &FORM_ID = BANK_MTHD_VW.FORM_ID; &FORM_ID_POS = BANK_MTHD_VW.FORM_ID_POS; &FILE_COPY_FORM = BANK_MTHD_VW.FILE_COPY_FORM; &FILENAME = PYCYCL_PNL_WRK4.BANK_CD PYCYCL_PNL_WRK4.BANK_ACCT_KEY; Evaluate PYCYCL_WRK_OVRD.PRCSTYPE When = "Crystal Check"

If PYCYCL_WRK_OVRD.PRCSNAME = "APY2021-" Or PYCYCL_WRK_OVRD.PRCSNAME = "APY2027-" Then &FILE_EXT = "RPT"; Else If PYCYCL_WRK_OVRD.PRCSNAME = "APY2055-" Then &FILE_EXT = "TXT"; End-If; End-If; When-Other &FILE_EXT = "TXT"; End-Evaluate; &STARTPOS1 = Find(".", PYCYCL_PNL_WRK4.PYMNT_FILENAME) - 2; &TEMP = Substring(PYCYCL_PNL_WRK4.PYMNT_FILENAME, &STARTPOS1, 2); Evaluate &PYMNT_METHOD When = "EFT" When = "GE" When = "BEF" When = "LC" When = "ACH" When = "WIR" &FILENAME = &PYMNT_METHOD &FILENAME &TEMP "." &FILE_EXT; If &PYMNT_METHOD = "LC" And PYCYCL_WRK_OVRD.PYMNT_DOC_TYPE = "L" And PYCYCL_WRK_OVRD.PRCSNAME = "APY2021-" Then %This.setupCrystal(PYCYCL_WRK_OVRD.PRCSTYPE, &FORM_ID, &FILENAME); Else %This.setupCrystal(PYCYCL_WRK_OVRD.PRCSTYPE, PYCYCL_WRK_OVRD.PRCSNAME, &FILENAME); End-If; Break; When = "CHK" If &TEMP = "PM" And PYCYCL_WRK_OVRD.PYMNT_DOC_TYPE = "C" Then If PYCYCL_WRK_OVRD.PRCSNAME = "APY2021-" Then &FILENAME = &PYMNT_METHOD &FILENAME &TEMP "." &FILE_EXT; %This.setupCrystal(PYCYCL_WRK_OVRD.PRCSTYPE, &FORM_ID, &FILENAME) Else If PYCYCL_WRK_OVRD.PRCSNAME = "APY2055-" Then &FILENAME = "POS" &FILENAME &TEMP "." &FILE_EXT; %This.setupCrystal(PYCYCL_WRK_OVRD.PRCSTYPE, &FORM_ID_POS, &FILEN AME); End-If; End-If; Else If &TEMP = "AD" Then If PYCYCL_WRK_OVRD.PRCSNAME = "APY2021-" Then &FILENAME = "ADV" &FILENAME &TEMP "." &FILE_EXT; %This.setupCrystal(PYCYCL_WRK_OVRD.PRCSTYPE, PYCYCL_WRK_OVRD.PRCS NAME, &FILENAME) End-If; Else If &TEMP = "CP" Then If PYCYCL_WRK_OVRD.PRCSNAME = "APY2021-" Then &FILENAME = "CPY" &FILENAME &TEMP "." &FILE_EXT; %This.setupCrystal(PYCYCL_WRK_OVRD.PRCSTYPE, &FILE_COPY_FORM, &FILENAME) End-If; End-If; End-If;

End-If; Break; When = "BOO" If &TEMP = "PM" Then If PYCYCL_WRK_OVRD.PYMNT_DOC_TYPE = "D" Then If PYCYCL_WRK_OVRD.PRCSNAME = "APY2021-" Then &FILENAME = &PYMNT_METHOD &FILENAME &TEMP "." &FILE_EXT; %This.setupCrystal(PYCYCL_WRK_OVRD.PRCSTYPE, &FORM_ID, &FILENAME) Else If PYCYCL_WRK_OVRD.PRCSNAME = "APY2055-" Then &FILENAME = "POS" &FILENAME &TEMP "." &FILE_EXT; %This.setupCrystal(PYCYCL_WRK_OVRD.PRCSTYPE, &FORM_ID_POS, &FI LENAME); End-If; End-If; End-If; Else If &TEMP = "AD" Then If PYCYCL_WRK_OVRD.PRCSNAME = "APY2021-" Then &FILENAME = "ADV" &FILENAME &TEMP "." &FILE_EXT; %This.setupCrystal(PYCYCL_WRK_OVRD.PRCSTYPE, PYCYCL_WRK_OVRD.PRCS NAME, &FILENAME) End-If; End-If; End-If; End-Evaluate; &RQST = CreateProcessRequest(); &RQST.ProcessType = PYCYCL_WRK_OVRD.PRCSTYPE; &RQST.ProcessName = PYCYCL_WRK_OVRD.PRCSNAME; &RQST.RunControlID = PYCYCL_PNL_WRK4.RUNCNTLID; &RQST.RunLocation = PYCYCL_WRK_OVRD.SERVERNAME; &RQST.OutDestType = PYCYCL_STATRPT.OUTDESTTYPE; /*** &RQST.RunDateTime = %Datetime; **/ /* Comment out the following code for 8.9 -ICE 1240359000 */ /* &RQST.RunDateTime = AddToDateTime(%Datetime, 0, 0, 0, 0, 1, 0); */ If All(PYCYCL_PNL_WRK4.PRCSNAME_LONG) Then If Upper(Substring(PYCYCL_PNL_WRK4.PRCSNAME_LONG, 1, 2)) = "PO" Then &RQST.OutDestFormat = "TXT"; Else &RQST.OutDestFormat = "RPT"; End-If; End-If; &RQST.Schedule(); If &RQST.Status = 0 Then PYCYCL_WRK_OVRD.PRCSINSTANCE = &RQST.ProcessInstance; Else WinMessage(MsgGet(7250, 114, "Error submitting job"), 0); Return 0; End-If; Return &RQST.ProcessInstance; end-method; method validateServer /+ &servername as String, +/ /+ &prcstype as String +/ /+ Returns Number +/ Local number &response = 0; Local string &X = ""; SQLExec("Select 'X' from PS_PYCYCL_SERVERS A, PS_SERVERCLASS B WHERE B.SERVER NAME = :1 AND B.PRCSTYPE = :2 AND B.SERVERNAME = A.SERVERNAME", &servername, &pr

cstype, &X); If &X <> "X" Then &response = MessageBox(4, "Process Scheduler Status", 7250, 156, "The sele cted Process Scheduler is not currently running. Proceed with scheduling?"); End-If; Return &response; end-method; method insertAeOpt /+ &OPRID as String, +/ /+ &RUN_CNTL_ID as String, +/ /+ &AE_APPLID as String, +/ /+ &AE_STATE_RECNAME as String, +/ /+ &AE_BIND_VAR as String, +/ /+ &AE_BIND_VALUE as String +/ SQLExec("insert into ps_aerequestparm (oprid, run_cntl_id, ae_applid, ae_stat e_recname, ae_bind_var, ae_bind_value) values (:1, :2, :3, :4, :5, :6)", &OPRID, &RUN_CNTL_ID, &AE_APPLID, &AE_STATE_RECNAME, &AE_BIND_VAR, &AE_BIND_VALUE); end-method; method DelAERequestTbl /+ &sRunCntlID as String, +/ /+ &sProcessName as String +/ SQLExec("delete from ps_aerequesttbl where oprid=:1 and run_cntl_id=:2 and ae _applid = :3", %OperatorId, &sRunCntlID, &sProcessName); SQLExec("delete from ps_aerequestparm where oprid=:1 and run_cntl_id=:2 and a e_applid = :3", %OperatorId, &sRunCntlID, &sProcessName); SQLExec("INSERT INTO PS_AEREQUESTTBL (OPRID, RUN_CNTL_ID, AE_APPLID, CURTEMPI NSTANCE, PROCESS_FREQUENCY, AE_PROCESS_STATUS, PROCESS_INSTANCE, PROCESS_ORIG, M ARKET) VALUES (:1, :2, :3, :4, :5, ' ', 0, ' ', ' ')", %OperatorId, &sRunCntlID, &sProcessName, 0, "A"); end-method; method SetUpApy2050 Local string &AE_BIND_VALUE; %This.insertAeOpt(%OperatorId, PYCYCL_PNL_WRK4.PAY_CYCLE, "AP_APY2050", OSPAY_AET", "PAY_CYCLE", PYCYCL_PNL_WRK4.PAY_CYCLE); &AE_BIND_VALUE = PYCYCL_PNL_WRK4.PAY_CYCLE_SEQ_NUM " "; &AE_BIND_VALUE = RTrim(&AE_BIND_VALUE, " "); %This.insertAeOpt(%OperatorId, PYCYCL_PNL_WRK4.PAY_CYCLE, "AP_APY2050", OSPAY_AET", "PAY_CYCLE_SEQ_NUM", &AE_BIND_VALUE); %This.insertAeOpt(%OperatorId, PYCYCL_PNL_WRK4.PAY_CYCLE, "AP_APY2050", OSPAY_AET", "BANK_SETID", PYCYCL_PNL_WRK4.BANK_SETID); %This.insertAeOpt(%OperatorId, PYCYCL_PNL_WRK4.PAY_CYCLE, "AP_APY2050", OSPAY_AET", "BANK_CD", PYCYCL_PNL_WRK4.BANK_CD); %This.insertAeOpt(%OperatorId, PYCYCL_PNL_WRK4.PAY_CYCLE, "AP_APY2050", OSPAY_AET", "BANK_ACCT_KEY", PYCYCL_PNL_WRK4.BANK_ACCT_KEY); %This.insertAeOpt(%OperatorId, PYCYCL_PNL_WRK4.PAY_CYCLE, "AP_APY2050", OSPAY_AET", "PYMNT_METHOD", PYCYCL_PNL_WRK4.PYMNT_METHOD); %This.insertAeOpt(%OperatorId, PYCYCL_PNL_WRK4.PAY_CYCLE, "AP_APY2050", OSPAY_AET", "PYMNT_FILENAME", PYCYCL_STATRPT.PYMNT_FILENAME); &AE_BIND_VALUE = PYCYCL.PYMNT_DT " "; &AE_BIND_VALUE = RTrim(&AE_BIND_VALUE, " "); %This.insertAeOpt(%OperatorId, PYCYCL_PNL_WRK4.PAY_CYCLE, "AP_APY2050", OSPAY_AET", "PYMNT_DT", &AE_BIND_VALUE); end-method;

"AP_P

"AP_P "AP_P "AP_P "AP_P "AP_P "AP_P

"AP_P

method SetupAPFGProc Local string &AE_BIND_VALUE; %This.insertAeOpt(%OperatorId, PYCYCL_PNL_WRK4.PAY_CYCLE, "AP_FG_PROC", "AP_F

G_PROC_AET", "PAY_CYCLE", PYCYCL_PNL_WRK4.PAY_CYCLE); &AE_BIND_VALUE = String(PYCYCL_PNL_WRK4.PAY_CYCLE_SEQ_NUM.Value); %This.insertAeOpt(%OperatorId, PYCYCL_PNL_WRK4.PAY_CYCLE, "AP_FG_PROC", "AP_F G_PROC_AET", "PAY_CYCLE_SEQ_NUM", &AE_BIND_VALUE); end-method; method SetUpAEProc Local ProcessRequest &RQST; %This.DelAERequestTbl(PYCYCL_PNL_WRK4.PAY_CYCLE.Value, PYCYCL_WRK_OVRD.PRCSNA ME.Value); Evaluate PYCYCL_WRK_OVRD.PRCSNAME.Value When = "AP_APY2050" %This.SetUpApy2050(); Break; When = "AP_FG_PROC" %This.SetupAPFGProc(); Break; End-Evaluate; &RQST = CreateProcessRequest(); &RQST.ProcessType = "Application Engine"; &RQST.ProcessName = PYCYCL_WRK_OVRD.PRCSNAME.Value; &RQST.RunControlID = PYCYCL_PNL_WRK4.PAY_CYCLE.Value; &RQST.RunLocation = PYCYCL_WRK_OVRD.SERVERNAME.Value; /* &RQST.RunDateTime = AddToDateTime(%Datetime, 0, 0, 0, 0, 3, 0); */ &RQST.Schedule(); If &RQST.Status = 0 Then %This.insertJobTbl("P", PYCYCL_STAT.PAY_RUN_AP_STATUS.Value, &RQST.Process Instance, PYCYCL_WRK_OVRD.PRCSTYPE.Value, PYCYCL_WRK_OVRD.PRCSNAME.Value, "", "" , ""); Else WinMessage(MsgGet(7250, 114, "Error submitting job"), 0); End-If; end-method; method serverupd /** **/ Local Rowset &rs; Local string &run_status, &servername, &pay_cycle, &bank_set_id, &bank_cd, &a cct_key, &pymnt_mthd, &pymnt_filename; Local number &j, &seq_num; &rs = GetLevel0()(1).PYCYCL_STAT (1).GetRowset(Scroll.PYCYCL_STATRPT); For &j = 1 To &rs.ActiveRowCount &run_status = &rs.GetRow(&j).PYCYCL_STATRPT.PAY_RUN_AP_STATUS.Value; If &run_status = "Y" Then &servername = &rs.GetRow(&j).PYCYCL_WRK_OVRD.SERVERNAME.Value; &pay_cycle = &rs.GetRow(&j).PYCYCL_STATRPT.PAY_CYCLE.Value; &seq_num = &rs.GetRow(&j).PYCYCL_STATRPT.PAY_CYCLE_SEQ_NUM.Value; &bank_set_id = &rs.GetRow(&j).PYCYCL_STATRPT.BANK_SETID.Value; &bank_cd = &rs.GetRow(&j).PYCYCL_STATRPT.BANK_CD.Value; &acct_key = &rs.GetRow(&j).PYCYCL_STATRPT.BANK_ACCT_KEY.Value; &pymnt_mthd = &rs.GetRow(&j).PYCYCL_STATRPT.PYMNT_METHOD.Value; &pymnt_filename = &rs.GetRow(&j).PYCYCL_STATRPT.PYMNT_FILENAME.Value; SQLExec(" UPDATE PS_PYCYCL_STATRPT SET SERVERNAME = :1 WHERE PAY_CYCLE = :2 AND PAY_CYCLE_SEQ_NUM = :3 AND BANK_SETID = :4 AND BANK_CD = :5 AND BANK_ ACCT_KEY = :6 AND PYMNT_METHOD = :7 AND PYMNT_FILENAME = :8 ", &servername, &pay _cycle, &seq_num, &bank_set_id, &bank_cd, &acct_key, &pymnt_mthd, &pymnt_filenam e); End-If;

End-For; end-method;

You might also like