コンテンツにスキップ

スケジュール統合とファイル処理(Stage File)

スケジュール統合は、統合パターンのひとつ「Schedule」です(パターンの違いは OIC の概要 を参照)。外部からの呼出しを待たず、OIC が自分で起動して、ファイルや API からデータを取りに行きます。

やりたいこと 向くパターン 理由
毎晩 SFTP のファイルを取り込む スケジュール 時刻で起動し、ファイルを読み書きできる
外部システムからリアルタイムに受信する アプリケーション REST などのトリガーが要求を受ける
1 つの通知を複数の統合で受ける イベント 発行側と購読側を分離できる

スケジュール統合とファイル処理には、次の部品が登場します。

部品 役割
FTP アダプタ(File Server を含む) SFTP/FTP とのファイル受け渡し。Download File でファイルを OIC のステージ領域へ取り込む
Stage File アクション ステージ領域にあるファイルの読取・書込・zip・unzip・一覧・暗号化・復号
マッパー レコード単位の項目変換(マッパー・ルックアップ・JavaScript ライブラリ)
ERP Cloud アダプタ FBDI の一括インポート(Import Bulk Data into Oracle ERP Cloud)
File アダプタ オンプレミスのローカル・ファイル。接続エージェント経由のみ

典型的なバッチの流れは次のとおりです。

起動(スケジュール)
→ ファイル取得(FTP: Download File)
→ 読取(Stage File: Read Entire File/Read File in Segments)
→ 変換(For-Each + マップ)
→ 書込(Stage File: Write File)→ zip(Zip File)
→ 取込依頼(ERP Cloud アダプタ)→ 結果通知(コールバック統合)
  1. ナビゲーション・ペインの Design > Integrations(プロジェクト内ならプロジェクトの Integrations)で Create を選び、パターン Schedule を選びます
  2. キャンバスでアクションを並べます(呼出し・マップ・Scope などはオーケストレーションと同じです。オーケストレーション統合とアクション)
  3. 保存して有効化します。Activate → Activate And Schedule で、有効化と同時にスケジュールを定義できます
  4. 統合の Actions メニューの Add Schedule(定義済みなら Schedule)からスケジュールを作成・変更します。スケジュールは統合の設計前でも有効化後でも作れます
  5. Schedule and future runs ページで Start Schedule を実行すると、以降の実行予定(Future Instances:Type・State・Scheduled Time)が表示されます

スケジュール統合は一覧に カレンダーのアイコン が付きます。OIC の REST API からも起動でき、呼出し専用の技術ユーザーには ServiceInvoker ロールを使えます(ロールは OIC の概要)。

種類 指定方法 制限
簡易(Simple) Only Once(既定)、Hours and Minutes、Days、Weeks、Months 最短 10 分。それより短いと検証エラー
iCal(自然言語) 英語の文章で書いて Validate。生成された式を確認して使う AI 機能が使える環境が前提
iCal(直接入力) iCal 式を書いて Validate 最短 1 分。1 つの式に指定できる繰返しは 5 つまで

iCal 式の決まりごとは次のとおりです(2026 年 9 月時点の公式ドキュメント)。

  • 複数のスケジュールは & で連結 します
  • BYMINUTE=0 を付けないと、起動する「分」は開始日時や実際の起動時刻に左右されます。毎時 0 分に動かしたいときは必ず付けます
  • ルックアップは iCal 式に使えません(Assign の式では使えます)
  • 開始(From)は「スケジュール開始時」か日時指定、終了(Until)は「なし」か期限指定です
  • タイム・ゾーンの既定値は、利用者の Preferences に従います。日本時間で動かすなら、リストから明示的に選びます
  • 開始時刻の「秒」は無視されます
iCal 式の例(公式の例を基にした例。Validate で確認する)
毎日 22:00 FREQ=DAILY;BYHOUR=22;BYMINUTE=0;
隔週の金曜 23:00 FREQ=WEEKLY;INTERVAL=2;BYDAY=FR;BYHOUR=23;
毎月 1・10・15 日の 5:15・10:15 FREQ=MONTHLY;BYMONTHDAY=1,10,15;BYHOUR=5,10;BYMINUTE=15;
毎日 8:00 と、毎月 1・2 日の 12:00 FREQ=DAILY;BYHOUR=8;&FREQ=MONTHLY;BYMONTHDAY=1,2;BYHOUR=12;

