8.7. マップされたデータ項目へのカスタム変換の追加
ターゲットシステムの要件を満たしていなければ、ソースデータアイテムのフォーマットを変更する必要がある場合もあります。
たとえば、すべての顧客 ID を括弧で囲むというターゲットシステムの要件を満たすには、以下を実行します。
Mappings パネルで
customerNum
マッピングを選択し、詳細ペインに反映させます。詳細ペインで、
ABCOrder
ソースボックスの をクリックして、ドロップダウンメニューを開きます。Add custom transformation を選択して、Add Custom Transformation ページを開きます。
Class フィールドの横にある をクリックして、Create a New Java Class ウィザードを開きます。
以下のフィールドを変更します。
-
Package:
example
を入力します。 -
Name:
MyCustomMapper
を入力します。 Method Name:
map
をbrackets
に変更します。その他のフィールドはすべてそのままにします。
-
Package:
Finish をクリックします。
Add Custom Transformation ページが開き、Class および Method フィールドが自動的に入力されます。
OK をクリックして Java エディターで
MyCustomMapper.java
ファイルを開きます。brackets
メソッドを編集して、最後の行return null;
を以下のように変更します。return "[" + input + "]";
transformation.xml タブをクリックし、変換エディターに戻ります。
詳細ペインは、
brackets
メソッドがcustomerNum
のデータ項目に関連付けられていることを示しています。この
brackets
メソッドは、ターゲットシステムに送信される前にソース入力で実行されます。TransformationTest.java
ファイルで JUnit テストを実行します。詳細は、「変換テストファイルの作成と JUnit テストの実行」 を参照してください。Console ビューには、JSON 形式の出力データが表示されます。
{"custId":"[ACME-123]","priority":"GOLD","orderId":"ORDER1","origin":"Web", "approvalCode":"AUTO_OK","lineItems":[{"itemId":"PICKLE","amount":1000,"cost":2.25}, {"itemId":"BANANA","amount":400,"cost":1.25}]}