Write to Variable Format File

Write to Variable Format File は、さまざまなレイアウトのレコードをファイルに書き出します。

可変フォーマット ファイルには、次の特性があります。

  • ファイル内のレコードは、異なるフィールド、および異なる数のフィールドを持つことができる。
  • 各レコードには、レコードのタイプを識別するタグ (通常は数字) を含める必要がある。
  • 階層的な関連性をサポートしている。

可変フォーマット ファイルの例

次の例は、2 人の顧客 Joe Smith と Anne Johnson の当座預金口座の取引に関する情報を含む、可変フォーマット ファイルを示しています。この例のファイルは、フィールド区切り文字としてカンマを使用する区切り記号付きファイルです。

001   Joe,Smith,M,100 Main St,555-234-1290
100   CHK12904567,12/2/2007,6/1/2012,CHK
200   1000567,1/5/2012,Fashion Shoes,323.12
001   Anne,Johnson,F,1202 Lake St,555-222-4932
100   CHK238193875,1/21/2001,4/12/2012,CHK
200   1000232,3/5/2012,Blue Goose Grocery,132.11
200   1000232,3/8/2012,Trailway Bikes,540.00

各レコードの先頭フィールドには、レコードのタイプ、およびレコードのフォーマットを識別するタグが含まれています。

  • 001: Customer レコード
  • 100: Account レコード
  • 200: Account transaction レコード

区切り記号付きファイルにおいて、上の例に示すように、タグ値 (001、100、200) をレコード先頭の固定長バイトに含めることは一般的です。

各レコードには独自のフォーマットがあります。

  • 001: FirstName,LastName,Gender,Address,PhoneNumber
  • 100: AccountID,DateOpened,ExpirationDate,TypeOfAccount
  • 200: TransactionID,DateOfTransaction,Vendor,Amount

レコード フォーマット 100 (アカウント レコード) は、前のレコード 001 の子で、レコード フォーマット 200 (アカウント トランザクション レコード) は、前のレコード 100 (アカウント レコード) の子です。したがって、例のファイルでは、Joe Smith のアカウント CHK12904567 に Fashion Shoes で 2012/1/5 に数量 323.12 のトランザクションが発生していました。同様に、Anne Johnson のアカウント CHK238193875 には、Blue Goose Grocery で 2012/3/5 に 1 つ、Trailway Bikes で 2012/3/8 に 1 つのトランザクションが発生していました。

[ファイル プロパティ] タブ

オプション名 説明

サーバ名

入力として選択したファイルが Enterprise Designer を実行しているコンピュータ上にあるか、Spectrum™ Technology Platform サーバー上にあるかを示します。ローカル コンピュータ上のファイルを選択した場合、サーバー名はマイ コンピュータになります。サーバー上のファイルを選択した場合、サーバー名は Spectrum™ Technology Platform になります。

ファイル名

ファイルへのパスを指定します。省略記号ボタン (...) をクリックし、必要なファイルを参照して選択します。

注: なお、Spectrum™ Technology Platformサーバーを実行しているプラットフォームが Unix または Linux の場合、これらのプラットフォームでファイル名およびパスの大文字と小文字が区別されることに注意してください。

ルート タグ名

他のレコード タイプの親であるレコードに対して使用するタグ。例えば、3 つのレコード タイプ 001、100、200 があり、レコード タイプ 100 および 200 がレコード タイプ 001 の子である場合、001 はルート タグです。

固定長タグを使用

レコード タグを配置する各レコードの先頭に固定長スペースを割り当てるかどうかを指定します。例えば、以下は、固定長フィールドにタグ 001、100、200 を持つファイルを示しています。

001   Joe,Smith,M,100 Main St,555-234-1290
100   CHK12904567,12/2/2007,6/1/2012,CHK
200   1000567,1/5/2012,Mike's Shoes,323.12

タグ長

[固定長タグを使用] ボックスをオンにした場合、各レコードの先頭でタグに対して割り当てるスペースの数を指定します。例えば、7 を指定した場合は、各レコードの最初の 7 つのスペースがタグに対して予約されます。指定する値は、最も長いタグ名の文字の数以上でなければなりません。タグ名については、可変フォーマット ファイルのタグ名を参照してください。

指定された値より長い名前を持つフィールドを [フィールド] タブに追加した場合、[タグ長] フィールドの値は自動的に増えます。

最大タグ長は 1024 です。

数値タグの接頭辞の削除

