| Oracle® Fusion Middleware Oracle Business Process Managementユーザーズ・ガイド 11g リリース1 (11.1.1.7) B61408-10 |
|
![]() 前 |
![]() 次 |
プロセス・ワークスペースで使用できる様々な機能は、タスク・フローと呼ばれるスタンドアロンの再利用可能なコンポーネントとして公開されます。この付録では、各タスク・フローの機能に関する基本的な情報を説明します。
タスク・フローは、Oracle Application Development Framework (ADF)アプリケーションに埋め込むことができます。これらのスタンドアロンのタスク・フローには多数のパラメータが用意されており、これらのパラメータを使用してカスタマイズ・アプリケーションを作成できます。
タスク・フローはすべてADFライブラリにバンドルされており、ここから埋込み先のアプリケーションに組み込むことができます。
その後で、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」で、TaskListTaskFlowを使用したサンプル・タスク・フローによって、アプリケーションにタスク・フローを埋め込むための詳細な手順、およびアプリケーションのカスタマイズ、デプロイ、実行方法を示します。
様々なタスク・フローの詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。
この付録では、次の項目について説明します。
A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」
A.7項「サンプル: WorkflowServicesClientConfigurationTypeオブジェクトを戻すメソッドを使用するBean」
|
注意: この付録では、Oracle Application Development Frameworkとセキュリティの両方を詳しく理解していることを前提としています。 |
この項には次のトピックが含まれます:
タスク・フローでは、埋め込まれたリージョンの表示方法の制御にパラメータが使用されます。この項では、次のパラメータについて説明します。
パラメータの全リストについては、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。
このパラメータをtrueに設定すると、タスク・リストがフェデレーテッド・モードで表示されます。タスク・フローをフェデレーテッド・モードで実行するには、フェデレーテッド・サーバーのリストをタスク・フローに渡す必要があります。フェデレーテッド・サーバーのリストをタスク・フローに渡す方法については、A.1.1.2項「federatedServers」を参照してください。
フェデレーテッド・サーバー・リストをタスク・フローに渡すには、次のいずれかを実行します。
クライアント構成ファイルwf_client_config.xmlをクラス・パスに指定します。クラス・パスは、earレベルではAPP-INF\classes\wf_client_config.xml、Webアプリケーションの場合はWEB-INF\classesです。クライアント構成ファイルには、すべてのフェデレーテッド・サーバーの詳細が含まれています。
サンプルwf_client_config.xmlファイルについては、A.6項「サンプル: Wf_client_config.xmlファイル」を参照してください。
フェデレーテッド・サーバー・リストを含んだJAXBオブジェクトを作成します。このJAXBオブジェクトをfederatedServersパラメータを介してタスク・フローに渡すことができます。オブジェクトはbacking bean methodによって戻される必要があります。
WorkflowServicesClientConfigurationTypeオブジェクトを戻すメソッドを使用するサンプルBeanについては、A.7項「サンプル: WorkflowServicesClientConfigurationTypeオブジェクトを戻すメソッドを使用するBean」を参照してください。
クライアント構成ファイルwf_client_config.xmlとJAXBオブジェクトの両方をタスク・フローに提供した場合は、JAXBオブジェクトが優先されます。
タスク・フローをフェデレーテッド・モードで実行する場合、タスク・リストのサーバー列はデフォルトでは表示されません。タスク・リストにサーバー列を表示するには、このパラメータをtrueに設定して渡す必要があります。
これはワークフロー・コンテキストのトークン文字列です。ワークフロー・コンテキストをタスク・フロー内部に作成する場合に使用します。
|
注意: アプリケーションがSSO対応であるか、ADFセキュリティを使用して保護されている場合、このパラメータは必要ありません。それ以外の場合、このパラメータは必須です。 |
ワークフロー・コンテキスト識別子を取得する手順
次のコマンドを実行します。
IWorkflowContext wfCtx = wfSvcClient.getTaskQueryService().authenticate(username,
password,
realm,
null);
wfCtxID = wfCtx.getToken();
デジタル証明書には、認証局のデジタル署名が含まれ、その証明書が真正なものであることを確認できます。デジタル証明書は参加者の資格証明を確立します。証明書は認証機関によって発行されます。名前、シリアル番号、有効期限、証明書保有者の公開鍵のコピー(メッセージおよびデジタル署名の暗号化に使用)、証明書発行機関のデジタル署名(これにより、受信者は証明書が真正のものであることを確認可能)が証明書に含まれます。
図A-2に示すように、デシジョンに署名する場合は、デジタル証明書をアップロードできます。証明書を使用してタスクの結果に署名する場合は、認証機関によって発行された1つの証明書のみでなく、証明書のチェーン全体をアップロードする必要があります。チェーンを.P7B (PKCS7形式)ファイルとしてアップロードします。
アプリケーションを作成し、証明書のタスク・フローを埋め込むには、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順をステップ9を除いてすべて実行します。ステップ9は、証明書にパラメータがないため実行する必要はありません。
レポートのタスク・フローの詳細は、7.6項「プロセス・ワークスペースでのレポートを使用したワークフローの管理」を参照してください。
アプリケーションを作成し、レポートのタスク・フローを埋め込むには、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順をステップ9を除いてすべて実行します。ステップ9は、レポートにパラメータがないため実行する必要はありません。
アプリケーション・プリファレンスのタスク・フローの詳細は、9.2項「プロセス・ワークスペースでの「作業アイテム」パネル(アプリケーション・プリファレンス)の表示の設定」を参照してください。
アプリケーションを作成し、アプリケーション・プリファレンスのタスク・フローを埋め込むには、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順をステップ9を除いてすべて実行します。ステップ9は、アプリケーション・プリファレンスにパラメータがないため実行する必要はありません。
フレックス・フィールドのタスク・フローの詳細は、9.4項「プロセス・ワークスペースでのマップ済属性(フレックス・フィールド)の管理」を参照してください。
アプリケーションを作成し、フレックス・フィールドのタスク・フローを埋め込むには、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順をステップ9を除いてすべて実行します。ステップ9は、フレックス・フィールドにパラメータがないため実行する必要はありません。
ルールのタスク・フローの詳細は、2.6.1項「プロセス・ワークスペースでのユーザー・ルールの作成方法」を参照してください。
showOtherUsersRulesパラメータはブール値を使用します。Trueを設定して渡した場合は、他のユーザーのルールが表示されます。Falseを設定して渡した場合、他のユーザーのルールは表示されません。また、このユーザーには他のユーザーのルールを表示するための権限が必要です。
アプリケーションを作成し、ルールのタスク・フローを埋め込むには、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順をステップ9を除いてすべて実行します。ステップ9は、ルール・フィールドにパラメータがないため実行する必要はありません。
この項には次のトピックが含まれます:
プロセス・ワークスペースで使用できるアプリケーションは、プロセス設計およびログイン中のユーザーに割り当てられているロールによって異なります。また、使用可能なアプリケーションのリストは、デプロイ済で実行中のBPMプロセスによって異なります。実行中のプロセスがない場合、または実行中のいずれかのプロセスでアプリケーションを実行する権限がユーザーにない場合、「アプリケーション」パネルには何も表示されません。図A-3に、プロセス・ワークフローでの「アプリケーション」パネルの場所を示します。
この項には次のトピックが含まれます:
表A-4 ダッシュボード・ウィジェットのタスク・フロー
| フィールド | 説明 |
|---|---|
|
タスク・フロー定義ファイル: |
widgetTaskflow.xml |
|
説明: |
ウィジェット(キューブに格納されている情報を表示するグラフ)をレンダリングします。このウィジェットは、定義済のウィジェット(「参加者ごとのワークロード」、「プロセスごとのパフォーマンス」など)のいずれか、またはカスタム・ウィジェットです。 |
|
引数: |
|
アプリケーション・ロールのタスク・フローには、アプリケーション・コンテキストOracleBPMProcessRolesAppに対してシステムに定義されているアプリケーション・ロールのリストが表示されます。ユーザーは、アプリケーション・ロールを検索し、ロールを選択してメンバー(ユーザー、グループまたはその他のロール)を追加できます。また、ロールに対してビジネス・カレンダと組織単位のマッピングを定義することもできます。
このタスク・フローを使用すると、新しい組織単位の作成または既存の組織単位の編集ができます。
組織単位のタスク・フローの詳細は、第10章「プロセス・ワークスペースでの組織の管理」を参照してください。
図A-7に、「組織単位」の「詳細」パネルを示します。
パラメータ・ロールのタスク・フローの詳細は、第10.6項「プロセス・ワークスペースでのパラメータ・ロールの管理」を参照してください。
ビジネス・カレンダおよび休日リストのタスク・フローの詳細は、10.3項「プロセス・ワークスペースでのカレンダ・ルールの管理」および10.2項「プロセス・ワークスペースでの休日ルールの管理」を参照してください。
拡張ユーザー・プロパティのタスク・フローの詳細は、第10.7項「プロセス・ワークスペースでの拡張ユーザー・プロパティの管理」を参照してください。
表A-5 タスク・フロー用のJARファイル
| JARファイル | 場所 |
|---|---|
|
|
|
|
|
この.jarファイルは、プロセス・スペースのインストールにのみパッケージ化されています。次のライブラリが含まれており、これらをカスタムADFアプリケーションで指定する必要があります。
|
|
|
|
この項には次のトピックが含まれます:
このサンプルでは、アプリケーションを作成し、タスクリストのタスク・フローを埋め込む方法について説明します。
タスクリストADFライブラリのjarファイルadflibTaskListTaskFlow.jarがクラス・パスに存在している必要があります。このjarは、Oracle JDeveloperのBPMワークリスト・コンポーネント・ライブラリにあります。
次に、アプリケーションにタスク・フローを埋め込む手順を示します。これらと同じ手順を使用して新しいサンプルを作成できます。
アプリケーションにタスクリストのタスク・フローを埋め込む手順は、次のとおりです。
Oracle JDeveloperで新規Fusion Webアプリケーションを作成し、TaskListTaskFlowSampleという名前にします。
タスク・フローのjar adflibTaskListTaskFlow.jarをプロジェクトのクラス・パスに追加します。JDeveloperの「ライブラリとクラスパス」セクションからBPMワークリスト・コンポーネント・ライブラリを組み込み、ライブラリを追加します。このライブラリには、adflibWorklistComponents.jarも含まれています。このファイルもクラス・パスに存在する必要があります。
BPMサービス・ライブラリをクラス・パスに追加します。
WSRPコンテナ・ライブラリをクラス・パスに追加します。
アプリケーションを非SOAサーバーで実行している場合は、Oracle Fusion Middleware Oracle SOA Suite開発者ガイドに記載されている2つの追加手順を実行する必要があります。
oracle.soa.workflow共有ライブラリをインストールします。サーバーにoracle.soa.workflow.wcをインストール済の場合、oracle.soa.workflowをインストールする必要はありません。
oracle.soa.workflow共有ライブラリのインストールの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。
非SOAサーバーで外部JNDIを構成します。
非SOAサーバーでの外部JNDIの構成の詳細は、Oracle Fusion Middleware Oracle WebLogic ServerのJNDIのプログラミングを参照してください。
|
注意: タスク・リストのタスク・フローをフェデレーテッド・モードで実行している場合、この手順を実行する必要はありません。タスク・フローをフェデレーテッド・モードで使用する方法は、パラメータfederatedModeを参照してください。 |
JSPXファイルtestSample.jspxを作成します。
コンポーネント・パレットから「adflibTaskListTaskFlow.jar」を選択します。この中に、すべてのタスク・フローが含まれています。
いずれかのタスク・フローをリージョンとしてJSPXページにドラッグ・アンド・ドロップします。図A-14に、例として、TaskListTaskFlowをリージョンとしてJSPXページにドロップした場合を示します。
図A-14 JSPXテスト・ページにTaskListタスク・フローがあるOracle JDeveloper

