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

PCS (Oracle Process Cloud Service) やDoCS (Oracle Documents Cloud Service) がアップデートされるにつれ、以下のエントリとずれが出てきたので、2016/11/30現在の環境情報で再度まとめることにします。PCSは 16.3.5、DoCSは16.4.1を対象にしています。

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

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

事前作業

DoCSで指定するPCSのURL自体に変更はありませんが、設定メニューに到達するまでのルートが変更されています。

  1. 管理者ユーザーでログインし、ユーザー名をクリックし、[管理]を選択
    docspcs_02
  2. 管理メニューから、[アプリケーション]を選択
    docspcs_03
  3. [Process Cloud Service統合]を選択し、右端の[プリファレンス]アイコンを選択
    docspcs_04
  4. [PCS構成]で、サービスURL、サービス・ユーザー、サービス・パスワードを指定。
    このとき、サービスURLは、PCSのインスタンス生成APIのURLを指定するため、以下の形式で指定する必要があります。

    {PCSのURL}/bpm/api/3.0/processes

    docspcs_05

DoCSフォルダに対する設定

フォルダに対してプロセスを割り当てる点は同じですが、設定方法が変更されています。
フォルダのプロパティで[ドキュメント受信時にプロセスを開始]を有効化すると、起動対象のPCSプロセスが選択できるようになります。起動したいプロセスを選択し、[保存]を選択して設定を保存すると、当該フォルダに対してファイルが着信する都度PCSのプロセスを起動することができます。
docspcs_01

なお、フォルダ着信を起点としてPCSプロセスの起動は、フォルダのプロパティからは設定できません。これはPCSのAPIを直接呼び出す必要があります。

PCSプロセス作成時の注意点

トリガーとなったファイルをPCSから操作するには、以前はPCSの管理対象フォルダ(PCSプロセスインスタンス用に作成されたフォルダ)に移動した上で操作する必要がありました。ですが、PCS 16.3.1からは、DoCSのコンテンツを移動させなくても、PCSからアクセスできるようになっています。ファイル着信を起点にして起動するプロセスで設定すべき内容は以下の通りです。

  1. ドキュメントの操作のため、アプリケーション・ホーム>ドキュメントに移動し、+をクリックしてドキュメントを新規作成
    docspcs_07
  2. [入力ドキュメント]を選択し、名前を付けて[作成]をクリック(フォルダ開始イベントを利用する場合は、入力フォルダを選択します)
    docspcs_08
  3. プロセスでは、開始イベントとして[ドキュメント開始]を利用(フォルダをトリガーにする場合は、フォルダ開始を利用します)
    docspcs_06
  4. 開始イベントアイコンをクリックし、開始イベントの右に現れるメニューアイコンをクリックし、[プロパティを開く]を選択
    docspcs_10
  5. パターンとして[ホーム内]、入力ドキュメントとして先ほど作成したドキュメントの名前を選択(この例ではReviewedDocument)
    docspcs_09
    なお、フォルダ開始イベントの場合は、以下のような表示に変わりますが、考え方は変わりません。
    docspcs_11

ドキュメント開始イベントを使うPCSプロセスは、以下のメッセージを受信してプロセスインスタンスを生成します。

{
    "params": {
        "id": "D71B6FFC75669FCFC785FB6E86F0C62DF646F4EBB81D",
        "type": "d",
        "name": "SampleDocument.txt",
        "startedBy": "guest.user",
        "role": "contributor"
    }
}

フォルダ開始イベントでは、以下のようなメッセージを受信します。

{
    "params": {
        "id": "F9507EBCB5E85C273A298A6386F0C62DF646F4EBB81D",
        "type": "f",
        "name": "テストフォルダ",
        "startedBy": "guest.user",
        "role": "contributor"
    }
}

パラメータの意味は以下の通りです。

  • id : DoCSにおけるアイテムのID
  • type : ドキュメントの場合はd、フォルダの場合はf
  • name : ドキュメントやフォルダの名前
  • startedBy : 起動ユーザー
  • role : 起動ユーザーのロール

いずれの場合も、PCSがデータオブジェクトを自動生成するので、あまり意識することはないかもしれませんが、PCSプロセス内でドキュメントやフォルダを操作する(例えば完成図書フォルダに移動する、など)場合には、idを意識しておく必要があります。

その他、以前のエントリに記載した注意点はこのバージョンでも有効なのです。具体的には以下の通りです。

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

フォルダ着信を起点としたPCSプロセス起動

先ほど、DoCSフォルダのプロパティからはフォルダ着信を起点としたPCSプロセスの起動ができない、と記載しました。このような要件を満たすためには、PCSプロセスをREST APIで起動する必要があります。起動にあたっては以下のAPIを利用します。

Create a Process Instance
http://docs.oracle.com/cloud/latest/process_gs/CPRRA/op-processes-post.html

URLを見るとわかりますが、これはDoCSの事前設定で指定したものと同じです。
API呼び出しにあたっては、Basic認証のためのユーザーとパスワード、以下のJSON形式のメッセージが必要です。

// ドキュメント着信起点のPCSプロセス起動時のJSONメッセージ例
{
  "processDefId":"default~DoCS_Integration!1.0~DocumentTriggered",
  "serviceName":"DocumentTriggered.service",
  "operation":"start",
  "params": {
    "id": "D71B6FFC75669FCFC785FB6E86F0C62DF646F4EBB81D",
    "type": "d",
    "name": "SampleDocument.txt",
    "startedBy": "guest.user",
    "role": "contributor"
  }
}

 

// フォルダ着信起点のPCSプロセス起動時のJSONメッセージ例
{
  "processDefId":"default~DoCS_Integration!1.0~FolderTriggered",
  "serviceName":"FolderTriggered.service",
  "operation":"start",
  "params": {
    "id": "F9507EBCB5E85C273A298A6386F0C62DF646F4EBB81D",
    "type": "f",
    "name": "テストフォルダ",
    "startedBy": "guest.user",
    "role": "contributor"
  }
}

paramsの箇所は、PCSで受信するメッセージで説明した通りです。
その他のパラメータは、PCSのプロセス定義情報で、以下のAPIを使って取得することができます。

Retrieve Process Definitions
http://docs.oracle.com/cloud/latest/process_gs/CPRRA/op-process-definitions-get.html

 

anishi1222 について

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

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

  1. ピンバック: Invoking REST API from PCS | Troubadour

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

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中