| opPrimeKey | output | longchar | Primary Key field value of loaded record(s). Keys are chr(4) separated. Key fields are chr(2) separated. |
| oiReturnStatus | output | integer | Return status of the method. |
if oiReturnStatus = 0
then oiReturnStatus = -98.
/* ========================= */
/* Start Queries */
/* ========================= */
<Q-26 run BankNumberPrim (Start) in BBankNumber >
<Q-11 run CreditorPrim (Start) in BCreditor >
<Q-12 run DebtorPrim (Start) in BDebtor >
<Q-13 run EmployeePrim (Start) in BEmployee >
<Q-14 run GLPrim (Start) in BGL >
for each t_sbankpayformat on error undo, return:
/* ======================================================= */
/* Find banknumber_id required for record creation */
/* ======================================================= */
case t_sBankPayFormat.tcParentType:
when {&BANKNUMBERPARENTTYPE-CREDITOR}
then do:
<Q-5 run CreditorPrim (all) (Read) (Cache)
(input viCompanyId, (CompanyId)
input ?, (CreditorId)
input t_sBankPayFormat.tcParentCode, (CreditorCode)
output dataset tqCreditorPrim) in BCreditor >
find first tqCreditorPrim no-error.
if available tqCreditorPrim
then assign t_sbankpayformat.tiParentObject_ID = tqCreditorPrim.tiCreditor_ID.
else assign t_sbankpayformat.tiParentObject_ID = ?.
end. /* Creditor */
when {&BANKNUMBERPARENTTYPE-DEBTOR}
then do:
<Q-6 run DebtorPrim (all) (Read) (Cache)
(input viCompanyId, (CompanyId)
input t_sbankpayformat.tcParentCode, (DebtorCode)
input ?, (Debtor_ID)
output dataset tqDebtorPrim) in BDebtor >
find first tqDebtorPrim no-error.
if available tqDebtorPrim
then assign t_sbankpayformat.tiParentObject_ID = tqDebtorPrim.tiDebtor_ID.
else assign t_sbankpayformat.tiParentObject_ID = ?.
end. /* Debtor */
when {&BANKNUMBERPARENTTYPE-EMPLOYEE}
then do:
<Q-7 run EmployeePrim (all) (Read) (Cache)
(input ?, (EmployeeId)
input t_sBankPayFormat.tcParentCode, (EmployeeCode)
input viCompanyId, (CompanyId)
output dataset tqEmployeePrim) in BEmployee >
find first tqEmployeePrim no-error.
if available tqEmployeePrim
then assign t_sbankpayformat.tiParentObject_ID = tqEmployeePrim.tiEmployee_ID.
else assign t_sbankpayformat.tiParentObject_ID = ?.
end. /* Employee */
when {&BANKNUMBERPARENTTYPE-GL}
then do:
<Q-8 run GLPrim (all) (Read) (Cache)
(input viCompanyId, (CompanyId)
input t_sBankPayFormat.tcParentCode, (GLCode)
input ?, (GLId)
output dataset tqGLPrim) in BGL >
find first tqGLPrim no-error.
if available tqGLPrim
then assign t_sbankpayformat.tiParentObject_ID = tqGLPrim.tiGL_ID.
else assign t_sbankpayformat.tiParentObject_ID = ?.
end. /* G/L */
otherwise assign t_sbankpayformat.tiParentObject_ID = ?.
end case.
/* =============================================== */
/* Try to convert the logical key into the real ID */
/* =============================================== */
if t_sbankpayformat.tiParentObject_ID <> ? and
t_sbankpayformat.tiParentObject_ID <> 0
then do :
<Q-9 run BankNumberPrim (all) (Read) (NoCache)
(input ?, (BankNumberId)
input t_sBankPayFormat.tiParentObject_ID, (ParentObjectId)
input t_sBankPayFormat.tcBankNumber, (BankNumber)
input t_sBankPayFormat.tcBankNumberExtension, (BankNumberExtension)
input ?, (BankPayFormatID)
output dataset tqBankNumberPrim) in BBankNumber >
find tqBankNumberPrim where
tqBankNumberPrim.tiParentObject_ID = t_sbankpayformat.tiParentObject_ID and
tqBankNumberPrim.tcBankNumber = t_sbankpayformat.tcBankNumber and
tqBankNumberPrim.tcBankNumberExtension = t_sbankpayformat.tcBankNumberExtension
/* BKW: Add search on BankPayFormat_ID */
and tqBankNumberPrim.tiBankPayFormat_ID = t_sbankpayformat.BankPayFormat_ID
no-lock no-error.
if available tqBankNumberPrim
then assign t_sbankpayformat.BankNumber_ID = tqBankNumberPrim.tiBankNumber_ID.
end. /* if t_sbankpayformat.ParentObject <> ? and */
if t_sbankpayformat.BankNumber_ID = ? or
t_sbankpayformat.BankNumber_ID = 0
then do:
assign
vcMessage1 = trim(#T-22'The specified bank number ID is not defined in the system.':100(65408)t-22#).
<M-21 run SetMessage
(input vcMessage1 (icMessage),
input t_sBankPayFormat.BankPayFormat_ID (icArguments),
input 't_sBankPayFormat.BankPayFormat_ID' (icFieldName),
input t_sBankPayFormat.BankPayFormat_ID (icFieldValue),
input 'E' (icType),
input 3 (iiSeverity),
input t_sBankPayFormat.tc_Rowid (icRowid),
input 'QadFin-7027':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankPayFormat>
assign oiReturnStatus = -1.
return.
end.
if vcActivityCode = "Create":U
or viFcReturnSuper = -4
then do:
/* ================================================================= */
/* When object not found and in modify only mode, return an error. */
/* ================================================================= */
if vcActivityCode = "Modify":U
then do:
assign
vcMessage1 = trim(#T-2'Object with key $1 does not exist.':100(48021)T-2#).
<M-4 run SetMessage
(input vcMessage1 (icMessage),
input t_sBankPayFormat.BankPayFormat_ID (icArguments),
input 't_sBankPayFormat.BankPayFormat_ID' (icFieldName),
input t_sBankPayFormat.BankPayFormat_ID (icFieldValue),
input 'E' (icType),
input 3 (iiSeverity),
input t_sBankPayFormat.tc_Rowid (icRowid),
input 'QadFin-7026':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankPayFormat>
assign oiReturnStatus = -1.
return.
end. /* if vcActivityCode = Modify */
/* ================================================================= */
/* When object not found or in create mode, create it. */
/* ================================================================= */
<M-15 run AddDetailLine
(input 'bankpayformat':U (icTable),
input '' (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankPayFormat>
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign
t_sbankpayformat.tc_Status = "N":U.
end. /* if vcActivityCode = Create */
else do:
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign
t_sbankpayformat.tc_Status = "C":U.
end.
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
/* insert code for subtables here */
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign
t_sbankpayformat.bankpayformat_id = tbankpayformat.bankpayformat_id
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
t_sbankpayformat.tc_Rowid = tbankpayformat.tc_Rowid
t_sbankpayformat.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tbankpayformat.bankpayformat_id).
end.
/* ========================= */
/* Stop Queries */
/* ========================= */
<Q-27 run BankNumberPrim (Stop) in BBankNumber >
<Q-17 run CreditorPrim (Stop) in BCreditor >
<Q-18 run DebtorPrim (Stop) in BDebtor >
<Q-19 run EmployeePrim (Stop) in BEmployee >
<Q-20 run GLPrim (Stop) in BGL >
if oiReturnStatus = -98
then oiReturnStatus = 0.