コマンド行

コマンド行には、コマンド名とコマンド・パラメータの2つの列が常に存在します。

サポートされているコマンドは次のとおりです。

これらの各コマンドの使用方法は、次の各項で説明します。

レベル・コマンド

レベル・コマンドは、表をXML要素に関連付けます。レベル・コマンドのパラメータは、XML要素です。レベルは、データ入力ファイル内でXML要素のインスタンスが出現するたびに1度出力されます。

レベル・コマンドは、テンプレートの階層を定義します。たとえば、支払いXMLのデータ抽出は階層的になります。バッチには複数の子支払いを、また支払いには複数の子請求書を含めることができます。この階層は、親要素内にネストされている子要素としてXMLで表されます。レベル・コマンドを使用して表をXML要素に関連付けることで、その表も同じ階層構造を持つことになります。

XML要素の終了タグと同様、レベル・コマンドには対となるレベル終了コマンドがあります。子表は、親要素に対して定義されたレベル・コマンドとレベル終了コマンドの間に定義する必要があります。

XML要素は、1つのレベルのみと関連付けることができます。レベルに属するすべてのレコードは、そのレベルの表内か、そのレベルに属するネストされた表内に存在する必要があります。レベル終了コマンドは、最後の表の終わりに指定されます。

次に、EFTファイル・レコード・レイアウトのサンプル構造を示します。

  • FileHeaderRecordA

    • BatchHeaderRecordA

    • BatchHeaderRecordB

      PaymentRecordA

      PaymentRecordB

      • InvoiceRecordA

    • Batch FooterRecordC

    • BatchFooterRecordD

  • FileFooterRecordB

この表のレイアウトは次のとおりです。

この表のレイアウトは、コマンドとその値を示しています。

<LEVEL> : RequestHeader
<NEW RECORD> : FileHeaderRecordA
Data rows for the FileHeaderRecordA 
<LEVEL> : Batch
<NEW RECORD> : BatchHeaderRecordA
Data rows for the BatchHeaderRecordA
<NEW RECORD> : BatchHeaderRecordB
Data rows for the BatchHeaderRecordB
<LEVEL> : Payment
<NEW RECORD> : PaymentRecordA
Data rows for the PaymentRecordA
<NEW RECORD> : PaymentRecordB
Data rows for the PaymentRecordB
<LEVEL> : Invoice
<NEW RECORD> : InvoiceRecordA
Data rows for the InvoiceRecordA
<END LEVEL> : Invoice
<END LEVEL>: Payment
<LEVEL> : Batch
<NEW RECORD> : BatchFooterRecordC
Data rows for the BatchFooterRecordC
<NEW RECORD> : BatchFooterRecordD
Data rows for the BatchFooterRecordD
<END LEVEL> : Batch
<LEVEL> : RequestHeader
<NEW RECORD> : FileFooterRecordB
Data rows for the FileFooterRecordB
<END LEVEL> : RequestHeader

同じレベルの複数のレコードは、同じ表に入れることができます。ただし、各表に定義できるレベルは1つのみです。前述の例では、BatchHeaderRecordAとBatchHeaderRecordBはどちらも同じ表で定義されています。ただし、PaymentのEND LEVELは、子要素Invoiceの後の独自の表で定義する必要があります。同じレベルの複数のレコードは、同じ表に入れることができますが、各表に定義できるレベルは1つのみです。

テンプレートでは、データ抽出の全レベルを使用する必要はありません。たとえば、ある抽出にRequestHeader > Batch > Payment > Invoiceというレベルが含まれる場合は、バッチと請求書のレベルのみを使用できます。ただし、レベルの階層は保持する必要があります。

表の階層は、レコードが印刷される順序を決定します。親XML要素では、それぞれ対応する親表のレコードが、表に出現する順序で印刷されます。システムは子表に対応する子XML要素のインスタンスをループし、指定された順序で子レコードを印刷します。その後、子を囲んでいる(レベル終了の)親表が存在する場合は、そのレコードを印刷します。

