CALL action will execute
calling of the call of the
RPC (RPCX) procedure with the name
ProcName. The procedure name is followed by a list of comma
-separated parameters.
The number of parameters (an and their types) of parameters must be equal to the number of parameters of the called procedure (if the number is not equal, there is generated the exception _ERR_INV_NUM_PARAMS* exception is generated).
If some of the parameters parameter is specified as an input-output one in the procedure declaration, the corresponding parameter, during the procedure call, must not be a constant (if an error occurs, there will be generated the exception _ERR_SET_CONST).
procIdent is the a reference to an object of Process type, where is the object procIdent is opened in. For the object of Event type, it is the D2000 EventHandler process, which is its parent or process on which the called Event is opened (the OPENEVENT action). For an object of Picture type, it is the D2000 HI process, where is this picture opened in.
If the required object is not opened in the given process, the script generates the error _ERR_OBJECT_NOT_FOUND* error.
The INSTANCE parameter determines the instance number of the object (picture or event).
If a local variable of RefId type is used for the objIdent identifier, the INSTANCE and ON parameters are not admissible (their value are given by the calling context).
If RPC procedure is called between Local and Remote part of "Client and Server Event" configuration (HIS Server), objIdent is not used.
Blok kódu |
---|
language | esl |
---|
theme | Confluence |
---|
|
CALL [] ProcName [(paramIdent1 [,paramIdent2]...)] ... |
The errors signed by the symbol * are generated in the called script. Called script (CALL action) ma can detect this error merely only during synchronous call and during the notation of an action with an assignment. If an error occurs, its code will be assigned to the variable _ret that must be of INT type.
Possible For possible types of parameters, see the action PROCEDURE.
The calling of call of the BROADCAST type is obligatory always asynchronous. The process name (the procIdent parameter) is key word a keyword ALL. By performing of performing this callingcall, the system distribute distributes automatically a demand on procedure performing request to execute the procedure to all running processes of D2000 HI or D2000 Event Handler. These processes search all instances (or basic objects) of the scripts that are identified by the objIdent parameter and generate the demands on the requests to execute the ProcName procedure performing with relevant the specified parameters.
The keyword INSTANCE is disabled in this type of callingcall.
Since the D2000 V8.00.008 R9
, the CALL action contains
the a new feature - optimization of the formal parameter transmission. This feature ensures the formal parameter of RPC procedure is a "link" to the real parameter. This causes the increasing of the speed of RPC procedure
callingcall.
The conditions
are:
- the calling The call is realized in the same process *.EVH,
- the calling call of the procedure is synchronous,
- the parameter must be of Record type,
- the parameter must be IN/OUT.
The keyword
PRTY enables setting the priority of executing
the RPC procedure. The priority is defined by the
prtyIdent parameter after
PRTY keyword.
RPC procedures are also
intended for support transfer of data containers transfer and a handle and handles to
database connections.
When calling JAPI process
procedures, these rules apply:
- objIdent is an empty object (see the example),
- the key word INSTANCE keyword cannot be used,
- RPC procedure, which is an implementation of ESL interface, cannot be called,
- the process identifier (procIdent) must be of IC_HOBJ_EXPR (expression of HOBJ type) type,
- the receiving of calls on in a JAPI process must be implemented as listener, which is registered by a method D2Session::setRPCListener method.