全銀協フォーマットのような固定長データを出力したい

キーワード:固定長,マルチレイアウト,マルチフォーマット,全銀協,加算
シナリオ一覧に戻る

概要

全銀協フォーマットのような各レコードのフォーマットが異なる固定長データファイルを出力したい場合、固定長ファイル書き込み処理をフォーマットごとに複数回に分けて行います。

サンプルプロジェクトの説明

CSVファイルを読み取り、全銀協フォーマットに変換してテキストファイルを出力します。
以下4つのレコードフォーマットごとに固定長ファイル書き込み処理を行います。

全銀協フォーマットの構成

レコードフォーマット 出力順序 出力回数
ヘッダレコード 1 1回
データレコード 2 複数回(入力データレコード分)
トレーラレコード 3 1回
エンドレコード 4 1回

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. CSVファイル読み取り処理」で入力ファイルを読み取ります。
  2. 繰り返し(データ件数)処理」・「変数代入処理」で入力データの金額を集計します。
  3. マッピング処理」・「固定長ファイル書き込み処理」で各レコードを以下の順番で出力します。
    1. ヘッダレコード
    2. データレコード
    3. トレーラレコード
    4. エンドレコード
実行結果のイメージについては、サンプルプロジェクトのサンプルデータ「Output.txt」を参照してください。

ポイントとなる機能

名前 説明 ツールパレット上の場所
固定長ファイル書き込み処理 入力データを用いて固定長形式のテキストファイルを生成します。 「ファイル」-「固定長」-「固定長ファイル書き込み」

処理のポイント

出力するレコードフォーマットごとに固定長ファイル書き込み処理の[フォーマット]を変更します。

サンプルプロジェクトの使用方法

上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。

サンプルプロジェクトファイル名 rl_reference_011.zip
  1. サンプルプロジェクトの展開
    サンプルプロジェクトファイル「rl_reference_011.zip」を展開します。

  2. プロジェクトのアップロード
    「rl_reference_011.zip」を展開後に作成される「rl_reference_011プロジェクト」ディレクトリがプロジェクトファイルとなります。
    DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_011プロジェクト」をアップロードしてください。

  3. サンプルデータの準備
    「rl_reference_011.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
    $DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。

  4. グローバルリソースの設定
    レコードフォーマットごとに4つのグローバルリソースを作成します。
    コントロールパネルの[グローバルリソースの設定]から、[新しいグローバルリソースの追加]を選択し、固定長書き込みフォーマット定義のグローバルリソースを選択します。
    1. 「接続の設定」画面で[固定長書き込みウィザードの起動]を押下し、固定長ウィザードを起動します。
    2. 固定長ウィザードのメニュー[構造定義ファイル]より[インポート]を選択し、以下の4ファイルをそれぞれインポートします。
      • $DATASPIDER_HOME/server/samples/rl_reference_011/構造定義/全銀協エンドレコードフォーマット.txt
      • $DATASPIDER_HOME/server/samples/rl_reference_011/構造定義/全銀協データレコードフォーマット.txt
      • $DATASPIDER_HOME/server/samples/rl_reference_011/構造定義/全銀協トレーラレコードフォーマット.txt
      • $DATASPIDER_HOME/server/samples/rl_reference_011/構造定義/全銀協ヘッダレコードフォーマット.txt
      [接続名]は、インポートしたファイルの拡張子を除いたファイル名(例:全銀協エンドレコードフォーマット)を設定してください。
    グローバルリソースの設定方法については、「固定長書き込みウィザード」を参照してください。

スクリプトの作成手順

プロセスフローおよびデータフローは、「サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
  1. 振込金額の集計に使用するスクリプト変数を作成します。

  2. デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。

  3. デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。

  4. デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理をスクリプトキャンバスに配置します。

  5. 変数代入処理のMapperエディタを開き、繰り返し(データ件数)処理の加算対象項目をスクリプト変数に足し算します。

  6. デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping」)をスクリプトキャンバスに配置します。

  7. デザイナのツールパレット「ファイル」-「固定長」-「固定長ファイル書き込み」から、固定長ファイル書き込み処理をスクリプトキャンバスに配置します。

  8. マッピング処理(「mapping」)のMapperエディタを開き、ヘッダ情報をヘッダレコードのフォーマットにマッピングする処理を作成します。

  9. デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping(1)」)をスクリプトキャンバスに配置します。

  10. デザイナのツールパレット「ファイル」-「固定長」-「固定長ファイル書き込み」から、固定長ファイル書き込み処理をスクリプトキャンバスに配置します。

  11. マッピング処理(「mapping(1)」)のMapperエディタを開き、入力データ情報をデータレコードのフォーマットにマッピングする処理を作成します。

  12. デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping(2)」)をスクリプトキャンバスに配置します。

  13. デザイナのツールパレット「ファイル」-「固定長」-「固定長ファイル書き込み」から、固定長ファイル書き込み処理をスクリプトキャンバスに配置します。

  14. マッピング処理(「mapping(2)」)のMapperエディタを開き、コンポーネント変数やスクリプト変数をトレーラレコードのフォーマットにマッピングする処理を作成します。

  15. デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping(3)」)をスクリプトキャンバスに配置します。

  16. デザイナのツールパレット「ファイル」-「固定長」-「固定長ファイル書き込み」から、固定長ファイル書き込み処理をスクリプトキャンバスに配置します。

  17. マッピング処理(「mapping(3)」)のMapperエディタを開き、エンドレコードの情報をエンドレコードのフォーマットにマッピングする処理を作成します。

  18. スクリプトを実行し、正常終了すれば成功です。