| 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.
for each t_sBankState on error undo, return:
/* ================================================================= */
/* Lookup object by logical key */
/* When in create mode, skip lookup. */
/* ================================================================= */
if vcActivityCode <> "Create":U
then do:
vcFreeform = "for each BankState where BankState.BankStateNumber = '":U + t_sBankState.BankStateNumber + "'":U.
<M-2 run DataLoad
(input '' (icRowids),
input '' (icPkeys),
input '' (icObjectIds),
input vcFreeform (icFreeform),
input yes (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
if viFcReturnSuper >= 0
then find first tBankState where tBankState.BankStateNumber = t_sBankState.BankStateNumber no-error.
end. /* if vcActivityCode <> Create */
/* ================================================================= */
/* When in delete mode, ignore input data. */
/* When object not found, do not return an error. */
/* ================================================================= */
if vcActivityCode = "Delete":U
then do:
if viFcReturnSuper = -4
then delete t_sBankState.
else do:
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign
t_sBankState.tc_Rowid = tBankState.tc_Rowid
t_sBankState.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tBankState.BankState_ID).
end.
next.
end. /* if vcActivityCode = Delete */
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
vcMessage = trim(#T-1'Object with key $1 does not exist.':100(48021)T-1#)
oiReturnStatus = -1.
<M-3 run SetMessage
(input vcMessage (icMessage),
input t_sBankState.BankStateNumber (icArguments),
input 'tBankState.BankStateNumber':U (icFieldName),
input t_sBankState.BankStateNumber (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sBankState.tc_Rowid (icRowid),
input 'QadFin-6430':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
return.
end. /* if vcActivityCode = Modify */
/* ================================================================= */
/* When object not found or in create mode, create it. */
/* ================================================================= */
<M-4 run AddDetailLine
(input 'BankState':U (icTable),
input '' (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign
t_sBankState.tc_Status = "N":U.
end. /* if vcActivityCode = Create */
else do:
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign
t_sBankState.tc_Status = "C":U.
end.
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
/* insert code for subtables here */
/* ================================================================= */
/* Check if there are BankStateStageAlloc records to be loaded. */
/* If so, then raise an error and stop the XML load. */
/* ================================================================= */
if can-find(first t_sBankStateStageAlloc)
then do:
assign vcMessage = trim(#T-6'The data could not be loaded.':150(3622)t-6#) +
trim(#T-7'The XML-interface on the Banking Entry only allows un-allocated Banking Entries to be handled':250(999890107)T-7#)
oiReturnStatus = -1.
<M-8 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input ? (icRowid),
input 'QadFin-8861':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
return.
end.
/* ================================================================= */
/* Check if there are BankStateAlloc records to be loaded. */
/* If so, then raise an error and stop the XML load. */
/* ================================================================= */
if can-find(first t_sBankStateAlloc)
then do:
assign vcMessage = trim(#T-9'The data could not be loaded.':150(3622)t-9#) +
trim(#T-10'The XML-interface on the Banking Entry only allows un-allocated Banking Entries to be handled':250(999890107)T-10#)
oiReturnStatus = -1.
<M-14 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input ? (icRowid),
input 'QadFin-8863':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
return.
end.
/* ================================================================= */
/* Check if there are BankStateAllocColl records to be loaded. */
/* If so, then raise an error and stop the XML load. */
/* ================================================================= */
if can-find(first t_sBankStateAllocColl)
then do:
assign vcMessage = trim(#T-11'The data could not be loaded.':150(3622)t-11#) +
trim(#T-12'The XML-interface on the Banking Entry only allows un-allocated Banking Entries to be handled':250(999890107)T-12#)
oiReturnStatus = -1.
<M-13 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input ? (icRowid),
input 'QadFin-8862':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
return.
end.
/* ================================================================= */
/* Delete existing detail for BankStateLine */
/* ================================================================= */
for each tBankStateLine where
tBankStateLine.tc_ParentRowid = tBankState.tc_Rowid:
assign tBankStateLine.tc_Status = "D":U.
end.
/* ================================================================= */
/* Update / add detail for BankStateLine */
/* ================================================================= */
for each t_sBankStateLine where
t_sBankStateLine.tc_ParentRowid = t_sBankState.tc_Rowid:
find first tBankStateLine where
tBankStateLine.tc_ParentRowid = tBankState.tc_Rowid and
tBankStateLine.BankState_ID = t_sBankStateLine.BankState_ID and
tBankStateLine.BankStateLineNumber = t_sBankStateLine.BankStateLineNumber no-error.
if available tBankStateLine
then do:
assign t_sBankStateLine.tc_Status = "C":U.
end.
else do:
<M-5 run AddDetailLine
(input 'BankStateLine':U (icTable),
input tBankState.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
assign t_sBankStateLine.tc_Status = "N":U.
end.
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign t_sBankStateLine.BankStateLine_ID = tBankStateLine.BankStateLine_ID
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
t_sBankStateLine.BankState_ID = tBankStateLine.BankState_ID
t_sBankStateLine.Company_ID = tBankStateLine.Company_ID
t_sBankStateLine.tc_Rowid = tBankStateLine.tc_Rowid
t_sBankStateLine.tc_ParentRowid = tBankState.tc_Rowid.
end.
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign
t_sBankState.BankState_ID = tBankState.BankState_ID
t_sBankState.Company_ID = tBankState.Company_ID
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
t_sBankState.tc_Rowid = tBankState.tc_Rowid
t_sBankState.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tBankState.BankState_ID).
end.
if oiReturnStatus = -98
then oiReturnStatus = 0.