Tuesday, April 16, 2013

PeopleCode for inserting the AR pending item interface using Component Interface

 

Peoplesoft -- PeopleCode for inserting the AR pending item interface using Component Interface

 

Local File &fileLog;

Local ApiObject &oSession, &oDcPenditemCi;

Local ApiObject &oPendingItemCollection, &oPendingItem;

Local ApiObject &oPendingDstCollection, &oPendingDst;

Local ApiObject &oPendingVatCollection, &oPendingVat;

 

Function errorHandler()

   Local ApiObject &oPSMessageCollection, &oPSMessage;

   Local number &i;

   Local string &sErrMsgSetNum, &sErrMsgNum, &sErrMsgText, &sErrType;

   &oPSMessageCollection = &oSession.PSMessages;

   For &i = 1 To &oPSMessageCollection.Count

      &oPSMessage = &oPSMessageCollection.Item(&i);

      &sErrMsgSetNum = &oPSMessage.MessageSetNumber;

      &sErrMsgNum = &oPSMessage.MessageNumber;

      &sErrMsgText = &oPSMessage.Text;

      &fileLog.WriteLine(&sErrType | " (" | &sErrMsgSetNum | "," | &sErrMsgNum | ") - " | &sErrMsgText);

   End-For;

   rem ***** Delete the Messages from the collection *****;

   &oPSMessageCollection.DeleteAll();

End-Function;

 

SQLExec("select GROUP_BU,GROUP_ID,OPRID,ASSN_OPRID,GROUP_TYPE,POST_ACTION,CONTROL_AMT,CONTROL_CNT,ORIGIN_ID,%dateout(RECEIVED_DT),%dateout(ENTRY_DT),  %dateout(ACCOUNTING_DT),CONTROL_CURRENCY,FORMAT_CURRENCY,ALLOW_DST FROM PS_Z_AR_GCTL_TMP WHERE PROCESS_INSTANCE = :1 AND Z_AR_STATUS ='P'", Z_AR_ALNCE_AET.PROCESS_INSTANCE.Value, &GROUP_BU, &GROUP_ID, &OPRID, &ASSN_OPRID, &GROUP_TYPE, &POST_ACTION, &CONTROL_AMT, &CONTROL_CNT, &ORIGIN_ID, &RECEIVED_DT, &ENTRY_DT, &ACCOUNTING_DT, &CONTROL_CURRENCY, &FORMAT_CURRENCY, &ALLOW_DST);

