9. AIReadETL (v5.3.0~)

ETLとは、Extract、Transform、Load の頭文字を取ったもので、複数のソースシステムからデータを「抽出」し、抽出したデータを「変換」、変換されたデータを「書き出し・格納」して活用しやすくします。

AIReadETLは、AIRead独自CSVをinputとし、要望のCSVに変換する機能です。

9.1. ETLフォルダの構成

ETLフォルダは以下の構成にする必要があります。

ETLProject/                                    ---------(ETLフォルダ)
└ [プロジェクトID]/
├ header.txt                                    ---------  出力ヘッダリストファイル
├ InputHeader.txt                            ---------  入力ヘッダリストファイル
├ job.json                                       ---------  ジョブファイル
└ setting.ini                                    ---------  設定ファイル

9.2. データ加工処理(ETL)を作成

FormEditorのETLタブからETLを作成・編集できます。

9.2.1. 新規プロジェクトを作成する

新規プロジェクトを選択し、任意のプロジェクト名を入力します。

9.2.2. ロジック画面

ETLの入力値、出力値、コマンドを設定します。

No.項目説明
1入力:ヘッダーヘッダーの入力値
AIReadで読み取ったヘッダー項目から活用したい項目を追加する
2入力:明細明細の入力値
AIReadで読み取った明細項目から活用したい項目を追加する
3入力:変数変数に値をセットできる
4出力:ヘッダーヘッダーの出力値
ヘッダー項目の変換・加工後の出力値を設定
5出力:明細明細の出力値
明細項目の変換・加工後の出力値を設定
6ロジック変換処理の設定
入力、出力、コマンドを選択し入力値→出力値を要望の形にするための設定
詳細は9.2.3. ロジックの追加

9.2.3. ロジックの追加

白背景部分を右クリックし新規作成を選択します。

ロジックのプルダウンを選択するとコマンドが表示されます。

コマンド各種

・master

内容項目名必須説明
ロジックcommandmaster別のCSVファイルからリストを取得
※使用できるCSVの仕様
 ・区切り文字:,(カンマ)
 ・クオート:ダブルクォーテーションあり・なしに対応
 ・改行コード:LF、CRLF、CR
 ・文字コード:UTF-8
 ・項目内のダブルクォーテーション:ダブルクォーテーションで囲まれた項目内のダブルクォーテーションは、2つ重ねる("")ことでエスケープされます。
  例)"テーブル(""木製"")" → テーブル("木製")
マスタ名valueName文字列リストの名称を指定
マスタファイルfilePathファイルパスCSVのファイルパス

・value

内容項目名必須説明
ロジックcommandvalue値をセットするコマンド
入力
項目名
value文字列fromを指定
しない場合〇
input CSVの項目名を指定するとその項目の値をセットする
(fromが指定されている場合は不要)
出力
項目名
id文字列値をセットする項目名
マスタ名from文字列マスタから取得する場合に使用、
masterで指定したvalueを指定(<>で囲む)
キーの列番号keyColumn数値fromを指定
する場合〇
masterで検索キーとする項目の列番号を指定
キー文字列keyName
(fromを指定しない場合)
itemName,
value
パラメータで指定されたinputCSVの項目の値をセットする
キー文字列keyName
(fromを指定する場合)
文字列fromを指定
する場合〇
検索キーとする文字列
値の列番号valueColumn数値fromを指定
する場合〇
masterでセットする項目の列番号を指定
フィルタwhere詳細は条件:where対象とする項目をフィルタリングする

・order

内容項目名必須説明
ロジックcommandorder明細に出力する基準とする項目を作成する
入力
項目名
value正規表現対象とする項目を指定
キー文字列keyNameitemName,
value
対象とする文字列を項目名か値かで指定
(現在、項目名のみ対応)
フィルタwhere詳細は条件:where対象とする項目をフィルタリングする

・fixed

内容項目名必須説明
ロジックcommandfixed固定値をセット
出力項目名id文字列セットする項目名
value文字セットする値

・join

内容項目名必須説明
ロジックcommandjoin項目の値を結合する
出力項目名id文字列セットする項目名
value正規表現結合する値を指定
キー文字列keyNameitemName,
value
regexの対象とする文字列を項目名か値かで指定
文字の一部を取得(正規表現)regex正規表現結合する値をキャプチャする
フィルタwhere詳細は条件:where結合の対象とする項目をフィルタリングする

・date

内容項目名必須説明
ロジックcommanddate日付を取得してセットするコマンド
出力項目名id文字列セットする項目名
出力フォーマットvalue(例) yyyy/MM/dd出力フォーマット、自由に指定可能
<対応しているフォーマットパターン>
 yy yyyy:西暦年
 M MM:月
 D DDD:年に対する日
 d dd:月に対する日
 w:年に対する週
 W:月に対する週
 E:曜日(英語、省略形)
 F:月に対する曜日の回数
 a:AM/PM
 h hh:時(12時間制)
 H HH:時(24時間制)
 m mm:分
 s ss:秒
 S SSS:ミリ秒

