| 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.
PROCESSBLOCK:
for each t_sPayFormatType:
/* ================================================================= */
/* Lookup object by logical key */
/* When in create mode, skip lookup. */
/* ================================================================= */
/*Only need to handle MaintainPayFormat activity*/
if vcActivityCode <> "Create":U and vcActivityCode <> "MaintainPayFormat":U
then do:
vcFreeform = "for each PayFormatType where PayFormatType.PayFormatTypeCode = '":U + t_sPayFormatType.PayFormatTypeCode + "'":U.
<M-2 run DataLoad
(input '' (icRowids),
input '' (icPkeys),
input '' (icObjectIds),
input vcFreeform (icFreeform),
input yes (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BPaymentFormat>
if viFcReturnSuper >= 0
then find first tPayFormatType where tPayFormatType.PayFormatTypeCode = t_sPayFormatType.PayFormatTypeCode no-error.
end. /* if vcActivityCode <> Create */
/* ================================================================= */
/* When in delete mode, ignore input data. */
/* When object not found, do not return an error. */
/* ================================================================= */
/*Only need to handle MaintainPayFormat activity*/
if vcActivityCode = "Delete":U
then do:
if viFcReturnSuper = -4
then delete t_sPayFormatType.
else do:
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign
t_sPayFormatType.tc_Rowid = tPayFormatType.tc_Rowid
t_sPayFormatType.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tPayFormatType.PayFormatTypeCode).
end.
next.
end. /* if vcActivityCode = Delete */
if vcActivityCode = "Create":U or vcActivityCode = "MaintainPayFormat":U
or viFcReturnSuper = -4
then do:
/* ================================================================= */
/* When object not found and in modify only mode, return an error. */
/* ================================================================= */
/*Only need to handle MaintainPayFormat activity*/
if vcActivityCode = "Modify":U
then do:
assign
vcMessage = trim(#T-1'Object with key $1 does not exist.':100(48021)T-1#).
<M-4 run SetMessage
(input vcMessage (icMessage),
input t_sPayFormatType.PayFormatTypeCode (icArguments),
input 'tPayFormatType.PayFormatTypeCode':U (icFieldName),
input t_sPayFormatType.PayFormatTypeCode (icFieldValue),
input 'E' (icType),
input 3 (iiSeverity),
input t_sPayFormatType.tc_Rowid (icRowid),
input 'QadFin-6681':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPaymentFormat>
assign oiReturnStatus = -1.
return.
end. /* if vcActivityCode = Modify */
/* ================================================================= */
/* When object not found or in create mode, create it. */
/* ================================================================= */
<M-3 run AddDetailLine
(input 'PayFormatType':U (icTable),
input '' (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BPaymentFormat>
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign
t_sPayFormatType.tc_Status = "N":U.
end. /* if vcActivityCode = Create */
else do:
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign
t_sPayFormatType.tc_Status = "C":U.
end.
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
/* ================================================================= */
/* Delete existing detail - PayFormatGroup */
/* ================================================================= */
for each tPayFormatGroup where
tPayFormatGroup.tc_ParentRowid = tPayFormatType.tc_Rowid:
assign tPayFormatGroup.tc_Status = "D":U.
end.
/* ================================================================= */
/* Update / add detail - PayFormatGroup */
/* ================================================================= */
for each t_sPayFormatGroup where
t_sPayFormatGroup.tc_ParentRowid = t_sPayFormatType.tc_Rowid and
t_sPayFormatGroup.tc_Status <> "D":U:
find first tPayFormatGroup where
tPayFormatGroup.tc_ParentRowid = tPayFormatType.tc_Rowid and
tPayFormatGroup.PayFormatTypeCode = t_sPayFormatGroup.PayFormatTypeCode and
tPayFormatGroup.PayFormatGroupCode = t_sPayFormatGroup.PayFormatGroupCode no-error.
if available tPayFormatCode
then
assign t_sPayFormatGroup.tc_Status = "C":U.
else do:
<M-7 run AddDetailLine
(input 'PayFormatGroup':U (icTable),
input tPayFormatType.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BPaymentFormat>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
assign t_sPayFormatGroup.tc_Status = "N":U.
end.
/* insert code for subtables here */
/* ================================================================= */
/* Delete existing detail - PayFormatCode */
/* ================================================================= */
for each tPayFormatCode where
tPayFormatCode.tc_ParentRowid = tPayFormatGroup.tc_Rowid:
assign tPayFormatCode.tc_Status = "D":U.
end.
/* ================================================================= */
/* Update / add detail - PayFormatCode */
/* ================================================================= */
for each t_sPayFormatCode where
t_sPayFormatCode.tc_ParentRowid = t_sPayFormatGroup.tc_Rowid and
t_sPayFormatCode.tc_Status <> "D":U:
assign t_sPayFormatCode.PayFormatGroup_ID = tPayFormatGroup.PayFormatGroup_ID.
find first tPayFormatCode where
tPayFormatCode.tc_ParentRowid = tPayFormatGroup.tc_Rowid and
tPayFormatCode.PayFormatCode = t_sPayFormatCode.PayFormatCode and
tPayFormatCode.PayFormatGroup_ID = t_sPayFormatCode.PayFormatGroup_ID no-error.
if available tPayFormatCode
then assign t_sPayFormatCode.tc_Status = "C":U.
else do:
<M-8 run AddDetailLine
(input 'PayFormatCode':U (icTable),
input tPayFormatGroup.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BPaymentFormat>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
assign t_sPayFormatCode.tc_Status = "N":U.
end.
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign t_sPayFormatCode.PayFormatCode_ID = tPayFormatCode.PayFormatCode_ID
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
t_sPayFormatCode.PayFormatGroup_ID = tPayFormatCode.PayFormatGroup_ID
t_sPayFormatCode.tc_Rowid = tPayFormatCode.tc_Rowid
t_sPayFormatCode.tc_ParentRowid = tPayFormatGroup.tc_Rowid.
end.
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign t_sPayFormatGroup.PayFormatGroup_ID = tPayFormatGroup.PayFormatGroup_ID
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
t_sPayFormatGroup.PayFormatTypeCode = tPayFormatGroup.PayFormatTypeCode
t_sPayFormatGroup.tc_Rowid = tPayFormatGroup.tc_Rowid
t_sPayFormatGroup.tc_ParentRowid = tPayFormatType.tc_Rowid.
end.
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign
/* t_sPayFormatType.PayFormatTypeCode = tPayFormatType.PayFormatTypeCode */
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
t_sPayFormatType.tc_Rowid = tPayFormatType.tc_Rowid
t_sPayFormatType.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tPayFormatType.PayFormatTypeCode).
end.
if oiReturnStatus = -98
then oiReturnStatus = 0.