| 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. |
QadFinancials
/* =========================================================== */
/* 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: */