ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Process Managementユーザーズ・ガイド
11g リリース(11.1.1.6.2)
B61408-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

A Oracle Business Process Management Workspaceのタスク・フローを使用したカスタムADFアプリケーションの作成

プロセス・ワークスペースで使用できる様々な機能は、タスク・フローと呼ばれるスタンドアロンの再利用可能なコンポーネントとして公開されます。この付録では、各タスク・フローの機能に関する基本的な情報を説明します。

タスク・フローは、Oracle Application Development Framework (ADF)アプリケーションに埋め込むことができます。これらのスタンドアロンのタスク・フローには多数のパラメータが用意されており、これらのパラメータを使用してカスタマイズ・アプリケーションを作成できます。

タスク・フローはすべてADFライブラリにバンドルされており、ここから埋込み先のアプリケーションに組み込むことができます。

その後で、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」で、TaskListTaskFlowを使用したサンプル・タスク・フローによって、アプリケーションにタスク・フローを埋め込むための詳細な手順、およびアプリケーションのカスタマイズ、デプロイ、実行方法を示します。

様々なタスク・フローの詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。

この付録では、次の項目について説明します。


注意:

この付録では、Oracle Application Development Frameworkとセキュリティの両方を詳しく理解していることを前提としています。


A.1 ユーザー関連のタスク・フロー

この項には次のトピックが含まれます:

A.1.1 タスク・リストのタスク・フロー

タスク・フローでは、埋め込まれたリージョンの表示方法の制御にパラメータが使用されます。この項では、次のパラメータについて説明します。

パラメータの全リストについては、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。

図A-1 プロセス・ワークスペースの「タスク」ページ

この図の説明が続きます
「図A-1 プロセス・ワークスペースの「タスク」ページ」の説明

A.1.1.1 federatedMode

このパラメータをtrueに設定すると、タスク・リストがフェデレーテッド・モードで表示されます。タスク・フローをフェデレーテッド・モードで実行するには、フェデレーテッド・サーバーのリストをタスク・フローに渡す必要があります。フェデレーテッド・サーバーのリストをタスク・フローに渡す方法については、A.1.1.2項「federatedServers」を参照してください。

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オブジェクトが優先されます。

A.1.1.3 showServerColumn

タスク・フローをフェデレーテッド・モードで実行する場合、タスク・リストのサーバー列はデフォルトでは表示されません。タスク・リストにサーバー列を表示するには、このパラメータをtrueに設定して渡す必要があります。

A.1.1.4 wfCtxID

これはワークフロー・コンテキストのトークン文字列です。ワークフロー・コンテキストをタスク・フロー内部に作成する場合に使用します。


注意:

アプリケーションがSSO対応であるか、ADFセキュリティを使用して保護されている場合、このパラメータは必要ありません。それ以外の場合、このパラメータは必須です。


ワークフロー・コンテキスト識別子を取得する手順

次のコマンドを実行します。

IWorkflowContext wfCtx = wfSvcClient.getTaskQueryService().authenticate(username,

password,

realm,

null);

wfCtxID = wfCtx.getToken();

A.1.2 証明書のタスク・フロー

デジタル証明書には、認証局のデジタル署名が含まれ、その証明書が真正なものであることを確認できます。デジタル証明書は参加者の資格証明を確立します。証明書は認証機関によって発行されます。名前、シリアル番号、有効期限、証明書保有者の公開鍵のコピー(メッセージおよびデジタル署名の暗号化に使用)、証明書発行機関のデジタル署名(これにより、受信者は証明書が真正のものであることを確認可能)が証明書に含まれます。

図A-2に示すように、デシジョンに署名する場合は、デジタル証明書をアップロードできます。証明書を使用してタスクの結果に署名する場合は、認証機関によって発行された1つの証明書のみでなく、証明書のチェーン全体をアップロードする必要があります。チェーンを.P7B (PKCS7形式)ファイルとしてアップロードします。

図A-2 証明書のアップロード

この図の説明が続きます
「図A-2 証明書のアップロード」の説明

