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.