基本機能(ドキュメントMapper/変数Mapper)
本ページでは、ドキュメントMapperおよび変数Mapperを合わせて「Mapper」と表記します。
マージMapperについては、「基本機能(マージMapper)」を参照してください。
プロパティや仕様制限・注意事項については「ドキュメントMapper/変数Mapper」を参照してください。
Mapperとは
Mapperとは、入力元のコンポーネントから読み取ったデータを変換・加工して後続のコンポーネントへの書き込み、または変数への代入を行うコンバータです。
Mapperはデザイナ内で使用することができます。Mapperの作成方法は以下の通りです。
- ドキュメントMapper・変数Mapper共通
- ツールパレットからコンポーネントアイコンを配置する
スクリプトキャンバスにツールパレットの「変換」-「基本」-「マッピング」をドラッグ&ドロップすると、キャンバスにアイコンが配置されます。
変数Mapperの場合はツールパレットの「基本」-「処理」-「変数代入」をドラッグ&ドロップします。
- ドキュメントMapperのみ
- 「マッピングの追加」ダイアログ
出力スキーマを持つコンポーネントと入力スキーマを持つコンポーネントをデータフローでつないだ際に、「マッピングの追加」ダイアログが表示されます。
このダイアログからも、Mapperを配置することができます。(コンポーネント間にMapperが配置されます。)
入出力のスキーマを自動生成できるコンポーネントは、Mapperが配置された時点でマッピング定義も自動で設定します。
詳細については、「スキーマ編集」を参照してください。
「マッピングの追加」ダイアログの表示の有無はデザイナのメニュー[ツール]-[オプション]から設定することができます。
詳細については、「ツールメニュー」を参照してください。
- 右クリックメニュー[マッピングの追加]
データフロー上の右クリックメニュー[マッピングの追加]を選択すると、Mapperが配置されます。
データの変換や加工などのマッピング定義は、専用のGUIツールで行います。
詳細については、「Mapperエディタ」を参照してください。
データフローが削除された場合、ドキュメントMapperの入出力スキーマおよび、マージMapperの出力スキーマでは、それまで設定されていたスキーマが残って表示されます。これを「仮スキーマ」と呼びます。
仮スキーマとなった場合、コンポーネントアイコン名の部分が「仮スキーマ」と表示され、通常のスキーマと区別されます。
コンポーネントとデータフローをつなげると、仮スキーマから通常のスキーマに戻ります。
仮スキーマになることにより、データフローを削除してもマッピングリンクが残る、コンポーネントにつないでいなくてもスキーマの編集ができるなどのメリットがあります。
一方、仮スキーマ表示ができないMapper(変数Mapperの入力スキーマ、マージMapperの入力スキーマ)では、データフローを削除するとスキーマがリセットされ、マッピングリンクが削除されます。
また、データフローを設定する前にスキーマを編集したい場合などは、手動で仮スキーマを設定することができます。
入力元の「入力データ」、または出力先の「出力データ」の右クリックメニュー[仮スキーマの設定]を選択してください。
入力元と出力先の要素(繰り返しポイント)を繰り返しロジックでつなげることによって、その配下の要素を繰り返し処理できます。
繰り返し処理の作成方法
-
繰り返しロジックをマッピングキャンバスにドラッグ&ドロップします。
-
入力元と出力先の繰り返しポイントを繰り返しロジックにドラッグしてマッピングします。
繰り返しポイントについては、次項「繰り返しポイントについて」を参照してください。
繰り返しポイントとして設定可能な要素はスキーマのデータモデルによって異なります。
- テーブルモデル型
- XML型
- ルート要素以外の要素に繰り返しポイントが設定できます。
マッピングリンクの実線と破線の違いについて
マッピングリンクには実線と破線があり、それぞれ意味が異なります。
- 実線は、データのマッピングを表します。通常のMapperロジックで使用されます。
- 破線は、繰り返しを表します。繰り返しロジックや、マージロジックで使用されます。
コンポーネント変数
コンポーネント変数とは、各コンポーネントで取得できる変数です。アダプタの結果を用いて、後続の処理を切り替えたい時に使用します。
取得できる値はコンポーネントによって異なります。詳細については、各アダプタのヘルプを参照してください。
ドキュメントMapper、変数Mapperでは、「コンポーネント変数の取得」「スクリプト変数への格納」「変換・加工」などを行うことができます。
「変換・加工」はMapperロジックを使用することで可能になります。
スクリプト変数
スクリプト変数とは、スクリプト実行時に一時的に値を保持する変数です。アダプタの結果データなどを一時的に格納し、後続の処理で使いたい時に使用します。
ドキュメントMapper、変数Mapperで、「データリソースとのやり取り」「変換・加工」などを行うことができます。
「変換・加工」はMapperロジックを使用することで可能になります。
スクリプト変数をMapperロジックのプロパティ項目(文字列型)で使用したい場合には、「${<変数名>}」と指定します。「$」をエスケープして出力したい場合には「$$」と指定してください。
XML型のスクリプト変数はマッピングで使用できないため表示されません。
処理データログ出力機能とは、Mapperロジックなどで処理を行ったデータの情報がログに出力する機能です。
このログはMapperの内部処理の順に出力されるため、Mapperでどのようにデータの変換・加工が行われているかを詳細に把握することができます。
この機能により、実データの動きを確認しながら変換・加工処理を作成することができ、効率的な開発が可能になります。
ログを出力する対象、およびログレベルは以下の通りです。
対象 |
ログレベル |
Mapperロジックの入力データ・出力データ |
DEBUG |
出力スキーマに出力されたデータ |
DEBUG |
スクリプト変数に代入されたデータ |
INFO |
出力内容の詳細は、以下の通りです。
Mapperロジックの入力データ・出力データ
Mapperロジックの入力データ・出力データは、ログレベルDEBUGで出力します。
フォーマットは入力ハンドラの数によって異なります。
入力ハンドラを持たないMapperロジック
フォーマット
[<Mapperロジック名>] 出力=[<出力データ>]
出力例
[単一行文字列定数] 出力=[outputData]
入力ハンドラを1つ持つMapperロジック
フォーマット
[<Mapperロジック名>] 入力=[<入力データ>] | 出力=[<出力データ>]
出力例
[左文字列] 入力=[SampleData] | 出力=[Sample]
入力ハンドラを複数持つMapperロジック
フォーマット
[<Mapperロジック名>] 入力=[<入力データ1>][<入力データ2>]... | 出力=[<出力データ>]
出力例
[連結] 入力=[Sample][Data] | 出力=[SampleData]
出力スキーマに出力されたデータ
出力スキーマに出力されたデータは、ログレベルDEBUGで出力します。
フォーマットは出力データのデータモデルがテーブルモデル型の場合とXML型の場合によって異なります。
テーブルモデル型
フォーマット
column[<行番号>,<列番号>] 入力=[<入力データ>]
出力例
column[2,1] 入力=[SampleData]
行番号・列番号は1から始まる数値です。
XML型
フォーマット
<出力スキーマのパス> 入力=[<入力データ>]
出力スキーマの属性は、「@<属性名>」と出力します。
出力スキーマの名前空間の接頭辞は、要素名・属性名の前に「<接頭辞>:」と出力します。
出力例
/root/row/col 入力=[SampleData]
/root/row/col/@attr 入力=[SampleData]
/root/row/pre:col 入力=[SampleData]
スクリプト変数に代入されたデータ
スクリプト変数に代入されたデータは、ログレベルINFOで出力します。
フォーマット
<スクリプト変数名>(<スクリプト変数の型名>) 入力=[<入力データ>]
出力例
var(String) 入力=[SampleData]
注意事項
仕様制限
- Mapperロジックの入力ハンドラの型が「ノード集合」の場合、入力データのログは出力されません。
- 入力ハンドラを1つまたは複数持つMapperロジックで、入力値がnullだった場合、入力データが出力されない場合があります。
- 以下のMapperロジックは、入出力データをログに出力しません。
- 繰り返し
- 単純な繰り返し
- キーによるソート
- 二つのキーによるソート
- 条件による抽出
- グループ化
- Excel
- その他
-
以下のMapperロジックは、入力データをログに出力しません。
- 分岐
- 条件判定による出力の切り替え
- スイッチ判定による出力の切り替え
- 条件
- And演算
- Or演算
- Not演算
- 真偽値に変換
- nullチェック
- 数値
- 文字列
- セルの値の取得
- XPathによる値の取得
- 文字列に変換