アプリケーションを作成し、証明書のタスク・フローを埋め込むには、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順をステップ9を除いてすべて実行します。ステップ9は、証明書にパラメータがないため実行する必要はありません。

A.1.3 レポートのタスク・フロー

レポートのタスク・フローの詳細は、8.6項「プロセス・ワークスペースでのレポートを使用したワークフローの管理」を参照してください。

アプリケーションを作成し、レポートのタスク・フローを埋め込むには、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順をステップ9を除いてすべて実行します。ステップ9は、レポートにパラメータがないため実行する必要はありません。

A.1.4 アプリケーション・プリファレンスのタスク・フロー

アプリケーション・プリファレンスのタスク・フローの詳細は、9.1項「プロセス・ワークスペースでの「作業アイテム」パネル(アプリケーション・プリファレンス)の表示の設定」を参照してください。

アプリケーションを作成し、アプリケーション・プリファレンスのタスク・フローを埋め込むには、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順をステップ9を除いてすべて実行します。ステップ9は、アプリケーション・プリファレンスにパラメータがないため実行する必要はありません。

A.1.5 フレックス・フィールドのタスク・フロー

フレックス・フィールドのタスク・フローの詳細は、9.2.1項「プロセス・ワークスペースでのマップ済属性(フレックス・フィールド)の管理」を参照してください。

アプリケーションを作成し、フレックス・フィールドのタスク・フローを埋め込むには、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順をステップ9を除いてすべて実行します。ステップ9は、フレックス・フィールドにパラメータがないため実行する必要はありません。

A.1.6 ルールのタスク・フロー

ルールのタスク・フローの詳細は、3.9.1項「プロセス・ワークスペースでのユーザー・ルールの作成方法」を参照してください。

showOtherUsersRulesパラメータはブール値を使用します。Trueを設定して渡した場合は、他のユーザーのルールが表示されます。Falseを設定して渡した場合、他のユーザーのルールは表示されません。また、このユーザーには他のユーザーのルールを表示するための権限が必要です。

アプリケーションを作成し、ルールのタスク・フローを埋め込むには、A.5項「サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ」の手順をステップ9を除いてすべて実行します。ステップ9は、ルール・フィールドにパラメータがないため実行する必要はありません。

A.2 プロセスのタスク・フロー

この項には次のトピックが含まれます:

A.2.1 プロセス・アプリケーションのタスク・フロー

プロセス・ワークスペースで使用できるアプリケーションは、プロセス設計およびログイン中のユーザーに割り当てられているロールによって異なります。また、使用可能なアプリケーションのリストは、デプロイ済で実行中のBPMプロセスによって異なります。実行中のプロセスがない場合、または実行中のいずれかのプロセスでアプリケーションを実行する権限がユーザーにない場合、「アプリケーション」パネルには何も表示されません。図A-3に、プロセス・ワークフローでの「アプリケーション」パネルの場所を示します。

図A-3 「アプリケーション」パネル

この図の説明が続きます
「図4-3 「アプリケーション」パネル」の説明

表A-1 プロセス・アプリケーションのタスク・フロー

タスク・フロー定義ファイル:

processApplicationsTaskflow.xml

説明:

ユーザーが使用できるアプリケーションのリスト(タスクのリスト)をレンダリングします。アプリケーションを実行すると、デプロイ済の様々なプロセスにインスタンスが作成されます。

引数:

なし


A.2.2 プロセス・インスタンスのタスク・フロー

表A-2 プロセス・インスタンスのタスク・フロー

タスク・フロー定義ファイル:

processInstancesTaskflow.xmll

説明:

特定のビュー(デフォルトでは「受信ボックス」ビュー)に対応するインスタンスのリストを表形式でレンダリングします。この表に表示される列は、選択したビューに関連付けられているプレゼンテーションで定義され、ここから編集できます。また、検索機能もあります。

引数:

viewId: 最初にレンダリングされるビューを指定します。デフォルトでは受信ボックスがレンダリングされます。


A.2.3 プロセス・インスタンスの詳細のタスク・フロー

表A-3 プロセス・インスタンスのタスク・フロー

タスク・フロー定義ファイル:

