Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMIME タイプ: application/flatfile
ID: flatfile
COBOL コピーブックは、COBOL データファイルのレコードと項目のレイアウトを記述するフラットファイルの種別です。
Transform Message コンポーネントは、COBOL コピーブック形式を処理するための設定を提供します。たとえば、COBOL 定義を Transform Message コンポーネントにインポートしてコピーブック変換で使用できます。
DataWeave の COBOL コピーブックは最大 15 のファイルをサポートし、メモリ要件は約 40 対 1 です。たとえば、1 MB のファイルは処理に最大 40 MB のメモリを必要とするため、大きいコピーブックファイルに対する TPS のニーズと組み合わせてこのメモリ要件を考慮することが重要です。これは正確な数値ではありません。この値は、マッピング命令の複雑さによって異なる可能性があります。 |
コピーブック定義をインポートすると、Transform Message コンポーネントは、schemaPath
プロパティで参照できるフラットファイルスキーマに定義を変換します。
コピーブック定義をインポートする方法
Studio で Transform コンポーネントの入力ペイロードを右クリックし、[Set Metadata (メタデータを設定)] を選択して [Set Metadata Type (メタデータ型を設定)] ダイアログを開きます。
コピーブック定義をインポートする前に、メタデータ型を定義する必要があります。
コピーブックメタデータの名前を入力します (例: copybook
)。
[Type (型)] ドロップダウンメニューから [Copybook (コピーブック)] 型を選択します。
コピーブック定義ファイルをインポートします。
[Select (選択)] をクリックします。
たとえば、次のようなコピーブック定義ファイル (mailing-record.cpy
) があるとします。
01 MAILING-RECORD. 05 COMPANY-NAME PIC X(30). 05 CONTACTS. 10 PRESIDENT. 15 LAST-NAME PIC X(15). 15 FIRST-NAME PIC X(8). 10 VP-MARKETING. 15 LAST-NAME PIC X(15). 15 FIRST-NAME PIC X(8). 10 ALTERNATE-CONTACT. 15 TITLE PIC X(10). 15 LAST-NAME PIC X(15). 15 FIRST-NAME PIC X(8). 05 ADDRESS PIC X(15). 05 CITY PIC X(15). 05 STATE PIC XX. 05 ZIP PIC 9(5).
コピーブック定義は常に 01
エントリから始まる必要があります。コピーブック内の 01
定義ごとに個別のレコードタイプが生成されます (コピーブックを使用できるようにするには 1 つ以上の 01
定義が存在する必要があります。定義がない場合は、任意の名前を使用して、コピーブックの開始位置に定義を追加します)。コピーブックファイルに複数の 01
定義がある場合、変換で使用する定義をドロップダウンリストから選択できます。
COBOL 形式では、各行の列 7 ~ 72 のみを使用するように定義する必要があります。列 1 ~ 5 と列 72 より後のデータは、インポートプロセスで無視されます。列 6 は、行継続マーカーです。
スキーマをインポートすると、Transform コンポーネントは、Muke プロジェクトの src/main/resources/schema
フォルダーに保存しているフラットファイルスキーマにコピーブックファイルを変換します。フラットファイル形式では、上記のコピーブック定義は次のようになります。
form: COPYBOOK id: 'MAILING-RECORD' values: - { name: 'COMPANY-NAME', type: String, length: 30 } - name: 'CONTACTS' values: - name: 'PRESIDENT' values: - { name: 'LAST-NAME', type: String, length: 15 } - { name: 'FIRST-NAME', type: String, length: 8 } - name: 'VP-MARKETING' values: - { name: 'LAST-NAME', type: String, length: 15 } - { name: 'FIRST-NAME', type: String, length: 8 } - name: 'ALTERNATE-CONTACT' values: - { name: 'TITLE', type: String, length: 10 } - { name: 'LAST-NAME', type: String, length: 15 } - { name: 'FIRST-NAME', type: String, length: 8 } - { name: 'ADDRESS', type: String, length: 15 } - { name: 'CITY', type: String, length: 15 } - { name: 'STATE', type: String, length: 2 } - { name: 'ZIP', type: Integer, length: 5, format: { justify: ZEROES, sign: UNSIGNED } }
コピーブックをインポートしたら、schemaPath
プロパティを使用して output
ディレクティブを介して関連付けられているフラットファイルを参照できます。たとえば、output application/flatfile schemaPath="src/main/resources/schemas/mailing-record.ffd"
です。
すべてのコピーブック機能が DataWeave の COBOL コピーブック形式でサポートされるとは限りません。一般に、この形式では次を含む最も一般的な使用方法と簡単なパターンがサポートされます。
DISPLAY、BINARY (COMP)、COMP-5 および PACKED-DECIMAL (COMP-3) の使用方法。 文字エンコードの制限については、「文字エンコード」を参照してください。
以下のみで構成される数値の PICTURE 句
「9」- 1 つ以上の数字位置
「S」- 1 つの省略可能な符号文字位置 (先頭または末尾)
「V」- 1 つの省略可能な小数点
「P」- 1 つ以上の 10 進数位取り位置
「X」文字位置のみで構成される英数字値の PICTURE 句
PICTURE 句での「9」、「P」、および「X」文字の反復数 (5 桁数値の場合の 9(5)
など)
スキーマの controlVal
プロパティが含まれる OCCURS DEPENDING ON。含まれる構造内で制御値がネストされている場合、生成されたスキーマを手動で変更して、「container.value」の値のフルパスを指定する必要があります。
REDEFINES 句 (レコードデータの同じ部分の異なるビューを提供するために使用 - 以下のセクションの詳細を参照)
次の機能はサポートされていません。
英数字で編集された PICTURE 句
挿入、置換、およびゼロサプレスのすべての形式を含む、数値で編集された PICTURE 句
特殊なレベル番号:
レベル 66 - 項目またはグループの代替名
レベル 77 - 独立データ項目
レベル 88 - 条件名 (値の列挙に相当)
グループレベルの SIGN 句 (PICTURE 句を含む基本項目でのみサポートされます)
COMP-1 または COMP-2 の USAGE、およびグループレベルの USAGE 句 (PICTURE 句を含む基本項目でのみサポートされます)
VALUE 句 (リテラルまたは別のデータ項目からデータ項目または条件名の値を定義するために使用)
SYNC 句 (レコード内で値を一致させるために使用)
REDEFINES は、レコードのデータの動的な解析を促進します。REDEFINES を指定してコピーブックをインポートする場合、生成されたスキーマでは、「*」 (同じレベルで複数の REDEFINES グルーピングが指定される場合は、「*1」、「*2」など) という名前の特殊なグルーピングを使用して、異なるすべての解析を結合します。この特殊なグルーピング名は、他のグルーピング名と同様に DataWeave 式で使用します。
REDEFINES グルーピングを使用すると、通常のコピーブックグルーピングよりもオーバーヘッドが大きくなるため、可能な場合は Studio にインポートする前にコピーブックから REDEFINES を削除することをお勧めします。
BINARY (COMP)、COMP-5、または PACKED-DECIMAL (COMP-3) の使用方法は、256 個の文字コード候補の範囲全体を使用する 1 バイト文字エンコードでのみサポートされます。これらの使用方法では、UTF-8 と他の可変長エンコードはサポートされません (1 バイトではないため)。また、ASCII もサポートされません (範囲全体を使用しないため)。サポートされている文字エンコードには、ISO-8859-1 (完全な 8 ビットへの ASCII の拡張) や他の 8859 バリエーションおよび EBCDIC (IBM037) などがあります。
REDEFINES では、データに 1 バイト/文字の文字エンコードを使用する必要がありますが、BINARY、(COMP)、COMP-5、PACKED-DECIMAL (COMP-3) の使用方法がデータに含まれていない限り、任意の 1 バイト/文字の文字エンコードを使用できます。
コピーブックのインポートに関する最も一般的な問題は、入力行領域の COBOL 標準に従っていないことです。コピーブックのインポート解析では、各行の列 1 ~ 6 の内容が無視され、列 7 に「*」 (アスタリスク) が含まれているすべての行が無視されます。また、各行の列 72 を超える部分はすべて無視されます。 つまり、実際のすべてのデータ定義が入力行の列 8 ~ 72 の間に存在する必要があります。
タブ位置に関する定義された標準はないため、入力内のタブは展開されません。コピーブックの入力列を数える場合、各タブ文字は 1 個のスペース文字として処理されます。
コピーブックを処理するときにインデントは無視され、レベル番号のみが有意として処理されます。これは通常は問題ではありませんが、COBOL コンパイラーで受け入れられないにも関わらずコピーブックのインポートが受け入れられる可能性があります。
コピーブックのインポートの結果として警告とエラーの両方が報告される場合があります。 一般に、警告は、有意であるかどうかに関係なく、機能がサポートまたは認識されないことを伝えます。エラーは、生成されたスキーマ (ある場合) がコピーブックの完全に正確な表現ではないことを意味する問題の通知です。報告されたすべての警告またはエラーを確認し、適切な処理を決定する必要があります。スキーマを生成されたとおりに単に受け入れたり、入力のコピーブックを変更したり、生成されたスキーマを変更したりすることができます。
DataWeave では、この形式の以下の設定プロパティがサポートされています。
DataWeave は、この形式で入力データを読み取る指示を提供するプロパティを受け入れます。
パラメーター | 型 | デフォルト | 説明 |
---|---|---|---|
|
|
|
スキーマに型が Binary (バイナリ) または Packed (パック) の要素が含まれていると、最後の要素の形式種別に関係なく、 |
|
|
|
必須値がない場合にエラーになります。
有効な値は、 |
|
|
コピーブックスキーマの場合は |
欠落値を表すために使用される文字を入力します。デフォルト以外の設定を有効化するには、
|
|
|
|
DEPENDING ON の対象が存在しない場合にグループ全体を入力します。 2021 年 8 月リリースの Mule 4.3.0-20210622 の DataWeave 2.3 で導入されました。 |
|
|
|
予想される、行/レコード間の分離:
種別 |
|
|
|
スキーマ定義。入力の解析で使用するスキーマファイルのローカルディスク内の場所。 |
|
|
|
固定幅のスキーマまたはコピーブックスキーマのセグメント識別子 (1 つのセグメント/レコード定義を解析する場合と、スキーマに複数のセグメント定義が含まれている場合にのみ必要)。 |
|
|
|
フラットファイルスキーマのセグメント識別子 (構造定義を解析する場合と、スキーマに複数の構造定義が含まれている場合にのみ必要)。 |
|
|
|
COBOL コピーブックの DEPENDING ON 値を、使用される長さに切り捨てます。有効な値は、 |
|
|
|
デフォルトでは、フラットファイルリーダーおよびライターでは、欠落文字にスペースが使用され、 |
|
|
|
COBOL コピーブックのゾーン 10 進数値に署名エンコードの |
DataWeave は、この形式で出力データを書き込む指示を提供するプロパティを受け入れます。
パラメーター | 型 | デフォルト | 説明 |
---|---|---|---|
|
|
|
バッファライターのサイズ。 |
|
|
|
|
|
|
|
このライターで使用されるエンコード ( |
|
|
|
必須値がない場合にエラーになります。
有効な値は、 |
|
|
コピーブックスキーマの場合は |
欠落値を表すために使用される文字を入力します。デフォルト以外の設定を有効化するには、
|
|
|
|
DEPENDING ON の対象が存在しない場合にグループ全体を入力します。 2021 年 8 月リリースの Mule 4.3.0-20210622 の DataWeave 2.3 で導入されました。 |
|
|
システムプロパティ |
レコード区切り文字 (改行)。有効値:
Mule バージョン 4.0.4 以降では、これは、複数のレコードがある場合の区切り文字としてのみ使用されます。値は文字コードに直接変換されます
( |
|
|
|
|
|
|
|
スキーマ定義。使用するスキーマファイルが配置されているパス。 |
|
|
|
固定幅のスキーマまたはコピーブックスキーマのセグメント識別子 (1 つのセグメント/レコード定義を作成する場合と、スキーマに複数のセグメント定義が含まれている場合にのみ必要)。 |
|
|
|
フラットファイルスキーマのセグメント識別子 (構造定義を作成する場合と、スキーマに複数の構造定義が含まれている場合にのみ必要)。 |
|
|
|
末尾の文字を切り捨てることで、項目の長さを超える文字列値を切り取ります。有効な値は、 |
|
|
|
切り捨て値が項目幅より長いかどうかを示します。有効なオプションは、 |
|
|
|
COBOL コピーブックの DEPENDING ON 値を、使用される長さに切り捨てます。有効な値は、 |
|
|
|
デフォルトでは、フラットファイルリーダーおよびライターでは、欠落文字にスペースが使用され、 |
|
|
|
COBOL コピーブックのゾーン 10 進数値に署名エンコードの |