スケジュール・パラメータは、スケジュール統合に持たせる 名前付きの値 です。対象 BU、処理対象日、前回の処理位置などを、統合を修正せずに変えられます。

項目 内容
定義する場所 キャンバスの Schedule の Actions > Edit > Configure schedule parameters(名前・説明・既定値)
型と数 スカラー型のみ、5 個まで、値は 256 文字まで
参照のしかた Assign アクションの Variable 欄へドラッグして使う
値の優先順位 New value → Current value → Default value の順に使われる
値の更新 Schedule メニューの Update schedule parameters で New value を入れる。統合の Assign で更新した値は、次回の実行の Current value になる
ビジネス識別子 スケジュール・パラメータをビジネス識別子にできる
  • 今すぐ実行:Schedule ページの Actions > Run で Configure and run ページが開きます。実行モードは次の 2 つです
    • Ad hoc request:スケジュールと独立に 1 回実行します。パラメータを一時的に上書きして試すときに使います
    • As part of schedule:スケジュールの流れの中で実行し、パラメータも共有します
  • ServiceAdministrator は Run as(実行ユーザー)を指定できます
  • 履歴の確認:Observability > Instances で確認します。実行予定のインスタンスは Queued(Duration 欄に実行予定時刻)、実行中の非同期インスタンスは In progress と表示されます。待機中・一時停止中のスケジュール統合のインスタンスは Abort(中止)できます(障害処理・テスト・監視・移送)
  • 一時停止・再開:OIC の REST API に、スケジュールの Pause/Resume があります。画面の操作は公式の「Start and Pause an Integration Schedule」で確認してください
  • 起動時刻をずらす:10 本の夜間バッチを同じ時刻に起動すると、同時実行で詰まります。5 分ずつずらします
  • 間隔は処理時間より長く:公式ドキュメントでは、前回の実行が終わらないうちに次の時刻が来たときの挙動を確認できませんでした。処理時間(最大 6 時間で打ち切り)より十分長い間隔にするか、処理中フラグをスケジュール・パラメータに持たせて自分で排他します
  • 専用ユーザーで開始する:スケジュールを作成・開始したユーザーがロックまたは削除されると、スケジュールは実行されません。個人のアカウントではなく、専用の技術ユーザーで運用します
  • 有効なスケジュールは無効化できない:先に スケジュールを停止 してから無効化します
  • 移送後に再確認する:スケジュールだけを単独でエクスポートすることはできません。移送後にスケジュールが定義・開始されているかを必ず確認します
  • 結果は自分で通知する:呼出し元がないため、成否の通知(Notification アクションなど)を統合の中に作ります
  • 課金:起動自体はメッセージに数えません。50KB を超えるファイルと応答だけが対象です(OIC の概要)

Stage File は、OIC が管理するステージ領域のファイルを処理するアクションです。接続・資格情報・セキュリティ・ポリシーは不要です。ただし、処理するファイルはすでにステージされている必要があります。ファイルがステージに入る経路は次のとおりです。

  • FTP アダプタの Download File(ファイル参照が返る)
  • REST/SOAP の呼出しで返る添付(MTOM などを含む)
  • マルチパートを受け付ける REST トリガーで受け取ったファイル

操作の対象は、画面の Configure File Reference で選びます。Yes なら上流から渡されたファイル参照を処理し、No ならファイル名とディレクトリで指定します。

