project QadFinancials > class BSharedSetMergeLog > method LogStartMerge

Description

This procedure creates log record about startup of merging of two shared set.


Parameters


icMasterSharedSetinputcharacter
icRedundantSharedSetinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BSharedSetMerge.MergeInit


program code (program6/bsharedsetmergelog.p)

/* =================================================================================================== */
/* Method      : LogStartMerge                                                                         */
/* Desc        : This procedure creates log record about startup of merging of two shared set.         */
/* --------------------------------------------------------------------------------------------------- */
/* Params:  (I)  MasterSharedSet      Code of master shared set                                        */
/*          (I)  RedundantSharedSet   Code of 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-1'You have not entered all the mandatory values.':255(63250)t-1#
           vcContext = 'MasterSharedSet=&1|RedundantSharedSet=&2':U
           vcContext = substitute(vcContext, icMasterSharedSet, icRedundantSharedSet)
           vcContext = replace(vcContext, '|':U, chr(2)).
    <M-2 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-6608':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  vcContext (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BSharedSetMergeLog>
    assign oiReturnStatus = -1.
    return.
end.

/* =================================================================================================== */
/* Pre validation - it is not allowed to have any not finished merge when new one is starting          */
/* =================================================================================================== */
<Q-3 assign vlFcQueryRecordsAvailable = SharedSetMergeLogByFinished (NoCache)
   (input false, (IsFinished)) in BSharedSetMergeLog >
if vlFcQueryRecordsAvailable <> false
then do:
    assign vcMessage = #T-5'A shared set merge is currently under way. You can only begin a new merge when the previous merge has finished successfully or the correct database has been backed up.':255(63907)t-5#.
    <M-4 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-6609':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BSharedSetMergeLog>
    assign oiReturnStatus = -1.
    return.
end.

/* =================================================================================================== */
/* Create new record                                                                                   */
/* =================================================================================================== */
<M-6 run AddDetailLine
   (input  'SharedSetMergeLog' (icTable), 
    input  '':U (icParentRowid), 
    output viFcReturnSuper (oiReturnStatus)) in BSharedSetMergeLog>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper <  0 then return.

assign tSharedSetMergeLog.SharedSetMergeLogMaster    = icMasterSharedSet
       tSharedSetMergeLog.SharedSetMergeLogRedundant = icRedundantSharedSet
       tSharedSetMergeLog.SharedSetMergeLogIsFinish  = false
       tSharedSetMergeLog.SharedSetMergeLogStartDate = today
       tSharedSetMergeLog.SharedSetMergeLogStartTime = time.

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

<M-8 run AdditionalUpdates
   (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.