parmForm in callLink element

The parmForm property of the callLink element of the linkage options part specifies the format of call parameters. The parmForm property affects the generation of the calling program. For COBOL programs in a CICS® environment, this property also affects the generation of the called program.

If you are generating a COBOL program, parmForm is applicable when both the following conditions are true:
If you are generating a Java program, parmForm is applicable in this situation:
If you are generating a Java wrapper, parmForm is applicable in the following case:
Select a value from this list:
CHANNEL

For the CHANNEL parameter format, containers are passed in a channel. A channel is a set of containers that function like parameters for passing data between CICS programs. No COMMAREA is passed in the CHANNEL parameter format.

When an EGL generated program passes a channel to a called program, the channel has the same name as the called program. However, when an EGL called program receives a channel, the program uses a CICS API call to retrieve the name of the channel that was passed.

The containers are named EGL-PARM-1 through EGL-PARM-n, where the maximum value of n is 30.

For example, if you pass three parameters of type INT, Record (33,000 bytes), and EGL STRING, the channel will include three containers, as shown in the following table:

Table 1. Example containers and parameters
Container name Value in container
EGL-PARM-1 4 bytes representing the INT
EGL-PARM-2 33,000 bytes representing the record
EGL-PARM-3 4 bytes representing the pointer to the STRING (the called program must be EGL)
CICSOSLINK
Specifies that the standard COBOL parameter-passing conventions are in effect, with the called program expecting pointers to data. The CICS EIB and COMMAREA are always passed as the first two arguments, which are followed by the program-specific arguments.
Use of CICSOSLINK requires the following settings:
  • The type property is localCall or remoteCall
  • The linkType property is STATIC or DYNAMIC
COMMDATA
Specifies that the caller places business data (rather than pointers to data) in the COMMAREA.

Each argument value is moved to the buffer adjoining the previous value without regard for boundary alignment.

COMMDATA is the default value if the type property is remoteCall or ejbCall.

COMMPTR
Specifies that the caller acts as follows:
  • Places a series of 4-byte pointers in the COMMAREA, one pointer per argument passed
  • Sets the high-order bit of the last pointer to 1

COMMPTR is the default value if the value of the type property is localCall.

OSLINK
Specifies that the standard COBOL parameter-passing conventions are in effect, with the called program expecting pointers to data, but without the CICS EIB or COMMAREA.
OSLINK is valid only when you are generating a COBOL program. Use of OSLINK requires the following settings:
  • The type property is localCall or remoteCall
  • The linkType property is STATIC or DYNAMIC