コンテンツにスキップ

オーケストレーション統合とアクション

統合のパターン(アプリケーション/スケジュール/イベント)は OIC の概要 で説明しました。この章では、統合の中身である オーケストレーション(処理の流れ)を扱います。

アプリケーション統合の基本形は次のとおりです。

REST トリガー(外部から請求書データを受信)
→ マップ(受信データ → ERP の項目に変換)
→ 呼出し:ERP Cloud アダプタ(請求書を作成)
→ マップ(ERP の応答 → 呼出し元への応答)
→ 応答を返す(同期の場合)

キャンバスには上から順にアクションを並べます。呼出し(invoke)を追加すると、その直前にマップが自動で追加されます。マップは前段までに得たデータ(トリガーの要求、前の呼出しの応答、変数)を、次の呼出しの要求に変換します。

観点 同期(Synchronous) 非同期(Asynchronous)
応答 処理結果を呼出し元へ返す 受付の応答をすぐ返し、処理は後で実行
処理時間の上限 300 秒(超えるとタイムアウト) 6 時間(超えると打ち切り)
エラー時 呼出し元にエラーを返す。再送信できない エラーのインスタンスを 再送信(resubmit)できる
向く処理 照会、受付番号の採番、与信チェック 登録・更新、大量データ、外部の遅いシステム

非同期のアプリケーション統合では、処理の最後に応答して終える Callback か、応答せずに終える End を使います(Gen2 の資料に出てくる Stop アクションに相当する終了のしかたです)。

アクションはカテゴリごとにパレットに並んでいます(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 つの統合で複数のリソース・操作を受ける)
  • 呼出し(Invoke):接続を使って外部システムを呼びます。ERP Cloud アダプタ、REST、SOAP、FTP、DB などの接続をキャンバスに追加し、エンドポイントの設定ウィザードで操作を選びます
  • マップ(Map):呼出しの要求データを作ります。呼出しとは別に、任意の場所で使う アドホック・マップ も作れます。マッピングの詳細は マッパー・ルックアップ・JavaScript ライブラリ で説明します
  • Switch:条件式(XPath)で分岐します。どの条件にも当てはまらない場合の分岐(Otherwise)も用意します
  • For-Each:繰返し要素(例:請求書の明細)を 1 件ずつ処理します。回数の上限はありません。Process items in parallel(並列処理)を選べるのはスケジュール統合だけで、並列の For-Each を含む統合はアプリケーション統合に変換できません
  • While:条件を満たす間、処理を繰り返します。上限は 5,000 回 です。ページングしながら API を呼ぶ処理などに使います
  • Parallel:複数の処理を同時に実行します。分岐は 最大 5 つ です。分岐ごとに同期要求の同時実行枠を使う点に注意します
  • Assign:スカラー変数(文字列・数値など)に値を入れます。カウンターやフラグに使います
  • Data Stitch:構造を持つ変数(XML/JSON の要素)に対して、Assign(設定)・Append(追加)・Remove(削除) の操作で値を組み立てます。ループの中で応答を少しずつ組み立てる、ペイロードの一部だけを更新する、といった用途に使います
  • グローバル変数:統合全体で使う変数です。1 統合につき 20 個までです
Switch の条件式・Assign の式の例(XPath)
Switch の条件: $InvoiceAmount > 1000000
Assign の式: concat($InvoiceNumber, '-', $SupplierNumber)
While の条件: $hasMore = 'true' and $pageCount < 100
  • Scope:複数のアクションをまとめる単位です。スコープにはフォルト・ハンドラを付けられ、スコープ内で起きたエラーをそこで処理できます。ハンドラで処理を終えると、スコープの後ろから処理が続きます
  • Throw New Fault:業務エラー(例:仕入先が存在しない)を明示的に発生させます。コード・理由・詳細を設定します
  • Re-throw Fault:フォルト・ハンドラの中で、受けたフォルトを外側(親スコープやグローバル・フォルトハンドラ)へ投げ直します

フォルト処理の設計は 障害処理・テスト・監視・移送 で詳しく扱います。

  • Logger:任意のメッセージをアクティビティ・ストリームに記録します。常に記録するか、トレースが有効なときだけ記録するかを選べます。業務キー(請求書番号など)を含めると調査が速くなります
  • Notification:メールを送ります。本文は 500KB まで、本文と添付の合計は既定の送信方式で 2MB までです。送信数は 24 時間で 10,000 通までです(既定の方式の場合)
  • Wait:指定した時間だけ処理を止めます。外部システムの処理完了を待ってから状況を照会する、といった用途に使います。待機時間も統合の処理時間に含まれるため、6 時間の上限に注意します
  • Note:キャンバス上のメモです。処理には影響しません
  • Integration:別の統合(子統合)を呼び出します。共通処理(例:エラー通知、採番)を子統合にまとめると再利用できます。同じインスタンス内の子統合の呼出しはメッセージ課金の対象外です。呼出しの深さは 16 段までです
  • JavaScript:登録した JavaScript ライブラリの関数を呼びます(実行は 15 秒まで)
  • OCI Function/OCI Object Storage:OCI Functions の関数や Object Storage を、接続を作らずに直接呼び出します
  • Publish Event:OIC のイベントを発行します。購読側は イベント統合 として作ります。1 つのイベントを複数の統合が購読できるため、送信側と受信側を疎結合にできます

Stage File は、統合の中で一時ファイルを読み書きするアクションです(読取り、セグメント単位の読取り、書込み、zip/unzip、ファイル一覧、暗号化・復号)。詳細は スケジュール統合とファイル処理 で扱います。

  • 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(送信元システム)

外部システムから請求書データを受け取り、ERP に登録して結果を返す同期統合を例にします。

  1. プロジェクトを開き、Design タブで統合を新規作成します。パターンは Application を選びます
  2. トリガーに REST アダプタの接続を追加します。リソース URI(例:/invoices)、メソッド(POST)、要求と応答の JSON サンプルを設定します
  3. 呼出しに ERP Cloud アダプタの接続を追加し、Query, Create, Update, or Delete Information → Business (REST) Resource で請求書リソースの作成(create)を選びます
  4. 自動で追加されたマップで、受信データを ERP の項目に対応付けます
  5. 応答のマップで、ERP が採番した請求書 ID を呼出し元への応答に入れます
  6. ERP の呼出しを Scope で囲み、フォルト・ハンドラで「エラー内容を応答に入れて返す」処理を作ります
  7. ビジネス識別子に請求書番号を設定します
  8. 保存して有効化(activate)し、テスト画面から JSON を送って動作を確認します
REST トリガーの要求サンプル(例)
{
"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": ""
}

実案件では、実装前に統合ごとに設計書を作ります。最低限、次の項目を表にします。

項目 記入例
統合名・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 には個人情報やパスワードを出力しません
  • 対応する試験: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

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

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

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

© 2026 Fusion ERP 実装ラボ