オーケストレーション統合とアクション
統合のパターン(アプリケーション/スケジュール/イベント)は OIC の概要 で説明しました。この章では、統合の中身である オーケストレーション(処理の流れ)を扱います。
アプリケーション統合の基本形は次のとおりです。
REST トリガー(外部から請求書データを受信) → マップ(受信データ → ERP の項目に変換) → 呼出し:ERP Cloud アダプタ(請求書を作成) → マップ(ERP の応答 → 呼出し元への応答) → 応答を返す(同期の場合)キャンバスには上から順にアクションを並べます。呼出し(invoke)を追加すると、その直前にマップが自動で追加されます。マップは前段までに得たデータ(トリガーの要求、前の呼出しの応答、変数)を、次の呼出しの要求に変換します。
同期と非同期
Section titled “同期と非同期”| 観点 | 同期(Synchronous) | 非同期(Asynchronous) |
|---|---|---|
| 応答 | 処理結果を呼出し元へ返す | 受付の応答をすぐ返し、処理は後で実行 |
| 処理時間の上限 | 300 秒(超えるとタイムアウト) | 6 時間(超えると打ち切り) |
| エラー時 | 呼出し元にエラーを返す。再送信できない | エラーのインスタンスを 再送信(resubmit)できる |
| 向く処理 | 照会、受付番号の採番、与信チェック | 登録・更新、大量データ、外部の遅いシステム |
非同期のアプリケーション統合では、処理の最後に応答して終える Callback か、応答せずに終える End を使います(Gen2 の資料に出てくる Stop アクションに相当する終了のしかたです)。
主要なアクション
Section titled “主要なアクション”アクションはカテゴリごとにパレットに並んでいます(2026 年 9 月時点の公式ドキュメントの分類)。
| カテゴリ | 主なアクション |
|---|---|
| Actions | Assign、Data Stitch、Logger、Note、Notification、Stage File、Wait、Data Translate、B2B、Healthcare |
| Logic | For-Each、Switch、Parallel、Scope、While |
| Call | Integration(子統合の呼出し)、JavaScript、OCI Function、OCI Object Storage、Publish Event、Process、Decision、Human in the Loop、Robot、File Server |
| Error Handling | Throw New Fault、Re-throw Fault |
| OCI AI Services | Document Understanding、Vision、Language、Speech、Generative AI、Generative AI Agents RAG |
| AI Actions | AI エージェントの開始、エージェントのアクティビティ・ストリームの取得、エージェントへの応答送信、ナレッジベースの検索・取込み |
| その他 | Pick(1 つの統合で複数のリソース・操作を受ける) |
呼出しとマップ
Section titled “呼出しとマップ”- 呼出し(Invoke):接続を使って外部システムを呼びます。ERP Cloud アダプタ、REST、SOAP、FTP、DB などの接続をキャンバスに追加し、エンドポイントの設定ウィザードで操作を選びます
- マップ(Map):呼出しの要求データを作ります。呼出しとは別に、任意の場所で使う アドホック・マップ も作れます。マッピングの詳細は マッパー・ルックアップ・JavaScript ライブラリ で説明します
分岐と繰返し
Section titled “分岐と繰返し”- Switch:条件式(XPath)で分岐します。どの条件にも当てはまらない場合の分岐(Otherwise)も用意します
- For-Each:繰返し要素(例:請求書の明細)を 1 件ずつ処理します。回数の上限はありません。Process items in parallel(並列処理)を選べるのはスケジュール統合だけで、並列の For-Each を含む統合はアプリケーション統合に変換できません
- While:条件を満たす間、処理を繰り返します。上限は 5,000 回 です。ページングしながら API を呼ぶ処理などに使います
- Parallel:複数の処理を同時に実行します。分岐は 最大 5 つ です。分岐ごとに同期要求の同時実行枠を使う点に注意します
変数と値の設定
Section titled “変数と値の設定”- Assign:スカラー変数(文字列・数値など)に値を入れます。カウンターやフラグに使います
- Data Stitch:構造を持つ変数(XML/JSON の要素)に対して、Assign(設定)・Append(追加)・Remove(削除) の操作で値を組み立てます。ループの中で応答を少しずつ組み立てる、ペイロードの一部だけを更新する、といった用途に使います
- グローバル変数:統合全体で使う変数です。1 統合につき 20 個までです
Switch の条件: $InvoiceAmount > 1000000Assign の式: concat($InvoiceNumber, '-', $SupplierNumber)While の条件: $hasMore = 'true' and $pageCount < 100スコープとフォルト
Section titled “スコープとフォルト”- Scope:複数のアクションをまとめる単位です。スコープにはフォルト・ハンドラを付けられ、スコープ内で起きたエラーをそこで処理できます。ハンドラで処理を終えると、スコープの後ろから処理が続きます
- Throw New Fault:業務エラー(例:仕入先が存在しない)を明示的に発生させます。コード・理由・詳細を設定します
- Re-throw Fault:フォルト・ハンドラの中で、受けたフォルトを外側(親スコープやグローバル・フォルトハンドラ)へ投げ直します
フォルト処理の設計は 障害処理・テスト・監視・移送 で詳しく扱います。
記録・通知・待機
Section titled “記録・通知・待機”- Logger:任意のメッセージをアクティビティ・ストリームに記録します。常に記録するか、トレースが有効なときだけ記録するかを選べます。業務キー(請求書番号など)を含めると調査が速くなります
- Notification:メールを送ります。本文は 500KB まで、本文と添付の合計は既定の送信方式で 2MB までです。送信数は 24 時間で 10,000 通までです(既定の方式の場合)
- Wait:指定した時間だけ処理を止めます。外部システムの処理完了を待ってから状況を照会する、といった用途に使います。待機時間も統合の処理時間に含まれるため、6 時間の上限に注意します
- Note:キャンバス上のメモです。処理には影響しません
他の処理の呼出し
Section titled “他の処理の呼出し”- Integration:別の統合(子統合)を呼び出します。共通処理(例:エラー通知、採番)を子統合にまとめると再利用できます。同じインスタンス内の子統合の呼出しはメッセージ課金の対象外です。呼出しの深さは 16 段までです
- JavaScript:登録した JavaScript ライブラリの関数を呼びます(実行は 15 秒まで)
- OCI Function/OCI Object Storage:OCI Functions の関数や Object Storage を、接続を作らずに直接呼び出します
- Publish Event:OIC のイベントを発行します。購読側は イベント統合 として作ります。1 つのイベントを複数の統合が購読できるため、送信側と受信側を疎結合にできます
ステージ・ファイル
Section titled “ステージ・ファイル”Stage File は、統合の中で一時ファイルを読み書きするアクションです(読取り、セグメント単位の読取り、書込み、zip/unzip、ファイル一覧、暗号化・復号)。詳細は スケジュール統合とファイル処理 で扱います。
AI のアクション
Section titled “AI のアクション”- OCI AI Services の6アクションで、帳票からの項目抽出(Document Understanding)、画像解析(Vision)、感情分析・翻訳(Language)、文字起こし・音声合成(Speech)、文章生成・埋め込み・リランク(Generative AI)、社内データに基づく回答(Generative AI Agents RAG)を統合に組み込めます
- AI Actions で、統合から AI エージェントを開始したり、エージェントへ結果を返したりできます
公式のユースケースでは、Document Understanding で経費の金額と種類を抽出し、RAG で社内規程と照合し、Generative AI で承認・却下・人の確認のどれにするかを判断し、承認なら ERP に請求書を作成する、という流れが紹介されています。
ビジネス識別子(トラッキング)
Section titled “ビジネス識別子(トラッキング)”ビジネス識別子(business identifiers)は、実行時にペイロードの項目値でインスタンスを検索できるようにする設定です。
- 1 つの統合に 最大 3 つ 定義でき、そのうち 1 つをプライマリ にします
- トリガーのペイロードの項目(例:請求書番号、仕入先番号)や、スケジュール・パラメータを指定できます
- 監視画面で「請求書番号 = INV-2026-0001 のインスタンス」のように検索できます
プライマリ:InvoiceNumber(請求書番号)2 つ目 :SupplierNumber(仕入先番号)3 つ目 :SourceSystem(送信元システム)設定・実装の手順
Section titled “設定・実装の手順”外部システムから請求書データを受け取り、ERP に登録して結果を返す同期統合を例にします。
- プロジェクトを開き、Design タブで統合を新規作成します。パターンは Application を選びます
- トリガーに REST アダプタの接続を追加します。リソース URI(例:
/invoices)、メソッド(POST)、要求と応答の JSON サンプルを設定します - 呼出しに ERP Cloud アダプタの接続を追加し、Query, Create, Update, or Delete Information → Business (REST) Resource で請求書リソースの作成(create)を選びます
- 自動で追加されたマップで、受信データを ERP の項目に対応付けます
- 応答のマップで、ERP が採番した請求書 ID を呼出し元への応答に入れます
- ERP の呼出しを Scope で囲み、フォルト・ハンドラで「エラー内容を応答に入れて返す」処理を作ります
- ビジネス識別子に請求書番号を設定します
- 保存して有効化(activate)し、テスト画面から JSON を送って動作を確認します
{ "invoiceNumber": "INV-2026-0001", "supplierNumber": "S-10001", "invoiceDate": "2026-10-01", "currency": "JPY", "amount": 110000, "lines": [ { "lineNumber": 1, "amount": 100000, "description": "保守サービス料" }, { "lineNumber": 2, "amount": 10000, "description": "消費税" } ]}{ "status": "SUCCESS", "invoiceNumber": "INV-2026-0001", "fusionInvoiceId": 300100123456789, "message": ""}統合設計書の例
Section titled “統合設計書の例”実案件では、実装前に統合ごとに設計書を作ります。最低限、次の項目を表にします。
| 項目 | 記入例 |
|---|---|
| 統合名・ID | 請求書受付(AP_INVOICE_RECEIVE) |
| パターン | アプリケーション(同期) |
| トリガー | REST、POST /invoices、OAuth Client Credentials |
| 主な処理 | 入力チェック → 仕入先の存在確認 → 請求書作成 → 応答 |
| 呼出し先 | ERP Cloud アダプタ(請求書の REST リソース) |
| ビジネス識別子 | InvoiceNumber(プライマリ)、SupplierNumber |
| エラー処理 | 業務エラーは 400 系で応答、システムエラーは通知して再送信の手順へ |
| 想定件数・サイズ | 1 日 500 件、1 件 10KB 未満 |
落とし穴とベストプラクティス
Section titled “落とし穴とベストプラクティス”- 1 つの統合に処理を詰め込まず、共通処理は子統合にします
- 外部 API の呼出しには、タイムアウトとリトライの方針(何回・何秒間隔・どのエラーで)を決めておきます。プロジェクト内の呼出しには、リトライのロジックを追加する機能もあります(設定項目は公式の「Add Retry Logic to Invoke Connections in Projects」で確認)
- Logger には個人情報やパスワードを出力しません
試験対策ポイント
Section titled “試験対策ポイント”- 対応する試験:OIC 模擬テスト(1Z0-1042-26) の「オーケストレーション統合の作成(Creating Orchestrated Integrations)」と「AI 機能の活用」(分野名は当サイト独自の区分で暫定です。公式の出題範囲は受験前に確認してください)
- アクションの使い分け:Switch/For-Each/While/Parallel/Scope、Assign と Data Stitch の違い
- 並列の For-Each はスケジュール統合のみ
- ビジネス識別子は最大 3 つ、プライマリは 1 つ
- 同期と非同期の違い(処理時間の上限、再送信の可否、Callback と End)
- 制限値:While 5,000 回、Parallel 5 分岐、グローバル変数 20 個、呼出しの深さ 16
公式ドキュメント
Section titled “公式ドキュメント”本サイトは学習目的で個人が作成した非公式の教材であり、Oracle Corporation およびその関連会社とは関係ありません。内容の正確性は保証しません。最新の仕様・試験範囲は必ず公式ドキュメントと Oracle University の情報で確認してください。
模擬テストの問題は公開されている出題範囲(Exam Topics)と公式ドキュメントをもとに独自に作成したもので、実際の試験問題ではありません。
Oracle、Java、MySQL は Oracle Corporation およびその子会社、関連会社の米国およびその他の国における登録商標です。その他の製品名・会社名は各社の商標です。
© 2026 Fusion ERP 実装ラボ