project BLF > include tFcOpenInstance.i

Description

Before running methods in an instance of a business component, communication must be opened.


include parameters


&CLASSclass short name
&ERROR-STATEMENTAction to take when an error occurred.
&SESSIONID{&SESSIONID}
&USER-DEFINED-CONTEXT


Internal usage


BLF
method Cacher.UpdateSessionData
method other.SqlErrorMessage
method RPCRequestService.ForcePublish
method RPCRequestService.ProcessDS
method RPCRequestService.RunAPI
method RPCRequestService.ValidateSession

QadFinancials
method TOpenSSL.SignStringUsingOpenSSL


include code

&IF "{&CLASS-REF}" = ""
&THEN
if not valid-handle(vh{&CLASS}Inst)
then run GetInstanceInPool (input "{&CLASS}":U,
                            input vi{&CLASS}Id,
                            output vh{&CLASS}Inst).

if valid-handle(vh{&CLASS}Inst)
then do:
    if vi{&CLASS}OC > 0
    then vi{&CLASS}OC = vi{&CLASS}OC + 1.
end.
else do:
    &if defined(INS-PROCEDURE-{&CLASS})
    &then
    run value(lc({&INS-PROCEDURE-{&CLASS}}))
    &else
    run value(lc("ins/ins__{&CLASS}.p":U))
    &endif
        persistent set vh{&CLASS}Inst.
    run Mainblock in vh{&CLASS}Inst
       (input        {&SESSIONID},
        input        0,
        input        0,
        input        no,
        input        "{&USER-DEFINED-CONTEXT}",
        input-output vi{&CLASS}Id,
              output viFcIncludeReturn).
    if viFcIncludeReturn < 0
    then do:
        assign oiReturnStatus = viFcIncludeReturn.
        run StopInstance in vh{&CLASS}Inst
           (input "", input "", input "", input no,
            output viFcIncludeReturn).
        delete procedure vh{&CLASS}Inst.
        assign vh{&CLASS}Inst = ?.
        &IF "{&ERROR-STATEMENT}" = ""
        &THEN
        return ?.
        &ELSE
        {&ERROR-STATEMENT}
        &ENDIF
    end.

    vi{&CLASS}OC = 1.
end.
&ELSE
if not valid-handle(vh{&CLASS-REF}Inst)
then run GetInstanceInPool (input "{&CLASS}":U,
                            input vi{&CLASS-REF}Id,
                            output vh{&CLASS-REF}Inst).

if valid-handle(vh{&CLASS-REF}Inst)
then do:
    if vi{&CLASS-REF}OC > 0
    then vi{&CLASS-REF}OC = vi{&CLASS-REF}OC + 1.
end.
else do:
    &if defined(INS-PROCEDURE-{&CLASS})
    &then
    run value(lc({&INS-PROCEDURE-{&CLASS}}))
    &else
    run value(lc("ins/ins__{&CLASS}.p":U))
    &endif
        persistent set vh{&CLASS-REF}Inst.
    run Mainblock in vh{&CLASS-REF}Inst
       (input        {&SESSIONID},
        input        0,
        input        0,
        input        no,
        input        "{&USER-DEFINED-CONTEXT}",
        input-output vi{&CLASS-REF}Id,
              output viFcIncludeReturn).
    if viFcIncludeReturn < 0
    then do:
        assign oiReturnStatus = viFcIncludeReturn.
        run StopInstance in vh{&CLASS-REF}Inst
           (input "", input "", input "", input no,
            output viFcIncludeReturn).
        delete procedure vh{&CLASS-REF}Inst.
        assign vh{&CLASS-REF}Inst = ?.
        &IF "{&ERROR-STATEMENT}" = ""
        &THEN
        return ?.
        &ELSE
        {&ERROR-STATEMENT}
        &ENDIF
    end.

    vi{&CLASS-REF}OC = 1.
end.
&ENDIF