Invoking PCS process as soon as storing files or folders to DoCS (1)

このエントリは、2016年2月現在のもので、2016年11月現在のDoCS、PCSでは構成方法が異なります。あくまでも参考情報としてご覧ください。

Invoking PCS process as soon as storing files or folders to DoCS (as of November 30, 2016)

DoCS(Oracle Documents Cloud Service)にファイルやフォルダが到着した時点でPCS(Oracle Process Cloud Service)のプロセスを起動しよう、というユースケースを考えます。PCSはDoCSと連携し、PCSの添付ファイル格納先としてDoCSを利用することが可能ですが、今回は着信をトリガーにプロセスを起動させてみます。

DoCS_PCS_01この機能はファイルについてはデフォルトで実装されており、ファイルの着信をトリガーにして、PCSのプロセスを呼び出すことができます(内部ではPCSのREST APIをDoCSから呼んでいます)。設定は、管理者権限を持つユーザでログインした後、ユーザー名をクリックすると、メニューが現れますので、[管理]>[システム全体の設定]とたどり、[Process Cloud Service統合]の項で、REST APIのURLと接続ユーザ、パスワードを指定します。このとき、APIのバージョン番号は3.0を指定します(2.0はOracle BPMのREST APIのバージョン番号、1.0はDeprecatedなので、2.0、1.0とも使えません)。DoCS_PCS_02

さらに、DoCSのフォルダに対し、起動対象のPCSのプロセスを指定します。[ドキュメント受信時にプロセスを開始]を[はい]にした上で、プロセス定義IDを指定します。このプロセス定義IDは、

ドメイン名~アプリケーション名!バージョン番号~プロセス名

の形式で表現します。DoCS_PCS_03左図の場合、ドメイン名がdefault、アプリケーション名がRestCall、バージョン番号が1.0、プロセス名がRestCalleeProcessです。また、DoCSからの起動の場合、PCSのプロセス開始イベントに定義したサービスエンドポイントのオペレーション名はstartでなければならない(他の名称では起動できません)、という制限があります。

あとは、ファイルをフォルダにアップロードすると、指定したプロセスが起動します。DoCSはPCSに対し、以下のメッセージ(すべて文字列)を送信することができます。DoCS_PCS_04DoCSから送られるメッセージをすべて受け取る必要はなく、必要なものだけ取捨選択できます。

  • docId(ファイルのItemId)
  • docName(アップロードされたファイル名)
  • userId(アップロードしたファイルのユーザID)
  • appLinkId
  • accessToken
  • refreshToken
  • appLinkUrl
  • role

ここで、PCSのプロセス作成時に注意すべき点が3点あります。

  1. 開始イベントのオペレーション名
    先ほど記述した通り、startでなければなりません。
  2. プロセス開始イベントが属するスイムレーン
    プロセス開始イベントのスイムレーンに割り当てたロールが自動ハンドラの場合、認証が通ればPCSのプロセスを起動することができますが、自動ハンドラ以外のロールを割り当てた場合、当該ロールに属していなければプロセスを起動することができません。
  3. プロセスは非同期、もしくは一方向のサービスでなければならない
    REST APIは非同期サービスを呼び出す前提になっているため、同期サービスのプロセスをDoCS(REST API)からは呼び出すことはできません。同期サービスの場合、SOAP Webサービスとして呼び出す必要があります。

また、DoCS側の制限についてもまとめておきます。

  1. トリガーファイルの取り扱い
    トリガーファイル名やItemIdなどの情報はPCSのプロセスに伝播しますが、ファイルがプロセスインスタンス固有のDoCSフォルダに移動するわけではありません。プロセスインスタンス固有のフォルダに移動させるためには、ファイルを移動させるためのDoCSのREST APIを呼び出す必要があります。
  2. フォルダの着信をトリガーにした起動は不可
    フォルダの着信をトリガーにしてプロセスを起動する仕組みにはなっていません。

ファイルの着信でPCSのプロセスを起動することは非常に簡単です。ただ、いろいろと制限事項があるので、要件に合っているのであればそのまま使ってもよいですが、DoCSフォルダをクロールして、PCSプロセスを起動し、トリガーファイルやフォルダをプロセスインスタンス固有のフォルダに移動させる、そういった外部サービスを作成することで、こうした制限を乗り越えることもできます。そのサンプルについては次のエントリで。

anishi1222 について

とあるキャラクターの中の人です。
カテゴリー: Middleware タグ: , , パーマリンク

Invoking PCS process as soon as storing files or folders to DoCS (1) への2件のフィードバック

  1. ピンバック: Invoking PCS process as soon as storing files or folders to DoCS (3) | Troubadour

  2. ピンバック: Invoking PCS process as soon as storing files or folders to DoCS (2) | Troubadour

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中