操作 内容 押さえどころ
Read Entire File ファイル全体を一度に読む 10MB 未満。末尾行(トレーラ)の削除、復号、検証の指定ができる
Read File in Segments 大きなファイルを論理的なチャンクに分けて読む スコープができ、中に For-Each と子の Stage File アクションを置く
Write File レコードをファイルに書く 追記、暗号化、署名ができる。見出し行は自動では書かれない
Zip File ディレクトリを zip にまとめる zip 形式のみ。対象のディレクトリと、出力先のディレクトリを指定する
Unzip File zip を展開する ファイル参照または zip のファイル名と、展開先ディレクトリを指定
Encrypt File PGP 公開鍵で暗号化する 1GB まで。署名も付けられる
Decrypt File PGP 秘密鍵で復号する 1GB まで。署名の検証もできる
List File ディレクトリ内をパターンで一覧する 再帰(サブディレクトリ)も指定できる
  • 暗号化・署名には、Certificates ページに PGP 鍵を先に登録 しておきます
  • Get file attributes value on mapper を選ぶと、ファイルの size と checksum を取得できます。処理が重いため既定では無効です。受信ファイルの完全性チェックが必要なときだけ使います

スキーマ(ファイルの構造)の定義

Section titled “スキーマ(ファイルの構造)の定義”

Read/Write では、ファイルの構造を定義するか を選びます。定義すると、レコードの項目をマッパーで対応付けられます。

選択 使う場面
Sample delimited document(CSV) CSV。サンプル・ファイルから列を読み取る
XML schema(XSD) XSD がある XML。zip にまとめた入れ子のスキーマや、繰返しのバッチ要素も指定できる
Sample XML document サンプル XML から構造を作る
Sample JSON document JSON。Read Entire File と Write File のみ
定義しない(No) GIF・PNG など中身を解釈しないファイル(opaque)

CSV のウィザードで設定する項目は次のとおりです。

項目 内容
Record Name/Recordset Name 1 行を表す要素名と、全体を表すルート要素名
Field Delimiter 空白・カンマ・セミコロン・タブ・パイプから選ぶ
Character Set サンプルを読むときの文字コード
Optionally Enclosed By 引用符で囲まれた値の中の区切り文字を無視する
Use First Row as Column Headers 既定で有効。1 行目を列名にする
Mark All As Optional 既定ではすべて必須。少なくとも 1 列は必須のまま残す

公式ドキュメントに書かれている制限事項です(2026 年 9 月時点)。

  • 圧縮は zip のみ です。.gz は展開できません
  • スキーマ名に # などの特殊文字を使うと、有効化に失敗 します
  • 形式やレコード構造の異なる Stage File 操作は、ターゲット名前空間またはルート要素名を一意 にします
  • Read File in Segments に、opaque や JSON のスキーマは使えません(実行時に NXSD has infinite loop のエラーになります)
  • Write File は見出し行を持ちません。必要なら自分で書きます。XML や JSON への追記は、不正なファイルになります
  • ループの中で同じファイルへ追記を繰り返す構成には、データが失われる場合があるという注意が書かれています。使う前に最新の制限事項を確認し、件数を変えて欠落がないことを試験します
  • Encrypt/Decrypt は、入力と出力のパスを分けます(同じだと読取りと書込みが衝突します)
  • Write File で作ったローカル・ファイルは、その統合のスコープの中でだけ参照でき、スコープを出ると削除されます。長期の保管場所としては使えません
  • 接続エージェント経由のファイル には制限があります。List File は見えず、Read Entire File・Read File in Segments・Unzip File は ファイル参照でのみ 受け付け、Zip File は対応しません
  • 1 セグメントは 200〜2000 レコード(範囲は公式ドキュメントの値。OIC 3 の推奨は 2000。既定値は画面で確認)です
  • Sequential Processing を選ぶと、セグメントを順番に読みます。順序に意味がある処理(時系列の更新、前行との比較)で選びます
  • ループの外で宣言した変数をループの中で更新すると、並列度(DOP)が 1 になります。大量処理では、ループ内で更新する変数を最小限にします
  • セグメントの内側の Stage File アクションは、さらにチャンクに分けることができません
  • Write File で作ったローカル・ファイルは 作成したスコープを出ると削除される とされています。セグメントのスコープの中で作ったファイルを、スコープの外の zip や取込で使う設計は避けます(採用する前に試験して確かめます)

FBDI 生成フロー(CSV 作成 → zip → 取込 → コールバック)

Section titled “FBDI 生成フロー(CSV 作成 → zip → 取込 → コールバック)”

