テーマ③ 活用事例 補足説明 -DataMagic変換定義-

【運営】セゾン情報システムズ
作成日時: - 更新日時:
Avatar

Touch the Next HULFTの技術体験会 テーマ③で使用した「Excel の申請書を読み取り、 HULFT-HUB がHULFT に 配布するパラメータファイルを作成する」データ加工情報について詳細をご紹介します。
※本変換定義で使用するマスター用Excelファイル「MST.xlsx」とサンプルスクリプト、パラメータファイルのテンプレートはページ下部に添付しております。

 ※画像がうまく読み込まれない場合があります。その場合は、画面を更新(再読込)してください。

使用環境

使用OS

OS
Windows Server

使用ソフトウェア

ソフトウェア(オプション) インストール先 バージョン
DataMagic Server for Windows(Excelオプション) C:\HULFT Family\huledpro Ver.3.1.3

使用フォルダ/ファイル

件名 ファイルパス  
入力ファイル C:\WORK\03_活用事例\HULFT_ID追加申請書.xlsx Excelの申請書
出力ファイル C:\WORK\03_活用事例\output\HUB_EXCEL_LIST.csv 一括登録用のパラメータファイル
マスターファイル C:\WORK\03_活用事例\Master\MST.xlsx パラメータファイルへ値を入力する際のマスターファイル
パラメータファイル
テンプレート
C:\WORK\03_活用事例\template\tmpl-send.csv(配信管理情報)
C:\WORK\03_活用事例\template\tmpl-recv.csv(集信管理情報)
C:\WORK\03_活用事例\template\tmpl-transferCondition.csv(転送情報)
C:\WORK\03_活用事例\template\tmpl-transferMaster.csv(詳細条件)
HULFT-HUBの各管理情報登録用CSVファイルテンプレート

レイアウト情報の登録

入力ファイルExcelとマスターファイルExcelのレイアウト情報を設定します。
出力ファイルのCSVはデータ加工情報の出力設定で行います。

《入力ファイルExcelのレイアウト情報》

DM01.png
《マスターファイルExcelのレイアウト情報》

DM02.png

データ加工情報の登録

本定義では以下のようなデータ加工情報を作成します。

DM03.png

《入力設定》
この設定で読み取る"Excelの申請書"のファイルパスやレイアウト情報を指定します。
DM04.png

《出力設定》
この設定で書き込む"HULFT-HUB が HULFT に 配布する転送定義のパラメータファイル"のファイルパスやレイアウト情報を指定します。

DM05.png
CSV の区切り文字や囲み文字の設定です。CSV形式のレイアウト情報のID を指定して、項目名などの詳細な設定を作成することも可能ですが、今回のデータ加工では設定を省略しています。

■補足
CSV形式はレイアウト情報の作成を省略して、データ加工情報の定義のみで変換が可能です。
レイアウト情報を省略することで、工数の削減が見込めますが、省略した場合は項目名をタイトル行として出力する機能が使用できません。共通のタイトル行を流用したい場合などは、CSV形式のレイアウト情報を作成しておくことを推奨します。

《抽出条件/マッピング情報設定》
読み込んだデータをどのように抽出/加工するかを設定します。
データの加工方法を設定する部分になるので、一番ボリュームの多い個所になります。

DM06.png
点線で囲まれた部分が抽出条件です。抽出条件では読み込んだ入力ファイルから抽出するレコードの条件を指定します。
今回のデータ加工情報のように複数の抽出条件が設定されている場合、上から順番に読み取ってレコードが抽出条件に合致するか判定し、出力します。(抽出条件のアイコンに振られている番号が処理順を表しています)

このため、複数の抽出条件に合致した場合は、合致した分だけレコードが出力される動作になります。1レコードから複数のレコードを出力したい場合、今回のテーマのように複数の抽出条件を設定してください。

