Place data in a named channel container.
PUT CONTAINER (CHANNEL) >>-PUT--CONTAINER(data-value)--+---------------------+----------> '-CHANNEL(data-value)-' >--FROM(data-area)--+---------------------+---------------------> '-FLENGTH(data-value)-' .-BIT------------. >--+----------------+--+-----------------------+--------------->< +-DATATYPE(cvda)-+ '-FROMCCSID(data-value)-' '-CHAR-----------'
Conditions: CCSIDERR, CHANNELERR, CONTAINERERR, INVREQ, LENGERR
This command is threadsafe.
PUT CONTAINER (CHANNEL) places data in a container associated with a specified channel.
Channel names are always in EBCDIC. The allowable set
of characters for channel names, listed above, includes some characters that
do not have the same representation in all EBCDIC code pages. We therefore
recommend that, if channels are to be shipped between regions, the characters
used in naming them should be restricted to A-Z a-z
0-9 &
: = , ; < > . - and _.
The acceptable characters are A-Z a-z 0-9 $ @ # / % & ? ! : | " = , ; < > . - and _. Leading and embedded blank characters are not permitted. If the name supplied is less than 16 characters, it is padded with trailing blanks up to 16 characters.
Do not use container names beginning with "DFH", unless requested to do so by CICS.
Container names are always in EBCDIC. The allowable set of characters for container names, listed above, includes some characters that do not have the same representation in all EBCDIC code pages. We therefore recommend that, if containers are to be shipped between regions, the characters used in naming them should be restricted to A-Z 0-9 & : = , ; < > . - and _.
All the data in a container is converted as if it were a single character string. For SBCS code pages, a structure consisting of several character fields is equivalent to a single-byte character string. However, for DBCS code pages this is not the case. If you use DBCS code pages, to ensure that data conversion works correctly you must put each character string into a separate container.
For
CHAR containers, the data is stored in the Coded Character Set Identifier
(CCSID) specified on the original PUT CONTAINER command that created the container.
If the FROMCCSID option was not specified on the original PUT CONTAINER command,
the data is stored in the region's default CCSID (or, for CICS-created channels,
in the CCSID of the channel). The data on all future PUT CONTAINER CHANNEL
commands for this container is converted into this same CCSID. If you want
to avoid this, the application program should delete the existing container
before issuing the new PUT CONTAINER command, thus recreating the container.
A DATATYPE of CHAR must be specified if the container contains character data and the channel will be passed from CICS Transaction Server for z/OS to an ASCII system. If the container contains binary data, or the channel will not be passed to an ASCII system, DATATYPE is an optional parameter.
It is not possible to change the data-type of an existing container by means of a PUT CONTAINER command. For example, if a container is created with a data-type of BIT and a subsequent PUT CONTAINER command specifies a data-type of CHAR, for the same container, an INVREQ condition is raised. If you do need to replace an existing container by one of a different data-type, you must first explicitly delete the existing container.
For more information about data conversion with channels, see the CICS Application Programming Guide.
FROMCCSID is
effective only on the PUT CONTAINER command that creates the container. This
is because, for CHAR containers, the data is stored in the CCSID specified
on the original PUT CONTAINER command that created the container. If you want
to use a different CCSID, the application program should delete the existing
container before issuing the new PUT CONTAINER command, thus recreating the
container.
If FROMCCSID is specified, DATATYPE(DFHVALUE(CHAR)) is implied.
If
FROMCCSID is not specified, its value defaults to the CCSID of the region (or, for CICS-created channels, the CCSID of the channel)
. The
default CCSID of the region is specified on the LOCALCCSID system initialization
parameter.
For an explanation of CCSIDs, and a list of the CCSIDs supported by CICS, see the CICS Family: Communicating from CICS on System/390® manual.