processInstanceDetailTaskflow.xmll

説明:

オープン・アクティビティ、監査証跡(表およびグラフ形式の両方)、コメントおよび添付ファイルなど、インスタンスの詳細をレンダリングします。

引数:

instanceId: このインスタンスIDに関連付けられている詳細がレンダリングされます。


図A-4 作業アイテムの「詳細」パネル

この図の説明が続きます
「図A-4 作業アイテムの「詳細」パネル」の説明

A.3 プロセス分析のタスク・フロー

この項には次のトピックが含まれます:

A.3.1 ダッシュボード・ウィジェットのタスク・フロー

表A-4 ダッシュボード・ウィジェットのタスク・フロー

タスク・フロー定義ファイル:

widgetTaskflow.xml

説明:

ウィジェット(キューブに格納されている情報を表示するグラフ)をレンダリングします。このウィジェットは、定義済のウィジェット(「参加者ごとのワークロード」、「プロセスごとのパフォーマンス」など)のいずれか、またはカスタム・ウィジェットです。

引数:

widgetId: レンダリングされるウィジェットのID。

showSelector: ブール値(true/false)。使用可能なすべてのウィジェットをリストするドロップダウンをレンダリングするかどうかを示します。ユーザーがウィジェットを選択したり、あるウィジェットから他のウィジェットに変更できます。


図A-5 プロセス・パフォーマンス・ダッシュボード

この図については本文で説明しています。

A.3.2 アプリケーション・ロールのタスク・フロー

アプリケーション・ロールのタスク・フローには、アプリケーション・コンテキストOracleBPMProcessRolesAppに対してシステムに定義されているアプリケーション・ロールのリストが表示されます。ユーザーは、アプリケーション・ロールを検索し、ロールを選択してメンバー(ユーザー、グループまたはその他のロール)を追加できます。また、ロールに対してビジネス・カレンダと組織単位のマッピングを定義することもできます。

図A-6 ロールの「詳細」パネル

この図の説明が続きます
「図A-6 ロールの「詳細」パネル」の説明

A.3.3 組織単位のタスク・フロー

このタスク・フローを使用すると、新しい組織単位の作成または既存の組織単位の編集ができます。

組織単位のタスク・フローの詳細は、第10章「プロセス・ワークスペースでの組織の管理(管理者向け)」を参照してください。

図A-7に、「組織単位」の「詳細」パネルを示します。

図A-7 組織単位の「詳細」パネル

この図の説明が続きます
「図A-7 組織単位の「詳細」パネル」の説明

A.3.4 パラメータ・ロールのタスク・フロー

パラメータ・ロールのタスク・フローの詳細は、第10.6項「プロセス・ワークスペースでのパラメータ・ロールの管理」を参照してください。

A.3.5 ビジネス・カレンダおよび休日リストのタスク・フロー

ビジネス・カレンダおよび休日リストのタスク・フローの詳細は、10.3項「プロセス・ワークスペースでのカレンダ・ルールの管理」および10.2項「プロセス・ワークスペースでの休日ルールの管理」を参照してください。

A.3.6 拡張ユーザー・プロパティのタスク・フロー

拡張ユーザー・プロパティのタスク・フローの詳細は、第10.7項「プロセス・ワークスペースでの拡張ユーザー・プロパティの管理」を参照してください。

A.4 タスク・フロー用の.JARファイル

表A-5 タスク・フロー用のJARファイル

JARファイル 場所

adflibTaskListTaskFlow.jar

$FMW_HOME/AS11gR1SOA/soa/modules/oracle.soa.worklist_11.1.1

oracle.bpm.workspace-adflib.jar

このjarは、プロセス・ポータルのインストールにのみパッケージ化されています。

adflibWorkspaceTaskFlows.jar

$FMW_HOME/AS11gR1SOA/soa/modules/oracle.soa.worklist_11.1.1


A.5 サンプル: Oracle Business Process Management Workspaceのタスク・フローを使用したADFアプリケーションのカスタマイズ

この項には次のトピックが含まれます:

A.5.1 サンプル1: 埋込みタスクリストのタスク・フローを使用したアプリケーションの作成

