| 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. |
PROCESSBLOCK:
do on error undo, throw:
/* ========================================================================================= *
* Get Daybook shared set *
* ========================================================================================= */
assign viJournalSharedSetID = 0.
<Q-53 run LookupSharedSetForCompany (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input {&SHAREDSETTYPECODE-JOURNAL}, (SharedSetType)
output dataset tqSharedSetForCompany) in BCompany>
find first tqSharedSetForCompany where
tqSharedSetForCompany.tiCompany_ID = viCompanyId and
tqSharedSetForCompany.tcSharedSetTypeCode = {&SHAREDSETTYPECODE-JOURNAL}
no-error.
if available tqSharedSetForCompany
then assign viJournalSharedSetID = tqSharedSetForCompany.tiSharedSet_ID.
for each t_sCMask:
if t_sCMask.SharedSet_ID = ? or
t_sCMask.SharedSet_ID = 0
then assign t_sCMask.SharedSet_ID = viJournalSharedSetID.
/* ================================================================= */
/* Lookup object by logical key */
/* When in create mode, skip lookup. */
/* ================================================================= */
if vcActivityCode <> "Create":U
then do:
vcFreeform = "for each CMask where CMask.CMaskCode = '":U + t_sCMask.CMaskCode + "'":U
+ " and CMask.SharedSet_ID = " + string(t_sCMask.SharedSet_ID).
<M-94 run DataLoad
(input '':U (icRowids),
input '':U (icPkeys),
input '':U (icObjectIds),
input vcFreeform (icFreeform),
input yes (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BCMask>
if viFcReturnSuper >= 0
then do:
find first tCMask where
tCMask.CMaskCode = t_sCMask.CMaskCode and
tCMask.SharedSet_ID = t_sCMask.SharedSet_ID
no-error.
if available tCMask and tCMask.tc_Status <> "":U
then do:
assign vcMessage = trim(#T-8'A record already exists with this daybook mask code.':255(878101744)T-8#) + chr(10) +
substitute(#T-85'Closing mask':255(148503350)T-85#, trim(t_sCMask.CMaskCode))
oiReturnStatus = -1.
<M-2 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tCMask.CMaskCode':U (icFieldName),
input t_sCMask.CMaskCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sCMask.tc_Rowid (icRowid),
input 'qadfin-230830':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCMask>
return.
end. /* if available tCMask and tCMask.tc_Status <> "":U */
end. /* if viFcReturnSuper >= 0 */
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_sCMask.
else do:
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then leave PROCESSBLOCK.
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign t_sCMask.tc_Rowid = tCMask.tc_Rowid
t_sCMask.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = ""
then ""
else opPrimeKey + chr(4))
+ string(tCMask.CMask_ID).
end. /* else if viFcReturnSuper = -4 */
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(#T-92'Object with key $1 does not exist.':100(48021)T-92#).
<M-56 run SetMessage
(input vcMessage (icMessage),
input t_sCMask.CMaskCode (icArguments),
input 'tCMask.CMaskCode':U (icFieldName),
input t_sCMask.CMaskCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sCMask.tc_Rowid (icRowid),
input 'qadfin-324639':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCMask>
assign oiReturnStatus = -1.
leave PROCESSBLOCK.
end.
/* ================================================================= */
/* When object not found or in create mode, create it. */
/* ================================================================= */
<M-59 run AddDetailLine
(input 'CMask':U (icTable),
input '':U (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BCMask>
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign t_sCMask.tc_Status = "N":U
tCMask.tc_Status = "N":U. /* we need to assign this tomake are test for doubles work */
end.
else do:
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
assign t_sCMask.tc_Status = "C":U
tCMask.tc_Status = "C":U. /* we need to assign this tomake are test for doubles work */
end.
if viFcReturnSuper <> 0 then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then leave PROCESSBLOCK.
assign t_sCMask.CMask_ID = tCMask.CMask_ID.
/* Synchronize CMaskJournal */
<M-93 run DataLoadByInputCMaskJournal (output viFcReturnSuper (oiReturnStatus)) in BCMask>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then leave PROCESSBLOCK.
/* Synchronize CMaskJrnlGroup */
<M-84 run DataLoadByInputCMaskJrnlGrp (output viFcReturnSuper (oiReturnStatus)) in BCMask>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then leave PROCESSBLOCK.
<I-79 {UpdateTransString
&TABLE = "CMask"}>
/* ================================================================= */
/* override value for identity fields in input */
/* ================================================================= */
assign t_sCMask.CMask_ID = tCMask.CMask_ID
/* ================================================================= */
/* Update input to allow correct matching */
/* ================================================================= */
t_sCMask.tc_Rowid = tCMask.tc_Rowid
t_sCMask.tc_ParentRowid = ""
opPrimeKey = (if opPrimeKey = "" then "" else opPrimeKey + chr(4))
+ string(tCMask.CMask_ID).
end. /* for each t_sCMask: */
end. /* Process block */