Wednesday, 9 November 2016

Auto Amount Charge In PeopleSoft


Follow the following steps to configure Auto Charge in Peoplesoft.

Delete the data of that ID you want to auto-Charge from Quick Post Table

Write this code on :

Button1 Field Change

SQLExec("delete from ps_QUICK_POST_TBL where oprid in (select distinct oprid from PS_DUMMY_TRANS_PST) and grp_timestamp in (select distinct grp_timestamp from PS_DUMMY_TRANS_PST) and line_seq_nbr in (select distinct line_seq_nbr from PS_DUMMY_TRANS_PST) and post_flag<>'Y'");

SQLExec("delete from PS_DUMMY_TRANS_PST");

&datetime = AddToDateTime(%Datetime, 0, 0, 0, 0, 0, &j);
&institution = "PSUNI";   /*Institute ID*/

/* INSERT DATA INTO QUICK POST TABLE*/
&REC = CreateRecord(Record.QUICK_POST_TBL);
&REC.BUSINESS_UNIT.value = "PSUNI";
&REC.oprid.value = %UserId;
&REC.REF1_DESCR.value = "OPTIONAL FEE(AUTO CHARGE)";
&REC.EMPLID.value = %EmployeeID;/*ID on which you want to charge*/
&REC.ACCOUNT_TYPE_SF.VALUE = "OPT"; /*Account type in which you want to charge*/
&REC.ITEM_TYPE.VALUE = DUMMY_TRNSPT_WRK.DUMMY_ITEM_TYPE.Value; /*Item Type*/
&REC.LINE_SEQ_NBR.value = "1";
&REC.GRP_TIMESTAMP.value = &datetime;
&REC.ITEM_EFFECTIVE_DT.value = %Date;
&REC.STRM.value = &sstrm; /*Term or Year Value in which you want to chare*/
&REC.ITEM_AMT.value = DUMMY_TRNSPT_WRK.DUMMY_TRANS_AMT.Value; /*Amount*/
&REC.ORIGNL_ITEM_AMT.value = DUMMY_TRNSPT_WRK.DUMMY_TRANS_AMT.Value;  /*Amount*/
&REC.ITEM_TYPE_CD.value = "C"; /*Item Code*/
&REC.RESTRICT_ACCT_FLG.value = "N";
&REC.CURRENCY_CD.value = "PKR";
&REC.ORIGNL_CURRENCY_CD.value = "PKR";
&REC.EXC_ACCT_TYPE_FLG.value = "N";
&REC.RESTRICT_ACCT_FLG.value = "N";
&REC.SF_REVERSAL_IND.value = "N";
&REC.Insert();

/*INSERT DATA INTO DUMMY TABLE*/
&REC1 = CreateRecord(Record.DUMMY _TRANS_PST);
&REC1.BUSINESS_UNIT.value = "PSUNI";
&REC1.oprid.value = %UserId;
&REC1.DESCR.value = "(AUTO CHARGE)";
&REC1.REF1_DESCR.value = "(AUTO CHARGE)";
&REC1.EMPLID.value = %EmployeeID; /*ID on which you want to charge*/
&REC1.ACCOUNT_TYPE_SF.VALUE = "OPT";
&REC1.ITEM_TYPE.VALUE = DUMMY_TRNSPT_WRK.DUMMY_ITEM_TYPE.Value;
&REC1.LINE_SEQ_NBR.value = "1";
&REC1.GRP_TIMESTAMP.value = &datetime;
&REC1.ITEM_EFFECTIVE_DT.value = %Date;
&REC1.STRM.value = &sstrm;
&REC1.ITEM_AMT.value = DUMMY_TRNSPT_WRK.DUMMY_TRANS_AMT.Value;
&REC1.ORIGNL_ITEM_AMT.value = DUMMY_TRNSPT_WRK.DUMMY_TRANS_AMT.Value;
&REC1.ITEM_TYPE_CD.value = "C";

&REC1.CURRENCY_CD.value = "PKR";
&REC1.ORIGNL_CURRENCY_CD.value = "PKR";
&REC1.EXC_ACCT_TYPE_FLG.value = "N";
&REC1.RESTRICT_ACCT_FLG.value = "N";
&REC1.SF_REVERSAL_IND.value = "N";
&get = &REC1.Insert();

Do this on a button, now make another button and run the following code, because remote call and insertion can not be done on the same button

Button2 Field Change Code:

Component string &strm;

Local Rowset &qukPost = CreateRowset(Record.DUMMY_TRANS_PST);
&qukPost.Fill();




For &j = 1 To &qukPost.ActiveRowCount
   &oprid = &qukPost.GetRow(&j).DUMMY_TRANS_PST.OPRID.Value;
   &datetime = &qukPost.GetRow(&j).DUMMY_TRANS_PST.GRP_TIMESTAMP.Value;
   &strm = &qukPost.GetRow(&j).DUMMY_TRANS_PST.STRM.Value;
  
  
   RemoteCall("PSRCCBL", "PSCOBOLPROG", "SFPQKDRV", "BUSINESS_UNIT", "PSUNI", "GRP_TIMESTAMP", &datetime, "OPRID", &oprid, "SF_REVERSAL_IND", "N", "ITEM_TYPE_CD", "C", "POST_FLAG", &POSTED, "POST_DT", &POST_DATE, "ERROR_WARN", &ERRWARN);
   rem MessageBox(0, "", 0, 0, "Post:" | &POSTED);
   rem  MessageBox(0, "", 0, 0, "Warn:" | &ERRWARN);
  
End-For;

If &POSTED = "Y" Then
  
   WinMessage("Successfully Posted");
  
  
End-If;





















No comments:

Post a Comment