このサンプルでは、アプリケーションを作成し、タスクリストのタスク・フローを埋め込む方法について説明します。

タスクリストADFライブラリのjarファイルadflibTaskListTaskFlow.jarがクラス・パスに存在している必要があります。このjarは、Oracle JDeveloperのBPMワークリスト・コンポーネント・ライブラリにあります。

次に、アプリケーションにタスク・フローを埋め込む手順を示します。これらと同じ手順を使用して新しいサンプルを作成できます。

アプリケーションにタスクリストのタスク・フローを埋め込む手順は、次のとおりです。

  1. Oracle JDeveloperで新規Fusion Webアプリケーションを作成し、TaskListTaskFlowSampleという名前にします。

    図A-8 新規Oracle Fusion Middlewareアプリケーションの作成

    この図の説明が続きます
    「図A-8 新規Oracle Fusion Middlewareアプリケーションの作成」の説明

  2. タスク・フローのjar adflibTaskListTaskFlow.jarをプロジェクトのクラス・パスに追加します。JDeveloperの「ライブラリとクラスパス」セクションからBPMワークリスト・コンポーネント・ライブラリを組み込み、ライブラリを追加します。このライブラリには、adflibWorklistComponents.jarも含まれています。このファイルもクラス・パスに存在する必要があります。

    図A-9 BPMワークリスト・コンポーネント・ライブラリの追加

    この図の説明が続きます
    「図A-9 BPMワークリスト・コンポーネント・ライブラリの追加」の説明

  3. BPMサービス・ライブラリをクラス・パスに追加します。

    図A-10 BPMサービス・ライブラリの追加

    この図の説明が続きます
    「図A-10 BPMサービス・ライブラリの追加」の説明

  4. WSRPコンテナ・ライブラリをクラス・パスに追加します。

    図A-11 WSRPコンテナ・ライブラリの追加

    この図の説明が続きます
    「図A-11 WSRPコンテナ・ライブラリの追加」の説明

  5. アプリケーションを非SOAサーバーで実行している場合は、Oracle Fusion Middleware Oracle SOA Suite開発者ガイドに記載されている2つの追加手順を実行する必要があります。

    1. oracle.soa.workflow共有ライブラリをインストールします。サーバーにoracle.soa.workflow.wcをインストール済の場合、oracle.soa.workflowをインストールする必要はありません。

      oracle.soa.workflow共有ライブラリのインストールの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

    2. 非SOAサーバーで外部JNDIを構成します。

      非SOAサーバーでの外部JNDIの構成の詳細は、Oracle Fusion Middleware Oracle WebLogic ServerのJNDIのプログラミングを参照してください。


      注意:

      タスク・リストのタスク・フローをフェデレーテッド・モードで実行している場合、この手順を実行する必要はありません。タスク・フローをフェデレーテッド・モードで使用する方法は、パラメータfederatedModeを参照してください。


  6. JSPXファイルtestSample.jspxを作成します。

    図A-12 JSPXファイルの作成

    この図の説明が続きます
    「図A-12 JSPXファイルの作成」の説明

  7. コンポーネント・パレットから「adflibTaskListTaskFlow.jar」を選択します。この中に、すべてのタスク・フローが含まれています。

    図A-13 adflibTaskListTaskFlow.jarの選択

    この図の説明が続きます
    「図A-13 adflibTaskListTaskFlow.jarの選択」の説明

  8. いずれかのタスク・フローをリージョンとしてJSPXページにドラッグ・アンド・ドロップします。図A-14に、例として、TaskListTaskFlowをリージョンとしてJSPXページにドロップした場合を示します。

    図A-14 JSPXテスト・ページにTaskListタスク・フローがあるOracle JDeveloper

    この図の説明が続きます
    「図A-14 JSPXテスト・ページにTaskListタスク・フローがあるOracle JDeveloper」の説明

    タスク・フローをJSPXページにドラッグすると、ポップアップに使用可能なパラメータのリストが表示されます。これらのパラメータについては、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。

    「タスク・フロー・バインディングの編集」ダイアログ・ボックスが表示されます。

  9. 「タスク・フロー・バインディングの編集」ダイアログ・ボックスで、タスク・フローのパラメータを渡します。

    図A-15 タスク・フロー・パラメータの受渡し

    この図の説明が続きます
    「図A-15 タスク・フロー・パラメータの受渡し」の説明

    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>
    
  10. 次の共有ライブラリをweblogic-application.xmlに追加します。サーバーにoracle.soa.workflow.wcをインストール済の場合は、次のように指定してそのライブラリを追加します。

    <library-ref>
    <library-name>oracle.soa.workflow</library-name>
    </library-ref>
    
  11. WARデプロイメント・プロファイルを開いて編集します。これを行うには:

    1. ViewControllerを右クリックします。

    2. 「デプロイメント」を選択します。

    3. 「WARファイル」を選択します。

    4. 「編集」をクリックします。

    5. adflibTaskListTaskFlow.jar」、「adflibWorklistComponents.jar」および「wsrp-container.jar」を選択します。

    図A-16 WARデプロイメント・プロファイルの編集

    この図の説明が続きます
    「図A-16 WARデプロイメント・プロファイルの編集」の説明

  12. ADFセキュリティを使用してアプリケーションを保護します。保護するには、図A-17に示すように、アプリケーションレベルのメニューから「保護」「ADFセキュリティの構成」の順にナビゲートします。

    図A-17 アプリケーションを保護するためのナビゲート

    この図の説明が続きます
    「図A-17 アプリケーションを保護するためのナビゲート」の説明

    「ADFセキュリティの有効化」ダイアログ・ボックスが表示されます。

  13. 図A-18に示すように、「ADF認証」を選択します。

    図A-18 ADF認証の選択

    この図の説明が続きます
    「図A-18 ADF認証の選択」の説明

    「次へ」をクリックします。「認証タイプの選択」ダイアログ・ボックスが表示されます。


    注意:

    ADF認証および認可を選択する場合、次の手順を実行します。

    1. 「アプリケーション・リソース」、「ディスクリプタ」、「META-INFO」フォルダで、jazn-data.xmlを開きます。

    2. 「リソース権限」を選択します。

    3. タスク・フローのタイプを選択します。

    4. 「ADFライブラリからインポートされたタスク・フローを示します」を選択します。

      「リソース」リストにタスク・フローが表示されます。

    5. アプリケーションで使用したタスク・フロー(taskList-task-flow-definitionなど)を選択します。

    6. "表示"権限に選択したロールに付与を追加します。


  14. 図A-19に示すように、「HTTP Basic認証」を選択します。

    図A-19 HTTP Basic認証の選択

    この図の説明が続きます
    「図A-19 HTTP Basic認証の選択」の説明

    Fusion WebアプリケーションでのADFセキュリティの有効化については、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。

    「終了」をクリックします。


    注意:

    タスク・フローをフェデレーテッド・モードで使用している場合は、次の手順を実行します。

    • フェデレーテッド・サーバーのリストをタスク・フローに渡します。詳細は、A.1.1.2項「federatedServers」を参照してください。

    • フェデレーテッド・サーバー間のグローバル・トラストを有効にします。有効にするのは、すでにユーザー・トークンがすべてのフェデレーテッド・サーバーに渡されるようにするためです。手順は次のとおりです。

      1. Oracle WebLogic Serverコンソールにログインします。

      2. 「ドメイン構造」で、ドメイン名base_domainを選択します。SOA以外のサーバーを使用している場合は、ドメイン名が異なる場合があります。ドメイン名は、構成時に変更できます。

      3. 「セキュリティ」タブを選択します。

      4. 「詳細」リンク(下部の「保存」ボタンの近くにあります)をクリックします。

      5. 「資格証明」フィールドにパスワードを指定します。(すべてのフェデレーテッド・サーバーに対して同じパスワードを指定する必要があります)

      6. 「保存」をクリックします。

      7. サーバーを再起動します。


  15. EARデプロイメント・プロファイルを作成し、EARを作成してデプロイします。EARをデプロイする手順は、次のとおりです。

    1. アプリケーションレベルのメニューから、「デプロイ」「TaskListTaskFlowSample_Appl...」の順にナビゲートします。

      図A-20 アプリケーションのデプロイ

      この図の説明が続きます
      「図A-20 アプリケーションのデプロイ」の説明

      「デプロイメント・アクション」ダイアログ・ボックスが表示されます。

    2. 図A-21に示すように、「アプリケーション・サーバーへのデプロイ」を選択します。

      図A-21 アプリケーション・サーバーのデプロイ

      この図の説明が続きます
      「図A-21 アプリケーション・サーバーのデプロイ」の説明

      「次へ」をクリックします。「サーバーの選択」ダイアログ・ボックスが表示されます。

  16. サーバーを選択します。「ドメイン内の全サーバー・インスタンスへのデプロイ」の選択を解除します。「次へ」をクリックします。

    「サーバー・インスタンス」ダイアログ・ボックスが表示されます。

  17. サーバー・インスタンスを選択し、「終了」をクリックします。

  18. serverおよびportに適切な値を指定して、次のリンクにアクセスします。http://server:port/TaskListTaskFlowSample-ViewController-context-root/faces/testSample.jspx

    ログイン用のポップアップが表示されます。任意のユーザーでログインします。図A-22に示すように、ログインしたユーザー用のタスク・リストが表示されます。

    タスク・フローをフェデレーテッド・モードで使用している場合は、「表示」リストにサーバーのリストが表示されます。リストから任意の組合せのサーバーを選択すると、タスク・リストがリフレッシュされ、選択したサーバーに属しているすべてのタスクが表示されます。パラメータshowServerColumnをtrueに設定して渡した場合は、タスク・リストにサーバー列が表示され、タスクが属しているサーバーが示されます。

    図A-22 プロセス・ワークスペースのタスク・リスト

    この図の説明が続きます
    「図A-22 プロセス・ワークスペースのタスク・リスト」の説明

    いずれかのタスク・タイトルのリンクをクリックすると、新しいブラウザ・ウィンドウにタスクの詳細が表示されます。

