コマンド行
コマンド行には常に2つの列があります: コマンド名とコマンド・パラメータ。
サポートされているコマンドは次のとおりです:
これらの各コマンドの使用方法は、以降の項で説明します。
レベル・コマンド
levelコマンドは、表をXML要素に関連付けます。 levelコマンドのパラメータはXML要素です。 レベルは、データ入力ファイルにXML要素が表示されるインスタンスごとに1回出力されます。
levelコマンドは、テンプレートの階層を定義します。 たとえば、支払XMLデータ抽出は階層型です。 バッチは複数の子支払を持つことができ、支払には複数の子請求書を含めることができます。 この階層は、親要素内のネストされた子要素としてXMLで表されます。 levelコマンドを使用して表をXML要素に関連付けることにより、表の階層構造も同じになります。
XML要素の終了タグと同様に、levelコマンドにはコンパニオン・エンド・レベル・コマンドがあります。 子表は、親要素に定義された表のレベル・コマンドとエンド・レベル・コマンドの間に定義する必要があります。
XML要素は、1つのレベルにのみ関連付けることができます。 レベルに属するすべてのレコードは、そのレベルの表またはそのレベルに属するネストされた表内に存在する必要があります。 最終表の最後にend-levelコマンドが指定されます。
次に、EFTファイル・レコード・レイアウトのサンプル構造を示します:
-
FileHeaderRecordA
-
BatchHeaderRecordA
-
BatchHeaderRecordB
PaymentRecordA
PaymentRecordB
-
InvoiceRecordA
-
-
バッチ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の両方が同じ表に定義されています。 ただし、支払のEND LEVELは、子要素Invoiceの後の独自の別々の表で定義する必要があることに注意してください。 支払END LEVELは請求書レベルと同じ表に存在できません。
テンプレートのデータ抽出のすべてのレベルを使用する必要はありません。 たとえば、抽出にレベルが含まれている場合: RequestHeader > バッチ>支払>請求書では、バッチおよび請求書レベルのみを使用できます。 ただし、レベルの階層は維持する必要があります。
表の階層によって、レコードの印刷順序が決まります。 親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関数「関数」を参照してください。
新しいレコード・コマンド(または空のレコード)は連続できません。
昇順にソートおよび降順にソート・コマンド
レベルのインスタンスをソートするには、昇順ソートおよび降順ソート・コマンドを使用します。
ソート基準にする要素をカンマ区切りリストで入力します。 これはオプションのコマンドです。 使用する場合は、(最初の)levelコマンドの直後に指定する必要があり、レコードが複数の表で指定されている場合でも、レベルのすべてのレコードに適用されます。
Display Conditionコマンド
display conditionコマンドは、囲まれたレコードまたはデータ・フィールド・グループをいつ表示するかを指定します。 コマンド・パラメータはブール式です。 trueと評価されると、レコードまたはデータ・フィールド・グループが表示されます。 それ以外の場合、レコードまたはデータ・フィールド・グループはスキップされます。
display conditionコマンドは、レコードまたはデータ・フィールドのグループとともに使用できます。 レコードとともに使用する場合は、display conditionコマンドをnew recordコマンドの後に指定する必要があります。 データ・フィールドのグループとともに使用する場合は、データ・フィールド行の後にdisplay conditionコマンドが必要です。 この場合、表示条件はレコードの終わりまでの残りのフィールドに適用されます。
連続した表示条件コマンドは、AND条件としてマージされます。 マージされた表示条件は、同じレコードまたはデータ・フィールド・グループに適用されます。