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. |
assign viLocalReturn = 0 oiReturnStatus = -98. MAIN_BLOCK: do on error undo, return: if not valid-handle(vhSessionInst) then do: <I-8 {bFcOpenInstance &CLASS = "Session"}> assign vlIsSessionOpenedHere = true. end. <M-1 run GetIntegerValue (input 'SharedSetForCOSTCENTERCOAMASK':U (icName), output viCOAMaskCCSharedSetId (oiValue), output viFcReturnSuper (oiReturnStatus)) in Session> if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and viLocalReturn = 0) then assign viLocalReturn = viFcReturnSuper. <M-18 run GetIntegerValue (input 'SharedSetForGL':U (icName), output viGLSharedSetID (oiValue), output viFcReturnSuper (oiReturnStatus)) in Session> if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and viLocalReturn = 0) then assign viLocalReturn = viFcReturnSuper. <M-19 run GetIntegerValue (input 'SharedSetForDIVISION':U (icName), output viDivSharedSetId (oiValue), output viFcReturnSuper (oiReturnStatus)) in Session> if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and viLocalReturn = 0) then assign viLocalReturn = viFcReturnSuper. if vlIsSessionOpenedHere then do: <I-20 {bFcCloseInstance &CLASS = "Session"}> end. if viFcReturnSuper < 0 or viLocalReturn < 0 then leave MAIN_BLOCK. for each t_sCOAMaskCC: /* ================================================================= */ /* Lookup object by logical key */ /* When in create mode, skip lookup. */ /* ================================================================= */ if vcActivityCode <> "Create":U then do: /* fill SharedSet_id when blank */ if t_sCOAMaskCC.SharedSet_ID = 0 or t_sCOAMaskCC.SharedSet_ID = ? then assign t_sCOAMaskCC.SharedSet_ID = viCOAMaskCCSharedSetId. vcFreeform = "for each COAMaskCC where COAMaskCC.COAMaskCCCode = '":U + t_sCOAMaskCC.COAMaskCCCode + "' and COAMaskCC.SharedSet_ID = '":U + string(viCOAMaskCCSharedSetId) + "'":U. <M-2 run DataLoad (input '':U (icRowids), input '':U (icPkeys), input '':U (icObjectIds), input vcFreeform (icFreeform), input true (ilKeepPrevious), output viFcReturnSuper (oiReturnStatus)) in BCOAMaskCC> if viFcReturnSuper >= 0 then find first tCOAMaskCC where tCOAMaskCC.COAMaskCCCode = t_sCOAMaskCC.COAMaskCCCode no-error. end. /* if vcActivityCode <> "Create":U */ /* ================================================================= */ /* 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_sCOAMaskCC. else do: if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and viLocalReturn = 0) then assign viLocalReturn = viFcReturnSuper. if viFcReturnSuper < 0 then leave MAIN_BLOCK. /* ================================================================= */ /* Update input to allow correct matching */ /* ================================================================= */ assign t_sCOAMaskCC.tc_Rowid = tCOAMaskCC.tc_Rowid t_sCOAMaskCC.tc_ParentRowid = "" opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4)) + string(tCOAMaskCC.COAMaskCC_ID). end. /* else do */ next. end. /* if vcActivityCode = "Delete":U */ 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(substitute(#T-6'Unable to find Cost Center COA Mask with code &1':100(999890704)T-6#, t_sCOAMaskCC.COAMaskCCCode)). <M-3 run SetMessage (input vcMessage (icMessage), input t_sCOAMaskCC.COAMaskCCCode (icArguments), input 't_sCOAMaskCC.COAMaskCCCode':U (icFieldName), input tCOAMaskCC.COAMaskCCCode (icFieldValue), input 'E':U (icType), input 3 (iiSeverity), input t_sCOAMaskCC.tc_Rowid (icRowid), input 'QadFin-9212':U (icFcMsgNumber), input '':U (icFcExplanation), input '':U (icFcIdentification), input '':U (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BCOAMaskCC> assign oiReturnStatus = -1. leave MAIN_BLOCK. end. /* if vcActivityCode = "Modify":U */ /* ================================================================= */ /* When object not found or in create mode, create it. */ /* ================================================================= */ <M-4 run AddDetailLine (input 'COAMaskCC':U (icTable), input '':U (icParentRowid), output viFcReturnSuper (oiReturnStatus)) in BCOAMaskCC> /* ================================================================= */ /* Update input to allow correct matching */ /* ================================================================= */ assign t_sCOAMaskCC.tc_Status = "N":U. end. else do: /* ================================================================= */ /* Update input to allow correct matching */ /* ================================================================= */ assign t_sCOAMaskCC.tc_Status = "C":U. end. if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and viLocalReturn = 0) then assign viLocalReturn = viFcReturnSuper. if viFcReturnSuper < 0 then leave MAIN_BLOCK. assign t_sCOAMaskCC.COAMaskCC_ID = tCOAMaskCC.COAMaskCC_ID. /* insert code for subtables here */ /* ================================================================= */ /* Delete existing detail (only valid in current domain) */ /* ================================================================= */ for each tCOAMaskCCGL where tCOAMaskCCGL.tc_ParentRowid = tCOAMaskCC.tc_Rowid and tCOAMaskCCGL.GLSharedSet_ID = viGLSharedSetID: assign tCOAMaskCCGL.tc_Status = "D":U. end. for each tCOAMaskCCDiv where tCOAMaskCCDiv.tc_ParentRowid = tCOAMaskCC.tc_Rowid and tCOAMaskCCDiv.DivSharedSet_ID = viDivSharedSetID: assign tCOAMaskCCDiv.tc_Status = "D":U. end. /* ================================================================= */ /* Update / add detail */ /* ================================================================= */ for each t_sCOAMaskCCGL where t_sCOAMaskCCGL.tc_ParentRowid = t_sCOAMaskCC.tc_Rowid and t_sCOAMaskCCGL.tc_Status <> "D":U: assign t_sCOAMaskCCGL.COAMaskCC_ID = t_sCOAMaskCC.COAMaskCC_ID. find first tCOAMaskCCGL where tCOAMaskCCGL.COAMaskCC_ID = t_sCOAMaskCCGL.COAMaskCC_ID and tCOAMaskCCGL.COAMaskCCGLFrom = t_sCOAMaskCCGL.COAMaskCCGLFrom and tCOAMaskCCGL.COAMaskCCGLTo = t_sCOAMaskCCGL.COAMaskCCGLTo and tCOAMaskCCGL.COAMaskCCGLIsNeg = t_sCOAMaskCCGL.COAMaskCCGLIsNeg and tCOAMaskCCGL.COAMaskCCGLDescr = t_sCOAMaskCCGL.COAMaskCCGLDescr and tCOAMaskCCGL.GLSharedSet_ID = viGLSharedSetID no-error. if available tCOAMaskCCGL then assign t_sCOAMaskCCGL.tc_Status = tCOAMaskCC.tc_Status t_sCOAMaskCCGL.COAMaskCCGL_ID = tCOAMaskCCGL.COAMaskCCGL_ID. else do: <M-5 run AddDetailLine (input 'COAMaskCCGL':U (icTable), input tCOAMaskCC.tc_Rowid (icParentRowid), output viFcReturnSuper (oiReturnStatus)) in BCOAMaskCC> if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and viLocalReturn = 0) then assign viLocalReturn = viFcReturnSuper. if viFcReturnSuper < 0 then leave MAIN_BLOCK. assign t_sCOAMaskCCGL.tc_Status = "N":U. end. /* ================================================================= */ /* override value for identity fields in input */ /* ================================================================= */ assign t_sCOAMaskCCGL.COAMaskCCGL_ID = tCOAMaskCCGL.COAMaskCCGL_ID t_sCOAMaskCCGL.COAMaskCC_ID = tCOAMaskCCGL.COAMaskCC_ID t_sCOAMaskCCGL.GLSharedSet_ID = tCOAMaskCCGL.GLSharedSet_ID t_sCOAMaskCCGL.tc_Rowid = tCOAMaskCCGL.tc_Rowid t_sCOAMaskCCGL.tc_ParentRowid = tCOAMaskCC.tc_Rowid. end. /* for each t_sCOAMaskCCGL where */ for each t_sCOAMaskCCDiv where t_sCOAMaskCCDiv.tc_ParentRowid = t_sCOAMaskCC.tc_Rowid and t_sCOAMaskCCDiv.tc_Status <> "D":U: assign t_sCOAMaskCCDiv.COAMaskCC_ID = t_sCOAMaskCC.COAMaskCC_ID. find first tCOAMaskCCDiv where tCOAMaskCCDiv.COAMaskCC_ID = t_sCOAMaskCCDiv.COAMaskCC_ID and tCOAMaskCCDiv.COAMaskCCDivFrom = t_sCOAMaskCCDiv.COAMaskCCDivFrom and tCOAMaskCCDiv.COAMaskCCDivTo = t_sCOAMaskCCDiv.COAMaskCCDivTo and tCOAMaskCCDiv.COAMaskCCDivIsNeg = t_sCOAMaskCCDiv.COAMaskCCDivIsNeg and tCOAMaskCCDiv.COAMaskCCDivDescr = t_sCOAMaskCCDiv.COAMaskCCDivDescr and tCOAMaskCCDiv.DivSharedSet_ID = viDivSharedSetID no-error. if available tCOAMaskCCDiv then assign t_sCOAMaskCCDiv.tc_Status = tCOAMaskCC.tc_Status t_sCOAMaskCCDiv.COAMaskCCDiv_ID = tCOAMaskCCDiv.COAMaskCCDiv_ID. else do: <M-7 run AddDetailLine (input 'COAMaskCCDiv':U (icTable), input tCOAMaskCC.tc_Rowid (icParentRowid), output viFcReturnSuper (oiReturnStatus)) in BCOAMaskCC> if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and viLocalReturn = 0) then assign viLocalReturn = viFcReturnSuper. if viFcReturnSuper < 0 then leave MAIN_BLOCK. assign t_sCOAMaskCCDiv.tc_Status = "N":U. end. /* ================================================================= */ /* override value for identity fields in input */ /* ================================================================= */ assign t_sCOAMaskCCDiv.COAMaskCCDiv_ID = tCOAMaskCCDiv.COAMaskCCDiv_ID t_sCOAMaskCCDiv.COAMaskCC_ID = tCOAMaskCCDiv.COAMaskCC_ID t_sCOAMaskCCDiv.DivSharedSet_ID = tCOAMaskCCDiv.DivSharedSet_ID t_sCOAMaskCCDiv.tc_Rowid = tCOAMaskCCDiv.tc_Rowid t_sCOAMaskCCDiv.tc_ParentRowid = tCOAMaskCC.tc_Rowid. end. /* for each t_sCOAMaskCCDiv where */ <I-57 {UpdateTransString &TABLE = "COAMaskCC"}> /* ================================================================= */ /* override value for identity fields in input */ /* ================================================================= */ assign t_sCOAMaskCC.COAMaskcc_ID = tCOAMaskCC.COAMaskCC_ID t_sCOAMaskCC.SharedSet_ID = tCOAMaskCC.SharedSet_ID t_sCOAMaskCC.tc_Rowid = tCOAMaskCC.tc_Rowid opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4)) + string(tCOAMaskCC.COAMaskCC_ID). end. /* for each t_sCOAMaskCC: */ end. /* MAIN_BLOCK */ /* Error handling */ assign oiReturnStatus = viLocalReturn.