マッパー・ルックアップ・JavaScript ライブラリ
統合の中でデータを変換する手段は次の3つです。
| 手段 | 使う場面 | 制限・注意 |
|---|---|---|
| マッパー(Map アクション) | 項目の対応付け、型変換、日付書式、条件付きの値設定、繰返しの展開 | XSLT の実行は 120 秒まで |
| ルックアップ(Lookup) | コード値の変換表(システムAの値 ↔ Fusion の値) | 列は 100 まで、列の値は 2,048 文字まで |
| JavaScript ライブラリ | 複雑な計算、文字列処理、チェック・ディジット計算など | 実行 15 秒、引数 20 個まで。1 プロジェクト 50 ライブラリまで |
- マッパーは左に 送信元(前段までのデータ:トリガーの要求、呼出しの応答、変数)、右に 送信先(次の呼出しの要求や応答)のツリーを表示します
- 送信元の項目を送信先へドラッグ&ドロップすると対応付けができ、裏で XSLT が生成されます
- 繰返し要素(例:請求書の明細)同士を対応付けると、XSLT の
for-eachが生成され、明細の件数分だけ送信先が作られます - 式は XPath で書きます。文字列連結・部分文字列・日付の書式・数値の変換などの関数を使えます。OIC 独自の関数(lookupValue など)もあります
<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>マッピングのテスト
Section titled “マッピングのテスト”マッパーにはテスト機能があり、サンプルの入力データでマッピングを実行して出力を確認できます。統合を有効化する前に、次のケースを試します。
- 正常データ(全項目あり)
- 任意項目が空・欠落しているデータ
- 明細が 0 件・複数件のデータ
- 境界値(最大桁、マイナス金額、日付の月末)
AI によるマッピング推奨
Section titled “AI によるマッピング推奨”AI アシスタントの マッピング推奨(Generate Mapping Recommendations)を使うと、送信元と送信先の項目の対応案が提示されます。案を受け入れるか、別の候補を選びます。2026 年 9 月時点の公式ドキュメントでは、この機能の提供リージョンは限られています(OIC の概要 の AI 機能を参照)。推奨を受け入れた場合も、業務ルール(必須項目、コード変換)は人が確認します。
よく使う変換パターン
Section titled “よく使う変換パターン”| やりたいこと | 方法 |
|---|---|
| 項目の連結・分割 | 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 関数
Section titled “lookupValue 関数”マッパーの関数一覧から lookupValue を選ぶと、ウィザードで次の値を指定します。
- 使うルックアップ
- 送信元の列(例:SYSTEM_A)
- 送信先の列(例:FUSION)
- 変換前の値(送信元の項目をドラッグ)
- 該当がないときの既定値
既定値には、業務上ありえない値(例:#NOT_FOUND)を入れ、後続の Switch でエラーにする設計がよく使われます。空文字を既定値にすると、変換漏れに気付けません。
- プロジェクトの Design タブでルックアップを追加し、名前と説明を入力します
- 列(ドメイン)を作ります(例:SYSTEM_A、FUSION)
- 行に値を入力します。件数が多い場合は CSV で準備してインポートします。インポート用 CSV の形式は、作成済みのルックアップをエクスポートして確認すると確実です
- マッピングで lookupValue 関数を使います
JavaScript ライブラリ
Section titled “JavaScript ライブラリ”仕組みと制限
Section titled “仕組みと制限”- JavaScript のファイル(
.js)をライブラリとして登録し、関数ごとに引数と戻り値の型(文字列・数値・論理値など)を設定します - 統合からは JavaScript アクション で関数を呼び出します
- 関数の実行は 15 秒、引数は 20 個 までです。1 プロジェクトに 50 ライブラリまで登録できます
- ライブラリの関数がどの統合で使われているかを確認できます。関数を変える前に影響範囲を確認します
- プロジェクトの中で、ライブラリを個別に複製(クローン)することはできません
// 仕入先コードを指定桁数までゼロ埋めする(例: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)で行います
- 端数処理(切捨て・四捨五入)は業務ルールなので、設計書に明記します
登録と利用の手順
Section titled “登録と利用の手順”- プロジェクトの Design タブでライブラリを追加し、
.jsファイルをアップロードします - 関数ごとに、引数と戻り値の型を設定して保存します
- 統合の中に JavaScript アクションを追加し、関数を選んで引数に値(変数や項目)を対応付けます
- 戻り値を後続のマップや Switch で使います
マッピング設計書の例
Section titled “マッピング設計書の例”マッピング設計書は、送信先の項目を行にして作ると漏れを防げます。
| 送信先項目(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 でのメンテナンス手順を運用設計に入れます
- 共通の変換(日付・コード)は子統合やライブラリにまとめ、統合ごとに書かないようにします
試験対策ポイント
Section titled “試験対策ポイント”- 対応する試験:OIC 模擬テスト(1Z0-1042-26) の「オーケストレーション統合の作成」のうち、ルックアップの管理、データマッパーの利用、カスタム JavaScript ライブラリの適用(分野名は当サイト独自の区分で暫定です。公式の出題範囲は受験前に確認してください)
- マッピングの実体は XSLT、繰返し要素は for-each になる
- ルックアップ:列(ドメイン)間の値変換、lookupValue の引数(ルックアップ・送信元列・送信先列・値・既定値)、CSV のインポート・エクスポート、プロジェクト内でのみ参照可能
- JavaScript ライブラリ:関数の型の設定、JavaScript アクションからの呼出し、15 秒・20 引数の制限
- マッピングのテスト機能と AI のマッピング推奨
公式ドキュメント
Section titled “公式ドキュメント”本サイトは学習目的で個人が作成した非公式の教材であり、Oracle Corporation およびその関連会社とは関係ありません。内容の正確性は保証しません。最新の仕様・試験範囲は必ず公式ドキュメントと Oracle University の情報で確認してください。
模擬テストの問題は公開されている出題範囲(Exam Topics)と公式ドキュメントをもとに独自に作成したもので、実際の試験問題ではありません。
Oracle、Java、MySQL は Oracle Corporation およびその子会社、関連会社の米国およびその他の国における登録商標です。その他の製品名・会社名は各社の商標です。
© 2026 Fusion ERP 実装ラボ