https://blogs.oracle.com/practicalbpm/entry/webcenter_content_ucm_bpm_integration
このエントリでは、Content ServerのワークフローからSOAサーバーにデプロイされているプロセスを起動するため、WebCenter ContentとBPMで必要な構成をご紹介します。これはドキュメントチェックインといったイベントに基づいてBPM/BPELプロセスをUCMから呼び出す場合に共通するユースケースです。
1. SOAと連係するためのUCM環境の準備
この手順はUCMとSOAドメインが別々に作成されており、UCMドメインがSOAドメインを拡張していない場合にのみ必要です。a. SOA_ORACLE_HOMEの"soa"ディレクトリをUCM_ORACLE_HOMEにコピー
(例)D:\Oracle\Middleware\Oracle_SOA1\soa を D:\Oracle\Middleware\Oracle_UCM1\soa にコピーします。
b. UCMサーバーのsetDomainEnvに指定されているクラスパスを変更
Windowsの場合
%DOMAIN_HOME%\bin中のsetDomainEnv.cmdを編集し、以下の行を追加します。
set POST_CLASSPATH=%ORACLE_HOME%\soa\modules\oracle.soa.mgmt_11.1.1\soa-infra-mgmt.jar;%POST_CLASSPATH%
UNIXの場合
$DOMAIN_HOME/bin中のSetDomainEnv.shを編集し、以下の行を追加します。
c. クロスドメインセキュリティの有効化POST_CLASSPATH="${ORACLE_HOME}/soa/modules/oracle.soa.mgmt_11.1.1/soa-infra-mgmt.jar${CLASSPATHSEP}${POST_CLASSPATH}"
以下の手順をUCM、SOAの両ドメインに対して実施します。
1. WebLogic Server管理コンソールにログイン (http://localhost:7001/console/)
2. ドメイン構成からドメイン名を選択し、[セキュリティ]タブに移動
3. [クロスドメインセキュリティの有効化]にチェック
4. 同じ資格証明をUCM、SOAの両ドメインに設定
d. サーバーを再起動
2. Enable UCM-BPEL Integration Component
a. コンテンツサーバーにログインし、[管理サーバー]に移動b. コンポーネントをインストールする必要のあるサーバのコンポーネントマネージャを選択
c. "Advanced Component Manager"をクリックし、BPELIntegrationComponentを有効化
d. UCMサーバーのWebLogic Server管理コンソールにログインし、[サーバー]からUCMサーバーを選択し、SSLを再起動。
3. Configure connection to SOA server
a. [管理]>[Oracle BPEL管理]>[接続の構成]に移動b. [接続メニュー]を選択し、接続を追加
以下の資格証明を入力。
[注意]プロバイダURLにはSOAサーバーのホスト名とポート番号が含まれています。SOAサーバーのWLSTを実行し、t3://{サーバー名}:{ポート番号}で接続できることを確認して下さい。
c. 接続をテストし、成功すれば、以下の画面が見えるはず(だめなら1〜3を再実行)。
4. Process Configuration
a. [管理]>[Oracle BPEL管理]>[プロセスの構成]へ移動b. プロセスメニューから[Add Process]を選択
c. ドロップダウンリストからBPM/BPELプロセスを選択
d. [保存]を押す
e. [ペイロードの更新]に移動
プロセス入力フィールドをUCMのメタデータフィールドにマッピング。
5. Update the SOA composite to enable UCM integration
a. 以下の行をSOA/BPMプロジェクトのcomposite.xmlに追加(下図参照)
<binding.adf serviceName="YourUniqueServiceName" registryName=""/>
6. Configure Workflow in UCM
a. コンテンツサーバーにログインb. [管理]>[管理アプレット]に移動
c. ワークフロー管理アプレットを起動
d. 新しいワークフロー条件を追加
e. クリックして、条件ワークフローを編集
下図はイベントを発行する条件しているところで、この場合、ワークフローは"Document"というドキュメントタイプの場合に呼び出される。
f. initiateProcess(起動プロセス)を編集
g. ワークフローにアクセスしたりワークフローが呼び出されたときにドキュメントをチェックインするユーザーを追加する。
h. 以下の行を終了条件に追加
wfGet("conversationId") and obIsInstanceClosed("BPEL", wfGet("conversationId"))
i. [イベント]で、入力のために[編集]をクリック
ドキュメントの自動承認のため、<$endif$>の前に <$wfReleaseDocument()$> の行を追加する。この手順を追加しない場合、ドキュメントの状態は[保留]になり、ユーザーが手作業で[コンテンツ管理]>[アクティブなワークフロー]>[ワークフローの割り当て]に移動してドキュメントを承認する必要がある。
<$if not conversationId$> <$obConfigID="BPEL"$> <$obInvokeProcess(obConfigID)$> <$endif$>
7. 動作確認
sysadmin(手順6からのユーザー)でログインし、手順6で設定したドキュメントタイプのドキュメントをチェックインして、BPM/BPELプロセスが正しく呼び出されることを確認する。トラブルシューティング
1. クロスドメインセキュリティクロスドメインセキュリティの設定が間違っていると、以下のようなエラーが出ます。
2. UCMシステム監査機能を使ってBPEL統合のトレースをする際に出てくるエラーvax.xml.ws.WebServiceException: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators] at com.sun.xml.ws.client.dispatch.DispatchImpl.doInvoke(DispatchImpl.java:209)
[管理]>[システム監査情報]に移動し、[トレース・セクション情報]でBPEL統合コンポーネントを追加します。更新し、[サーバー出力の表示]をクリックして、詳細のログを確認します。
3. BPEL/BPMプロセスの入力が複合型の場合
現在のWebCenter Content(11.1.1.6)のUCMでは、複合型のメッセージを処理しませんので、[ペイロードの更新]はエラーになります。回避策はシンプルな入力データ型を使うことです。
参考情報
Oracle® Fusion Middleware BPEL Component Guide for Content Server 11g Release 1 (11.1.1)
http://docs.oracle.com/cd/E21764_01/doc.1111/e16759/toc.htm
0 件のコメント:
コメントを投稿