タグをファイルに書き出す前に、フィールド名の "NumericTag_" の部分を削除します。接頭辞 "NumericTag_" は、数字で始まるすべてのタグ名に対して、Read from Variable Format File ステージによってタグ名に追加されます。これは、タグ名がレコードのデータを含むリスト データフロー フィールドの名前として使用され、データフロー フィールド名の先頭を数字にすることができないためです。例えば、タグ 100 はリスト フィールド名 "NumericTag_100" に変更されます。このオプションを有効にすると、このフィールドは "NumbericTag_100" ではなく "100" というタグを持つレコードとして出力ファイルに書き出されます。

文字エンコーディング

テキスト ファイルのエンコーディング。次のいずれかを選択します。

UTF-8
すべての Unicode 文字をサポートし、かつ ASCII との下位互換性があります。UTF の詳細については、unicode.org/faq/utf_bom.html を参照してください。
UTF-16
すべての Unicode 文字をサポートします。しかし、ASCII との下位互換性はありません。UTF の詳細については、unicode.org/faq/utf_bom.html を参照してください。
US-ASCII
英語のアルファベット順に従う文字エンコーディング。
UTF-16BE
ビッグエンディアン UTF-16 エンコーディング (下位アドレスが上位バイトとなるようにシリアル化)。
UTF-16LE
リトルエンディアン UTF-16 エンコーディング (下位アドレスが下位バイトとなるようにシリアル化)。
ISO-8859-1
主として西ヨーロッパの言語で使われる ASCII 文字エンコーディング。Latin-1 とも呼ばれます。
ISO-8859-3
主として南ヨーロッパの言語で使われる ASCII 文字エンコーディング。Latin-3 とも呼ばれます。
ISO-8859-9
主としてトルコ語で使われる ASCII 文字エンコーディング。Latin-5 とも呼ばれます。
CP850
西ヨーロッパの言語を書くための ASCII コード ページ。
CP500
西ヨーロッパの言語を書くための EBCDIC コード ページ。
Shift_JIS
日本語のための文字エンコーディング。
MS932
NEC 特殊文字、NEC 選定 IBM 拡張文字、IBM 拡張文字を含めた Microsoft の拡張版 Shift_JIS 文字コード。
CP1047
Latin-1 文字セット全体を含む EBCDIC コード ページ。

フィールド区切り文字

区切り記号付きファイル内のフィールドを区切るのに使用する文字を指定します。

例えば、次のレコードでは (|) 記号がフィールド区切り文字として使われています。

7200 13TH ST|MIAMI|FL|33144

フィールド区切り文字として定義できるのは次の文字です。

  • スペース
  • タブ
  • カンマ
  • ピリオド (.)
  • セミコロン
  • パイプ (|)

これ以外の文字がフィールド区切り文字として使われているファイルについては、省略記号ボタン (...) をクリックし、別の文字を区切り文字として選択してください。

タグ区切り文字 区切り記号付きファイル内の各レコードの識別フィールドを区切るために、タグ フィールドの後ろに配置する文字を指定します。タグ区切り文字は 1 文字でなければなりません。

デフォルトでは、以下の文字がタグ区切り文字として選択できます。

  • スペース
  • タブ
  • カンマ
  • ピリオド (.)
  • セミコロン
  • パイプ (|)

これ以外の文字がタグ区切り文字として使われているファイルについては、省略記号ボタン (...) をクリックして、カスタムなタグ区切り文字を追加して選択します。

注: デフォルトで、[レコード区切り文字][フィールド区切り文字] として選択された文字と同じです。このフィールドを有効にして別の文字を選択するには、[フィールド区切り文字と同じ] チェックボックスをオフにします。
[フィールド区切り文字と同じ] タグ区切り文字がフィールド区切り文字と同じかどうかを示します。別の文字をタグ区切り文字として選択するには、このチェックボックスをオフにします。
注: デフォルトで、このチェックボックスはオフで、[タグ区切り文字] フィールドは無効になっています。

Text qualifier

区切り記号付きファイル内のテキスト値を囲むのに使用する文字。

