逆引きテンプレートについて
HULFT Squareをご利用いただきありがとうございます。
本記事では、「複数のファイルをマージし、グループ化したい」のスクリプトについて、詳細および使用方法についてご案内します。
※逆引きテンプレートは、HULFT Squareの画面から「App Square」より、アプリケーション「逆引き ファイル変換」をインストールいただくことでご利用いただけます。
スクリプト名
複数のファイルをマージし、グループ化したい
Merge and group multiple files
概要
複数のファイルをマージしてグループ化したい場合、マージ処理およびグループ化ロジックを使用します。
スクリプトの説明
3つのCSVファイルを読み取り、「本部ID」をキー項目としてマージを行います。
マージしたデータを「本部ID」をキー項目としてグループ化し、XMLファイルに書き込みます。
処理の流れ
スクリプトの処理の流れは以下の通りです。
- 「CSVファイル読み取り処理」で1つ目のCSVファイルを読み取ります。
- 「CSVファイル読み取り処理」で2つ目のCSVファイルを読み取ります。
- 「CSVファイル読み取り処理」で3つ目のCSVファイルを読み取ります。
- 「マージ処理」の「Or-Integrateマージロジック」で「本部ID」をキー項目としてマージします。
- 「マッピング処理」の「グループ化ロジック」で「本部ID」をキー項目としてグループ化します。
- 「XMLファイル書き込み処理」でグループ化したデータをXMLファイルに書き込みます。
入力データのイメージについては、「入力データ例」のサンプルデータ「input1.csv」、「input2.csv」、「input3.csv」を参照してください。
実行結果のイメージについては、「出力データ例」のサンプルデータ「output.xml」を参照してください。
ポイントとなる機能
| 名前 | 説明 | ツールパレット上の場所 |
|---|---|---|
| Or-Integrateマージロジック | Or-Integrate形式でマージします。 | 「マージ」-「基本」-「Or-Integrateマージ」 |
| グループ化ロジック | グループ化を行います。 | 「繰り返し」-「基本」-「グループ化」 |
処理のポイント
- グループ化ロジックは、グループ対象にするキー項目を指定してグループ化を行います。
- また、グループ化した際に繰り返すノードを指定し、繰り返し出力します。
スクリプトの使用方法
上記処理を実装したスクリプトを用意しています。スクリプトを使用する場合の手順は「HULFT Squareアプリケーションのより詳しい使い方」をご参照ください。
スクリプトの作成手順
プロセスフローおよびデータフローは、「スクリプトの説明」のスクリプト画像を参照して適宜設定してください。
- ファイル名として使用するスクリプト変数を作成します。
-
スクリプト変数のプロパティは、以下のように設定します。
スクリプト変数のプロパティ
変数名 必須/省略可 説明 I_inputCsvFile_one 必須 入力ファイル1のフルパス I_inputCsvFile_two 必須 入力ファイル2のフルパス I_inputCsvFile_three 必須 入力ファイル3のフルパス I_outputXmlFile 必須 出力ファイルのフルパス
-
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
-
CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
-
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
-
CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
-
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
-
CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
-
- デザイナのツールパレット「変換」-「基本」-「マージ」から、マージ処理をスクリプトキャンバスに配置します。
マージ処理には複数の入力元よりデータフローを引くことができます。
- マージ処理のMapperエディタを開き、「本部ID」をキー項目としてマージする処理を作成します。
-
マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) Or-Integrateマージ Or-Integrate形式でマージします。 「マージ」-「基本」-「Or-Integrateマージ」
-
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理をスクリプトキャンバスに配置します。
- マッピング処理のMapperエディタを開き、「本部ID」をキー項目としてグループ化する処理を作成します。
-
マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) グループ化 グループ化を行います。 「繰り返し」-「基本」-「グループ化」 (2) 単純な繰り返し 指定したノードを繰り返します。 「繰り返し」-「基本」-「単純な繰り返し」 処理のポイント
- グループ化ロジックで「本部ID」をキー項目としてグループ化を行います。
-
繰り返しポイントを指定することで、指定した要素を繰り返し出力することができます。
サンプルでは繰り返しポイントとして、社員要素を指定しています。 - 出力先のコンポーネントがテーブルモデル型の場合、グループ化を行うことはできません。
-
- デザイナのツールパレット「ファイル」-「XML」-「XMLファイル書き込み」から、XMLファイル書き込み処理をスクリプトキャンバスに配置します。
-
XMLファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
[書き込み設定]タブ
-
- スクリプトを実行し、正常終了すれば成功です。
入出力データ例
-
入力データ例
-
input1.csv
本部名,本部ID 第5システム本部,010500
-
input2.csv
本部ID,部署名,部署ID 010500,第5システム本部1部,01050100
-
input3.csv
本部ID,社員名,社員ID 010500,日本太郎,206001 010500,開発二郎,206002 010500,大阪三郎,206003 010500,東京四郎,206004
-
-
出力データ例
-
output.xml
<?xml version="1.0" encoding="Windows-31J" standalone="no"?> <root> <本部情報> <本部名>第5システム本部</本部名> <本部ID>010500</本部ID> <部署名>第5システム本部1部</部署名> <部署ID>01050100</部署ID> <社員> <社員名>日本太郎</社員名> <社員ID>206001</社員ID> </社員> <社員> <社員名>開発二郎</社員名> <社員ID>206002</社員ID> </社員> <社員> <社員名>大阪三郎</社員名> <社員ID>206003</社員ID> </社員> <社員> <社員名>東京四郎</社員名> <社員ID>206004</社員ID> </社員> </本部情報> </root>
-
コメント
0件のコメント
記事コメントは受け付けていません。