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
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