Mapperロジック
Mapperロジックとは、四則演算や文字置換などさまざまな値の変換や加工を行うことができる機能です。
Mapperロジックを使用する場合は、ツールパレットのロジックアイコンをマッピングキャンバスにドラッグ&ドロップします。
たとえば、入力データに数値「1.05」を加算し、出力するという処理の場合、以下のように設定します。

Mapperロジックの入力ハンドラへリンクをつなぐ方法は、入力ハンドラの種類によって変わります。
Mapperロジックの出力は、ほかのロジックや出力スキーマの要素にリンクをつなぎます。
入力ハンドラへのリンク
-
Mapperロジックに入力ハンドラが存在しない場合
マッピングリンクをつなぐことはできません。
-
入力ハンドラが1つの場合
入力スキーマの要素、またはほかのMapperロジックをつなぐことができます。
-
入力スキーマの要素
-
ほかのMapperロジック
-
-
入力ハンドラが2つの場合
入力元スキーマの要素とほかのMapperロジックを組み合わせてつなぐことが可能です。
-
入力スキーマの要素同士
-
入力スキーマの要素とほかのMapperロジック
-
各Mapperロジックの機能や入力ハンドラの情報については、各Mapperロジックのヘルプを参照してください。
Mapperロジックの各プロパティ項目の設定は、プロパティ設定ダイアログまたはプロパティインスペクタから行います。
マッピングキャンバスに配置されたMapperロジックは、アイコンをドラッグ&ドロップすることで、いつでも移動できます。
Mapperロジックがマッピングされている場合は、マッピングリンクも一緒に移動します。
マッピングキャンバスに配置したMapperロジックは、右クリックメニューから以下の処理を行うことができます。
デザイナーの「メニュー」からも同様の処理を行うことができます。
項目の説明
項目名 |
説明 |
備考 |
---|---|---|
切り取り |
ロジックアイコンの切り取りを行います。 |
|
コピー |
ロジックアイコンのコピーを行います。 |
|
削除 |
ロジックアイコンの削除を行います。 |
|
配置 |
ロジックアイコンの並び替えを行います。
|
|
プロパティ |
ロジックのプロパティ設定ダイアログを開きます。 |
アイコン単一選択時のみ実行できます。 |
貼り付け |
切り取りした、またはコピーしたロジックアイコンの貼り付けを行います。 |
|
全選択 |
マッピングキャンバスに配置されているMapperロジックをすべて選択します。 |
|
ロジックアイコンを選択し[F1]キーを押すと、選択したロジックのヘルプが表示されます。
Mapperロジックには「繰り返し」「変換」の二種類があります。
種類はアイコンの左上のチップで判別できます。
ロジックの種類 |
チップ画像 |
パレットのタブ名 |
---|---|---|
繰り返しロジック |
![]() |
繰り返し |
変換ロジック |
![]() |
分岐 条件 数値 文字列 日付 Excel |
通常、繰り返しロジックで分割したそれぞれのデータを変換ロジックで加工し、順に出力します。
変換ロジックの入出力ハンドラにはそれぞれ型が定められています。
入力ハンドラの型は、入力時に変換されるデータの型を意味し、出力データの型は、変換・加工の結果データの型を意味します。
通常、入力データの型と、ロジックの入力ハンドラの型が異なる場合、入力ハンドラの型へのキャスト(変換)が動的に行われます。
型のキャストを行うことができない(変換できない)場合には、実行時エラーが発生します。
実行時エラーの発生によるスクリプトの停止を防ぐには、あらかじめデータ自体のチェックを行うか、スクリプト上のMapperコンポーネントを例外監視処理で囲んでください。
変換ロジックの型
ロジックパレットは型により分類されており、型はアイコンの右下のチップで判別できます。
ロジックの型 |
内部データ型 |
チップ画像 |
パレットのタブ名 |
---|---|---|---|
真偽値型 |
boolean |
![]() |
条件 |
数値型 |
BigDecimal |
![]() |
数値 |
文字列型 |
String |
![]() |
文字列 |
日付型 |
Date |
![]() |
日付 |
数値型ロジックの内部データ型
Mapperで扱う数値型は、小数点も含むデータを正確に表現できるBigDecimal型で処理を行っています。
文字列型で数値演算が行われる場合、BigDecimal型に変換され処理を行います。
数値の小数点以下を切り捨てたい場合には、文字列のロジック「数値フォーマッティング」を使用してください。
ロジックの型またはスクリプト変数のデータ型を、文字列型にマッピングした場合のフォーマットは以下のとおりです。
型 |
文字列型でのフォーマット |
---|---|
日付型 |
「yyyy-MM-dd'T'HH:mm:ss.SSSZZ」 |
バイナリ型 |
BASE64エンコード |
数値型/整数型/10進数型 |
実数形式 |
真偽値型 |
「true」または「false」 |
日付型のフォーマットについては、日時フォーマッティングの「フォーマット」を参照してください。
データベースコネクターなどのデータに、値が存在しないことを表すnullが入っていることがあります。
変換ロジックに入力されたnullは、以下の様に処理されます。
-
nullオプションを指定可能なロジック:指定されたオプションに基づいて入力されたnullを処理します。
-
nullオプションを指定不可能なロジック:nullを出力し、後続の処理を継続します。
nullを表現できない出力先コネクターにnullを出力した場合、nullはコネクター内で適切な表現に変換されます。
また、入力スキーマがテーブルモデル型で出力スキーマがXML型の場合、出力データにマッピングされた入力データのnull値は、途中のMapperロジックでも空文字として扱います。
nullオプションを指定可能なロジックの一覧は、「nullオプション」を参照してください。
-
異なるMapperエディターへのロジックアイコンの[貼り付け]は行うことはできません。
-
Mapperロジックの入力フィールドでは、以下の文字は使用できません。([コメント]フィールドを除く)
-
「<」「&」
注意Mapperロジックの入力フィールドに上記文字を使用した場合、実行時にエラーが発生します。
その場合は、Mapperエディターを開き、スクリプトの保存を行ってください。
注意正規表現パターンが入力可能なフィールド(「正規表現置換」、「正規表現にマッチ」ロジックなど)では、Unicode表記により記述することができます。
-
「<」→「\u003C」
-
「&」→「\u0026」
-
-
四則演算ロジックでデフォルト動作時に使用される精度(小数点以下の有効桁数)は以下のとおりです。
-
足し算・引き算・余りロジックの場合、入力ハンドラのうち最も高い精度を使用します。
例:189000+1.05=189001.05
-
掛け算ロジックの場合、入力ハンドラの精度の合計値を使用します。
例:189000.05×1.05=198450.0525
-
割り算ロジックの場合、1番目の入力ハンドラの精度を使用します。
例:189000.5÷0.05=3780010.0
-
-
日付の変換を行う以下のロジックでは、存在しない日時が入力された場合、または演算の結果得られた場合に、存在する日時への補正を自動的に行います(例:2005/04/31 → 2005/05/01)