Use PCS enbeddable process UI components

Oracle Process Cloud Service (以下、PCS) は、16.3.1からPCSのUIを別のアプリケーションに埋め込むことができるようになっています。

Oracle® Cloud Using Oracle Process Cloud Service 16.4.5
Embedding Process UI Components in Other Applications
http://docs.oracle.com/cloud/latest/process_gs/CPRCW/GUID-66587F65-C081-4961-BE92-6B1766586C14.htm#CPRCW-GUID-66587F65-C081-4961-BE92-6B1766586C14

このうち、Start Formの機能は、16.3.5まではBasic Form (FrevvoベースのWeb Form) のみ利用可能でしたが、16.4.5からは、Web Form (Oracle JETベースのWeb Form) でも利用可能になりました。

まずEmbeddable Process UI Componentsにアクセスしてみます。URLは以下の通りです。

https://{PCSのURL}/bpm/components

この画面で、サーバーの情報を設定します。以下の情報を設定し、Applyをクリックします。

  • serverURL : https://{PCSのURL} (Pathは不要)
  • username : アクセスするユーザー名(Basic認証の場合のみ)
  • password : アクセスするユーザー名のパスワード(Basic認証の場合のみ)
  • authInfo : 認証方式
    • 基本認証:Basicを指定。Applyをクリックすると、username、passwordを組み合わせEncodingした値を自動的に設定します。
    • OAuth 2.0:Bearerを指定。この場合、OAuth 2.0アクセストークンも同時に指定する必要があります。
    • JWT : JWTを指定。この場合、トークンも同時に指定する必要があります。

pcs_embed_01
適切な値をしていれば、Applyをクリックすると以下のメッセージが出ます。

pcs_embed_01b

接続が確立したので、Cookbookタブをクリックします(下図)。

pcs_embed_02

Cookbookタブでは、PCSのアプリケーション・メニューやタスクの詳細情報などを取得するための画面を埋め込むために利用できるサンプルコードなどを提供しています。詳細はドキュメントを見ていただくこととして、このエントリでは、Start Formの設定に着目します。

下図のスクリーンショットを見ると、startformDataのパラメータを指定する必要がありそうです。

pcs_embed_03b

これらの値はPCSのREST APIを使って取得できます。

REST API for Oracle Process Cloud Service
Retrieve Process Definitions
http://docs.oracle.com/cloud/latest/process_gs/CPRRA/op-process-definitions-get.html

GET /bpm/api/3.0/process-definitions

{
  "levels": 0,
  "links": [
    {
      "href": "https://process-xxxx.process.yyy.oraclecloud.com/bpm/api/3.0/process-definitions",
      "length": 0,
      "rel": "self"
    },
    {
      "href": "https://process-xxxx.process.yyy.oraclecloud.com/bpm/api/3.0/",
      "length": 0,
      "rel": "parent"
    }
  ],
  "items": [
    {
      "processDefId": "default~Application!1.0~Process",
      "processName": "Process",
      "application": "default",
      "revision": "1.0",
      "domain": "default",
      "interfaces": [
        {
          "title": "Start from OSC(1.0)",
          "serviceName": "Process.service",
          "operation": "start",
          "startType": "START_PCS_FORM",
          "category": "",
          "args": [
            {
              "name": "formArg",
              "type": "{http://xmlns.oracle.com/bpm/forms/schemas/DemoForm}DemoForm",
              "location": "https://process-xxxx.process.yyy.oraclecloud.com/soa-infra/services/default/Application!1.0*soa_ad130b2e-fdf1-403f-9f88-552345f0e06b/forms/schemas/DemoForm.xsd",
              "schema": null,
              "primitive": false
            }
          ],
          "formMetadata": "webform://appId=;formId=;oId=;service=Process.service;operation=start;dn=default/Application!1.0*soa_ad130b2e-fdf1-403f-9f88-552345f0e06b/Process;formName=DemoForm;ns=http://xmlns.oracle.com/bpmn/bpmnCloudProcess/Application/Process;href=https://process-xxxx.process.yyy.oraclecloud.com/bpm/api/3.0/webforms/default~Application!1.0~Process~80a9e329-9f29-4052-9f38-fc5856a21ca1~a0d16f69-77e8-4431-97a6-97b5015d9100"
        }
      ],
      "processIcon": {
        "initials": "A",
        "colorCode": "rgb(197,182,79)"
      },
      "isDocsEnabledFlag": true,
      "isConversationEnabledFlag": false
    }
  ]
}

APIで取得した情報を設定しますが、startTypeは、Basic Formの場合はSTART_FORM、Web Formの場合はSTART_PCS_FORMを使うことに注意してください。

pcs_embed_03

Applyをクリックすると、開始フォームが表示されます。

pcs_embed_03c

DoCSを添付ファイルの格納先として利用するよう、isDocsEnabledをtrueに指定し、かつ添付を隠さない (hideAttachmentをfalse) ように指定しているので、添付ファイル格納先としてApplication Documentsというフォルダが見えています。

続いて、別のアプリケーションのUIにIFRAMEでPCSのUIを埋め込む場合を考えます。

PCS Embeddable Process UI Componentsではこの目的のためのURLを提供しています。

https://PCSのURL/bpm/components/pages/startform.html

StartFormのパラメータは、JSON形式で指定します。例えば、先ほどのアプリケーションをこのURLを使って表示する場合、以下のように指定します。見やすくするため改行を入れていますが、実際は当然ながら1行で指定します。

https://PCSのURL/bpm/components/pages/startform.html?startformData=
{
  "processDefId":"default~Application!1.0~Process",
  "serviceName":"Process.service",
  "processName":"Process",
  "title":"てすと",
  "operation":"start",
  "startType":"START_PCS_FORM",
  "isDocsEnabled":true
}

このURLを使って、ブラウザから表示を確認すると、以下のような表示を得ることができます。

pcs_embed_04a

この開始フォームに初期値を渡すこともできます。UIコンポーネントの要素は、ComposerでWeb Form作成時に設定するデータ・バインド名に従います。

pcs_embed_04c

例えばComposerで上記のように設定したとすれば、初期値を指定して開始フォームを表示する場合、以下のようなURLになります(見やすくするため改行を入れています)。

https://PCSのURL/bpm/components/pages/startform.html?startformData=
{
  "processDefId":"default~Application!1.0~Process",
  "serviceName":"Process.service",
  "processName":"Process",
  "title":"てすと",
  "operation":"start",
  "startType":"START_PCS_FORM",
  "isDocsEnabled":true
}
&payload=
{
  "opportunityID":"300000130602218",
  "opportunityNumber":"12345"
}

このURLを使って、ブラウザから表示を確認すると、以下のような表示を得ることができます。

pcs_embed_04b

なお、この開始フォームに初期値を設定する方法は、Web Formでのみ利用可能で、Basic Formでは使えませんので、注意が必要です。

anishi1222 について

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

Use PCS enbeddable process UI components への1件のフィードバック

  1. ピンバック: Embed PCS UI to Sales Cloud UI | Troubadour

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中