メンバー情報 (メタデータ) の取得

メンバー・メタデータの取得に関連する呼び出しは、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 が残りの文字を含むことができます。プロンプト・フィールドのサイズは可変です。レイアウトについて詳しくは、表示情報の取得を参照してください。