project BLF > include tFcStartAndOpenInstance.i

Description

Start and open a new instance of a business component, from a technical component.


include parameters


&CLASS
&ERROR-STATEMENT
&SESSIONID
&USER-DEFINED-CONTEXT


Internal usage


BLF
method Progress.CleanupStateOnline
method RPCRequestService.ProcessDS
method RPCRequestService.PublishComponent
method RPCRequestService.ValidateSession
method TApplication.ActivateSOD
method TApplication.CallDaemon
method TApplication.CallUnconditionalStopDaemon
method TApplication.ClearDaemonQueue
method TApplication.DeactivateSOD
method TApplication.Synchronize
method TDaemon.StartDaemonProcessor
method TDaemon.StartRun
method TDocumentLink.CreateDocumentAttachment
method TGenericReportAdapter.CreateSession
method TSODImport.ImportSODData
method TSODImport.ImportSODDataBRole
method TSODImport.ImportSODDataBSystem


include code

&IF "{&CLASS-REF}" = ""
&THEN
assign vi{&CLASS}Id = 0.

&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, /*no subtransaction possible*/
    input        0,
    input        false,
    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.

assign vi{&CLASS}OC = 1.
&ELSE
assign vi{&CLASS-REF}Id = 0.

&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, /*no subtransaction possible*/
    input        0,
    input        false,
    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.

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