project BLF > class BSODPolicyException > method PostTransaction

Description

Actions to take after final commit of the transaction.


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program/bsodpolicyexception.p)

<ANCESTOR-CODE>

viBSODViolationRule214ID = 0.

/* ================================================================= */
/* Update SOD violations when exceptions are deleted.                */
/* ================================================================= */
if vcEUsersForSODViolationCheck <> ""
then do viUCount = 1 to num-entries(vcEUsersForSODViolationCheck):

    <Q-4 run UserPrim (all) (Read) (NoCache)
       (input integer (entry(viUCount,vcEUsersForSODViolationCheck)), (UsrId)
        input '', (UsrLogin)
        output dataset tqUserPrim) in BUser >
    find first tqUserPrim where tqUserPrim.tiUsr_ID =  integer (entry(viUCount,vcEUsersForSODViolationCheck)) no-error.
    if available tqUserPrim
    then do:
        if viBSODViolationRule214ID = 0
        then do:
            <I-39 {bFcStartAndOpenInstance
                 &CLASS                = "BSODViolationRule2"}>
        end.
        
        <M-5 run CheckRule2
           (input  tqUserPrim.tiUsr_ID (iiUsrID), 
            input  0 (iiRoleID), 
            input  0 (iiSODCategoryID), 
            input  tqUserPrim.tcUsrLogin (icUsrLogin), 
            output viFcReturnSuper (oiReturnStatus)) in BSODViolationRule2>
        if viFcReturnSuper <> 0
        then oiReturnStatus = viFcReturnSuper.
        if viFcReturnSuper < 0
        then return.
    end.
end.

finally:
    if viBSODViolationRule214ID <> 0
    then do:
        <I-6 {bFcCloseAndStopInstance
             &CLASS           = "BSODViolationRule2"}>
    end.
    vcEUsersForSODViolationCheck = "".
end finally.