・calc

内容項目名必須説明
ロジックcommandcalc計算した結果をセットするコマンド
出力項目名id文字列セットする項目名
演算子operatoraddadd:valueにセットした値を加算する
value数値この値で計算

・replace

内容項目名必須説明
ロジックcommandreplace項目の値を変換する
出力項目名id文字列処理対象のアウトプット項目名
変換リスト名filePath文字列変換ルールを記載したtsvのファイルパス
条件ifstate詳細は条件:ifstate条件がすべてtrueの場合に処理をする
条件

・where

インプットCSVデータのうち、where条件がtrueのデータのみを対象とするフィルタリング処理
whereの処理内容は3つの配列要素で定義でき、配列要素をつなげることで複数処理を実行可能

operator説明配列要素①配列要素②配列要素③
eqequal to(==)"eq"左オペランド(数値、文字列ともに可)右オペランド(数値、文字列ともに可)
nenot equal to(!=)"ne"左オペランド(数値、文字列ともに可)右オペランド(数値、文字列ともに可)
leless than or equal to(<=)"le"左オペランド(数値のみ可)右オペランド(数値のみ可)
gegreater than or equal to(>=)"ge"左オペランド(数値のみ可)右オペランド(数値のみ可)
match正規表現にマッチしている場合はtrue"match"正規表現対象文字列

・ifstate

ジョブコマンド実行対象のヘッダ/明細項目のうち、ifstate条件がtrueの項目のみを実行対象とするフィルタリング処理
ifstateの処理内容は3つの配列要素で定義でき、配列要素をつなげることで複数処理を実行可能

operator説明配列要素①配列要素②配列要素③
eqequal to(==)"eq"左オペランド(数値、文字列ともに可)右オペランド(数値、文字列ともに可)
nenot equal to(!=)"ne"左オペランド(数値、文字列ともに可)右オペランド(数値、文字列ともに可)
leless than or equal to(<=)"le"左オペランド(数値のみ可)右オペランド(数値のみ可)
gegreater than or equal to(>=)"ge"左オペランド(数値のみ可)右オペランド(数値のみ可)
match正規表現にマッチしている場合はtrue"match"正規表現対象文字列

9.2.3. 設定画面

設定タブで出力時の設定をします。

内容項目名説明
出力形式OUTPUT_MODE・1つの明細を1行で出力
・ヘッダとすべての明細を1行で出力
明細件数DETAIL_ROW_NUMBER出力する明細の件数を指定
出力CSV文字コードOUTPUT_CHARACTER_CODE・UTF-8
・SJIS

ETL設定後はかならず左下の保存ボタンを押して、設定を保存してください。

9.3. AIReadETLの実行

AIReadETLを実行する際は、まずControlPanelで以下の設定をします。
(個別で設定したい場合は個別設定画面で設定をしてください。)

・出力フォーマット:「AIReadETL」を選択
・ETLプロジェクト名:実行したいプロジェクト名を選択

設定後は必ず保存ボタンを押して、設定を保存してください。

設定後、以下のどれかの実行方法で実行します。
実行するタイミングや、作業の目的に合わせていずれかの方法を選択してください

9.3.1. 実行方法(arexファイルを利用する場合)

AIReadを実行して読取から変換までを行い、アウトプットが変換後のCSVになります。
実行方法は以下をご参照ください。

2.2. 実行方法(arexファイルを利用する場合)

9.3.2. 実行方法(batファイルを利用する場合)

AIReadまたはViewerで出力したAIRead独自形式のCSVを入力として、変換したCSVを作成します。

コマンドを使用し、実行結果を出力します。
以下のコマンドを実行してください。

・run_ETL.bat

> run_ETL.bat
"%AIREAD_JAVA%/java" -Dfile.encoding=UTF-8 -jar "%AIREAD_HOME%/lib/AIReadETL-1.5-SNAPSHOT.jar" -input <ファイル/フォルダパス> -output <フォルダパス> -setting <設定ファイルパス>
・起動コマンド
引数必須説明
-i(-input)inputとするCSVファイル/フォルダ
<前提条件>
・形式:CSV(AIRead独自形式)
・文字コード:UTF-8
-o(-output)outputのcsvを出力するフォルダ
-s(-setting)ETLプロジェクトの設定ファイルパス

9.4. ユースケース

ケース1

・明細の行数分だけ行を出力、ヘッダ項目はすべて同じものを出力
・請求日付は処理日時を出力

・出力CSVイメージ

"合計金額","請求日時","商品名","数量","単価"
"\1,573,456","20251216","応接テーブル","2","\59,800"
"\1,573,456","20251216","事務机","14","\14,800"
"\1,573,456","20251216","椅子","14","\36,800"
"\1,573,456","20251216","キャビネツト","10","\59,800"
"\1,573,456","20251216","電子レンジ","2","\19,800"
"\1,573,456","20251216","冷蔵庫","2","\89,000"