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

Avatar
dstn

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

キーワード:固定長,マルチレイアウト,マルチフォーマット,全銀協,加算

概要

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

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

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

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

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

処理の流れ

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

ポイントとなる機能

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

処理のポイント

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

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

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

サンプルプロジェクトのダウンロード 逆引きリファレンス シナリオ011のサンプルプロジェクト
  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
      [接続名]は、インポートしたファイルの拡張子を除いたファイル名(例:全銀協エンドレコードフォーマット)を設定してください。
    グローバルリソースの設定方法については、DataSpider Servistaヘルプの「固定長書き込みウィザード」を参照してください。

スクリプトの作成手順

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

      スクリプト変数のプロパティ

      変数名 変数型 初期値
      振込金額合計 整数型  

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

      [必須設定]タブ

      [読み取り設定]タブ


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

      [必須設定]タブ


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

  5. 変数代入処理のMapperエディタを開き、繰り返し(データ件数)処理の加算対象項目をスクリプト変数に足し算します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 足し算 二つの入力数値を足して返します。 「数値」-「演算」-「足し算」

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

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

      [必須設定]タブ



      処理のポイント
      • [フォーマット]は、「全銀協ヘッダレコードフォーマット」を選択します。

      [書き込み設定]タブ


  8. マッピング処理(「mapping」)のMapperエディタを開き、ヘッダ情報をヘッダレコードのフォーマットにマッピングする処理を作成します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「1」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (2) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「01」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (3) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「0」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (4) 現在日時 現在日時を出力します。 「日付」-「基本」-「現在日時」
      (5) 日時フォーマッティング 入力日時を指定したフォーマットで出力します。
      [必須設定]タブの[フォーマット]は「yyMMdd」を設定します。
      「文字列」-「日付」-「日時フォーマッティング」
      (6) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「190131」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (7) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「0010」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (8) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「アプレッソギンコウ」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (9) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「333」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (10) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「トウキョウエイギョウブ」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (11) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「9」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (12) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「9999991」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (13) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「カ)サンプルシステム」を設定します。
      「文字列」-「基本」-「単一行文字列定数」

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

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

      [必須設定]タブ



      処理のポイント
      • [フォーマット]は、「全銀協データレコードフォーマット」を選択します。

      [書き込み設定]タブ


  11. マッピング処理(「mapping(1)」)のMapperエディタを開き、入力データ情報をデータレコードのフォーマットにマッピングする処理を作成します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス([基本]タブ)



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 単純な繰り返し 指定したノードを繰り返します。 「繰り返し」-「基本」-「単純な繰り返し」

      マッピングキャンバス([ロジック設定]タブ)



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「2」を設定します。
      「文字列」-「基本」-「単一行文字列定数」
      (2) 右文字列 入力文字列の右から指定文字数切り取って返します。
      [必須設定]タブの[文字数]は「6」を設定します。
      「文字列」-「関数」-「右文字列」

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

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

      [必須設定]タブ



      処理のポイント
      • [フォーマット]は、「全銀協トレーラレコードフォーマット」を選択します。

      [書き込み設定]タブ


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

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「8」を設定します。
      「文字列」-「基本」-「単一行文字列定数」

      処理のポイント
      • CSVファイル読み取り処理の抽出件数をコンポーネント変数「count」より取得し、トレーラレコードの「振込合計件数」の欄にマッピングします。

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

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

      [必須設定]タブ



      処理のポイント
      • [フォーマット]は、「全銀協エンドレコードフォーマット」を選択します。

      [書き込み設定]タブ


  17. マッピング処理(「mapping(3)」)のMapperエディタを開き、エンドレコードの情報をエンドレコードのフォーマットにマッピングする処理を作成します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「9」を設定します。
      「文字列」-「基本」-「単一行文字列定数」

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

コメント

ログインしてコメントを残してください。

Powered by Zendesk