try

   rem ***** Set the Log File *****;

   &fileLog = GetFile("C:\temp\DC_PENDITEM_CI.log", "w", "a", %FilePath_Absolute);

   &fileLog.WriteLine("Begin");

   rem ***** Get current PeopleSoft Session *****;

   &oSession = %Session;

   rem ***** Set the PeopleSoft Session Error Message Mode *****;

   rem ***** 0 - None *****;

  rem ***** 1 - PSMessage Collection only (default) *****;

   rem ***** 2 - Message Box only *****;

   rem ***** 3 - Both collection and message box *****;

   &oSession.PSMessagesMode = 1;

   rem ***** Get the Component Interface *****;

   &oDcPenditemCi = &oSession.GetCompIntfc(CompIntfc.DC_PENDITEM_CI);

   If &oDcPenditemCi = Null Then

      errorHandler();

      throw CreateException(0, 0, "GetCompIntfc failed for pending item ");

   End-If;

   rem ***** Set the Component Interface Mode *****;

   &oDcPenditemCi.InteractiveMode = False;

   &oDcPenditemCi.GetHistoryItems = True;

   &oDcPenditemCi.EditHistoryItems = False;

   rem ***** Set Component Interface Get/Create Keys *****;

   &oDcPenditemCi.GROUP_BU = &GROUP_BU;

   &oDcPenditemCi.GROUP_ID = "NEXT";

   rem ***** Execute Create ******;

   If Not &oDcPenditemCi.Create() Then;

      rem ***** Unable to Create Component Interface for the Add keys provided. *****;

      errorHandler();

      throw CreateException(0, 0, "Create pending item failed ");

   End-If;

   rem ***** Begin: Get/Set Component Interface Properties *****;

   rem ***** Get/Set Level 0 Field Properties *****;

   &oDcPenditemCi.GROUP_BU = &GROUP_BU;

   &oDcPenditemCi.GROUP_ID = "NEXT";

   &oDcPenditemCi.OPRID = &OPRID;

   &oDcPenditemCi.ASSN_OPRID = &ASSN_OPRID;

   &oDcPenditemCi.GROUP_TYPE = "B";

   rem &oDcPenditemCi.GROUP_SEQ_NUM = 17;

   &oDcPenditemCi.POST_ACTION = "L";

   &oDcPenditemCi.CONTROL_AMT = &CONTROL_AMT;

   &oDcPenditemCi.CONTROL_CNT = &CONTROL_CNT;

   &oDcPenditemCi.ORIGIN_ID = &ORIGIN_ID;

   &oDcPenditemCi.RECEIVED_DT = &RECEIVED_DT;

   &oDcPenditemCi.ENTRY_DT = &ENTRY_DT;

   &oDcPenditemCi.ACCOUNTING_DT = &ACCOUNTING_DT;

   rem &oDcPenditemCi.DST_BAL_STATUS = "I";

   &oDcPenditemCi.FORMAT_CURRENCY = &FORMAT_CURRENCY;

   &oDcPenditemCi.ALLOW_DST = &ALLOW_DST;

   rem ***** Set/Get PENDING_ITEM Collection Field Properties -- Parent: PS_ROOT Collection *****;

   &oPendingItemCollection = &oDcPenditemCi.PENDING_ITEM;

   Local integer &i126;

   &i126 = 1;

   &SelPndRecord = CreateRecord(Record.Z_AR_PITM_TMP);

   &SQL = CreateSQL("%Selectall(:1) WHERE PROCESS_INSTANCE = :2 AND Z_AR_STATUS ='P'", Record.Z_AR_PITM_TMP, Z_AR_ALNCE_AET.PROCESS_INSTANCE.Value);

   While &SQL.fetch(&SelPndRecord)

      &oPendingItem = &oPendingItemCollection.InsertItem(&i126);

      REM MessageBox(0, "", 0, 0, &SelPndRecord.CUST_ID.VALUE);

      &oPendingItem.GROUP_BU = &SelPndRecord.GROUP_BU.VALUE;

      &oPendingItem.GROUP_ID = "NEXT";

      &oPendingItem.BUSINESS_UNIT = &SelPndRecord.BUSINESS_UNIT.VALUE;

      &oPendingItem.CUST_ID = &SelPndRecord.CUST_ID.VALUE;

      &oPendingItem.ITEM = &SelPndRecord.ITEM.VALUE;

      &oPendingItem.ITEM_LINE = &SelPndRecord.ITEM_LINE.VALUE;

      &EntryType = &SelPndRecord.ENTRY_TYPE.VALUE;

      If &SelPndRecord.GROUP_SEQ_NUM.VALUE = 1 Then

         &EntryType = "IN";

      End-If;

      If &SelPndRecord.GROUP_SEQ_NUM.VALUE = 2 Then

         &EntryType = "CR";

      End-If;

      &oPendingItem.GROUP_SEQ_NUM = &SelPndRecord.GROUP_SEQ_NUM.VALUE;

      &oPendingItem.ENTRY_TYPE = &EntryType;

      REM &SelPndRecord.ENTRY_TYPE.VALUE;

      &oPendingItem.ENTRY_REASON = &SelPndRecord.ENTRY_REASON.VALUE;

      &oPendingItem.ENTRY_AMT = &SelPndRecord.ENTRY_AMT.VALUE;

      &oPendingItem.ENTRY_EVENT = &SelPndRecord.ENTRY_EVENT.VALUE;

      &oPendingItem.ACCOUNTING_DT = &SelPndRecord.ACCOUNTING_DT.VALUE;

      &oPendingItem.ASOF_DT = &SelPndRecord.ASOF_DT.VALUE;

      &oPendingItem.DUE_DT = &SelPndRecord.DUE_DT.VALUE;

      &oPendingItem.CR_ANALYST = &SelPndRecord.CR_ANALYST.VALUE;

      &oPendingItem.SALES_PERSON = &SelPndRecord.SALES_PERSON.VALUE;

      &oPendingItem.COLLECTOR = &SelPndRecord.COLLECTOR.VALUE;

     

      REM &oPendingItem.DISPUTE_STATUS = &SelPndRecord.DISPUTE_STATUS.VALUE;

      &oPendingItem.PO_REF = &SelPndRecord.PO_REF.VALUE;

     

      REM &oPendingItem.PO_LINE = &SelPndRecord.PO_LINE.VALUE;

      REM &oPendingItem.DOCUMENT = &SelPndRecord.DOCUMENT.VALUE;

      REM &oPendingItem.DOCUMENT_LINE = &SelPndRecord.DOCUMENT_LINE.VALUE;

      &oPendingItem.POSTED_FLAG = "N";

      &oPendingItem.PYMNT_TERMS_CD = &SelPndRecord.PYMNT_TERMS_CD.VALUE;

     

      REM &oPendingItem.DISC_AMT = &SelPndRecord.DISC_AMT.VALUE;

      REM &oPendingItem.DISC_AMT1 = &SelPndRecord.DISC_AMT1.VALUE;

      REM &oPendingItem.DISC_DT = &SelPndRecord.DISC_DT.VALUE;

      REM &oPendingItem.DISC_DT1 = &SelPndRecord.DISC_DT1.VALUE;

      REM &oPendingItem.DISC_DAYS = &SelPndRecord.DISC_DAYS.VALUE;

      REM &oPendingItem.DUE_DAYS = &SelPndRecord.DUE_DAYS.VALUE;

      REM &oPendingItem.ALLOW_DISC = &SelPndRecord.ALLOW_DISC.VALUE;

      &oPendingItem.DST_ID_AR = &SelPndRecord.DST_ID_AR.VALUE;

      &oPendingItem.ENTRY_USE_ID = &SelPndRecord.ENTRY_USE_ID.VALUE;

      &oPendingItem.DST_BAL_ITEM = &SelPndRecord.DST_BAL_ITEM.VALUE;

     

      REM &oPendingItem.COLLECTION_STATUS = &SelPndRecord.COLLECTION_STATUS.VALUE;

      REM &oPendingItem.COLLECTION_DT = &SelPndRecord.COLLECTION_DT.VALUE;

      REM &oPendingItem.BILL_OF_LADING = &SelPndRecord.BILL_OF_LADING.VALUE;

      &oPendingItem.SUBCUST_QUAL1 = &SelPndRecord.SUBCUST_QUAL1.VALUE;

      &oPendingItem.SUBCUST_QUAL2 = &SelPndRecord.SUBCUST_QUAL2.VALUE;

      &oPendingItem.ENTRY_CURRENCY = &SelPndRecord.ENTRY_CURRENCY.VALUE;

     

      REM &oPendingItem.RT_TYPE = &SelPndRecord.RT_TYPE.VALUE;

      REM &oPendingItem.RATE_MULT = &SelPndRecord.RATE_MULT.VALUE;

      REM &oPendingItem.RATE_DIV = &SelPndRecord.RATE_DIV.VALUE;

      REM &oPendingItem.ENTRY_AMT_BASE = &SelPndRecord.ENTRY_AMT_BASE.VALUE;

     

      &oPendingItem.PAYMENT_METHOD = &SelPndRecord.PAYMENT_METHOD.VALUE;

      &oPendingItem.USER_AMT7 = &SelPndRecord.USER_AMT7.VALUE;

      &oPendingItem.USER7 = &SelPndRecord.USER7.VALUE;

      &oPendingItem.USER8 = &SelPndRecord.USER8.VALUE;

      &oPendingItem.USER9 = &SelPndRecord.USER9.VALUE;

      &oPendingItem.REVALUE_FLAG = &SelPndRecord.REVALUE_FLAG.VALUE;;

      rem &oPendingItem.PC_DISTRIB_STATUS = &SelPndRecord.PC_DISTRIB_STATUS.VALUE;;

      &oPendingItem.CURRENCY_CD = &SelPndRecord.CURRENCY_CD.VALUE;

      <*

      &oPendingItem.DST_ID_REAL = &SelPndRecord.DST_ID_REAL.VALUE;

      &oPendingItem.ITEM_ACCTG_DT = &SelPndRecord.ITEM_ACCTG_DT.VALUE;

      &oPendingItem.ORDER_NO = &SelPndRecord.ORDER_NO.VALUE;

      &oPendingItem.CONTRACT_NUM = &SelPndRecord.CONTRACT_NUM.VALUE;

      &oPendingItem.BUSINESS_UNIT_BI = &SelPndRecord.BUSINESS_UNIT_BI.VALUE;

      &oPendingItem.BUSINESS_UNIT_OM = &SelPndRecord.BUSINESS_UNIT_OM.VALUE;

      &oPendingItem.ADDRESS_SEQ_NUM = &SelPndRecord.ADDRESS_SEQ_NUM.VALUE;

      &oPendingItem.LETTER_CD = &SelPndRecord.LETTER_CD.VALUE;

      &oPendingItem.CONSOL_BUS_UNIT = &SelPndRecord.CONSOL_BUS_UNIT.VALUE;

      &oPendingItem.CONSOL_INVOICE = &SelPndRecord.CONSOL_INVOICE.VALUE;

      &oPendingItem.PAYMENT_METHOD = &SelPndRecord.PAYMENT_METHOD.VALUE;

      &oPendingItem.DRAFT_FORMAT = &SelPndRecord.DRAFT_FORMAT.VALUE;

      &oPendingItem.BANK_SETID = &SelPndRecord.BANK_SETID.VALUE;

      &oPendingItem.BANK_CD = &SelPndRecord.BANK_CD.VALUE;

      &oPendingItem.BANK_ACCT_KEY = &SelPndRecord.BANK_ACCT_KEY.VALUE;

      &oPendingItem.DRAFT_TYPE = &SelPndRecord.DRAFT_TYPE.VALUE;

      &oPendingItem.DRAFT_AMT_BASE = &SelPndRecord.DRAFT_AMT_BASE.VALUE;

      &oPendingItem.DOC_TYPE = &SelPndRecord.DOC_TYPE.VALUE;

      &oPendingItem.DOC_SEQ_NBR = &SelPndRecord.DOC_SEQ_NBR.VALUE;

      &oPendingItem.DOC_SEQ_DATE = &SelPndRecord.DOC_SEQ_DATE.VALUE;

      &oPendingItem.USER_AMT1 = &SelPndRecord.USER_AMT1.VALUE;

      &oPendingItem.USER1 = &SelPndRecord.USER1.VALUE;

      &oPendingItem.USER2 = &SelPndRecord.USER2.VALUE;

      &oPendingItem.REGION_CD = &SelPndRecord.REGION_CD.VALUE;

 

      &oPendingItem.PACKSLIP_NO = &SelPndRecord.PACKSLIP_NO.VALUE;

      &oPendingItem.VAT_ADVPAY_FLG = &SelPndRecord.VAT_ADVPAY_FLG.VALUE;

      &oPendingItem.LC_ID = &SelPndRecord.LC_ID.VALUE;

      &oPendingItem.RECEIVABLE_TYPE = &SelPndRecord.RECEIVABLE_TYPE.VALUE;

      &oPendingItem.ENTITY_CODE = &SelPndRecord.ENTITY_CODE.VALUE;

      &oPendingItem.PPRC_PROMO_CD = &SelPndRecord.PPRC_PROMO_CD.VALUE;

      &oPendingItem.CLAIM_NO = &SelPndRecord.CLAIM_NO.VALUE;

      &oPendingItem.CONTROL_CURRENCY = &SelPndRecord.CONTROL_CURRENCY.VALUE;

      &oPendingItem.CONTROL_CURR_BASE = &SelPndRecord.CONTROL_CURR_BASE.VALUE;

