Cloud Service
OCI Process Automation
人の承認や長期業務プロセスをローコードで自動化。OCI Process Automation は構造化/動的プロセスと人間タスクを視覚的に設計・実行できるマネージドサービス。AWS の Step Functions に人間タスク機能を足した領域に近い。
- 1.承認・申請など人を含む業務プロセスをローコードで設計・実行する基盤。
- 2.構造化プロセス・動的プロセス・人間タスク・ディシジョン(ルール)を備える。
- 3.AWS の Step Functions に人手の承認ワークフローを足した領域に相当。
解決する課題
受発注の承認、経費精算、入退社手続きのような業務は、人の判断や承認を挟みながら数時間から数日にわたって進みます。こうした「人を含む長期プロセス」をメールや表計算で回すと、滞留や抜け漏れ、進捗の不透明さが避けられません。OCI Process Automation は、これらの業務プロセスをローコードのビジュアル設計で組み立て、実行・追跡できるマネージドサービスです。
- 申請承認や審査など、人の承認ステップを含むフローをシステム化したい
- 進行が数日にわたる長期プロセスの状態を、確実に保持して可視化したい
- 業務ルール(割引率や承認権限など)をコードに埋め込まず、ルールとして外出ししたい
- 申請フォームから後続処理までを、個別のアプリを作り込まずにまとめたい
AWS では、ステップ実行のオーケストレーションを担う Step Functions に、人間の承認・タスク処理の仕組みを足した領域に近く、OCI Process Automation はそれを人間中心のワークフローとして 1 サービスで提供します。
OCI Process Automation は、かつて Oracle Integration(OIC)に内包されていた Process(プロセス自動化)機能の流れをくむ、独立したマネージドサービスです。アプリ間のデータ連携が主目的なら OIC、人を含む業務プロセスの自動化が主目的なら本サービス、と役割で使い分けます。
主要概念と用語
- プロセスアプリケーション(Process Application): プロセス・フォーム・ディシジョン・コネクションなどをまとめた設計・デプロイの単位
- 構造化プロセス(Structured Process): 開始から終了まで手順が定まったフロー。BPMN ベースで分岐・並列・承認を順序立てて表現する
- 動的プロセス(Dynamic Process): 進行順が固定でなく、条件やイベントで活性化するケース管理型のプロセス。審査や調査のように手順が一定でない業務に向く
- 人間タスク(Human Task): 担当者やグループに割り当て、承認・却下・入力を待つステップ。期限やエスカレーションを設定できる
- ディシジョン(Decision / ビジネスルール): 承認権限や割引率などの業務ルールを表形式で外出しする仕組み。標準の DMN に沿ってルールを定義する
- フォーム(Form / Web フォーム): 申請入力や承認画面をローコードで作る UI。プロセスの開始や人間タスクの操作画面として使う
- コネクション(Connection): REST API や他サービスを呼び出すための接続定義。プロセスから外部システムを連携する
- デザイナー(Designer): プロセスやフォームを作る設計時の環境
- ワークスペース(Workspace): デプロイ済みプロセスを実行・操作・追跡する実行時の環境。担当者が割り当てられたタスクを処理する場でもある
仕様・制限・クォータ
- プロセスは REST 呼び出し・フォーム送信・スケジュール・イベントなどを起点に開始でき、外部へは REST で公開できる
- **構造化プロセス(手順固定)と動的プロセス(ケース管理)**の両方をサポートし、人間タスク・ディシジョン・コネクションを部品として組み合わせる
- 実行中のプロセスはインスタンスとして状態が永続化され、長期にわたって滞留しても進行状態を保持する
- 1 つのペイロードサイズ、同時実行数、保持期間、デプロイ可能なアプリ数などにはサービス上の上限があり、大容量データは本文で運ばず参照渡しにする
- キャパシティや上限は提供形態・リージョンによって変わるため、具体的な数値は最新の公式ドキュメントで確認する
- リージョナルなマネージドサービスとして提供され、インスタンスは作成したリージョンに属する
人間タスクは担当者が処理するまで進みません。期限とエスカレーションを設定せずに放置すると、インスタンスが滞留し続けます。期限・リマインド・代理承認を設計に組み込み、滞留を運用で検知できるようにしましょう。
内部の仕組み
OCI Process Automation はマネージドなプロセス実行ランタイムです。開発者はデザイナーでプロセス・フォーム・ディシジョンを視覚的に組み立て、デプロイすると、実行・状態保持・スケーリング・監視はサービス側が引き受けます。
- プロセスはインスタンスとして起動され、各ステップの状態がランタイムに永続化される。人間タスク待ちのように数日止まっても、進行状態は失われない
- 人間タスクに到達すると、割り当てられたユーザーやグループのワークスペースに作業項目が現れ、承認・却下・入力を受けて次へ進む
- ディシジョンは実行時にルール表を評価し、承認ルートや値を返す。ルール変更はコード改修なしにルール側で行える
- コネクションを通じて外部 REST API や他の OCI サービスを呼び出し、自動処理ステップを実行する
- 構造化プロセスは順序立った BPMN フロー、動的プロセスは条件やイベントで段階が活性化するケースとして進行する
プロセスの自動ステップは再試行で重複実行されうるため、外部呼び出しは冪等に設計します。一方、人間タスクの承認・却下は誰がいつ行ったかを追跡できるよう、監査と権限設計を併せて整えておくと安心です。
設計パターン / ベストプラクティス
- 申請承認ワークフロー: フォームで申請を受け、ディシジョンで承認ルートを決め、人間タスクで多段承認する。金額や部門に応じて承認者を動的に切り替える
- ケース管理(動的プロセス): 審査・調査・問い合わせ対応のように手順が一定でない業務は、動的プロセスで状況に応じてアクティビティを活性化する
- ルールの外出し: 承認権限・割引率・SLA などの可変ルールはディシジョンに分離し、プロセス本体を改修せずルールだけ更新する
- 連携は OIC / Functions に委譲: 複雑な SaaS 連携やデータ変換は OIC や Functions に任せ、本サービスは人を含むプロセスの制御に集中させる
- 環境分離と昇格: 開発・検証・本番を分け、コネクションの接続先を環境ごとに切り替えてアプリを昇格(プロモーション)する
- 期限とエスカレーション: 人間タスクには期限・リマインド・代理承認を設定し、滞留を防ぐ
運用・監視
- 各プロセスはインスタンス単位で実行状態を追跡でき、滞留・失敗・処理時間を可視化できる
- 人間タスクの滞留(未処理のまま期限超過)が運用の主要な監視対象。担当者別の未処理件数や平均処理時間を見て、ボトルネックを特定する
- 失敗した自動ステップはエラー要因の特定と再処理で回収する。接続エラー・データエラー・タイムアウトで対応を分ける
- メトリクスやログは OCI Monitoring / Logging と連携して監視し、滞留や失敗のしきい値超過をアラート化する
- プロセス定義の変更・デプロイはバージョン管理と環境昇格で統制し、本番への直接変更を避ける
コスト
OCI Process Automation のコストは主に**インスタンス(割り当てキャパシティ)**に応じて発生します。プロセス本数そのものより、実行されるプロセス量・人間タスク量・呼び出し先の処理がコストに影響する点を意識します。
| コスト要因 | 考え方 | 最適化のヒント |
|---|---|---|
| インスタンスキャパシティ | 割り当てた規模に応じて課金される | 用途に合った規模で開始し過剰割り当てを避ける |
| プロセス実行量 | 起動・進行するインスタンス量が負荷になる | 不要な起動を減らしイベント条件で対象を絞る |
| 呼び出し先サービス | Functions や外部 API など連携先にも課金 | 自動ステップの呼び出し回数と処理時間を軽量に |
| 大容量データ | 本文で大きく運ぶと負荷とコスト増 | Object Storage 等にステージングし参照渡し |
本サービスの強みは人間タスクや長期プロセスの管理です。単なるデータ転送やバッチ連携は OIC や Functions の方が向く場合が多く、人手・承認・長期滞留が絡む業務に絞って使うと費用対効果が高まります。
セキュリティ
- IAM ポリシーとコンパートメントでインスタンスの管理権限を最小化し、設計者・運用者・承認者の役割を分離する
- 人間タスクの割り当てや承認権限は、ユーザー/グループに紐づけて適切に制御する。誰が何を承認できるかを明確にする
- 外部 API 呼び出しの認証情報は Vault(Secrets)で集中管理し、コネクションやプロセス定義に直書きしない
- 外部公開する REST トリガーは、前段の API Gateway で認証・認可・流量制御を行い、サービスを直接インターネットへ晒さない
- 申請フォームやプロセスに個人情報や機密が含まれる場合は、ログ出力や保持範囲に注意し、暗号化と最小権限を徹底する
人間タスクの承認権限を広く付けすぎると、不正な承認の温床になります。承認者は業務に必要な範囲に絞り、操作は監査で追跡可能にしてください。外部連携の認証情報は必ず Vault(Secrets)から参照し、定義への直書きは避けます。
関連サービス・比較
OCI Process Automation は「人を含む業務プロセスの自動化」に特化するため、アプリ間データ連携が主目的の Oracle Integration(OIC) としばしば対比されます。役割で使い分けるのが基本です。
| 観点 | OCI Process Automation | Oracle Integration(OIC) |
|---|---|---|
| 主目的 | 人を含む業務プロセスの自動化 | SaaS/アプリ間のデータ連携と統合 |
| 得意領域 | 承認/申請/ケース管理など人手フロー | アダプターによるシステム間連携 |
| 人間タスク | 中核機能(承認/入力/エスカレーション) | 補助的(連携が主) |
| プロセスの長さ | 数日に及ぶ長期プロセスを永続管理 | 比較的短い連携処理が中心 |
| ルール管理 | ディシジョン(DMN)で外出し | マッピング/ロジック中心 |
| AWS の近い領域 | Step Functions + 人手承認ワークフロー | Step Functions + AppFlow を合わせた領域 |
関連して、複雑な SaaS 連携やデータ変換は OIC、サーバーレスの自動処理は Functions、外部公開と保護には API Gateway、イベント駆動の起点には OCI Events、秘密情報管理には Vault を組み合わせるのが定番です。
ハンズオン / CLI例
プロセスやフォームの中身はコンソールのデザイナーで作成しますが、インスタンスの作成・確認・管理は OCI CLI(oci opa)で自動化できます。
# Process Automation インスタンスを作成
oci opa instance create \
--compartment-id ocid1.compartment.oc1..xxxxx \
--display-name my-process-automation \
--shape-name DEVELOPMENT \
--wait-for-state ACTIVE
# コンパートメント内のインスタンスを一覧
oci opa instance list \
--compartment-id ocid1.compartment.oc1..xxxxx \
--query "data.items[].{name:\"display-name\", state:\"lifecycle-state\", url:\"instance-url\"}" \
--output table
# 単一インスタンスの詳細を取得(エンドポイント URL や状態を確認)
oci opa instance get \
--opa-instance-id ocid1.opainstance.oc1..xxxxx
# インスタンスを削除(不要になった検証環境などを片付ける)
oci opa instance delete \
--opa-instance-id ocid1.opainstance.oc1..xxxxx \
--wait-for-state DELETED
OCI Service
OCI Process Automationを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
アプリ統合
比較で見る軸
クラウド: OCI / カテゴリ: アプリ統合 / 難易度: intermediate
導入後に効く点
構造化プロセス・動的プロセス・人間タスク・ディシジョン(ルール)を備える。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- OCI
- カテゴリ
- アプリ統合
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- operational / reliability / security
判断チェックリスト
- 自社の用途が「アプリ統合 / operational」に近いか確認する。
- 強みである「承認・申請など人を含む業務プロセスをローコードで設計・実行する基盤。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。