FBDI の仕組み(テンプレート・UCM・2 つのジョブ)は FBDI の仕組みと手順 を参照してください。OIC ではテンプレートの代わりに、統合が CSV と zip を作ります。ERP Cloud アダプタの接続とロールは 接続とアダプタ を前提にします。

手順 処理 使うもの 要点
1 起動 Schedule スケジュール・パラメータで BU やソース名を渡す
2 取込元ファイルを取得 FTP アダプタ Download File ファイル参照としてステージに入る
3 読取 Stage File の Read CSV のスキーマで読む。大きいときはセグメント
4 変換 For-Each とマップ、ルックアップ FBDI の列順・必須項目・コード値に合わせる
5 書込 Stage File の Write File 見出し行なし。各行の最後は END
6 zip Stage File の Zip File zip 内のファイル名はテンプレートのまま
7 取込依頼 ERP Cloud アダプタ Import Bulk Data into Oracle ERP Cloud ジョブとパラメータを指定し、Enable Callback を選ぶ
8 結果の受信 コールバック統合 Download Options でログ・出力を取得し、通知・記録する

設計のポイントは次のとおりです。

  • 列順がすべてです。FBDI の CSV は見出し行がなく、列の位置で項目が決まります。テンプレートから生成した CSV をサンプルにして Stage File のスキーマを作り、マッパーの送信先をその列順に合わせます。列は削除・並べ替えをしません。使わない列は空にします
  • zip には CSV だけを入れます。Zip File は ディレクトリ全体 をまとめます。Write File の出力先は、この取込で使うファイルだけの専用ディレクトリにします
  • ファイル名:zip 名には日付と連番を入れます(例:ApInvoices_20261015_01.zip)。zip の中の CSV 名は変えません(例:ApInvoicesInterface.csv、ApInvoiceLinesInterface.csv)
  • Import Set(取込のまとまり)は要求ごとに一意にします。再処理の範囲を絞れ、AP では処理も速くなります
  • コールバックの成功だけで安心しない:インポートのジョブが正常終了でも、一部の行がリジェクトされることがあります。コールバック統合の Download Options を Always にして、ログと出力の内容(リジェクト件数)まで確認し、通知します
  • 重複取込を防ぐ:成功した入力ファイルは「処理済み」のフォルダーへ移します。同じファイルを再処理すると、同じ請求書が二重に入ろうとします
  • 失敗したらどこまで進んだかを確認する:ロードの失敗はファイルの形、インポートの失敗は業務の検証が原因です。確認する場所は Fusion のスケジュール済プロセス(Load Interface File for Import、インポート・プロセス)です

OIC を使わずに ERP Integration Service を直接呼ぶ方法は ERP Integration Service(erpintegrations)による自動化 で説明しています。実際に作る手順は OIC 演習1 を参照してください。

大容量のファイルは「全体をメモリに載せない」「参照のまま渡す」「分割して処理する」が原則です。

観点 目安・制限(2026 年 9 月時点)
Read Entire File 10MB 未満
Read File in Segments 1 セグメント 200〜2000 レコード
Encrypt/Decrypt 1GB まで
FTP アダプタ(スキーマなしの読取り・ダウンロード) 1GB まで
REST トリガー 構造化ペイロード 100MB、添付・バイナリ 1GB まで
マッピング(XSLT)の実行 120 秒まで
添付・ファイルの Base64 変換(encodeReferenceToBase64 など) 10MB まで
スケジュール統合の処理時間 6 時間で打ち切り
  • ファイル参照を使う:Download File で得た参照を Stage File にそのまま渡し、中身をペイロードに展開しません。Base64 に変換するのは小さなファイルだけです
  • 大きいファイルは Read File in Segments で読みます。10MB を超えるのに Read Entire File を使うと失敗します
  • 1 回の取込を小さくする:1 つの FBDI ファイルに入れる件数・サイズは、取込の種類ごとの上限に従います(FBDI ガイドで確認)。大量なら 複数の zip に分け、Import Set を変えて複数回 取り込みます
  • マッピングを重くしない:1 回のマッピングで巨大なデータを変換すると、XSLT の実行時間(120 秒)を超えます。セグメント単位に変換します
  • 課金への影響:50KB を超えるファイルは、50KB 単位でメッセージに数えられます。ファイル連携の量もメッセージ・パックの見積りに入れます
  • 性能は実データで測る:件数・サイズ・列数を変えて、処理時間が 6 時間に収まるかをリハーサルで確かめます

