| 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_sFRWCol:
/* ================================================================= */
/* Lookup object by logical key */
/* When in create mode, skip lookup. */
/* ================================================================= */
if vcActivityCode <> "Create":U
then do:
vcFreeform = "for each FRWCol where FRWCol.FRWColCode = '":U + t_sFRWCol.FRWColCode + "'":U.
<M-68 run DataLoad
(input '' (icRowids),
input '' (icPkeys),
input '' (icObjectIds),
input vcFreeform (icFreeform),
input yes (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BFRWColumnGroup>
if viFcReturnSuper >= 0
then find first tFRWCol where tFRWCol.FRWColCode = t_sFRWCol.FRWColCode no-error.
end.
/* ================================================================= */
/* 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_sFRWCol.
else do:
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign t_sFRWCol.tc_Rowid = tFRWCol.tc_Rowid
t_sFRWCol.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tFRWCol.FRWCol_ID).
end.
next.
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
vcMessage = trim(#T-61'Object with key $1 does not exist.':100(48021)T-61#).
<M-72 run SetMessage
(input vcMessage (icMessage),
input t_sFRWCol.FRWColCode (icArguments),
input 'tFRWCol.FRWColCode':U (icFieldName),
input t_sFRWCol.FRWColCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWCol.tc_Rowid (icRowid),
input 'qadfin-304804':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWColumnGroup>
assign oiReturnStatus = -1.
return.
end.
/* ================================================================= */
/* When object not found or in create mode, create it. */
/* ================================================================= */
<M-16 run AddDetailLine
(input 'FRWCol':U (icTable),
input '' (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BFRWColumnGroup>
buffer-copy t_sFRWCol
except t_sFRWCol.FRWCol_ID
t_sFRWCol.tc_Rowid
t_sFRWCol.tc_Status
to tFRWCol.
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign t_sFRWCol.tc_Status = "N":U.
end.
else do:
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign t_sFRWCol.tc_Status = "C":U.
end.
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign t_sFRWCol.FRWCol_ID = tFRWCol.FRWCol_ID.
/* insert code for subtables here */
/* ================================================================= */
/* Delete existing detail */
/* ================================================================= */
for each tFRWColDet where
tFRWColDet.tc_ParentRowid = tFRWCol.tc_Rowid:
for each tFRWColDetComp where
tFRWColDetComp.tc_ParentRowid = tFRWColDet.tc_Rowid:
assign tFRWColDetComp.tc_Status = "D":U.
end.
assign tFRWColDet.tc_Status = "D":U.
end.
/* ================================================================= */
/* Update / add detail */
/* ================================================================= */
for each t_sFRWColDet where
t_sFRWColDet.tc_ParentRowid = t_sFRWCol.tc_Rowid and
t_sFRWColDet.tc_Status <> "D":U:
assign t_sFRWColDet.FRWCol_ID = t_sFRWCol.FRWCol_ID.
find first tFRWColDet where
tFRWColDet.tc_ParentRowid = tFRWCol.tc_Rowid and
tFRWColDet.FRWCol_ID = t_sFRWColDet.FRWCol_ID and
tFRWColDet.FRWColDetSeq = t_sFRWColDet.FRWColDetSeq no-error.
if available tFRWColDet
then assign t_sFRWColDet.tc_Status = "C":U.
else do:
<M-30 run AddDetailLine
(input 'FRWColDet':U (icTable),
input tFRWCol.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BFRWColumnGroup>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
assign t_sFRWColDet.tc_Status = "N":U.
end.
for each t_sFRWColDetComp where
t_sFRWColDetComp.tc_ParentRowid = t_sFRWColDet.tc_Rowid and
t_sFRWColDetComp.tc_Status <> "D":U:
find first tFRWColDetComp where
tFRWColDetComp.tc_ParentRowid = tFRWColDet.tc_Rowid and
tFRWColDetComp.FRWColDet_ID = t_sFRWColDetComp.FRWColDet_ID and
tFRWColDetComp.FRWColDetCompSeq = t_sFRWColDetComp.FRWColDetCompSeq no-error.
if available tFRWColDetComp
then assign t_sFRWColDetComp.tc_Status = "C":U.
else do:
<M-40 run AddDetailLine
(input 'FRWColDetComp':U (icTable),
input tFRWColDet.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BFRWColumnGroup>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
assign t_sFRWColDetComp.tc_Status = "N":U.
end.
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign t_sFRWColDetComp.FRWColDetComp_ID = tFRWColDetComp.FRWColDetComp_ID.
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
buffer-copy t_sFRWColDetComp
except t_sFRWColDetComp.FRWColDetComp_ID
t_sFRWColDetComp.FRWColDet_ID
t_sFRWColDetComp.FRWCol_ID
t_sFRWColDetComp.tc_Rowid
t_sFRWColDetComp.tc_Status
t_sFRWColDetComp.tc_ParentRowid
to tFRWColDetComp.
<M-85 run SetRowidConvert
(input t_sFRWColDetComp.tc_Rowid (icOldRowid),
input tFRWColDetComp.tc_Rowid (icNewRowid),
output viFcReturnSuper (oiReturnStatus)) in BFRWColumnGroup>
assign t_sFRWColDetComp.FRWColDet_ID = tFRWColDetComp.FRWColDet_ID
t_sFRWColDetComp.FRWCol_ID = tFRWColDet.FRWCol_ID
t_sFRWColDetComp.tc_Rowid = tFRWColDetComp.tc_Rowid
t_sFRWColDetComp.tc_ParentRowid = tFRWColDetComp.tc_ParentRowid.
/* FRW Chart Code and Analysis Code */
/* From */
if t_sFRWCol.tcFRWChartCode <> '':U
then do:
if t_sFRWColDetComp.tcFRWAnCodeCode <> ? and
t_sFRWColDetComp.tcFRWAnCodeCode <> '':U
then do:
<Q-35 run FRWAnCodePrim1 (all) (Read) (NoCache)
(input ?, (FRWAnCode_ID)
input t_sFRWColDetComp.tcFRWAnCodeCode, (FRWAnCodeCode)
input t_sFRWCol.tcFRWChartCode, (ChartCode)
output dataset tqFRWAnCodePrim1) in BFRWAnalysisCode>
find first tqFRWAnCodePrim1 where
tqFRWAnCodePrim1.tcFRWAnCodeCode = t_sFRWColDetComp.tcFRWAnCodeCode and
tqFRWAnCodePrim1.tcFRWAnCodeFRWChartCode = t_sFRWCol.tcFRWChartCode no-error.
if available tqFRWAnCodePrim1
then assign t_sFRWColDetComp.FromRangeFRWAnCode_ID = tqFRWAnCodePrim1.tiFRWAnCode_ID
t_sFRWColDetComp.tcFRWAnCodeFRWChartCode = tqFRWAnCodePrim1.tcFRWAnCodeFRWChartCode.
end. /* if t_sFRWColDetComp.tcFRWAnCodeCode <> '':U */
/* To */
if t_sFRWColDetComp.tcFRWAnCodeCode1 <> ? and
t_sFRWColDetComp.tcFRWAnCodeCode1 <> '':U
then do:
<Q-91 run FRWAnCodePrim1 (all) (Read) (NoCache)
(input ?, (FRWAnCode_ID)
input t_sFRWColDetComp.tcFRWAnCodeCode1, (FRWAnCodeCode)
input t_sFRWCol.tcFRWChartCode, (ChartCode)
output dataset tqFRWAnCodePrim1) in BFRWAnalysisCode>
find first tqFRWAnCodePrim1 where
tqFRWAnCodePrim1.tcFRWAnCodeCode = t_sFRWColDetComp.tcFRWAnCodeCode1 and
tqFRWAnCodePrim1.tcFRWAnCodeFRWChartCode = t_sFRWCol.tcFRWChartCode no-error.
if available tqFRWAnCodePrim1
then assign t_sFRWColDetComp.ToRangeFRWAnCode_ID = tqFRWAnCodePrim1.tiFRWAnCode_ID
t_sFRWColDetComp.tcFRWAnCodeFRWChartCode1 = tqFRWAnCodePrim1.tcFRWAnCodeFRWChartCode.
end. /* if t_sFRWColDetComp.tcFRWAnCodeCode1 <> '':U */
/* Range */
if t_sFRWColDetComp.tcFRWAnCodeCode2 <> ? and
t_sFRWColDetComp.tcFRWAnCodeCode2 <> '':U
then do:
<Q-94 run FRWAnCodePrim1 (all) (Read) (NoCache)
(input ?, (FRWAnCode_ID)
input t_sFRWColDetComp.tcFRWAnCodeCode2, (FRWAnCodeCode)
input t_sFRWCol.tcFRWChartCode, (ChartCode)
output dataset tqFRWAnCodePrim1) in BFRWAnalysisCode>
find first tqFRWAnCodePrim1 where
tqFRWAnCodePrim1.tcFRWAnCodeCode = t_sFRWColDetComp.tcFRWAnCodeCode2 and
tqFRWAnCodePrim1.tcFRWAnCodeFRWChartCode = t_sFRWCol.tcFRWChartCode no-error.
if available tqFRWAnCodePrim1
then assign t_sFRWColDetComp.ToRangeFRWAnCode_ID = tqFRWAnCodePrim1.tiFRWAnCode_ID
t_sFRWColDetComp.tcFRWAnCodeFRWChartCode2 = tqFRWAnCodePrim1.tcFRWAnCodeFRWChartCode.
end. /* if t_sFRWColDetComp.tcFRWAnCodeCode2 <> '':U */
end. /* if t_sFRWCol.tcFRWChartCode <> '':U */
end. /* for each t_sFRWColDetComp */
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign t_sFRWColDet.FRWColDet_ID = tFRWColDet.FRWColDet_ID.
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
buffer-copy t_sFRWColDet
except t_sFRWColDet.FRWColDet_ID
t_sFRWColDet.FRWCol_ID
t_sFRWColDet.tc_Rowid
t_sFRWColDet.tc_Status
t_sFRWColDet.tc_ParentRowid
to tFRWColDet.
<M-18 run SetRowidConvert
(input t_sFRWColDet.tc_Rowid (icOldRowid),
input tFRWColDet.tc_Rowid (icNewRowid),
output viFcReturnSuper (oiReturnStatus)) in BFRWColumnGroup>
assign t_sFRWColDet.FRWCol_ID = tFRWColDet.FRWCol_ID
t_sFRWColDet.tc_Rowid = tFRWColDet.tc_Rowid
t_sFRWColDet.tc_ParentRowid = tFRWColDet.tc_ParentRowid.
/* FRW Chart Code and Analysis Code */
if t_sFRWCol.tcFRWChartCode <> '':U
then do:
if t_sFRWColDet.tcFRWAnCodeCode <> ? and
t_sFRWColDet.tcFRWAnCodeCode <> '':U
then do:
<Q-14 run FRWAnCodePrim1 (all) (Read) (NoCache)
(input ?, (FRWAnCode_ID)
input t_sFRWColDet.tcFRWAnCodeCode, (FRWAnCodeCode)
input t_sFRWCol.tcFRWChartCode, (ChartCode)
output dataset tqFRWAnCodePrim1) in BFRWAnalysisCode>
find first tqFRWAnCodePrim1 where
tqFRWAnCodePrim1.tcFRWAnCodeCode = t_sFRWColDet.tcFRWAnCodeCode and
tqFRWAnCodePrim1.tcFRWAnCodeFRWChartCode = t_sFRWCol.tcFRWChartCode no-error.
if available tqFRWAnCodePrim1
then assign t_sFRWColDet.FRWAnCode_ID = tqFRWAnCodePrim1.tiFRWAnCode_ID
t_sFRWColDet.tcFRWChartCode = tqFRWAnCodePrim1.tcFRWAnCodeFRWChartCode.
end. /* if t_sFRWColDetComp.tcFRWAnCodeCode <> '':U */
end. /* if t_sFRWCol.tcFRWChartCode <> '':U */
end. /* for each t_sFRWColDet */
<I-52 {UpdateTransString
&TABLE = "FRWCol"}>
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign t_sFRWCol.FRWCol_ID = tFRWCol.FRWCol_ID
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
t_sFRWCol.tc_Rowid = tFRWCol.tc_Rowid
t_sFRWCol.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tFRWCol.FRWCol_ID).
end.
if oiReturnStatus = -98
then oiReturnStatus = 0.