次に一番上に設定されている赤いアイコンの部分ですが、ここは通常の抽出条件とは異なる「前処理」を設定しています。「前処理」は入力データを読み込む前に固定のデータを先に出力しておきたい場合などに設定します。
また、今回のデータ加工情報では使用していませんが、入力データの出力が終わった後に別途データを出力する「後処理」を行う設定も可能です。

「前処理」で出力するデータの内容は対応するマッピング情報設定(このアイコンの部分ですDM08.png  )で設定します。今回のデータ加工情報ではHULFT-HUB が HULFT に 配布する転送定義のパラメータファイルのヘッダー部分を固定文字列で出力するように設定します。

DM09.png
■補足
前処理は入力データを読み込む前に実行されるため、入力データの値を参照することはできません。
このため、固定文字列などで出力するデータを設定いただくのですが、固定文字列以外にはデータ加工実行時のコマンドの引数に指定したデータや後述する仮想テーブルとして読み込んだデータを取得するように設定することも可能です。このため、外部からデータを連携して前処理で出力することもできます。


後続の抽出条件は4つあります。それぞれ出力するレコードの内容が以下のように異なります。

1.配信管理情報
2.集信管理情報
3.転送情報
4.詳細条件

転送定義のパラメータファイルはそれぞれフォーマットが異なるため、上記のように抽出条件を分けて別のレコードとして出力しています。

1.配信管理情報 2.集信管理情報 の抽出条件設定

DM11.png

抽出条件に上記の条件式を設定しています。
"対象のレコード番号が 1 以上の場合"という式になり、入力ファイルから読み込んだ全てのレコードが条件を満たします。

転送定義の追加申請があった場合、HULFTの配信管理情報と集信管理情報は必ず作成する必要があるので、上記のように条件式を設定しています。

3.転送情報 4.詳細条件 の抽出条件設定

DM12.png

抽出条件に上記の条件式を設定しています。
"対象のレコードの項目名(転送パターン)が文字列(直接転送)以外の場合"という式になり、特定の項目の値によってレコードを抽出するか判定しています。

今回入力ファイルとして使用する Excel の申請書には[転送パターン]という項目(列)があり、HULFT-HUB を中継してファイルを転送するか、HULFT間で直接ファイルを転送するか申請書で記述できるようになっています。
(HULFT-HUBを中継する転送についてはこちらのコラムをご参照ください。)

[転送パターン]で「直接転送」を指定している場合は、HULFT間で直接ファイル転送する構成と判断するため、HULFTに設定する必要がある配信管理情報と集信管理情報のパラメータのみ出力します。

[転送パターン]で「直接転送」以外を指定している場合は、HULFT-HUB を中継してファイル転送する構成と判断するため、HULFT-HUB に設定する必要がある転送情報のパラメータを出力します。
(今回は、HULFT-HUB Server Lグレードを利用していたため、[転送パターン]は「直接転送」で固定だったので、HULFT-HUBの転送情報のパラメータは作成していなかったのですが、実は「直接転送」以外の
構成にも対応できるようにデータ加工情報を設定していました!)


マッピング情報設定も4つあります。管理情報の種類ごとに出力するパラメータは異なるため、詳細な設定に差異はありますが、基本的には以下のように設定を行っています。

1.出力項目を追加(パラメータファイルテンプレートから項目数確認)
2.固定で指定できるパラメータは固定文字列を設定して出力する
3.入力ファイルの申請書の内容をそのままパラメータに指定する場合、関係線を引いて出力する
4.入力ファイルの申請書の内容によって異なるパラメータを指定する場合、条件を定義して出力する値を振り分ける

「1.」&「2.」
DM13.png
出力項目の追加、固定文字列の指定は、「前処理」で説明した方法で行います。

