ISRTIMS 呼び出し (IMS セグメントの挿入)
注:
- 1 field_ref または field_name を使用するには、この関数呼び出しの前の VIEWIMS の呼び出しによって、ビューがすでにロードされている必要があります。
- 2 layout_ref の修飾がない field_ref を指定した場合、SET 文節で指定されていれば、field_ref は、inssegm セグメントの最初のレイアウトに関連付けられ、WHERE 文節で指定されていれば segname セグメントの最初のレイアウトに関連付けられます。
- 3 field_name を完全修飾するには、指定する最初の qualifier をレイアウト名にする必要があります。レイアウト名が指定されていない場合、FM/IMS は、グループ修飾子と field_name が見つかるまで、相対順序ですべてのレイアウトからセグメントを検索します。見つからない場合、エラー・メッセージが表示され、処理が終了します。
- conkey
- 挿入するセグメントの親の連結キー。
- field_name
- フィールド名。
- field_ref
- レイアウト内のフィールドのフィールド参照番号。VIEWIMS DESCRIBE 文節を使用してビューまたはテンプレートを印刷するか、ビューまたはテンプレートをオンラインでブラウズすることで取得できます。
- field_value
- field_ref または field_name に指定したフィールドの値。
- inssegm
- 挿入するセグメントの名前。これは、WHERE 文節に指定したセグメントの子であるか、あるいは WHERE 文節を省略した場合は、現行セグメントの子でなければなりません。
- layout_ref
- segname セグメント内のレイアウトの相対番号。VIEWIMS DESCRIBE 文節を使用してビューまたはテンプレートを印刷することで取得できます。
- qualifier
- フィールド名 (field_name) を特定する 1 つ以上の修飾子。最初の修飾子はセグメント・レイアウト名です。後続の修飾子 (ある場合) は、指定したフィールド名を特定するために使われるグループ・フィールドです。レイアウト名またはグループ・フィールドを省略すると、FM/IMS は指定された修飾子とフィールド名をセグメント・レイアウトから検索します。注: レイアウト名とグループ・フィールドは、VIEWIMS DESCRIBE 文節を使用してビューまたはテンプレートを印刷するか、ビューまたはテンプレートをオンラインでブラウズすることで取得できます。
- segname
- 挿入するセグメントの親の階層パス内のセグメントの名前。
正常に行われればゼロを戻し、そうでなければゼロ以外を戻します。
FM/IMS で使用不可の HALDB 区画または DEDB 領域が検出された場合、ISRTIMS 関数は戻りコード 8 を受け取り、ISPF 変数 FMSTATUS は、以下の IMS 状況コードを示します。
- FH
- 使用不可の DEDB 領域。
- BA
- 使用不可の HALDB 区画。
現行セグメントの下に新規子セグメントを挿入するには、WHERE 文節を省略します。それ以外の 場合には、WHERE 文節を使用して、挿入する新規の子セグメントの親を識別します。
OUTREC を新規セグメントの内容として使用するには、SET 文節を省略します。可変長セグメントを挿入する場合には、OUTREC の最初の 2 バイトでセグメントの長さを指定する必要があります。
それ以外の場合には、SET 文節を使用して、新規セグメントのフィールド値を指定します。
IEB の 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')
/+
⋮