project BLF > class BSystem > method ActivateSOD

Description

Single procedure for activating SOD


Parameters


ilActiveinputlogical
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method TApplication.ActivateSOD
method TApplication.DeactivateSOD


program code (program1/bsystem.p)

<M-4 run DataLoad
   (input  '' (icRowids), 
    input  '' (icPkeys), 
    input  '' (icObjectIds), 
    input  '' (icFreeform), 
    input  no (ilKeepPrevious), 
    output viFcReturnSuper (oiReturnStatus)) in BSystem>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.

find first tSyst.   /* must exist */

if tSyst.SystSODActive = ?
then do:
    <M-72 run SetMessage
       (input  #T-15'SOD activation is still running.':255(537450102)T-15# (icMessage), 
        input  '' (icArguments), 
        input  '' (icFieldName), 
        input  '' (icFieldValue), 
        input  'D' (icType), 
        input  3 (iiSeverity), 
        input  '' (icRowid), 
        input  'blf-735202':U (icFcMsgNumber), 
        input  '' (icFcExplanation), 
        input  '' (icFcIdentification), 
        input  '' (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BSystem>
    oiReturnStatus = -1.
    return.
end.

if ilActive = no and tSyst.SystSODActive = no
then do:
    <M-45 run SetMessage
       (input  #T-6'SOD is already deactivated.':255(153950732)T-6# (icMessage), 
        input  '' (icArguments), 
        input  '' (icFieldName), 
        input  '' (icFieldValue), 
        input  'D' (icType), 
        input  3 (iiSeverity), 
        input  '' (icRowid), 
        input  'blf-74758':U (icFcMsgNumber), 
        input  '' (icFcExplanation), 
        input  '' (icFcIdentification), 
        input  '' (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BSystem>
    oiReturnStatus = -1.
    return.
end.

if ilActive = yes and tSyst.SystSODActive = yes
then do:
    <M-60 run SetMessage
       (input  #T-14'SOD is already active.':255(126646525)T-14# (icMessage), 
        input  '' (icArguments), 
        input  '' (icFieldName), 
        input  '' (icFieldValue), 
        input  'D' (icType), 
        input  3 (iiSeverity), 
        input  '' (icRowid), 
        input  'blf-65968':U (icFcMsgNumber), 
        input  '' (icFcExplanation), 
        input  '' (icFcIdentification), 
        input  '' (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BSystem>
    oiReturnStatus = -1.
    return.
end.

assign tSyst.SystSODActive = ilActive
       tSyst.SystSODBlockViolations = no   /* do not block violations as this may prevent the activation */
       tSyst.tc_Status = "C".

<M-5 run ValidateBC  (output viFcReturnSuper (oiReturnStatus)) in BSystem>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.

<M-53 run AdditionalUpdates  (output viFcReturnSuper (oiReturnStatus)) in BSystem>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.

<M-66 run DataSave  (output viFcReturnSuper (oiReturnStatus)) in BSystem>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.