project BLF > include tFcCloseInstance.i


include parameters


&CLASSclass short name
&ERROR-STATEMENTAction to take when an error occurred.


Internal usage


BLF
method Cacher.UpdateSessionData
method other.SqlErrorMessage
method RPCRequestService.ValidateSession
method TDaemon.StartRun

QadFinancials
method BConCheckProcessor.ConCheckProcessDet
method BCostCentre.PostSave
method BCostCentre.ValidateComponentPreCOAMask
method BProject.PostSave
method BProject.ValidateComponentPreCOAMask
method TOpenSSL.SignStringUsingOpenSSL


include code

&IF "{&CLASS-REF}" = ""
&THEN
if vi{&CLASS}OC = 1
and vlFcStateless
then do:
    run StopInstance in vh{&CLASS}Inst
       (input "save",
        input "",
        input "",
        input no,
        output viFcIncludeReturn).
    if viFcIncludeReturn < 0
    then do:
        assign oiReturnStatus = viFcIncludeReturn.
        &IF "{&ERROR-STATEMENT}" = ""
        &THEN
        return ?.
        &ELSE
        {&ERROR-STATEMENT}
        &ENDIF
    end.
    
    delete procedure vh{&CLASS}Inst.
    assign vh{&CLASS}Inst = ?
           vi{&CLASS}OC   = 0.
end.
else if vi{&CLASS}OC > 0
     then vi{&CLASS}OC = vi{&CLASS}OC - 1.
     else vh{&CLASS}Inst = ?.
&ELSE
if vi{&CLASS-REF}OC = 1
and vlFcStateless
then do:
    run StopInstance in vh{&CLASS-REF}Inst
       (input "save",
        input "",
        input "",
        input no,
        output viFcIncludeReturn).
    if viFcIncludeReturn < 0
    then do:
        assign oiReturnStatus = viFcIncludeReturn.
        &IF "{&ERROR-STATEMENT}" = ""
        &THEN
        return ?.
        &ELSE
        {&ERROR-STATEMENT}
        &ENDIF
    end.
    
    delete procedure vh{&CLASS-REF}Inst.
    assign vh{&CLASS-REF}Inst = ?
           vi{&CLASS-REF}OC   = 0.
end.
else if vi{&CLASS-REF}OC > 0
     then vi{&CLASS-REF}OC = vi{&CLASS-REF}OC - 1.
     else vh{&CLASS-REF}Inst = ?.
&ENDIF