■補足
マッピング情報の設定画面では、入力ファイル、出力ファイルに設定したレイアウトに沿って項目名が表示されます。今回は出力ファイルのCSV形式のレイアウト情報の設定を省略しているため、出力項目名は番号で表示されています。番号の表示のみとなると、可読性が下がり設定ミスなどを誘発する可能性があるため、項目数が多い場合はレイアウト情報を作成しておくといいです。


「3.」
DM14.png

配信管理情報や集信管理情報の4番目の項目には[ファイルID]を指定します。入力側の項目[ファイルID]から出力側の項目に関係線を引くことで、入力項目のデータをそのまま出力します。
[ファイルID]や[配信ホスト名]などのパラメータは申請書で任意に指定できる運用にしているため、申請書の値をそのまま出力する設定としています。

「4.」
DM15.png

配信管理情報の11番目の項目には[転送タイプ]を指定します。[転送タイプ]には申請書の内容からパラメータを出力しています。

ただし、申請書の内容をそのまま反映するのではなく、入力データの内容から出力する値を振り分けています。
申請書では[転送タイプ]の列はプルダウンで「TEXT」もしくは「Binary」を選択できるようにしているのですが、HULFT-HUBのパラメータファイルでは「TEXT」転送なら「T」、
「Binary」転送なら「B」を指定する必要があります。

フォーム上から選択する値を内部で変換してシステム側に連携することは多々あるかと思いますが、今回のテーマではDataMagicでその変換を実現しています。
今回は上記のように、仮想テーブル機能を利用してクエリを発行して外部データを参照して、入力データとマッチングすることで出力する値を振り分けています。

■補足
仮想テーブルとは、レコードを仮想テーブルファイルとしてDataMagic に取り込み、データ作成したテーブルです。仮想テーブルとしてデータを格納することで、SQL の機能を活用した柔軟で効率が良いデータの取得が可能になります。
※仮想テーブルの作成には SQLite3 を使用しています。

DM16.png

仮想テーブルはデータ加工情報の設定画面右枠の部分から設定が可能です。

DM17.png

仮想テーブルとして読み取るデータの設定です。
今回のテーマでは入力ファイルとは異なる Excel ファイルでパラメータの変換元と変換先の値を管理していて、仮想テーブルとして読み取ってデータ加工で使用しています。



■補足
今回のテーマのように入力データの内容から出力する値を振り分ける場合、仮想テーブル以外では IF関数を利用する方法もあります。
[転送タイプ]の振り分けを例にすると以下のように記述することで、仮想テーブルの場合と同じ結果を得ることが可能です。

IF{$INAME(転送タイプ)=="TEXT","T",$INAME(転送タイプ)=="Binary","B",""}

IF関数を設定することで、仮想テーブルの読み込み設定やクエリの設定を省略できます。
ただし、仮想テーブルの場合は一度設定を行うと、読み込むデータにレコードを追加するだけでデータ加工情報の設定を修正することなく、データの振り分けルールを追加できます。
このため、今回のテーマでは、今後使用するHULFTのパラメータを拡張することを考慮して、仮想テーブル機能を採用しています。

それぞれの機能にメリットがあるため、実際の運用や、扱うデータの形式などにあわせて、使用する機能を選択してください。


設定の説明は以上です。
これで指定フォルダにExcelの申請書を配置し、データ加工を実行するとHULFT-HUBで使用可能なパラメータファイルを作成することが出来ます。

サンプルファイル

サンプルスクリプトを使用する手順は、以下のとおりです。

  1. サンプルスクリプトの保存
    以下のリンクより、サンプルスクリプトファイルをローカルディスクにダウンロードします。
  2. DataMagicにログイン
    DataMagic 管理画面を起動し、任意の接続先にログインします。
  3. サンプルスクリプトのインポート
    DataMagic 管理画面のスタートページから[ツール]-[管理情報インポート]を選択し、上記で保存したサンプルスクリプトをインポートします。
  4. マスターファイルの準備
    マスターファイルを「C:\WORK\03_活用事例\Master」に配置します。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

コメント