project QadFinancials > class BSharedSetMergeLog > method LogEndMerge

Description

This method updates log record with end of merge.


Parameters


icMasterSharedSetinputcharacter
icRedundantSharedSetinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BSharedSetMerge.MergeFinish


program code (program6/bsharedsetmergelog.p)

/* =================================================================================================== */
/* Method      : LogEndMerge                                                                           */
/* Desc        : This method updates log record with end of merge.                                     */
/* --------------------------------------------------------------------------------------------------- */
/* Params:  (I)  MasterSharedSet      Master shared set                                                */
/*          (I)  RedundantSharedSet   Redundant shared set                                             */
/* =================================================================================================== */

assign oiReturnStatus = -98.

/* =================================================================================================== */
/* Normalize input parameters                                                                          */
/* =================================================================================================== */
if icMasterSharedSet    = '':U then assign icMasterSharedSet    = ?.
if icRedundantSharedSet = '':U then assign icRedundantSharedSet = ?.

/* =================================================================================================== */
/* Validate input parameters                                                                           */
/* =================================================================================================== */
if icMasterSharedSet = ? or
   icRedundantSharedSet = ?
then do:
    assign vcMessage = #T-8'You have not entered all the mandatory values.':255(63250)t-8#
           vcContext = 'MasterSharedSet=&1|RedundantSharedSet=&2':U
           vcContext = substitute(vcContext, icMasterSharedSet, icRedundantSharedSet)
           vcContext = replace(vcContext, '|':U, chr(2)).
    <M-1 run SetMessage
       (input  vcMessage (icMessage), 
        input  '':U (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'S':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-6610':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  vcContext (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BSharedSetMergeLog>
    assign oiReturnStatus = -1.
    return.
end.

/* =================================================================================================== */
/* Pre validation - check record for ongoing merge                                                     */
/* =================================================================================================== */
<Q-2 run SharedSetMergeLogByFinished (all) (Read) (NoCache)
   (input false, (IsFinished)
    output dataset tqSharedSetMergeLogByFinished) in BSharedSetMergeLog >
find tqSharedSetMergeLogByFinished no-error.
if not available tqSharedSetMergeLogByFinished
then do:
    assign vcMessage = #T-9'There is no log record for the current merge.':255(63915)t-9#.
    <M-3 run SetMessage
       (input  vcMessage (icMessage), 
        input  '':U (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'E':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-6611':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BSharedSetMergeLog>
    assign oiReturnStatus = -1.
    return.
end.

/* =================================================================================================== */
/* Update existing record and mark this merge as finished                                              */
/* =================================================================================================== */
<M-10 run DataLoad
   (input  '':U (icRowids), 
    input  '':U (icPkeys), 
    input  string(tqSharedSetMergeLogByFinished.tiSharedSetMergeLog_ID) (icObjectIds), 
    input  '':U (icFreeform), 
    input  false (ilKeepPrevious), 
    output viFcReturnSuper (oiReturnStatus)) in BSharedSetMergeLog>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper <  0 then return.

find first tSharedSetMergeLog where
           tSharedSetMergeLog.SharedSetMergeLogMaster    = icMasterSharedSet    and
           tSharedSetMergeLog.SharedSetMergeLogRedundant = icRedundantSharedSet and
           tSharedSetMergeLog.SharedSetMergeLogIsFinish  = false no-error.
if not available tSharedSetMergeLog
then do:
    assign vcMessage = #T-12'Cannot find record by ID.':255(63916)T-12#.
    <M-11 run SetMessage
       (input  vcMessage (icMessage), 
        input  '':U (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'S':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-6612':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BSharedSetMergeLog>
    assign oiReturnStatus = -1.
    return.
end.

assign tSharedSetMergeLog.SharedSetMergeLogIsFinish = true
       tSharedSetMergeLog.SharedSetMergeLogEndDate  = today
       tSharedSetMergeLog.SharedSetMergeLogEndTime  = time
       tSharedSetMergeLog.tc_Status                 = 'C':U.

/* =================================================================================================== */
/* Save data to database                                                                               */
/* =================================================================================================== */
<M-5 run ValidateBC
   (output viFcReturnSuper (oiReturnStatus)) in BSharedSetMergeLog>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper <  0 then return.

<M-6 run AdditionalUpdates
   (output viFcReturnSuper (oiReturnStatus)) in BSharedSetMergeLog>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper <  0 then return.

<M-7 run DataSave
   (output viFcReturnSuper (oiReturnStatus)) in BSharedSetMergeLog>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper <  0 then return.

/* =================================================================================================== */
/* Return                                                                                              */
/* =================================================================================================== */
if oiReturnStatus = -98 then assign oiReturnStatus = 0.