icLstPrimKey | input | character | Char4 separated list with the primary keys of the newly created main-table records. The fields of a primkey are separated with Char2. E.g. 1<Char2>2002<Char2>100<Char4>1<Char2>2002<Char2>101 |
oiReturnStatus | output | integer | Return status of the method. |
/* =========================================================== */ /* Write the posting-id in the t_sApiCInvoicePostingCIJE records */ /* =========================================================== */ find first t_sApiCInvoiceCIJE no-error. if not available t_sApiCInvoiceCIJE then return. assign viMainTableRecordCount = 0. for each t_sApiPostingCIJE: assign viMainTableRecordCount = viMainTableRecordCount + 1. <Q-1 run JournalByJournalIDCodeType (all) (Read) (NoCache) (input t_sApiPostingCIJE.Company_ID, (CompanyId) input t_sApiPostingCIJE.Journal_ID, (JournalID) input t_sApiPostingCIJE.tcJournalCode, (JournalCode) input '':U, (JournalTypeCode) output dataset tqJournalByJournalIDCodeType) in BJournal > find first tqJournalByJournalIDCodeType no-lock no-error. if not available tqJournalByJournalIDCodeType then return. if tqJournalByJournalIDCodeType.tcJournalTypeCode = {&JOURNALTYPE-CIREC} then do: find t_sApiCinvoicePostingCIJE where t_sApiCInvoicePostingCIJE.CInvoicePostingType = {&INVOICEPOSTINGTYPE-ALLOCATION} no-lock no-error. if available t_sApiCInvoicePostingCIJE then do : assign t_sApiCInvoicePostingCIJE.Posting_ID = integer(entry(viMainTableRecordCount, icLstPrimKey, chr(4))) no-error. if error-status:error then do : assign oiReturnStatus = -1 vcMsgApi = trim(substitute(#T-8'An invoice/journal entry integration error occurred. The system was unable to find the link between the invoice and the allocation posting (&1).':255(14409)T-8#,trim("CInvoicePostingCIJE":U))) + chr(10) + trim(substitute(#T-13'List of primary keys: &1.':255(14419)T-13#,icLstPrimKey)). if error-status:num-messages > 0 then assign vcMsgApi = vcMsgApi + chr(10) + ERROR-STATUS:GET-MESSAGE(1). <M-2 run SetMessage (input vcMsgApi (icMessage), input '':U (icArguments), input '':U (icFieldName), input '':U (icFieldValue), input 'E':U (icType), input 1 (iiSeverity), input '':U (icRowid), input 'QADFIN-3315':U (icFcMsgNumber), input '' (icFcExplanation), input '' (icFcIdentification), input '' (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BCInvoiceJournalEntry> Return. end. /* if error-status:error */ end. /* if available t_sApiCInvoicePostingCIJE */ else do : /* default the cinvoiceposting record for type Allocation */ create t_sApiCInvoicePostingCIJE. assign t_sApiCInvoicePostingCIJE.tc_ParentRowid = t_sApiCInvoiceCIJE.tc_Rowid t_sApiCInvoicePostingCIJE.tc_Rowid = "X":U t_sApiCInvoicePostingCIJE.CInvoicePostingType = {&INVOICEPOSTINGTYPE-ALLOCATION} t_sApiCInvoicePostingCIJE.Posting_ID = integer(entry(viMainTableRecordCount, icLstPrimKey, chr(4))) no-error. if error-status:error then do : assign oiReturnStatus = -1 vcMsgApi = trim(substitute(#T-14'Invoice/journal entry integration: unable to find the link between the invoice and the allocation posting (&1).':255(999890658)T-14#,trim("CInvoicePostingCIJE":U))) + chr(10) + trim(substitute(#T-15'List of primary keys: &1.':255(14419)T-15#,icLstPrimKey)). if error-status:num-messages > 0 then assign vcMsgApi = vcMsgApi + chr(10) + ERROR-STATUS:GET-MESSAGE(1). <M-3 run SetMessage (input vcMsgApi (icMessage), input '':U (icArguments), input '':U (icFieldName), input '':U (icFieldValue), input 'E':U (icType), input 1 (iiSeverity), input '':U (icRowid), input 'QADFIN-3316':U (icFcMsgNumber), input '' (icFcExplanation), input '' (icFcIdentification), input '' (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BCInvoiceJournalEntry> Return. end. end. /* if not available t_sApiCInvoicePostingCIJE */ <M-4 run GetCIRECPostingLineID (input t_sApiCInvoicePostingCIJE.Posting_ID (iiPostingId), output t_sApiCInvoicePostingCIJE.CIRECPostingLine_ID (oiCIRECPostingLineId), output viFcReturnSuper (oiReturnStatus)) in BJournalEntry> if viFcReturnSuper <> 0 then do: assign oiReturnStatus = viFcReturnSuper. if oiReturnStatus < 0 then Return. end. /* if viFcReturnSuper <> 0 */ end. /* if tqJournalByJournalIDCodeType.tcJournalTypeCode = {&JOURNALTYPE-CIREC} */ else do: find t_sApiCinvoicePostingCIJE where t_sApiCInvoicePostingCIJE.CInvoicePostingType = {&INVOICEPOSTINGTYPE-INITIAL} no-lock no-error. if available t_sApiCInvoicePostingCIJE then do : assign t_sApiCInvoicePostingCIJE.Posting_ID = integer(entry(viMainTableRecordCount, icLstPrimKey, chr(4))) no-error. if error-status:error then do : assign oiReturnStatus = -1 vcMsgApi = trim(substitute(#T-10'An invoice/journal entry integration error occurred. The system was unable to find the link between the invoice and the initial posting (&1).':255(14413)T-10#,trim("CInvoicePostingCIJE":U))) + chr(10) + trim(substitute(#T-12'List of primary keys: &1.':255(14419)T-12#,icLstPrimKey)). if error-status:num-messages > 0 then assign vcMsgApi = vcMsgApi + chr(10) + ERROR-STATUS:GET-MESSAGE(1). <M-5 run SetMessage (input vcMsgApi (icMessage), input '':U (icArguments), input '':U (icFieldName), input '':U (icFieldValue), input 'E':U (icType), input 1 (iiSeverity), input '':U (icRowid), input 'QADFIN-3317':U (icFcMsgNumber), input '' (icFcExplanation), input '' (icFcIdentification), input '' (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BCInvoiceJournalEntry> Return. end. /* if error-status:error */ end. /* if available t_sApiCInvoicePostingCIJE */ else do : /* default the cinvoiceposting record for type Allocation */ create t_sApiCInvoicePostingCIJE. assign t_sApiCInvoicePostingCIJE.tc_ParentRowid = t_sApiCInvoiceCIJE.tc_Rowid t_sApiCInvoicePostingCIJE.tc_Rowid = "Y":U t_sApiCInvoicePostingCIJE.CInvoicePostingType = {&INVOICEPOSTINGTYPE-INITIAL} t_sApiCInvoicePostingCIJE.Posting_ID = integer(entry(viMainTableRecordCount, icLstPrimKey, chr(4))) no-error. if error-status:error then do : assign oiReturnStatus = -1 vcMsgApi = trim(substitute(#T-18'Invoice/journal entry integration: unable to find the link between the invoice and the initial posting (&1).':255(999890659)T-18#,trim("CInvoicePostingCIJE":U))) + chr(10) + trim(substitute(#T-19'List of primary keys: &1.':255(14419)T-19#,icLstPrimKey)). if error-status:num-messages > 0 then assign vcMsgApi = vcMsgApi + chr(10) + ERROR-STATUS:GET-MESSAGE(1). <M-6 run SetMessage (input vcMsgApi (icMessage), input '':U (icArguments), input '':U (icFieldName), input '':U (icFieldValue), input 'E':U (icType), input 1 (iiSeverity), input '':U (icRowid), input 'QADFIN-3318':U (icFcMsgNumber), input '' (icFcExplanation), input '' (icFcIdentification), input '' (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BCInvoiceJournalEntry> Return. end. end. /* if not available t_sApiCInvoicePostingCIJE */ <M-7 run GetCIRECPostingLineID (input t_sApiCInvoicePostingCIJE.Posting_ID (iiPostingId), output t_sApiCInvoicePostingCIJE.CIRECPostingLine_ID (oiCIRECPostingLineId), output viFcReturnSuper (oiReturnStatus)) in BJournalEntry> if viFcReturnSuper <> 0 then do: assign oiReturnStatus = viFcReturnSuper. if oiReturnStatus < 0 then Return. end. /* if viFcReturnSuper */ for each t_sApiCInvoiceVatCIJE: <M-40 run GetPostingVatID (input t_sApiCInvoiceVatCIJE.tcDomainCode (icDomainCode), input t_sApiCInvoiceVatCIJE.TxclTaxCls (icTxclTaxCls), input t_sApiCInvoiceVatCIJE.TxenvTaxEnv (icTxenvTaxEnv), input t_sApiCInvoiceVatCIJE.TxuTaxUsage (icTxuTaxUsage), input t_sApiCInvoiceVatCIJE.tcVatCode (icVatCode), input t_sApiCInvoiceVatCIJE.tcVatInOut (icVatInOut), input t_sApiCInvoicePostingCIJE.Posting_ID (iiPostingID), output t_sApiCInvoiceVatCIJE.PostingVat_ID (oiPostingVatID), output viFcReturnSuper (oiReturnStatus)) in BJournalEntry> if viFcReturnSuper <> 0 then do: assign oiReturnStatus = viFcReturnSuper. if oiReturnStatus < 0 then Return. end. /* if viFcReturnSuper */ end. /* for each t_sApiCInvoiceVatCIJE */ end. /* if tqJournalByJournalIDCodeType.tcJournalTypeCode = {&JOURNALTYPE-CIREC} */ end. /* for each t_sApiPostingCIJE: */