Oracle® Fusion Middleware Oracle Business Process Managementによるプロセスの管理とモニタリング 12c (12.2.1.1) E77374-01 |
|
前 |
次 |
Oracle Business Process Management Workspace (プロセス・ワークスペース)で使用できる様々な機能は、タスク・フローと呼ばれるスタンドアロンの再利用可能なコンポーネントとして公開されます。この付録では、各タスク・フローの機能に関する基本的な情報を説明します。
タスク・フローは、Oracle Application Development Framework (ADF)アプリケーションに埋め込むことができます。これらのスタンドアロンのタスク・フローには多数のパラメータが用意されており、これらのパラメータを使用してカスタマイズ・アプリケーションを作成できます。タスク・フローはすべてADFライブラリにバンドルされており、ここから埋込み先のアプリケーションに組み込むことができます。
その後で、「サンプル: プロセス・ワークスペースのタスク・フローを使用したADFアプリケーションのカスタマイズ」で、TaskListTaskFlowを使用したサンプル・タスク・フローによって、アプリケーションにタスク・フローを埋め込むための詳細な手順、およびアプリケーションのカスタマイズ、デプロイ、実行方法を示します。
様々なタスク・フローの詳細は、Oracle Fusion Middleware Oracle Business Process Management Studioを使用したビジネス・プロセスの作成を参照してください。
この付録の内容は次のとおりです。
注意:
この付録では、Oracle Application Development Frameworkとセキュリティの両方を詳しく理解していることを前提としています。
この項では、次の項目について説明します。
タスク・フローでは、埋め込まれたリージョンの表示方法の制御にパラメータが使用されます。この項では、次のパラメータについて説明します。
パラメータの全リストについては、Oracle Fusion Middleware Oracle Business Process Management Studioを使用したビジネス・プロセスの作成を参照してください。
このパラメータをtrueに設定すると、タスク・リストがフェデレーテッド・モードで表示されます。タスク・フローをフェデレーテッド・モードで実行するには、フェデレーテッド・サーバーのリストをタスク・フローに渡す必要があります。フェデレーテッド・サーバーのリストをタスク・フローに渡す方法の詳細は、federatedServersを参照してください。
フェデレーテッド・サーバー・リストをタスク・フローに渡すには、次のいずれかを実行します。
クライアント構成ファイルwf_client_config.xml
をクラス・パスに含めます。このクラス・パスは、earレベルのAPP-INF\classes\wf_client_config.xml
またはWebアプリケーションのWEB-INF\classes
です。クライアント構成ファイルには、すべてのフェデレーテッド・サーバーの詳細が含まれています。
wf_client_config.xml
ファイルのサンプルについては、「サンプル: Wf_client_config.xmlファイル」を参照してください。
フェデレーテッド・サーバー・リストを含んだJAXBオブジェクトを作成します。このJAXBオブジェクトをfederatedServersパラメータを介してタスク・フローに渡すことができます。オブジェクトはbacking bean methodによって戻される必要があります。
WorkflowServicesClientConfigurationType
オブジェクトを返すメソッドを持つサンプルBeanの詳細は、「サンプル: WorkflowServicesClientConfigurationTypeオブジェクトを返すBean」を参照してください。
クライアント構成ファイルwf_client_config.xml
とJAXBオブジェクトの両方をタスク・フローに提供した場合は、JAXBオブジェクトが優先されます。
タスク・フローがフェデレーテッド・モードで実行される場合、デフォルトではタスク・リストのサーバー列は表示されません。タスク・リストにサーバー列を表示するには、このパラメータをtrueに設定して渡す必要があります。
これはワークフロー・コンテキストのトークン文字列です。ワークフロー・コンテキストをタスク・フロー内部に作成する場合に使用します。
注意:
アプリケーションがSSO対応であるか、ADFセキュリティを使用して保護されている場合、このパラメータは必要ありません。それ以外の場合、このパラメータは必須です。
ワークフロー・コンテキスト識別子を取得する手順
次のコマンドを実行します。
IWorkflowContext wfCtx = wfSvcClient.getTaskQueryService().authenticate(username, password, realm, null); wfCtxID = wfCtx.getToken();
デジタル証明書には、認証局のデジタル署名が含まれ、その証明書が真正なものであることを確認できます。参加者の資格証明は、デジタル証明書によって証明されます。証明書は認証機関によって発行されます。ユーザー名、シリアル番号、有効期限、証明書所有者の公開鍵のコピー(メッセージとデジタル署名の暗号化に使用)、および証明書発行者のデジタル署名が記載されているため、受信者は証明書が本物であることを確認できます。
図A-1に示すように、デシジョンに署名する場合は、デジタル証明書をアップロードできます。証明書を使用してタスクの結果に署名する場合は、認証機関によって発行された1つの証明書のみでなく、証明書のチェーン全体をアップロードする必要があります。チェーンを.P7B
(PKCS7形式)ファイルとしてアップロードします。
アプリケーションを作成し、証明書タスク・フローをアプリケーションに埋め込むには、「サンプル: プロセス・ワークスペースのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順を手順9を除いてすべて実行します。ステップ9は、証明書にパラメータがないため実行する必要はありません。
レポートのタスク・フローの詳細は、プロセス・ワークスペースでのレポートを使用したワークフローの管理を参照してください。
アプリケーションを作成し、レポート・タスク・フローをアプリケーションに埋め込むには、「サンプル: プロセス・ワークスペースのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順を手順9を除いてすべて実行します。ステップ9は、レポートにパラメータがないため実行する必要はありません。
アプリケーション・プリファレンスのタスク・フローの詳細は、プロセス・ワークスペースでの「作業アイテム」パネルの表示の設定を参照してください。
アプリケーションを作成し、アプリケーション・プリファレンス・タスク・フローをそれに埋め込むには、「サンプル: プロセス・ワークスペースのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順を手順9を除いてすべて実行します。ステップ9は、アプリケーション・プリファレンスにパラメータがないため実行する必要はありません。
フレックス・フィールドのタスク・フローの詳細は、プロセス・ワークスペースでのマップ済属性(フレックス・フィールド)の管理を参照してください。
アプリケーションを作成し、フレックス・フィールド・タスク・フローをそれに埋め込むには、「サンプル: プロセス・ワークスペースのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順を手順9を除いてすべて実行します。ステップ9は、フレックス・フィールドにパラメータがないため実行する必要はありません。
ルールのタスク・フローの詳細は、プロセス・ワークスペースでのユーザー・ルールの作成方法を参照してください。
showOtherUsersRulesパラメータはブール値を使用します。Trueを設定して渡した場合は、他のユーザーのルールが表示されます。Falseを設定して渡した場合、他のユーザーのルールは表示されません。また、このユーザーには他のユーザーのルールを表示するための権限が必要です。
アプリケーションを作成し、ルール・タスク・フローをそれに埋め込むには、「サンプル: プロセス・ワークスペースのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順を手順9を除いてすべて実行します。ステップ9は、ルール・フィールドにパラメータがないため実行する必要はありません。
この項では、次の項目について説明します。
プロセス・ワークスペースで使用できるアプリケーションは、プロセス設計およびログイン中のユーザーに割り当てられているロールによって異なります。また、使用可能なアプリケーションのリストは、デプロイ済で実行中のBPMプロセスによって異なります。実行中のプロセスがない場合、または実行中のいずれかのプロセスでアプリケーションを実行する権限がユーザーにない場合、「アプリケーション」パネルには何も表示されません。図A-2に、プロセス・ワークスペースでの「アプリケーション」パネルの場所を示します。
表A-1 プロセス・アプリケーションのタスク・フロー
フィールド | 説明 |
---|---|
タスク・フロー定義ファイル: |
|
説明: |
ユーザーが使用できるアプリケーションのリスト(タスクのリスト)をレンダリングします。アプリケーションを実行すると、デプロイ済の様々なプロセスにインスタンスが作成されます。 |
引数: |
なし。 |
表A-2 プロセス・インスタンスのタスク・フロー
フィールド | 説明 |
---|---|
タスク・フロー定義ファイル: |
|
説明: |
特定のビュー(デフォルトでは「受信ボックス」ビュー)に対応するインスタンスのリストを表形式でレンダリングします。この表に表示される列は、選択したビューに関連付けられているプレゼンテーションで定義され、ここから編集できます。また、検索機能もあります。 |
引数: |
|
表A-4 ダッシュボード・ウィジェットのタスク・フロー
フィールド | 説明 |
---|---|
タスク・フロー定義ファイル: |
widgetTaskflow.xml |
説明: |
ウィジェット(キューブに格納されている情報を表示するグラフ)をレンダリングします。このウィジェットは、定義済のウィジェット(「参加者ごとのワークロード」、「プロセスごとのパフォーマンス」など)のいずれか、またはカスタム・ウィジェットです。 |
引数: |
|
アプリケーション・ロールのタスク・フローには、アプリケーション・コンテキストOracleBPMProcessRolesAppに対してシステムに定義されているアプリケーション・ロールのリストが表示されます。ユーザーは、アプリケーション・ロールを検索し、ロールを選択してメンバー(ユーザー、グループまたはその他のロール)を追加できます。また、ロールに対してビジネス・カレンダと組織単位のマッピングを定義することもできます。
図A-4は、ロールの「詳細」パネルを示しています。
このタスク・フローを使用すると、新しい組織単位の作成または既存の組織単位の編集ができます。
組織単位のタスク・フローの詳細は、プロセス・ワークスペースでの組織の管理 を参照してください。
図A-5に、組織単位の「詳細」パネルを示します。
ビジネス・カレンダおよび休日リストのタスク・フローの詳細は、「プロセス・ワークスペースでのカレンダの管理」および「プロセス・ワークスペースでの休日ルールの管理」を参照してください。
表A-5 タスク・フロー用のJARファイル
JARファイル | 場所 |
---|---|
|
|
|
この.jarファイルは、プロセス・スペースのインストールにのみパッケージ化されています。次のライブラリが含まれており、これらをカスタムADFアプリケーションで指定する必要があります。
|
|
|
この項では、次の項目について説明します。
このサンプルでは、アプリケーションを作成し、タスクリストのタスク・フローを埋め込む方法について説明します。
タスクリストADFライブラリのjarファイルadflibTaskListTaskFlow.jar
がクラス・パスに存在している必要があります。このjarは、Oracle JDeveloperのBPMワークリスト・コンポーネント・ライブラリにあります。
次に、アプリケーションにタスク・フローを埋め込む手順を示します。これらと同じ手順を使用して新しいサンプルを作成できます。
アプリケーションにタスクリストのタスク・フローを埋め込む手順は、次のとおりです。
図A-6に示すように、Oracle JDeveloperで新規Fusion Webアプリケーションを作成し、TaskListTaskFlowSampleという名前を付けます。
タスク・フローのjar adflibTaskListTaskFlow.jar
をプロジェクトのクラス・パスに追加します。
図A-7に示すように、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」を参照してください。
図A-8に示すように、JSPXファイルtestSample.jspx
を作成します。
コンポーネント・パレットから「adflibTaskListTaskFlow.jar
」を選択します。
図A-9に示すように、すべてのタスク・フローのリストが含まれています。
いずれかのタスク・フローをリージョンとしてJSPXページにドラッグ・アンド・ドロップします。
図A-10に、例として、TaskListTaskFlowをリージョンとしてJSPXページにドロップした場合を示します。
図A-10 JSPXテスト・ページにTaskListタスク・フローがあるOracle JDeveloper
タスク・フローをJSPXページにドラッグすると、ポップアップに使用可能なパラメータのリストが表示されます。これらのパラメータの詳細は、Oracle Fusion Middleware Oracle Business Process Management Studioを使用したビジネス・プロセスの作成を参照してください。
「タスク・フロー・バインディングの編集」ダイアログ・ボックスが表示されます。
図A-11に示すように、「タスク・フロー・バインディングの編集」ダイアログ・ボックスで、タスク・フローのパラメータを渡します。
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
」を選択します。
図A-12は、編集済のWARデプロイメント・プロファイルを示しています。
ADFセキュリティを使用してアプリケーションを保護します。保護するには、図A-13に示すように、アプリケーション・レベルのメニューから「保護」、「ADFセキュリティの構成」の順に移動します。
「ADFセキュリティの有効化」ダイアログ・ボックスが表示されます。
図A-14に示すように、「ADF認証」を選択します。
「次へ」をクリックします。「認証タイプの選択」ダイアログ・ボックスが表示されます。
注意:
ADF認証および認可を選択する場合、次の手順を実行します。
「アプリケーション・リソース」、「ディスクリプタ」、「META-INFO」フォルダで、jazn-data.xml
を開きます。
「リソース権限」を選択します。
タスク・フローのタイプを選択します。
「ADFライブラリからインポートされたタスク・フローを示します」を選択します。
「リソース」リストにタスク・フローが表示されます。
アプリケーションで使用した適切なタスクフロー(例: taskList-task-flow-definition
)を選択します(タスクのドリル機能が動作するには、taskList-task-flow-definition
に/taskDetail-task-flow-definition
の権限も必要です)。
"表示"権限に選択したロールに付与を追加します。
図A-15に示すように、「HTTP Basic認証」を選択します。
Fusion WebアプリケーションでのADFセキュリティの有効化については、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。
「終了」をクリックします。
注意:
タスク・フローをフェデレーテッド・モードで使用している場合は、次の手順を実行します。
フェデレーテッド・サーバーのリストをタスク・フローに渡します。詳細は、「federatedServers」を参照してください。
フェデレーテッド・サーバー間のグローバル・トラストを有効にします。有効にするのは、すでにフェデレートされたユーザー・トークンがすべてのフェデレーテッド・サーバーに渡されるようにするためです。次の手順を実行します。
Oracle WebLogic Serverコンソールにログインします。
「ドメイン構造」で、ドメイン名base_domain
を選択します。SOA以外のサーバーを使用している場合は、ドメイン名が異なる場合があります。ドメイン名は、構成時に変更できます。
「セキュリティ」タブを選択します。
「拡張」リンク(下部の「保存」ボタンの近くにあります)をクリックします。
「資格証明」フィールドにパスワードを指定します。(すべてのフェデレーテッド・サーバーに対して同じパスワードを指定する必要があります)。
「保存」をクリックします。
サーバーを再起動します。
EARデプロイメント・プロファイルを作成し、EARを作成してデプロイします。
EARをデプロイする手順は次のとおりです。
サーバーを選択します。「ドメイン内の全サーバー・インスタンスへのデプロイ」チェック・ボックスの選択を解除します。「次へ」をクリックします。
「サーバー・インスタンス」ダイアログ・ボックスが表示されます。
サーバー・インスタンスを選択し、「終了」をクリックします。
server
およびport
に適切な値を指定して、次のリンクにアクセスします。http://server:port/TaskListTaskFlowSample-ViewController-context-root/faces/testSample.jspx
ログイン・ポップアップ・ウィンドウが表示されます。任意のユーザーでログインします。図A-18に示すように、ログインしたユーザー用のタスク・リストが表示されます。
タスク・フローをフェデレーテッド・モードで使用している場合は、「表示」リストにサーバーのリストが表示されます。リストから任意の組合せのサーバーを選択すると、タスク・リストがリフレッシュされ、選択したサーバーに属しているすべてのタスクが表示されます。パラメータshowServerColumn
をtrueに設定して渡した場合は、タスク・リストにサーバー列が表示され、タスクが属しているサーバーが示されます。
いずれかのタスク・タイトルのリンクをクリックすると、新しいブラウザ・ウィンドウにタスクの詳細が表示されます。
アプリケーションがtaskList-task-flow-definition.xml (前述の手順でページにドロップしたタスクリスト)に対して認可されている場合、タスクの詳細への移動機能を使用するには、関連するセキュリティ権限が付与されている必要があります。
wlst.shを使用してCommonドメインに接続し、次のWLSTコマンドを実行して、/WEB-INF/taskDetail-task-flow-definition.xml#taskDetail-task-flow-definition
のタスク・フロー表示権限を認証ロールに付与します。
grantPermission(appStripe="YOUR_APP_STRIPE_NAME", principalClass="oracle.security.jps.internal.core.principals.JpsAuthenticatedRoleImpl", principalName="authenticated-role", permClass="oracle.adf.controller.security.TaskFlowPermission", permTarget="/WEB-INF/taskDetail-task-flow-definition.xml#taskDetail-task-flow-definition", permActions="view")
このサンプルでは、ADFページを作成し、3つのタスク・フローを追加する方法について説明します。
このページは2つの部分に分かれています。左側からタスク・フローを選択すると、対応するタスク・フローが右側に表示されます。
タスク・フローを使用してADFページを作成する手順は、次のとおりです。
サンプル1: 埋込みタスクリストのタスク・フローを使用したアプリケーションの作成の手順1から6を実行します。
JSPXページを次のように構成します。
コンポーネント・パレットで、「ADF Faces」を選択します。
「パネル・ストレッチ・レイアウト」をJSPXページにドラッグ・アンド・ドロップします。
JSPXページから「上」、「開始」、「下」および「終了」を削除します。
JSPXページは、図A-19のように表示されます。
コンポーネント・パレットからJSPXページに「パネル・スプリッタ」をドラッグ・アンド・ドロップします。
JSPXページは、図A-20のように表示されます。
ナビゲータで、ビュー・コントローラを右クリックして新規のJavaクラスを作成します。それにSampleController.java
という名前を付けます。
図A-21に示すように、getterおよびsetterを使用してprivate transient UIComponent rightPanel = null;
を追加します。
ナビゲータで、「Faces-config.xml」ファイルを選択します。図A-22に示すように、マネージド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}
図A-23に示すように、コンポーネント・パレットから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」をドラッグ・アンド・ドロップします。
作業を保存します。
サンプル1: 埋込みタスクリストのタスク・フローを使用したアプリケーションの作成の手順10から19を実行します。
この項では、クライアント構成ファイル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オブジェクトの作成時に、クライアント・タイプを明示的に設定する必要があります。次に例を示します。
ServerType server1 = new ServerType(); server1.setClientType("REMOTE"); // If REMOTE client is to be used.
または
server1.setClientType("SOAP"); // If SOAP client is to be used.
クライアント・タイプを指定しないと、デフォルトの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; } }