ISRTIMS CALL (Insert an IMS segment)

Figure 1. Syntax
(1)
Notes:
  • 1 To use field_ref or field_name, you must have already loaded a view by preceding this function call with a call to VIEWIMS.
  • 2 Specification of a field_ref without qualification of a layout_ref results in the field_ref being associated with the first layout for the inssegm segment if specified on the SET clause, or the segname segment if specified on the WHERE clause.
  • 3 To fully qualify a field_name, the layout name must be the first qualifier specified. If the layout name is not specified, FM/IMS searches all the layouts for the segment in relative order until the group qualifiers and field_name are found. If not found, an error message is displayed and processing terminates.
conkey
The concatenated key of the parent of the segment you want to insert.
field_name
A field name.
field_ref
A field reference number of the field within the layout. This can be obtained by printing the view/template using the VIEWIMS DESCRIBE clause or browsing the view/template online.
field_value
The value of the field specified by field_ref or field_name.
inssegm
The name of the segment you want to insert. This must be a child of the segment that you specify in the WHERE clause, or, if you omit the WHERE clause, a child of the current segment.
layout_ref
The relative number of layout within segname segment. This can be obtained by printing the view/template using the VIEWIMS DESCRIBE clause.
qualifier
One or more qualifiers that identify the field name (field_name). The first qualifier is the segment layout name. Subsequent qualifiers (if any) are the group fields used to identify the specified field name. Omitting the layout name or group fields causes FM/IMS to search the segment layouts for the specified qualifiers and field name.
Note: The layout names and group fields can be obtained by printing the view/template using the VIEWIMS DESCRIBE clause or browsing the view/template online.
segname
The name of a segment in the hierarchical path of the parent of the segment that you want to insert.

Returns zero if successful, otherwise nonzero.

If FM/IMS encounters an unavailable HALDB partition or DEDB area, the ISRTIMS function receives a return code of 8 and the ISPF variable FMSTATUS indicates an IMS status code of:

FH
an unavailable DEDB area
BA
an unavailable HALDB partition

To insert a new child segment under the current segment, omit the WHERE clause. Otherwise, use the WHERE clause to identify the parent of the new child segment that you want to insert.

To use OUTREC as the contents of the new segment, omit the SET clause. If you are inserting a variable-length segment, then the first two bytes of OUTREC must specify the length of the segment.

Otherwise, use the SET clause to specify the field values for the new segment.

IEB example using ISRTIMS

⋮
$$FILEM IEB
⋮
$$FILEM     PROC=*

filerc = VIEWIMS('TPLDSN=FMN.IMS.IVP.TEMPLATE')

filerc = GETIMS('NEXT')
filerc = GETIMS('SEGMENT=SUBURB  ',
               ' WHERE SEGMENT=SUBURB #SUBURB-NAME=CITY BEACH')

 /* Insert using OUTREC */

OUTREC = "FLOREAT RESERVE"
filerc = ISRTIMS('SEGMENT=NSTREET')

 /* Insert using SET    */

filerc = ISRTIMS('SEGMENT=NSTREET ',
               ' SET #2=FLOREAT RESERVE ',
               ' WHERE SEGMENT=SUBURB #SUBURB-NAME=CITY BEACH')

/+
⋮