Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

7.9.1 CALL Parameters

EXIT_USED

FUNCTION

IF_ERROR

MENU_USED

NUM_LEN

ONENTRY

ONEXIT

PARM

PASS_DS

PASS_LST

PGM

PGM_EXCH

PROCESS

WEBROUTINE


Anchor
PGM
PGM
PGM

Specifies the name of a 3GL program which is to be invoked. This parameter is a qualified name. Either a program name or a process name (but not both) must be specified on this command. If required the library in which the program resides can also be specified. If no library name is specified, library *LIBL is assumed which indicates the execution time library list of the job should be searched to find the program.

The use of library names in a CALL command is not recommended. For further information, refer to Specifying File Names in I/O Commands.

Portability Considerations

Calls of 3GL programs are only supported in RDMLX programs on IBM i for compatibility with existing RDML code. As such, only RDML fields and lists are supported in the parameters PARM, PGM_EXCH, PASS_DS and PASS_LIST that may be used for 3GL program calls.

A build warning will be generated if used in Visual LANSA code. An error will occur at execution time. Code using this facility can be conditioned so that it is not executed in this environment.

For further information refer to Calling 3GL Programs in the LANSA Application Design Guide.

Anchor
PROCESS
PROCESS
PROCESS

Specifies the name of the LANSA process which is to be invoked. Either a 3GL program name or a process name (but not both) must be specified.

...

To use a direct call simply specify the name *DIRECT in this parameter, in place of the actual process name, and then nominate the function name in the FUNCTION parameter.

Note
Note
title

Notes:

  • A *DIRECT call does not perform security checking in the same way that a process-controlled call does. This is one of the major reasons for its superior performance. Read the comments section before using the *DIRECT option.
  • On IBM i, *DIRECT calls must be used when calling between RDML and RDMLX functions.
  • RDMLX Forms cannot call a Process. Only a Function can be called.
  • Forms that are NOT enabled for RDMLX can call a Process.

Anchor
FUNCTION
FUNCTION
FUNCTION

Optionally specifies the function within the nominated process that should be invoked. If this parameter is not specified a default value of *MENU is assumed that indicates that the main menu of the nominated process should be displayed for the user to select the desired function.

Anchor
PARM
PARM
PARM

Is optional and if specified will define a list of parameters that are to be passed to the called program. The parameters must correspond to the expected parameters in the called program. This is NOT checked by LANSA. For further information, refer to Quotes and Quoted Strings. This parameter allows expandable group expressions.

Portability Considerations

Not supported in the current release of Visual LANSA and not expected to be supported in future releases.

Anchor
EXIT_USED
EXIT_USED
EXIT_USED

Is valid when calling another process only. This parameter is ignored when calling another program. Specifies what is to happen when the called process is ended by use of the EXIT function key or the EXIT command. The EXIT_USED parameter will only take effect if the EXIT function key or the EXIT command were used to end the called process.

...

If none of the previous values are used you must nominate a valid command label to which control should be passed.

Anchor
WEBROUTINE
WEBROUTINE
WEBROUTINE

Specifies the name of the WEBROUTINE to call. You can specify another WAM, in this case WAM name followed by a WEBROUTINE name separated by a dot (for example #MyWAM.MyWebRtn).

...

The value can also be provided from a field, if prefixed with *EVALUATE modifier.

Anchor
ONENTRY
ONENTRY
ONENTRY

Is valid when calling another WEBROUTINE only. For WEBROUTINE information, refer to WEBROUTINE.

Used for mapping incoming fields and list into the target WEBROUTINE.

...

The default value is *MAP_ALL.

Anchor
ONEXIT
ONEXIT
ONEXIT

Is valid when calling another WEBROUTINE only.

...

The default value is *MAP_ALL.

Anchor
MENU_USED
MENU_USED
MENU_USED

Is valid when calling another process only. This parameter is ignored when calling another program. Specifies what is to happen when the called process is ended by use of the MENU function key or the MENU command. The MENU_USED parameter will only take effect if the MENU/CANCEL function key or the MENU command were used to end the called process.*EXIT indicates that this function should itself terminate and request an exit from the entire LANSA system.

...

If none of the previous values are used you must nominate a valid command label to which control should be passed.

Anchor
NUM_LEN
NUM_LEN
NUM_LEN

Specifies the length to be used when passing numeric fields or literals as parameters when calling a user program.*ALL15 is the default and indicates that all numeric parameters should be passed with length packed 15,N (where N = number of decimal places defined as per the data dictionary or DEFINE command).

*DEFINED indicates that all numeric parameters should be passed with length as per the data dictionary or DEFINE command.

Anchor
PGM_EXCH
PGM_EXCH
PGM_EXCH

Specifies whether or not the program specified by the PGM parameter will require access to the LANSA exchange list that is normally only used to communicate information between LANSA processes and functions. This parameter has no meaning when placing a call to a LANSA process or function (i.e: PROCESS or FUNCTION parameters used). In this context it is totally ignored, no matter what value it has.

...

The use of program M@EXCHL is described in detail in the section that describes the EXCHANGE command and exchange list processing.

Anchor
IF_ERROR
IF_ERROR
IF_ERROR

Is valid when calling a program or a process/function.This parameter specifies what is to happen when the called program or process/function terminates with an error.

...

If none of the previous values are used you must nominate a valid command label to which control should be passed.

Anchor
PASS_DS
PASS_DS
PASS_DS

Allows up to 20 different data structures to be passed from an RDML function into another RDML function or 3GL program. The following points should be noted before attempting to use this parameter: Each data structure name should be the name of a physical file which has been defined to LANSA and made operational.

...

To be able to pass fields within the named physical file, the fields must be referenced at some point within the function, otherwise, they will not be passed to the caller. This applies to the function being called also. Only real fields in the file can be passed, not virtual fields.

...

If the called function started with the command "IF (B = 17)" it would fail because field B does not contain valid numeric data. It does not contain valid numeric data because the first function made no "reference to" or "mention of" field B at all.

...

The use of this facility with 3GL programs is not recommended unless the developer has extensive 3GL experience.

Anchor
PASS_LST
PASS_LST
PASS_LST

Allows up to 20 different working list names to be passed into an RDML function or 3GL program. The following points should be noted before using this parameter: Each working list specified must be a defined working list within the function.

...