DELIMS 呼び出し (IMS セグメントの削除)
この IEB 呼び出しでは、現行セグメントを削除します。
- 目的
- IMS セグメントを削除します。
- 使用上の注意
- DELIMS 組み込み FM/IMS REXX 関数は、以下の目的で使用することができます。
- 現行セグメントを削除する。
- where 文節を指定して特定のセグメントを削除する。
Segment details
注:
- 1 field_ref または field_name を使用するには、この関数呼び出しの前に VIEWIMS を呼び出して、ビューをロードしておく必要があります。
- 2 layout_ref を修飾せずに field_ref を指定すると、field_ref が delsegm セグメントの最初のレイアウトに関連付けられます。
- 3 field_name を完全修飾するには、レイアウト名を最初の修飾子として指定する必要があります。 レイアウト名が指定されていない場合、FM/IMS は、グループ修飾子と field_name が見つかるまで、delsegm セグメントのすべてのレイアウトを相対的な順序で検索します。 見つからない場合は、エラー メッセージが表示され、処理が終了します。
- 削除するセグメントの連結キー。
すでに削除したセグメントの連結キーを指定した場合には、DELIMS はゼロ以外の戻りコードを生成し、セグメントを削除しません。
- 削除するセグメントの名前。
- テンプレートまたはビューに指定した、segname セグメント内のキー・フィールドの名前。
- テンプレートまたはビューに指定した、segname セグメント内のキー・フィールドの参照番号。VIEWIMS DESCRIBE 文節を使用してビューまたはテンプレートを印刷するか、ビューまたはテンプレートをオンラインでブラウズすることで取得できます。
- field_ref または field_name によって指定したキー・フィールドの値。
- データベース内の WHERE 文節を満たす最初のセグメントを削除します。
- segname セグメント内のレイアウトの相対番号。VIEWIMS DESCRIBE 文節を使用してビューまたはテンプレートを印刷することで取得できます。
- データベース内の WHERE 文節を満たす現行セグメントの後の次のセグメントを削除します。
- フィールド名 (field_name) を特定する 1 つ以上の修飾子。最初の修飾子はセグメント・レイアウト名です。後続の修飾子 (ある場合) は、指定したフィールド名を特定するために使われるグループ・フィールドです。レイアウト名またはグループ・フィールドを省略すると、FM/IMS は指定された修飾子とフィールド名をセグメント・レイアウトから検索します。注: レイアウト名とグループ・フィールドは、VIEWIMS DESCRIBE 文節を使用してビューまたはテンプレートを印刷するか、ビューまたはテンプレートをオンラインでブラウズすることで取得できます。
- 削除するセグメントの階層パス内のセグメントの名前。
FM/IMS で使用不可の HALDB 区画または DEDB 領域が検出された場合、DELIMS 関数は戻りコード 8 を受け取り、ISPF 変数 FMSTATUS は、以下の IMS 状況コードを示します。
- FH
- 使用不可の DEDB 領域の場合。
- BA
- 使用不可の HALDB 区画。
正常に行われればゼロを戻し、そうでなければゼロ以外を戻します。DELIMS が正常に行われなかった場合には、FMSTATUS REXX 変数の DL/I 状況コードを検査して、障害の原因を判別することができます。
現行セグメントを削除するには、WHERE 文節を省略します。それ以外の場合には、WHERE 文節を使用して、削除するセグメントを識別します。
IEB の DELIMS 使用例
⋮
$$FILEM IEB
⋮
$$FILEM PROC=*
filerc = VIEWIMS('TPLDSN=FMN.IMS.IVP.TEMPLATE')
/* Delete Segment at the current position */
filerc = GETIMS('SEGMENT=NSTREET NEXT')
filerc = DELIMS('SEGMENT=NSTREET')
/* Delete Segment using a where Clause */
filerc = DELIMS('SEGMENT=NSTREET ',
' WHERE SEGMENT=SUBURB #SUBURB-NAME=CITY BEACH',
'SEGMENT=NSTREET #2=FLOREAT BEACH ')
/+
⋮