たとえば、前述のEFTテンプレート構造において、入力データ・ファイルに次のデータが含まれているとします。

  • Batch1

    • Payment1

      • Invoice1

      • Invoice2

    • Payment2

      • Invoice1

  • Batch2

    • Payment1

      • Invoice1

      • Invoice2

      • Invoice3

レコードの順序 レコード・タイプ 説明

1

FileHeaderRecordA

EFTファイルの1つのヘッダー・レコード

2

BatchHeaderRecordA

Batch1用

3

BatchHeaderRecordB

Batch1用

4

PaymentRecordA

Batch1、Payment1用

5

PaymentRecordB

Batch1、Payment1用

6

InvoiceRecordA

Batch1、Payment1、Invoice1用

7

InvoiceRecordA

Batch1、Payment1、Invoice2用

8

PaymentRecordA

Batch1、Payment2用

9

PaymentrecordB

Batch1、Payment2用

10

InvoiceRecordA

Batch1、Payment2、Invoice1用

11

BatchFooterRecordC

Batch1用

12

BatchFooterRecordD

Batch1用

13

BatchHeaderRecordA

Batch2用

14

BatchHeaderRecordB

Batch2用

15

PaymentRecordA

Batch2、Payment1用

16

PaymentRecordB

Batch2、Payment1用

17

InvoiceRecordA

Batch2、Payment1、Invoice1用

18

InvoiceRecordA

Batch2、Payment1、Invoice2用

19

InvoiceRecordA

Batch2、Payment1、Invoice3用

20

BatchFooterRecordC

Batch2用

21

BatchFooterRecordD

Batch2用

22

FileFooterRecordB

EFTファイルの1つのフッター・レコード

新規レコード・コマンド

新規レコード・コマンドは、レコードの始めと前のレコード(存在する場合)の終わりを表します。

テンプレートの各レコードは、新規レコード・コマンドで始まる必要があります。レコードは、次の新規レコード・コマンドや表の終わりまで、またはレベル終了コマンドまで続きます。

レコードは、レベルに属している要素の集まりを表すコンストラクトです。レコード名は、XML入力ファイルに関連付けられていません。

表には、複数のレコードを含めることができるため、複数の新規レコード・コマンドが存在します。表のレコードは、すべて同じ階層レベルにあります。これらは、表に指定されている順序で出力されます。

新規レコード・コマンドは、名前をパラメータとして使用できます。この名前はレコードの名前になります。レコード名はレコード・タイプとも呼ばれています。この名前は、生成されたレコードのインスタンスを数えるCOUNT関数で使用できます。詳細は、「関数」のCOUNT関数を参照してください。

連続した新規レコード・コマンド(つまり空のレコード)は使用できません。

昇順ソートおよび降順ソート・コマンド

レベルのインスタンスをソートするには、昇順ソートおよび降順ソート・コマンドを使用します。

ソートする要素は、カンマ区切りリストで入力します。これはオプションのコマンドです。このコマンドを使用する際には、(最初の)レベル・コマンドの直後に指定する必要がありますが、この場合、レコードが複数の表で指定されていても、そのレベルのすべてのレコードに適用されます。

表示条件コマンド

表示条件コマンドは、囲まれているレコードやデータ・フィールド・グループをいつ表示するかを指定します。このコマンドのパラメータはブール式です。この式がTrueと評価された場合、レコードまたはデータ・フィールド・グループが表示されます。それ以外の場合は、それらのレコードまたはデータ・フィールド・グループがスキップされます。

表示条件コマンドは、レコードまたはデータ・フィールド・グループのいずれかで使用できます。レコードで使用する場合、表示条件コマンドは新規レコード・コマンドの後に指定する必要があります。データ・フィールド・グループで使用する場合、表示条件コマンドはデータ・フィールド行の後に指定する必要があります。この場合、表示条件はレコードの終わりまで、残りのすべてのフィールドに適用されます。

連続した表示条件コマンドは、AND条件としてマージされます。マージされた表示条件は、囲まれている同じレコードやデータ・フィールド・グループに適用されます。