Stage File の設定は画面で行うため、設計書に残す形で示します。次は、取込元 CSV からの Read と、FBDI 用の Write の設定メモの例です。

Stage File の設定メモ(例)
[S1] Read Entire File(ヘッダー)
Configure File Reference : Yes(FTP Download File の参照)
Schema : Sample delimited document(exp_inv_header_sample.csv)
Use First Row as Column Headers : 有効
Remove Trailer : 最後の 1 行を削除(件数行がある場合)
[S2] Write File(AP 請求書ヘッダー)
File Name : ApInvoicesInterface.csv
Output Directory : fbdi_out(この取込専用)
Schema : FBDI テンプレートから生成した CSV(列順はテンプレートのまま)
Append : 使わない(1 回の Write でファイル全体を作る)
[S3] Zip File
Directory to zip : fbdi_out
Zip File Name : ApInvoices_<日付>_01.zip
Output Directory : fbdi_zip

入力 CSV のサンプルです(架空のデータ)。

exp_inv_header_sample.csv(取込元。見出し行つき)
ExtInvoiceId,InvoiceNumber,SupplierCode,SiteCode,InvoiceDate,Currency,Amount,Memo
100001,SMP-2026-1001,10001,TOKYO,2026-10-15,JPY,110000,サーバー保守・監視 10月分
100002,SMP-2026-1002,10002,SAPPORO,2026-10-15,JPY,55000,消耗品 10月分

FBDI の CSV を、OIC を使わずに確かめるときは、zip の中身と各行の列数を調べます(FBDI の仕組みと手順 の確認用スクリプトと同じ考え方です)。

zip の中のファイル名と行数を確認する
python3 -m zipfile -l ApInvoices_20261015_01.zip
unzip -p ApInvoices_20261015_01.zip ApInvoicesInterface.csv | head -n 3
unzip -p ApInvoices_20261015_01.zip ApInvoicesInterface.csv | wc -l

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

Section titled “落とし穴とベストプラクティス”
  • スケジュールの時刻・タイム・ゾーン・パラメータの値は、統合設計書に書き、環境ごとに確認します
  • 入力ファイルは、取込前に 件数・合計金額・必須項目 を検証し、不一致ならファイルごと止めます(部分取込にしない)
  • ファイル名・Import Set・OIC の実行 ID(フロー ID)を 同じキーでログに残し、Fusion のジョブから OIC の実行を逆引きできるようにします
  • 取込が止まったときの再実行手順(どのフォルダーのファイルを戻すか、Import Set を変えるか)を、運用手順書にします
  • 対応する試験:OIC 模擬テスト(1Z0-1042-26) の「ファイル処理とスケジュール統合」(分野名は暫定。公式の出題範囲は受験前に確認してください)
  • スケジュールの種類:簡易は最短 10 分、iCal は最短 1 分。iCal にルックアップは使えない。複数の式は & で連結する
  • スケジュール・パラメータ:5 個まで・スカラー型・256 文字まで。優先順位は New value → Current value → Default value。Assign で更新した値は次回に残る
  • Run の 2 つのモード(Ad hoc request/As part of schedule)。有効なスケジュールは無効化できない
  • Stage File の 8 つの操作と制限:Read Entire File は 10MB 未満、Segments は 200〜2000 レコード、Encrypt/Decrypt は 1GB まで、圧縮は zip のみ
  • Stage File は接続不要。ただし、先にステージされたファイル(FTP の Download File、添付など)が必要
  • FBDI のフロー:Write File(見出しなし)→ Zip File → Import Bulk Data → コールバック(Enable Callback)。コールバックを受けるのは別の統合

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

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

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

© 2026 Fusion ERP 実装ラボ