タスク・フローをJSPXページにドラッグすると、ポップアップに使用可能なパラメータのリストが表示されます。これらのパラメータについては、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。
「タスク・フロー・バインディングの編集」ダイアログ・ボックスが表示されます。
「タスク・フロー・バインディングの編集」ダイアログ・ボックスで、タスク・フローのパラメータを渡します。
testSamplePagedef.xmlに次のエントリが作成されます。
<taskFlow id="taskListtaskflowdefinition1" taskFlowId="/WEB-INF/taskList-task-flow-definition.xml#taskList-task-flow-definition" xmlns="http://xmlns.oracle.com/adf/controller/binding"> <parameters><parameter id="federatedMode" value="true"xmlns="http://xmlns.oracle.com /adfm/uimodel"/> <parameter id="showServerColumn" value="true" xmlns="http://xmlns.oracle.com/adfm/uimodel"/> </parameters> </taskFlow>
次の共有ライブラリをweblogic-application.xmlに追加します。サーバーにoracle.soa.workflow.wcをインストール済の場合は、次のように指定してそのライブラリを追加します。
<library-ref> <library-name>oracle.soa.workflow</library-name> </library-ref>
WARデプロイメント・プロファイルを開いて編集します。これを行うには:
ViewControllerを右クリックします。
「デプロイメント」を選択します。
「WARファイル」を選択します。
「編集」をクリックします。
「adflibTaskListTaskFlow.jar」、「adflibWorklistComponents.jar」および「wsrp-container.jar」を選択します。
ADFセキュリティを使用してアプリケーションを保護します。保護するには、図A-17に示すように、アプリケーションレベルのメニューから「保護」、「ADFセキュリティの構成」の順にナビゲートします。
「ADFセキュリティの有効化」ダイアログ・ボックスが表示されます。
図A-18に示すように、「ADF認証」を選択します。
「次へ」をクリックします。「認証タイプの選択」ダイアログ・ボックスが表示されます。
|
注意: ADF認証および認可を選択する場合、次の手順を実行します。
|
図A-19に示すように、「HTTP Basic認証」を選択します。
Fusion WebアプリケーションでのADFセキュリティの有効化については、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。
「終了」をクリックします。
|
注意: タスク・フローをフェデレーテッド・モードで使用している場合は、次の手順を実行します。
|
EARデプロイメント・プロファイルを作成し、EARを作成してデプロイします。EARをデプロイする手順は、次のとおりです。
アプリケーションレベルのメニューから、「デプロイ」、「TaskListTaskFlowSample_Appl...」の順にナビゲートします。
「デプロイメント・アクション」ダイアログ・ボックスが表示されます。
図A-21に示すように、「アプリケーション・サーバーへのデプロイ」を選択します。
「次へ」をクリックします。「サーバーの選択」ダイアログ・ボックスが表示されます。
サーバーを選択します。「ドメイン内の全サーバー・インスタンスへのデプロイ」の選択を解除します。「次へ」をクリックします。
「サーバー・インスタンス」ダイアログ・ボックスが表示されます。
サーバー・インスタンスを選択し、「終了」をクリックします。
serverおよびportに適切な値を指定して、次のリンクにアクセスします。http://server:port/TaskListTaskFlowSample-ViewController-context-root/faces/testSample.jspx
ログイン用のポップアップが表示されます。任意のユーザーでログインします。図A-22に示すように、ログインしたユーザー用のタスク・リストが表示されます。
タスク・フローをフェデレーテッド・モードで使用している場合は、「表示」リストにサーバーのリストが表示されます。リストから任意の組合せのサーバーを選択すると、タスク・リストがリフレッシュされ、選択したサーバーに属しているすべてのタスクが表示されます。パラメータshowServerColumnをtrueに設定して渡した場合は、タスク・リストにサーバー列が表示され、タスクが属しているサーバーが示されます。
いずれかのタスク・タイトルのリンクをクリックすると、新しいブラウザ・ウィンドウにタスクの詳細が表示されます。
このサンプルでは、ADFページを作成し、3つのタスク・フローを追加する方法について説明します。
ページは2つのパートに分かれます。左側からタスク・フローを選択すると、対応するタスク・フローが右側に表示されます。
タスク・フローを使用してADFページを作成する手順は、次のとおりです。
A.5.1項「サンプル1: 埋込みタスクリストのタスク・フローを使用したアプリケーションの作成」のステップ1から6に従います。
JSPXページを次のように構成します。
コンポーネント・パレットで、「ADF Faces」を選択します。
「パネル・ストレッチ・レイアウト」をJSPXページにドラッグ・アンド・ドロップします。
JSPXページから「上」、「開始」、「下」および「終了」を削除します。JSPXページは、図A-23のようになります。
コンポーネント・パレットからJSPXページに「パネル・スプリッタ」をドラッグ・アンド・ドロップします。JSPXページは、図A-24のように表示されます。
ナビゲータで、ビュー・コントローラを右クリックして新規のJavaクラスを作成します。それにSampleController.javaという名前を付けます。
図A-25に示すように、getterおよびsetterを使用してprivate transient UIComponent rightPanel = null;を追加します。
ナビゲータで、Faces-config.xmlファイルを選択します。図A-26に示すように、マネージドBeanを指定し、「sampleControllerBean」という名前を設定します。
「パネル・ストレッチ・レイアウト」をsecondファセットにドラッグ・アンド・ドロップします。そこから「上」、「開始」、「下」および「終了」を削除します。プロパティ・インスペクタからPanelStrechLayout用のバインディングを#{sampleControllerBean.rightPanel}として指定します。
コンポーネント・パレットからJSPXページにリンクをドラッグ・アンド・ドロップします。プロパティ・インスペクタで、テキストに「Rules」を指定します。SampleController Javaファイルに、次のコードを追加します。
private String selectedLink = "RULES"; with getter and setters
public void displayRules(ActionEvent event){
setSelectedLink("RULES");
if(getRightPanel() != null){
RequestContext.getCurrentInstance().addPartialTarget(getRightPanel());
} }
ルールの「アクション・リスナー」プロパティを次のように追加します。
#{sampleControllerBean.displayRules}
コンポーネント・パレットからJSPXページにリンクをドラッグ・アンド・ドロップします。プロパティ・インスペクタで、テキストに「Certificates」を指定します。SampleController Javaファイルに、次のコードを追加します。
public void displayCertificates(ActionEvent event){
setSelectedLink("CERTIFICATES");
if(getRightPanel() != null){
RequestContext.getCurrentInstance().addPartialTarget(getRightPanel());
} }
証明書の「アクション・リスナー」プロパティを次のように追加します。
#{sampleControllerBean. displayCertificates }
コンポーネント・パレットからJSPXページにリンクをドラッグ・アンド・ドロップします。プロパティ・インスペクタで、テキストに「Reports」を指定します。SampleController Javaファイルに、次のコードを追加します。
public void displayReports(ActionEvent event){
setSelectedLink("REPORTS");
if(getRightPanel() != null){
RequestContext.getCurrentInstance().addPartialTarget(getRightPanel());
} }
レポートの「アクション・リスナー」プロパティを次のように追加します。
#{sampleControllerBean. displayReports}
コンポーネント・パレットからsecondファセットのcenterファセットにスイッチャをドラッグ・アンド・ドロップします。
プロパティ・インスペクタで、次のように指定します。
ファセット名を「#{sessionScope.sampleControllerBean.selectedLink}"」と指定します。
デフォルト・ファセットを「RULES」と指定します。
af:switcher内で、f:facet name="RULES"という名前のファセットを定義します。このファセット内に、コンポーネント・パレットから(adflibTaskListTaskFlow.jar内の)「Rules-Task-Flow-Definition」をドラッグ・アンド・ドロップします。
af:switcher内で、f:facet name="CERTIFICATES"という名前の別のファセットを定義します。このファセット内に、コンポーネント・パレットから(adflibTaskListTaskFlow.jar内の)「Certificates-Task-Flow-Definition」をドラッグ・アンド・ドロップします。
af:switcher内で、f:facet name="REPORTS"という名前の別のファセットを定義します。このファセット内に、コンポーネント・パレットから(adflibTaskListTaskFlow.jar内の)「Reports-Task-Flow-Definition」をドラッグ・アンド・ドロップします。
作業内容を保存します。
A.5.1項「サンプル1: 埋込みタスクリストのタスク・フローを使用したアプリケーションの作成」のステップ10から11に従います。
この項では、クライアント構成ファイルWf_client_config.xmlの例を示します。
フェデレーテッド・サーバー・リストにサーバーを含めない場合は、<server>要素にexcludeFromFederatedList="true"を指定します。
XMLの<server>要素にクライアント・タイプを明示的に指定する必要があります。
リモート・クライアントを使用している場合は、clientType="REMOTE"と入力します。
SOAPクライアントを使用している場合は、clientType="SOAP"と入力します。
例A-1では、REMOTEクライアント・タイプを使用しています。
例A-1 Wf_client_config.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workflowServicesClientConfiguration
xmlns="http://xmlns.oracle.com/bpel/services/client">
<server name="default" default="true" excludeFromFederatedList="true" clientType="REMOTE">
<localClient>
<participateInClientTransaction>false</participateInClientTransaction>
</localClient>
<remoteClient>
<serverURL>t3://sta00048.ex.example.com:7001</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>
<participateInClientTransaction>false</participateInClientTransaction>
</remoteClient>
<soapClient>
<rootEndPointURL>http://sta00048.ex.example.com:7001</rootEndPointURL>
<identityPropagation mode="dynamic" type="saml">
<policy-references>
<policy-reference enabled="true" category="security"
uri="oracle/wss10_saml_token_client_policy"/>
</policy-references>
</identityPropagation>
</soapClient>
</server>
<server name="ERP" clientType="REMOTE">
<soapClient>
<rootEndPointURL>http://sta00147.ex.example.com:7001</rootEndPointURL>
<identityPropagation mode="dynamic" type="saml">
<policy-references>
<policy-reference enabled="true" category="security"
uri="oracle/wss10_saml_token_client_policy"/>
</policy-references>
</identityPropagation>
</soapClient>
<remoteClient>
<serverURL>t3://sta00147.ex.example.com:7001</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>
<participateInClientTransaction>false</participateInClientTransaction>
</remoteClient>
</server>
<server name="CRM" clientType="REMOTE">
<soapClient>
<rootEndPointURL>http://sta00048.ex.example.com:7001</rootEndPointURL>
<identityPropagation mode="dynamic" type="saml">
<policy-references>
<policy-reference enabled="true" category="security"
uri="oracle/wss10_saml_token_client_policy"/>
</policy-references>
</identityPropagation>
</soapClient>
<remoteClient>
<serverURL>t3://sta00048.ex.example.com:7001</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>
<participateInClientTransaction>false</participateInClientTransaction>
</remoteClient>
</server>
</workflowServicesClientConfiguration>
この項では、WorkflowServicesClientConfigurationTypeオブジェクトを戻すメソッドを使用するサンプルBeanを示します。
|
注意: JAXBオブジェクトの作成時に、クライアント・タイプを明示的に設定する必要があります。例:
または
クライアント・タイプを指定しないと、デフォルトのSOAPになります。 |
package view;
import java.util.List;
import oracle.bpel.services.workflow.client.config.IdentityPropagationType;
import oracle.bpel.services.workflow.client.config.PolicyReferenceType;
import oracle.bpel.services.workflow.client.config.PolicyReferencesType;
import oracle.bpel.services.workflow.client.config.RemoteClientType;
import oracle.bpel.services.workflow.client.config.ServerType;
import oracle.bpel.services.workflow.client.config.SoapClientType;
import oracle.bpel.services.workflow.client.config.WorkflowServicesClientConfigurationType;
import weblogic.nodemanager.common.ServerType;
public class WorklistBackingBean {
WorkflowServicesClientConfigurationType wscct = null;
public WorklistBackingBean() {
super();
}
public WorkflowServicesClientConfigurationType getWSCC() {
if (wscct == null) {
wscct = new WorkflowServicesClientConfigurationType();
List<ServerType> servers = wscct.getServer();
/**** Setting default server in the list ****/
ServerType defaultServer = new ServerType();
defaultServer.setClientType("SOAP");
servers.add(defaultServer);
defaultServer.setDefault(true);
//If this is true, the server is excluded from federated server list
//By defalut it is false
//defalutServer.setExcludeFromFederatedList(true);
defaultServer.setName("default");
RemoteClientType rct = new RemoteClientType();
rct.setServerURL("t3://defaultHost:port");
rct.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
rct.setParticipateInClientTransaction(false);
defaultServer.setRemoteClient(rct);
SoapClientType sct = new SoapClientType();
PolicyReferencesType prts = new PolicyReferencesType();
PolicyReferenceType prt = new PolicyReferenceType();
prt.setEnabled(true);
prt.setCategory("security");
prt.setUri("oracle/wss10_saml_token_client_policy");
prts.getPolicyReference().add(prt);
IdentityPropagationType ipt = new IdentityPropagationType();
ipt.setMode("dynamic");
ipt.setType("saml");
ipt.setPolicyReferences(prts);
sct.setRootEndPointURL("http://defaultHost:port");
sct.setIdentityPropagation(ipt);
defaultServer.setSoapClient(sct);
/****** Setting Federated Server 1 to the list ****/
ServerType server1 = new ServerType();
server1.setClientType("SOAP");
servers.add(server1);
server1.setName("Human Resource");
RemoteClientType rct1 = new RemoteClientType();
rct1.setServerURL("t3://HumanResourcesHost:port");
rct1.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
rct1.setParticipateInClientTransaction(false);
server1.setRemoteClient(rct1);
SoapClientType sct1 = new SoapClientType();
PolicyReferencesType prts1 = new PolicyReferencesType();
PolicyReferenceType prt1 = new PolicyReferenceType();
prt1.setEnabled(true);
prt1.setCategory("security");
prt1.setUri("oracle/wss10_saml_token_client_policy");
prts1.getPolicyReference().add(prt1);
IdentityPropagationType ipt1 = new IdentityPropagationType();
ipt1.setMode("dynamic");
ipt1.setType("saml");
ipt1.setPolicyReferences(prts1);
sct1.setRootEndPointURL("http://HumanResourcesHost:port");
sct1.setIdentityPropagation(ipt1);
server1.setSoapClient(sct1);
}
return wscct;
}
}