コンテンツにスキップ

マッパー・ルックアップ・JavaScript ライブラリ

統合の中でデータを変換する手段は次の3つです。

手段 使う場面 制限・注意
マッパー(Map アクション) 項目の対応付け、型変換、日付書式、条件付きの値設定、繰返しの展開 XSLT の実行は 120 秒まで
ルックアップ(Lookup) コード値の変換表(システムAの値 ↔ Fusion の値) 列は 100 まで、列の値は 2,048 文字まで
JavaScript ライブラリ 複雑な計算、文字列処理、チェック・ディジット計算など 実行 15 秒、引数 20 個まで。1 プロジェクト 50 ライブラリまで
  • マッパーは左に 送信元(前段までのデータ:トリガーの要求、呼出しの応答、変数)、右に 送信先(次の呼出しの要求や応答)のツリーを表示します
  • 送信元の項目を送信先へドラッグ&ドロップすると対応付けができ、裏で XSLT が生成されます
  • 繰返し要素(例:請求書の明細)同士を対応付けると、XSLT の for-each が生成され、明細の件数分だけ送信先が作られます
  • 式は XPath で書きます。文字列連結・部分文字列・日付の書式・数値の変換などの関数を使えます。OIC 独自の関数(lookupValue など)もあります
生成される XSLT のイメージ(例:明細の繰返しと条件付きの値)
<xsl:for-each select="$request/ns0:lines">
<ns1:invoiceLines>
<ns1:LineNumber>
<xsl:value-of select="ns0:lineNumber"/>
</ns1:LineNumber>
<ns1:LineAmount>
<xsl:value-of select="ns0:amount"/>
</ns1:LineAmount>
<xsl:if test="ns0:description != ''">
<ns1:Description>
<xsl:value-of select="ns0:description"/>
</ns1:Description>
</xsl:if>
</ns1:invoiceLines>
</xsl:for-each>

マッパーにはテスト機能があり、サンプルの入力データでマッピングを実行して出力を確認できます。統合を有効化する前に、次のケースを試します。

  1. 正常データ(全項目あり)
  2. 任意項目が空・欠落しているデータ
  3. 明細が 0 件・複数件のデータ
  4. 境界値(最大桁、マイナス金額、日付の月末)

AI アシスタントの マッピング推奨(Generate Mapping Recommendations)を使うと、送信元と送信先の項目の対応案が提示されます。案を受け入れるか、別の候補を選びます。2026 年 9 月時点の公式ドキュメントでは、この機能の提供リージョンは限られています(OIC の概要 の AI 機能を参照)。推奨を受け入れた場合も、業務ルール(必須項目、コード変換)は人が確認します。

やりたいこと 方法
項目の連結・分割 concat()・substring() などの文字列関数
日付の書式変換(2026/10/01 → 2026-10-01) 文字列関数や日付関数で変換。タイムゾーンの扱いを明記する
値がないときの既定値 条件式(if や choose)で既定値を設定
コード値の変換 ルックアップ(lookupValue 関数)
添付・ファイルの Base64 変換 OIC の関数(encodeReferenceToBase64 など。10MB まで)
複雑な計算 JavaScript ライブラリ

ルックアップ(コード値変換)

Section titled “ルックアップ(コード値変換)”

ルックアップは、システム(ドメイン)ごとの列を持つ変換表です。マッピングの中で lookupValue 関数を使うと、「ある列の値」から「別の列の値」を引けます。

SYSTEM_A(送信元) FUSION(送信先) 意味
01 STANDARD 通常請求書
02 CREDIT 貸方票(クレジットメモ)
03 PREPAYMENT 前払金
  • 1 つのルックアップの列(ドメイン)は 最大 100、行数は無制限です。ドメイン名は 50 文字まで、列の値は 2,048 文字までです
  • ルックアップは CSV でインポート・エクスポートできます(インポートは 100MB まで)
  • プロジェクトで作ったルックアップは、そのプロジェクトの中でだけ 参照できます
  • 値の追加・変更はルックアップを更新するだけで済み、統合の修正は不要です(変換ロジックを XSLT に直書きしないのはこのためです)

マッパーの関数一覧から lookupValue を選ぶと、ウィザードで次の値を指定します。

  1. 使うルックアップ
  2. 送信元の列(例:SYSTEM_A)
  3. 送信先の列(例:FUSION)
  4. 変換前の値(送信元の項目をドラッグ)
  5. 該当がないときの既定値

