メンバー情報 (メタデータ) の取得
メンバー・メタデータの取得に関連する呼び出しは、GetFirstMemberInfo および GetNextMemberInfo の 2 つです。メンバー・レコードの取得の場合と同様、メンバー・メタデータが戻される場合の通常戻りコードは 0 で、ファイルの終わりが見つかった場合は 180 です。
必要な引数は、メンバー名と完全に同一ではありません。その代わり、フィルターが必要となります。フィルターにはメンバー名を使用することが可能で、また、文字とワイルドカード文字を含むこともできます。
File Manager でサポートされているワイルドカード文字は、ゼロ以上の文字に一致する *、および 1 文字のみに一致する % です。
フィルター引数が渡されるときの方法:
01 SIMPLE-FILTER-SPEC.
05 SOFTWARE-VERSION PIC 9(4) BINARY.
05 SIMPLE-FILTER-FIELD-ID PIC 9(4) BINARY.
88 SIMPLE-FILTER-IS-MEMBER-NAME VALUE 210.
05 SIMPLE-FILTER-LENGTH PIC 9(4) BINARY.
05 SIMPLE-FILTER-MASK PIC X(64). GET-RAM-PARM3-FILTER.
IF RAM-PARM3 = NULL THEN
MOVE 1 TO PATTERN-LENGTH
MOVE "*" TO PATTERN-CHARS
ELSE
SET ADDRESS OF SIMPLE-FILTER-SPEC TO RAM-PARM3
IF SIMPLE-FILTER-LENGTH < 0
OR SIMPLE-FILTER-LENGTH > 10 THEN
SET RAM-RC-BAD-FILTER TO TRUE
ELSE
MOVE SIMPLE-FILTER-LENGTH TO PATTERN-LENGTH
MOVE SIMPLE-FILTER-MASK(1:PATTERN-LENGTH)
TO PATTERN-CHARS
END-IF
END-IF.フィルター (パターン) とメンバー名を突き合わせる機能を提供するため、COBOL ネスト・プログラム MATCH がサンプル COBOL 出口に用意されています。
注: File Manager はフィルター (パターン) を渡す前に先行ブランクをストリップするため、ユーザーが先行ブランクをフィルターから除去する必要はありません。
注: MATCH プログラムでは、ブランクはその他の文字と同様に扱われ、見つかった場合は突き合わせが行われる必要があります。そのため、LMS がメンバー名の先行ブランクを戻す場合、その先行ブランクをストリップしてください。メンバー名に末尾ブランクが含まれている場合、メンバー名の長さを適切に設定し、末尾ブランクを比較から除去します。
File Manager に戻されたメタデータは、次のような構造になっています。サンプル COBOL 出口には RHS の構造が指定されていて、これは必要に応じて変更することができます。
01 DIR-DATA-RETURN-AREA.
05 DIR-DATA-RETURN-ATTR1 PIC 9(4) COMP-5 VALUE 20000.
05 DIR-DATA-RETURN-LEN1 PIC 9(4) BINARY VALUE 10.
05 DIR-DATA-RETURN-LHS PIC X(10) VALUE " ".
05 DIR-DATA-RETURN-ATTR2 PIC 9(4) COMP-5 VALUE 20001.
05 DIR-DATA-RETURN-LEN2 PIC 9(4) BINARY VALUE 51.
05 DIR-DATA-RETURN-RHS. 10 RHS-USERID PIC X(7).
10 FILLER PIC XX VALUE " ".
10 RHS-MOD-DATE PIC X(10).
10 FILLER PIC X VALUE " ".
10 RHS-MOD-TIME PIC X(8).
10 FILLER PIC XX VALUE " ".
10 RHS-NLINES PIC ZZZZ9 DISPLAY.
10 FILLER PIC XX VALUE " ".
10 RHS-CRE8-DATE PIC X(10).
10 FILLER PIC X(4).
05 DIR-DATA-RETURN-END PIC X(2) VALUE X"FFFF".メンバー名は末尾ブランクが埋め込まれ、DISP-INFO-RETURN-LHS 内に入ります。属性情報は DISP-INFO-RETURN-RHS に入ります。メンバー名 (LHS) 用に 8 ~ 10 文字のスペースがあり、合計行は 80 文字に制限されています。RHS が残りの文字を含むことができます。プロンプト・フィールドのサイズは可変です。レイアウトについて詳しくは、表示情報の取得を参照してください。