逆引きテンプレートについて
HULFT Squareをご利用いただきありがとうございます。
本記事では、「全銀協フォーマットのような固定長データを出力したい」のスクリプトについて、詳細および使用方法についてご案内します。
※逆引きテンプレートは、HULFT Squareの画面から「App Square」より、アプリケーション「逆引き ファイル変換(固定長)」をインストールいただくことでご利用いただけます。
スクリプト名
全銀協フォーマットのような固定長データを出力したい
Output fixed-length data
概要
全銀協フォーマットのような各レコードのフォーマットが異なる固定長データファイルを出力したい場合、固定長ファイル書き込み処理をフォーマットごとに複数回に分けて行います。
スクリプトの説明
CSVファイルを読み取り、全銀協フォーマットに変換してテキストファイルを出力します。
以下4つのレコードフォーマットごとに固定長ファイル書き込み処理を行います。
全銀協フォーマットの構成
| レコードフォーマット | 出力順序 | 出力回数 |
|---|---|---|
| ヘッダレコード | 1 | 1回 |
| データレコード | 2 | 複数回(入力データレコード分) |
| トレーラレコード | 3 | 1回 |
| エンドレコード | 4 | 1回 |
処理の流れ
スクリプトの処理の流れは以下の通りです。
- 「CSVファイル読み取り処理」で入力ファイルを読み取ります。
- 「繰り返し(データ件数)処理」・「変数代入処理」で入力データの金額を集計します。
- 「マッピング処理」・「固定長ファイル書き込み処理」で各レコードを以下の順番で出力します。
- ヘッダレコード
- データレコード
- トレーラレコード
- エンドレコード
入力データのイメージについては、「入力データ例」のサンプルデータ「input.csv」を参照してください。
実行結果のイメージについては、「出力データ例」のサンプルデータ「output.txt」を参照してください。
ポイントとなる機能
| 名前 | 説明 | ツールパレット上の場所 |
|---|---|---|
| 固定長ファイル書き込み処理 | 入力データを用いて固定長形式のテキストファイルを生成します。 | 「ファイル」-「固定長」-「固定長ファイル書き込み」 |
処理のポイント
- 出力するレコードフォーマットごとに固定長ファイル書き込み処理の[フォーマット]を変更します。
スクリプトの使用方法
上記処理を実装したスクリプトを用意しています。スクリプトを使用する場合の手順は「HULFT Squareアプリケーションのより詳しい使い方」をご参照ください。
固定長書き込み設定
本テンプレートを利用するには、後述の設定手順にて「固定長書き込みフォーマット定義」を作成のうえ、固定長書き込み処理コンポーネントのプロパティ設定ダイアログにて、フォーマットの設定を行ってください。
-
HULFT Squareサイト データ形式 から「新規追加」を選択し、「固定長書き込みフォーマット定義」を作成してください。
固定長書き込み 設定手順
処理のポイント
-
「名前」は以下、「固定長書き込みフォーマット定義」を四つ作成してください。
- 全銀協ヘッダレコードフォーマット
- 全銀協データレコードフォーマット
- 全銀協トレーラレコードフォーマット
- 全銀協エンドレコードフォーマットli
- 「ワークスペース」には任意の値を設定してください
[データ形式]の詳細については、HULFT Squareのデータ形式をご参照ください。
-
「名前」は以下、「固定長書き込みフォーマット定義」を四つ作成してください。
スクリプトの作成手順
プロセスフローおよびデータフローは、「スクリプトの説明」のスクリプト画像を参照して適宜設定してください。
- ファイル名として使用するスクリプト変数を作成します。
-
スクリプト変数のプロパティは、以下のように設定します。
スクリプト変数のプロパティ
変数名 必須/省略可 説明 I_inputFile 必須 入力ファイルのフルパス I_outputFile 必須 出力ファイルのフルパス
-
- 振込金額の集計に使用するスクリプト変数を作成します。
-
スクリプト変数のプロパティは、以下のように設定します。
スクリプト変数のプロパティ
変数名 変数型 初期値 L_TotalTransferAmount 整数型
-
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
-
CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
-
- デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。
-
繰り返し(データ件数)処理の設定は、以下のように行います。
[必須設定]タブ
-
- デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理をスクリプトキャンバスに配置します。
- 変数代入処理のMapperエディタを開き、繰り返し(データ件数)処理の加算対象項目をスクリプト変数に足し算します。
-
マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) 足し算 二つの入力数値を足して返します。 「数値」-「演算」-「足し算」
-
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping」)をスクリプトキャンバスに配置します。
-
デザイナのツールパレット「ファイル」-「固定長」-「固定長ファイル書き込み」から、固定長ファイル書き込み処理をスクリプトキャンバスに配置します。
-
固定長ファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
処理のポイント
- [フォーマット]は、「全銀協ヘッダレコードフォーマット」を選択します。
[書き込み設定]タブ
-
[必須設定]タブの「固定長書き込みウィザードの起動...」を押し、「列一覧」「構造定義」を以下の通りに設定してください。
固定長ウィザード
フィールド定義
フィールド名 フィールド型 フィールド長 揃え パディング文字 データ区分 数値 1 右揃え 半角ゼロ 種別コード 数値 2 右揃え 半角ゼロ コード区分 数値 1 右揃え 半角ゼロ 作成日 数値 6 右揃え 半角ゼロ 勘定日(自) 数値 6 右揃え 半角ゼロ 勘定日(至) 数値 6 右揃え 半角ゼロ 銀行コード 数値 4 右揃え 半角ゼロ 銀行名 文字列 15 左揃え 半角スペース 支店コード 数値 3 右揃え 半角ゼロ 支店名 文字列 15 左揃え 半角スペース 預金種別 数値 1 右揃え 半角ゼロ 口座番号 数値 7 右揃え 半角ゼロ 口座名 文字列 40 左揃え 半角スペース ダミー 文字列 93 左揃え 半角スペース [固定長書き込みウィザード]の詳細については、HULFT Squareの固定長書き込みウィザードをご参照ください。
-
- マッピング処理(「mapping」)のMapperエディタを開き、ヘッダ情報をヘッダレコードのフォーマットにマッピングする処理を作成します。
-
マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「1」を設定します。「文字列」-「基本」-「単一行文字列定数」 (2) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「01」を設定します。「文字列」-「基本」-「単一行文字列定数」 (3) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「0」を設定します。「文字列」-「基本」-「単一行文字列定数」 (4) 現在日時 現在日時を出力します。 「日付」-「基本」-「現在日時」 (5) 日時フォーマッティング 入力日時を指定したフォーマットで出力します。
[必須設定]タブの[フォーマット]は「yyMMdd」を設定します。「文字列」-「日付」-「日時フォーマッティング」 (6) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「190131」を設定します。「文字列」-「基本」-「単一行文字列定数」 (7) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「0010」を設定します。「文字列」-「基本」-「単一行文字列定数」 (8) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「アプレッソギンコウ」を設定します。「文字列」-「基本」-「単一行文字列定数」 (9) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「333」を設定します。「文字列」-「基本」-「単一行文字列定数」 (10) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「トウキョウエイギョウブ」を設定します。「文字列」-「基本」-「単一行文字列定数」 (11) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「9」を設定します。「文字列」-「基本」-「単一行文字列定数」 (12) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「9999991」を設定します。「文字列」-「基本」-「単一行文字列定数」 (13) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「カ)サンプルシステム」を設定します。「文字列」-「基本」-「単一行文字列定数」
-
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping(1)」)をスクリプトキャンバスに配置します。
-
デザイナのツールパレット「ファイル」-「固定長」-「固定長ファイル書き込み」から、固定長ファイル書き込み処理をスクリプトキャンバスに配置します。
-
固定長ファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
処理のポイント
- [フォーマット]は、「全銀協データレコードフォーマット」を選択します。
[書き込み設定]タブ
-
[必須設定]タブの「固定長書き込みウィザードの起動...」を押し、「列一覧」「構造定義」を以下の通りに設定してください。
固定長ウィザード
フィールド定義
フィールド名 フィールド型 フィールド長 揃え パディング文字 データ区分 数値 1 右揃え 半角ゼロ 照会番号 数値 6 右揃え 半角ゼロ 勘定日 数値 6 右揃え 半角ゼロ 起算日 数値 6 右揃え 半角ゼロ 金額 数値 6 右揃え 半角ゼロ うち他店券金額 数値 10 右揃え 半角ゼロ 振込依頼人コード 数値 10 右揃え 半角ゼロ 振込依頼人名 文字列 48 左揃え 半角スペース 仕向銀行名 文字列 15 左揃え 半角スペース 仕向店名 文字列 15 左揃え 半角スペース 取消区分 文字列 1 左揃え 半角スペース EDI情報 文字列 20 左揃え 半角スペース ダミー 文字列 52 左揃え 半角スペース [固定長書き込みウィザード]の詳細については、HULFT Squareの固定長書き込みウィザードをご参照ください。
-
- マッピング処理(「mapping(1)」)のMapperエディタを開き、入力データ情報をデータレコードのフォーマットにマッピングする処理を作成します。
-
マッピングキャンバスは、以下のように設定します。
マッピングキャンバス([基本]タブ)
番号 ロジック名 説明 ツールパレット上の場所 (1) 単純な繰り返し 指定したノードを繰り返します。 「繰り返し」-「基本」-「単純な繰り返し」 マッピングキャンバス([ロジック設定]タブ)
番号 ロジック名 説明 ツールパレット上の場所 (1) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「2」を設定します。「文字列」-「基本」-「単一行文字列定数」 (2) 右文字列 入力文字列の右から指定文字数切り取って返します。
[必須設定]タブの[文字数]は「6」を設定します。「文字列」-「関数」-「右文字列」
-
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping(2)」)をスクリプトキャンバスに配置します。
-
デザイナのツールパレット「ファイル」-「固定長」-「固定長ファイル書き込み」から、固定長ファイル書き込み処理をスクリプトキャンバスに配置します。
-
固定長ファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
処理のポイント
- [フォーマット]は、「全銀協トレーラレコードフォーマット」を選択します。
[書き込み設定]タブ
-
[必須設定]タブの「固定長書き込みウィザードの起動...」を押し、「列一覧」「構造定義」を以下の通りに設定してください。
固定長ウィザード
フィールド定義
フィールド名 フィールド型 フィールド長 揃え パディング文字 データ区分 数値 1 右揃え 半角ゼロ 振込合計件数 数値 6 右揃え 半角ゼロ 振込合計金額 数値 12 右揃え 半角ゼロ 取消合計件数 数値 6 右揃え 半角ゼロ 取消合計金額 数値 12 右揃え 半角ゼロ ダミー 文字列 163 左揃え 半角スペース [固定長書き込みウィザード]の詳細については、HULFT Squareの固定長書き込みウィザードをご参照ください。
-
- マッピング処理(「mapping(2)」)のMapperエディタを開き、入力データ情報をデータレコードのフォーマットにマッピングする処理を作成します。
-
マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「8」を設定します。「文字列」-「基本」-「単一行文字列定数」 処理のポイント
- CSVファイル読み取り処理の抽出件数をコンポーネント変数「count」より取得し、トレーラレコードの「振込合計件数」の欄にマッピングします。
-
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping(3)」)をスクリプトキャンバスに配置します。
-
デザイナのツールパレット「ファイル」-「固定長」-「固定長ファイル書き込み」から、固定長ファイル書き込み処理をスクリプトキャンバスに配置します。
-
固定長ファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
処理のポイント
- [フォーマット]は、「全銀協エンドレコードフォーマット」を選択します。
[書き込み設定]タブ
-
[必須設定]タブの「固定長書き込みウィザードの起動...」を押し、「列一覧」「構造定義」を以下の通りに設定してください。
固定長ウィザード
フィールド定義
フィールド名 フィールド型 フィールド長 揃え パディング文字 データ区分 数値 1 右揃え 半角ゼロ ダミー 文字列 199 左揃え 半角スペース [固定長書き込みウィザード]の詳細については、HULFT Squareの固定長書き込みウィザードをご参照ください。
-
- マッピング処理(「mapping(3)」)のMapperエディタを開き、入力データ情報をデータレコードのフォーマットにマッピングする処理を作成します。
-
マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「9」を設定します。「文字列」-「基本」-「単一行文字列定数」
-
- スクリプトを実行し、正常終了すれば成功です。
入出力データ例
- 入力データ例
-
input.csv
支払伝票番号,行,作成日,支払日,管理CD,業者CD,支払金額,会計年月,備考,保留日,会計区分,銀行番号,科目CD,摘要CD,入金銀行番号,入力データ区分,MT作成日,未払計上日,作業 NOメンテ,枝番メンテ,銀行口座残高枝番,予備,入力担当者,最終更新日 1234567890,1,20070301,20070330,1234,123456,1856000,200703,,,,,,,,,,,,,,,, 1234567891,2,20070301,20070330,4321,654321,3000000,200703,,,,,,,,,,,,,,,,
-
- 出力データ例
-
output.txt
10101409111901311901310010アプレッソギンコウ 333トウキョウエイギョウブ 99999991カ)サンプルシステム 2000000070330070330000185600000000000000000000000 2000000070330070330000300000000000000000000000000 8000002000004856000000000000000000000 9
-
コメント
0件のコメント
記事コメントは受け付けていません。