既定値には、業務上ありえない値(例:#NOT_FOUND)を入れ、後続の Switch でエラーにする設計がよく使われます。空文字を既定値にすると、変換漏れに気付けません。

  1. プロジェクトの Design タブでルックアップを追加し、名前と説明を入力します
  2. 列(ドメイン)を作ります(例:SYSTEM_A、FUSION)
  3. 行に値を入力します。件数が多い場合は CSV で準備してインポートします。インポート用 CSV の形式は、作成済みのルックアップをエクスポートして確認すると確実です
  4. マッピングで lookupValue 関数を使います
  • JavaScript のファイル(.js)をライブラリとして登録し、関数ごとに引数と戻り値の型(文字列・数値・論理値など)を設定します
  • 統合からは JavaScript アクション で関数を呼び出します
  • 関数の実行は 15 秒、引数は 20 個 までです。1 プロジェクトに 50 ライブラリまで登録できます
  • ライブラリの関数がどの統合で使われているかを確認できます。関数を変える前に影響範囲を確認します
  • プロジェクトの中で、ライブラリを個別に複製(クローン)することはできません
supplier-utils.js(例:仕入先コードのゼロ埋めと税込金額の計算)
// 仕入先コードを指定桁数までゼロ埋めする(例:12345 → 00012345)
function padSupplierCode(code, length) {
var s = String(code);
while (s.length < length) {
s = '0' + s;
}
return s;
}
// 税抜金額と税率(%)から税込金額を計算し、円未満を切り捨てる
function calcAmountWithTax(amount, ratePercent) {
var total = Number(amount) * (1 + Number(ratePercent) / 100);
return Math.floor(total);
}
  • 関数は入力から出力を計算するだけの「純粋な関数」にします。外部システムの呼出しは統合の呼出し(invoke)で行います
  • 端数処理(切捨て・四捨五入)は業務ルールなので、設計書に明記します
  1. プロジェクトの Design タブでライブラリを追加し、.js ファイルをアップロードします
  2. 関数ごとに、引数と戻り値の型を設定して保存します
  3. 統合の中に JavaScript アクションを追加し、関数を選んで引数に値(変数や項目)を対応付けます
  4. 戻り値を後続のマップや Switch で使います

マッピング設計書は、送信先の項目を行にして作ると漏れを防げます。

送信先項目(ERP) 送信元項目(外部) 変換ルール 必須
InvoiceNumber invoiceNumber そのまま ○
InvoiceType invoiceType ルックアップ AP_INVOICE_TYPE(SYSTEM_A → FUSION)。該当なしはエラー ○
SupplierNumber supplierCode JavaScript の padSupplierCode で 8 桁ゼロ埋め ○
InvoiceDate invoiceDate YYYY/MM/DD → YYYY-MM-DD ○
InvoiceAmount amount 数値に変換。カンマを除去 ○
Description memo 240 文字を超える場合は切り詰め -
BusinessUnit (固定値) 定数 JP01 営業単位(例) ○

設計書には次の情報も添えます。

  • 送信元・送信先のインタフェース定義(JSON サンプルや REST リソース名)
  • 繰返しの単位(ヘッダーと明細の関係)
  • エラーにする条件(必須項目の欠落、ルックアップの変換失敗)
  • テスト・ケース(前述のマッピングのテストの4ケース)

落とし穴とベストプラクティス

Section titled “落とし穴とベストプラクティス”
  • マッピングは「送信先から考える」。必須項目と ERP の検証ルールを先に確認します
  • ルックアップの値は業務部門が管理できるよう、CSV でのメンテナンス手順を運用設計に入れます
  • 共通の変換(日付・コード)は子統合やライブラリにまとめ、統合ごとに書かないようにします
  • 対応する試験:OIC 模擬テスト(1Z0-1042-26) の「オーケストレーション統合の作成」のうち、ルックアップの管理、データマッパーの利用、カスタム JavaScript ライブラリの適用(分野名は当サイト独自の区分で暫定です。公式の出題範囲は受験前に確認してください)
  • マッピングの実体は XSLT、繰返し要素は for-each になる
  • ルックアップ:列(ドメイン)間の値変換、lookupValue の引数(ルックアップ・送信元列・送信先列・値・既定値)、CSV のインポート・エクスポート、プロジェクト内でのみ参照可能
  • JavaScript ライブラリ:関数の型の設定、JavaScript アクションからの呼出し、15 秒・20 引数の制限
  • マッピングのテスト機能と AI のマッピング推奨

本サイトは学習目的で個人が作成した非公式の教材であり、Oracle Corporation およびその関連会社とは関係ありません。内容の正確性は保証しません。最新の仕様・試験範囲は必ず公式ドキュメントと Oracle University の情報で確認してください。

模擬テストの問題は公開されている出題範囲(Exam Topics)と公式ドキュメントをもとに独自に作成したもので、実際の試験問題ではありません。

Oracle、Java、MySQL は Oracle Corporation およびその子会社、関連会社の米国およびその他の国における登録商標です。その他の製品名・会社名は各社の商標です。

© 2026 Fusion ERP 実装ラボ