例えば、次のレコードでは二重引用符 (") がテキスト修飾子として使われています。

"7200 13TH ST"|"MIAMI"|"FL"|"33144"

テキスト修飾子として定義できるのは次の文字です。

  • 一重引用符 (')
  • 二重引用符 (")

これ以外の文字がテキスト修飾子として使われているファイルについては、省略記号ボタン (...) をクリックし、別の文字をテキスト修飾子として選択してください。

レコード区切り文字

順次ファイルまたは区切り記号付きファイル内のレコードを区切るのに使用する文字を指定します。[デフォルトの EOL を使用] チェック ボックスをオンにすると、このフィールドは使用できません。

使用できるレコード区切り文字の設定は次のとおりです。

Unix (U+000A)
改行 (LF) 文字でレコードを区切ります。これは Unix システムの標準のレコード区切り文字です。
Macintosh (U+000D)
復帰 (CR) 文字でレコードを区切ります。これは Macintosh システムの標準のレコード区切り文字です。
Windows (U+000D U+000A)
復帰改行 (CR+LF) でレコードを区切ります。これは Windows システムの標準のレコード区切り文字です。

これ以外の文字がレコード区切り文字として使われているファイルについては、省略記号ボタン (...) をクリックし、別の文字をレコード区切り文字として選択してください。

デフォルトの EOL を使用

Spectrum™ Technology Platform サーバーが実行されているオペレーティング システムのデフォルトの行末 (EOL) 文字をファイルのレコード区切り文字として使用します。

ファイルの EOL 文字がサーバーのオペレーティング システムで使われているデフォルトの EOL 文字と異なる場合は、このオプションをオンにしないでください。例えば、ファイルで Windows の EOL が使われていて、サーバーの動作プラットフォームが Linux の場合は、このオプションをオンにしないでください。代わりに、[レコード区切り文字] フィールドで [Windows] オプションを選択します。

[フィールド] タブ

[フィールド] タブは、出力ファイルに含めるデータフローのフィールドを制御します。

オプション名

説明

追加

クリックして、出力にフィールドを追加します。

Write to Variable Format File で使用するデータフロー フィールドの作成については、可変フォーマット ファイルへのフラット データの書き出しを参照してください。

変更

クリックして、タグの名前を変更します。このボタンが有効になるのは、タグが選択されている場合のみです。[固定長タグを使用] オプションを [ファイル プロパティ] タブで有効にすると、それより長いタグ名を入力した場合にタグ長が自動的に調整されます。

注: このボタンの使用によるルート タグ名の変更は、[ファイル プロパティ] タブの [ルート タグ名] フィールドの値の変更と同じ効果を持ちます。

削除

選択されたフィールドを出力から削除します。リスト フィールドを削除する場合、子フィールドもすべて削除されます。子フィールドを削除する場合、選択された子フィールドのみがリスト フィールドから削除されます。

xx

すべて削除

すべてのフィールドを出力から削除します。

上へ移動/下へ移動

選択されたフィールドの順序を変更します。

[実行時] タブ

オプション名

説明

ファイル名

ここには、[ファイル プロパティ] タブで定義したファイルが表示されます。

複数ファイルの生成 1 つのファイルにすべてのレコードを書き込むのではなく、レコードをいくつかのファイルに書き込む場合は、このオプションを選択します。各レコードを書き込むファイルは、レコード自体に指定されます。各レコードには、レコードを書き込むファイルのファイル名または完全ファイル パスのいずれかを指定するフィールドが含まれている必要があります。例えば、(各種グループの) 各社の株価をすべてのクライアントに個別に送信する場合、この機能を使用すると、各社の株価を個別のファイルに書き込んで、それらのファイルを各クライアントに送信できます。[複数ファイルの生成] オプションを有効にする場合は、Spectrum™ Technology Platform サーバー上または FTP サーバー上のいずれかにある出力ファイルを指定する必要があります。FTP サーバー上のファイルにデータを書き込む場合は、Management Console を使用してファイル サーバーへの接続を定義する必要があります。
注: [ファイル パス フィールド] で選択する列のレコードは、ソート順になっている必要があります。レコードにファイル名または完全ファイル パスのいずれかが含まれている場合は、この機能を使用します。
ファイル パス フィールド レコードを書き込むファイルのパス (ファイル名または完全ファイル パスのいずれか) を含むフィールドを選択します。ルート タグに直接マップされる単純タイプ要素のみが [ファイル パス フィールド] にリストされることに注意してください。このフィールドは、[複数ファイルの生成] を選択している場合にのみ有効になります。

書き込みモード

データフローの出力をファイルの最後に追加するか、ファイル内の既存のデータを削除してから出力を書き出すかを指定します。次のいずれかです。

Overwrite
データフローが実行されるごとに、出力ファイル内の既存のデータを置き換えます。
追加
データフローの出力をファイルの最後に追加します。ファイルの既存のデータは消去しません。