A.5.2 サンプル2: タスク・フローを使用したADFページの作成

このサンプルでは、ADFページを作成し、3つのタスク・フローを追加する方法について説明します。

ページは2つのパートに分かれます。左側からタスク・フローを選択すると、対応するタスク・フローが右側に表示されます。

タスク・フローを使用してADFページを作成する手順は、次のとおりです。

  1. A.5.1項「サンプル1: 埋込みタスクリストのタスク・フローを使用したアプリケーションの作成」のステップ1から6に従います。

  2. JSPXページを次のように構成します。

    1. コンポーネント・パレットで、「ADF Faces」を選択します。

    2. 「パネル・ストレッチ・レイアウト」をJSPXページにドラッグ・アンド・ドロップします。

    3. JSPXページから「上」、「開始」、「下」および「終了」を削除します。JSPXページは、図A-23のようになります。

    図A-23 JSPXページの構成

    この図の説明が続きます
    「図A-23 JSPXページの構成」の説明

  3. コンポーネント・パレットからJSPXページに「パネル・スプリッタ」をドラッグ・アンド・ドロップします。JSPXページは、図A-24のように表示されます。

    図A-24 JSPXページの分割パネル

    この図の説明が続きます
    「図A-24 JSPXページの分割パネル」の説明

  4. ナビゲータで、ビュー・コントローラを右クリックして新規のJavaクラスを作成します。それにSampleController.javaという名前を付けます。

    図A-25に示すように、getterおよびsetterを使用してprivate transient UIComponent rightPanel = null;を追加します。

    図A-25 SampleController.javaの作成

    この図の説明が続きます
    「図A-25 SampleController.javaの作成」の説明

  5. ナビゲータで、Faces-config.xmlファイルを選択します。図A-26に示すように、マネージドBeanを指定し、「sampleControllerBean」という名前を設定します。

    図A-26 マネージドBeanの指定

    この図の説明が続きます
    「図A-26 マネージドBeanの指定」の説明

  6. 「パネル・ストレッチ・レイアウト」をsecondファセットにドラッグ・アンド・ドロップします。そこから「上」、「開始」、「下」および「終了」を削除します。プロパティ・インスペクタからPanelStrechLayout用のバインディングを#{sampleControllerBean.rightPanel}として指定します。

  7. コンポーネント・パレットから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}

  8. コンポーネント・パレットからJSPXページにリンクをドラッグ・アンド・ドロップします。プロパティ・インスペクタで、テキストに「Certificates」を指定します。SampleController Javaファイルに、次のコードを追加します。

    public void displayCertificates(ActionEvent event){

    setSelectedLink("CERTIFICATES");

    if(getRightPanel() != null){

    RequestContext.getCurrentInstance().addPartialTarget(getRightPanel());

    } }

    証明書の「アクション・リスナー」プロパティを次のように追加します。

    #{sampleControllerBean. displayCertificates }

  9. コンポーネント・パレットからJSPXページにリンクをドラッグ・アンド・ドロップします。プロパティ・インスペクタで、テキストに「Reports」を指定します。SampleController Javaファイルに、次のコードを追加します。

    public void displayReports(ActionEvent event){

    setSelectedLink("REPORTS");

    if(getRightPanel() != null){

    RequestContext.getCurrentInstance().addPartialTarget(getRightPanel());

    } }

    レポートの「アクション・リスナー」プロパティを次のように追加します。

    #{sampleControllerBean. displayReports}

  10. コンポーネント・パレットからsecondファセットのcenterファセットにスイッチャをドラッグ・アンド・ドロップします。

    プロパティ・インスペクタで、次のように指定します。

    • ファセット名を「#{sessionScope.sampleControllerBean.selectedLink}"」と指定します。

    • デフォルト・ファセットを「RULES」と指定します。

    図A-27 スイッチャの追加および指定

    この図の説明が続きます
    「図A-27 スイッチャの追加および指定」の説明

  11. af:switcher内で、f:facet name="RULES"という名前のファセットを定義します。このファセット内に、コンポーネント・パレットから(adflibTaskListTaskFlow.jar内の)「Rules-Task-Flow-Definition」をドラッグ・アンド・ドロップします。

  12. af:switcher内で、f:facet name="CERTIFICATES"という名前の別のファセットを定義します。このファセット内に、コンポーネント・パレットから(adflibTaskListTaskFlow.jar内の)「Certificates-Task-Flow-Definition」をドラッグ・アンド・ドロップします。

  13. af:switcher内で、f:facet name="REPORTS"という名前の別のファセットを定義します。このファセット内に、コンポーネント・パレットから(adflibTaskListTaskFlow.jar内の)「Reports-Task-Flow-Definition」をドラッグ・アンド・ドロップします。

  14. 作業内容を保存します。

  15. A.5.1項「サンプル1: 埋込みタスクリストのタスク・フローを使用したアプリケーションの作成」のステップ10から11に従います。

A.6 サンプル: Wf_client_config.xmlファイル

この項では、クライアント構成ファイルWf_client_config.xmlの例を示します。

フェデレーテッド・サーバー・リストにサーバーを含めない場合は、<server>要素にexcludeFromFederatedList="true"を指定します。

XMLの<server>要素にクライアント・タイプを明示的に指定する必要があります。

例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.us.oracle.com:7001</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>
<participateInClientTransaction>false</participateInClientTransaction>
      </remoteClient>
      <soapClient>
         <rootEndPointURL>http://sta00048.us.oracle.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.us.oracle.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.us.oracle.com:7001</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>
         <participateInClientTransaction>false</participateInClientTransaction>
      </remoteClient>
   </server>
   <server name="CRM" clientType="REMOTE">
      <soapClient>
         <rootEndPointURL>http://sta00048.us.oracle.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.us.oracle.com:7001</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>
         <participateInClientTransaction>false</participateInClientTransaction>
      </remoteClient>
   </server>
</workflowServicesClientConfiguration>

A.7 サンプル: WorkflowServicesClientConfigurationTypeオブジェクトを戻すメソッドを使用するBean

この項では、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;
  }
}