*>

      &i126 = &i126 + 1;

   End-While;

   &oPendingItemCollection.DeleteItem(1);

   rem ***** Execute Save *****;

   If Not &oDcPenditemCi.Save() Then;

      errorHandler();

      throw CreateException(0, 0, "Pending item save failed");

   Else

      Z_AR_ALNCE_AET.GROUP_ID.Value = &oDcPenditemCi.GROUP_ID;

      Z_AR_ALNCE_AET.GROUP_BU.Value = &oDcPenditemCi.GROUP_BU;

     

      MessageBox(0, "", 0, 0, "Group ID created -" | Z_AR_ALNCE_AET.GROUP_ID.Value);

   End-If;

  

   rem ***** Execute Cancel *****;

   rem If Not &oDcPenditemCi.Cancel() Then;

   rem     errorHandler();

   rem     throw CreateException(0, 0, "Cancel failed");

   rem End-If;

catch Exception &ex

   rem Handle the exception;

   MessageBox(0, "", 0, 0, &ex.ToString());

   Z_AR_ALNCE_AET.GROUP_ID.Value = " ";

   Z_AR_ALNCE_AET.GROUP_BU.Value = " ";

end-try;

 

 

Best Regards

Aravind Kumar R

System Analyst/Peoplesoft Practice
Birlasoft
36, Vijayaraghava Road , T. Nagar, Chennai 600 017 (INDIA)
Cell: +91 9566750166

************************************************************************************************************************************************************************************
"This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the mail.admin@birlasoft.com immediately without opening the mail and attachment . Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email
************************************************************************************************************************************************************************************

No comments: