ソースファイルを定義する

このセクションでは、テキストファイルとバイナリファイルの定義方法を例を示しながら説明します。ファイルの形式には、単一行、複数行、固定長フィールド、可変長フィールドがあります。

ZID フィールドを定義するための構文は、次のとおりです。

<fieldname> TYPE <datatype> <field option <argument>>

テキスト入力ファイル

テキストファイルのデータは、さまざまな方法で構成できます。

1 レコードあたり 1 行

テキストファイルでは、1 つのレコードは、1 つまたは複数のフィールドで構成されます。フィールドが複数の場合は、各フィールドは一意の文字または文字列で区切られます。通常は、改行文字で区切られた 1 行が 1 レコードとなります。この 1 行 1 レコードの形式が最も一般的で、Text コネクションでも簡単に扱うことができます。このような形式の例を次に示します。この形式を使用して、以下に示す 3 つの例が入力されています。

IDNO-----NAME--------------TEL-------BALANCE----PAYMENT----DATE

1 行 1 レコードの形式で構成された入力データの 3 つの例を次に示します。これらの入力データは、上記で示した形式に従っています。上記の行は説明用に記載したもので、実際のデータファイルのサンプルには含まれていません。

566238744Carol Ann Wilson  1025557746000040000980000003000010-15-93
012358743Nathan Varberg    1015552345000003000000000002500010-11-93
524135698David Fein        1015553222000035599550000010255009-30-93

これは顧客のレコードで、一意の ID 番号、顧客名、電話番号、残高、支払、日付が含まれています。この入力データを例にして以降の説明を進めます。

固定フィールドの場合

以下の例では、上記のサンプル入力ファイルのデータを例として使用して、LEI (IBM® Lotus Enterprise Integrator®) を使用したデータの処理に必要な ZID フィールドのエントリを作成します。わかりやすくするために、すべてのフィールドは固定されているものとします。つまり、各レコードで、フィールドの位置は常に同じになります。また、区別しやすくするために、作成するエントリは最初の 1 文字を大文字で表記します。

次の例の最初の行は、Type フィールドの値が Customer であることを示します。また、この行を見ると、VALUE フィールドオプションを使用してリテラル文字列をフィールドに挿入する方法がわかります。つまり、このパラメータによって、「Customer」を Type フィールドに挿入しています。

最初のデータフィールド (2 番目の行) は、顧客の ID 番号です (ラベルは IDNO)。IDNO フィールドは、number 型または text 型フィールドとして定義できます。ここに入力する値は識別用であり、数量を表すものではありませんから、IDNO フィールドを text 型として定義します。この例では、IDNO フィールドは常に列 1 (レコードの最初の位置) から開始し、列 9 で終了します。Connector は、このデータを IDNO という名前のフィールドに挿入します。

最初に示したサンプル入力ファイルでの ZID フィールドの定義の例を以下に示します。

Type: TYPE TEXT VALUE "Customer"
Idno: TYPE TEXT START 01 END 9
Name: TYPE TEXT START 10 END 29
Tel:  TYPE TEXT START 30 END 39
Balance: TYPE NUMBER.2 START 40 END 50 
Payment: TYPE NUMBER.2 START 51 END 61
Date: TYPE DATE START 62 END 67 FORMAT MM.DD.YY
注: NUMBER.2 という形式は、入力データに小数点が含まれないときにだけ指定できます。入力データに小数点が含まれるときは、「.2」は使用できません。

START と END の各フィールドオプションは、その後に対応する数字をともない、入力フィールドの開始位置と終了位置を示します (END フィールドオプションの代わりに、WIDTH フィールドオプションまたは LENGTH フィールドオプションを使用することもできます)。TYPE NUMBER の後の小数点の表記 (.2) は、入力データの小数点以下の桁数を示します。小数点表記をしないときは、Text コネクションは入力値を整数とみなします。

日付と時刻の値の ZID フィールドの作成は、単純な TEXT や NUMBER の場合と比べて複雑です。日付と時刻は、通常とは異なる区切り記号、プレフィックス、およびサフィックスを使用して、さまざまな形式で表現されます。入力日付の形式を指定するときは、専用の FORMAT フィールドオプションを使用します。上記の例でも、DATE フィールドに FORMAT オプションが使用されています。

FORMAT フィールドオプションは、入力日付と時刻のフィールドのさまざまな要素を識別します。上記の例では、M は月を示し、D は日、Y は年をそれぞれ示します。日付と時刻の形式の詳細については、FORMAT フィールドオプションを参照してください。

可変フィールドの場合

入力データのもう 1 つの一般的な形式は、可変フィールド形式です。入力レコードで、フィールドの位置が直前のフィールドの終了位置によって決められる場合は、可変フィールド形式です。前出の固定フィールドの場合の入力データの例は、可変フィールドの場合には次のようになります。各フィールドはカンマで区切られています。

IDNO,NAME,TEL,BALANCE,PAYMENT,DATE
566238744,Carol Ann Wilson,1025557746,4000098,30000,10-15-93
012358743,Nathan Varberg,1015552345,300000,25000,10-11-93
524135698,David Fein,1015553222,3559955,102550,09-30-93

可変フィールドの場合は、次のように ZID フィールドを定義します。

Type: TYPE TEXT VALUE "Customer"
Idno: TYPE TEXT UNTIL ","
Name: TYPE TEXT UNTIL ","
Tel:  TYPE TEXT UNTIL ","
Balance: TYPE NUMBER.2 UNTIL ","
Payment: TYPE NUMBER.2 UNTIL ","
Date: TYPE DATE FORMAT MM.DD.yy

IDNO フィールドは列 1 から開始し、入力データでカンマが検出された時点で終了します。以降同様に、フィールドの開始位置と終了位置が決められます。DATE フィールドの定義では、レコード内の最後のフィールドに UNTIL が付けられていないことに注目してください。レコードの終端は自動的に検出されるので、最後のフィールドに UNTIL は必要ありません。