ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1 (11.1.1.7)
B56238-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

31 ヒューマン・ワークフローのチュートリアル

この章では、最初のワークフローを設計する方法を最初から最後まで説明します。

この章の内容は次のとおりです。

31.1 ヒューマン・ワークフローのチュートリアルの概要

このチュートリアルで開発するアプリケーションは、次のユースケースに基づいています。

このチュートリアルでは、新しいアプリケーションとSOAプロジェクトを作成する方法と、承認または却下のために休暇申請をマネージャに送信するヒューマン・タスクを設計する方法について説明します。

結果としてSOAコンポジット・アプリケーションには、次のコンポーネントが含まれます。

また、Oracle ADFベースのタスク・フォームの作成方法についても説明します。Oracle ADFベースのタスク・フォームを使用して、アプリケーションがデプロイされて実行されたときに、エンド・ユーザーが休暇申請の操作を行えるようにします。Oracle ADFベースのタスク・フォームを作成するには、新しいアプリケーションと新しいプロジェクトを作成する必要があります。

このチュートリアルでは、次のタスクをガイドします。

31.2 前提条件

このチュートリアルでは、次の内容を前提にしています。

  1. 次の構文を使用して、VacationRequest.xsdというファイルを作成します。このファイルには、休暇申請と後続のレスポンスに対するスキーマが含まれています。

    <schema attributeFormDefault="qualified" elementFormDefault="qualified"
            targetNamespace="http://xmlns.oracle.com/VacationRequest"
            xmlns="http://www.w3.org/2001/XMLSchema">
     <element name="VacationRequestProcessRequest">
      <complexType>
       <sequence>
        <element name="creator" type="string"/>
        <element name="fromDate" type="date"/>
        <element name="toDate" type="date"/>
        <element name="reason" type="string"/>
       </sequence>
      </complexType>
     </element>
     <element name="VacationRequestProcessResponse">
      <complexType>
       <sequence>
        <element name="result" type="string"/>
       </sequence>
      </complexType>
     </element>
    </schema>
    

    注意:

    VacationRequest.xsdファイルは、チュートリアルworkflow-100-VacationRequestの一部としてダウンロードすることもできます。このチュートリアルと他のチュートリアルのダウンロードの詳細は、第31.13項「その他のチュートリアル」を参照してください。


31.3 BPELプロセスを使用したアプリケーションおよびプロジェクトの作成

BPELプロセスを使用してアプリケーションおよびプロジェクトを作成する手順は、次のとおりです。

  1. Oracle JDeveloperを起動します。

  2. 「ファイル」メイン・メニューから「新規」「アプリケーション」「SOAアプリケーション」の順に選択します。

  3. 「OK」をクリックします。

  4. 「アプリケーション名」フィールドにVacationRequestと入力し、「次へ」をクリックします。

  5. 「プロジェクト名」フィールドにVacationRequestと入力し、「次へ」をクリックします。

  6. 「コンポジット・テンプレート」リストで、BPELプロセスを使用するコンポジットを選択し、「終了」をクリックします。

  7. 「BPELプロセスの作成」ダイアログが表示されます。

  8. 「名前」フィールドに、VacationRequestProcessと入力します。

  9. 「BPELプロセスの作成」ダイアログの下部に移動します。

  10. 「入力」フィールドの右側にある「検索」アイコンをクリックします。

    「タイプ・チューザ」ダイアログが表示されます。

  11. 右上隅にある「スキーマ・ファイルのインポート」アイコンをクリックします。

    「スキーマ・ファイルのインポート」ダイアログが表示されます。

  12. 第31.2項「前提条件」で作成したVacationRequest.xsdファイルを参照して選択します。

  13. 図31-1に示すように、「タイプ・チューザ」ダイアログに戻るまで、「OK」をクリックします。

    図31-1 リクエスト要素とレスポンス要素が表示された「タイプ・チューザ」ダイアログ・ボックス

    図31-1の説明は次にあります。
    「図31-1 リクエスト要素とレスポンス要素が表示された「タイプ・チューザ」ダイアログ・ボックス」の説明

  14. 入力要素の「VacationRequestProcessRequest」を選択して、「OK」をクリックします。

    「BPELプロセスの作成」ダイアログに戻ります。

  15. 「出力」フィールドの右側にある「検索」アイコンをクリックします。

  16. 出力要素の「VacationRequestProcessResponse」を選択して、「OK」をクリックします。

    図31-2に示すように、「BPELプロセスの作成」ダイアログに戻ります。

    図31-2 BPELプロセス・ダイアログ

    図31-2の説明は次にあります。
    「図31-2 BPELプロセス・ダイアログ」の説明

  17. 残りのすべての設定に対するデフォルト値をそのまま使用し、「OK」をクリックします。

    図31-3に示すように、BPELプロセス・サービス・コンポーネントはSOAコンポジット・エディタに作成されます。「BPELプロセスの作成」ダイアログで「SOAPサービスとして公開」を選択したため、BPELプロセスはサービス・バインディング・コンポーネントに自動的に接続されます。このサービスでは、SOAコンポジット・アプリケーションが外部の顧客に公開されます。

    図31-3 SOAコンポジット・エディタのBPELプロセス

    図31-3の説明は次にあります。
    「図31-3 SOAコンポジット・エディタのBPELプロセス」の説明

    サービス・コンポーネントおよびSOAコンポジット・エディタの詳細は、第2章「Oracle SOA Suiteを使用したSOAコンポジット・アプリケーションの開発」を参照してください。

31.4 ヒューマン・タスク・サービス・コンポーネントの作成

ヒューマン・タスク・サービス・コンポーネントを作成し、そのコンポーネントでヒューマン・タスクを設計します。

ヒューマン・タスク・サービス・コンポーネントを作成する手順は、次のとおりです。

  1. コンポーネント・パレットの「サービス・コンポーネント」セクションから、ヒューマン・タスクをSOAコンポジット・エディタにドラッグします。

    「ヒューマン・タスクの作成」ダイアログが表示されます。

  2. 表31-1に記載されている詳細を入力します。

    表31-1 「ヒューマン・タスクの作成」ダイアログのフィールドと値

    フィールド

    名前

    VacationRequestTaskと入力します。

    ネームスペース

    デフォルトの値をそのまま使用します。

    SOAPバインディングを持つコンポジット・サービスの作成

    チェック・ボックスは選択しないでください。かわりに、ヒューマン・タスクを作成し、後で、このヒューマン・タスクを第31.3項「BPELプロセスを使用したアプリケーションおよびプロジェクトの作成」で作成したBPELプロセスに関連付けます。このBPELプロセスは、自動的にバインドされたWebサービスを使用して作成されています。


  3. 「OK」をクリックします。

    図31-4に示すように、BPELプロセスの上部にあるSOAコンポジット・エディタに、「ヒューマン・タスク」アイコンが表示されます。

    図31-4 SOAコンポジット・エディタの「ヒューマン・タスク」アイコン

    図31-4の説明は次にあります。
    「図31-4 SOAコンポジット・エディタの「ヒューマン・タスク」アイコン」の説明

  4. 「ヒューマン・タスク」アイコンをダブルクリックします。

    ヒューマン・タスク・エディタが表示されます。ヒューマン・タスクの設計を開始します。

31.5 ヒューマン・タスクの設計

ヒューマン・タスクを設計する手順は、次のとおりです。

  1. 「タスクのタイトル」フィールドに、Request for Vacationと入力します。

  2. 結果のデフォルト値(「APPROVE」および「REJECT」)をそのまま使用します。このタスクの場合、これらの結果は、休暇申請に対するマネージャの操作に2つの選択肢があることを示しています。

  3. エディタの左側にある「データ」タブをクリックします。

  4. 「追加」アイコンをクリックして、タスク・ペイロードを指定します。

  5. 「文字列パラメータの追加」を選択します。

    「タスク・パラメータの追加」ダイアログが表示されます。XSDファイル内の要素を表すパラメータを作成します。これにより、ペイロード・データがワークフロー・タスクで使用できるようになります。

  6. 「要素」を選択します。

  7. 「要素」フィールドの右側にある「検索」アイコンをクリックします。

    「タイプ・チューザ」ダイアログが表示されます。

  8. 「プロジェクトのスキーマ・ファイル」「VacationRequest.xsd」「VacationRequestProcessRequest」の順に開いて選択し、「OK」をクリックします。図31-5に詳細を示します。

    図31-5「タイプ・チューザ」ダイアログ

    「Human Task」ウィンドウ
    「図31-5 「タイプ・チューザ」ダイアログ」の説明

  9. 「ワークリストにより編集可能」チェック・ボックスが選択されている必要があります。この選択によって、実行時にOracle BPM Worklistからこのパラメータを変更するオプションが提供されます。

  10. 「タスク・パラメータの追加」ダイアログで、「OK」をクリックします。

  11. エディタの左側にある「割当て」タブをクリックします。

  12. 図31-6に示すように、「Stage1」の下部にある<Edit participant>ボックスがハイライト表示されます。

    図31-6 割当ておよびルーティング・ポリシー

    図31-6の説明は次にあります。
    「図31-6 割当ておよびルーティング・ポリシー」の説明

  13. ヒューマン・タスク・エディタの上にある「編集」アイコンをクリックします。

    「参加者タイプの編集」ダイアログが表示されます。このタスクに参加者を追加します。第27.2.1.1.2項「参加者タイプ」で説明したように、Oracle SOA Suiteには、特定のビジネス・ニーズに対応する参加者タイプと呼ばれる組込みパターンが複数用意されています。

  14. 「タイプ」リストに表示されている、デフォルトの参加者タイプの「単一」をそのまま使用します。休暇申請タスクを操作するのは単一の割当て先であるマネージャのため、このタイプを選択します。

  15. 「参加者名」表で、「追加」アイコンをクリックし、「ユーザーの追加」を選択します。

    この参加者タイプは、タスクに対して単独で機能します。

  16. 「データ型」列をクリックし、表示されたリストから「式別」を選択します。図31-7に詳細を示します。

    このアクションを使用すると、タスクのコンテンツによってタスクを動的に割り当てることができます。休暇申請を提出している従業員は、このタスクに渡されたパラメータ(第31.3項「BPELプロセスを使用したアプリケーションおよびプロジェクトの作成」でインポートしたXSDファイル内のcreator要素)から取得されます。このタスクは、その従業員のマネージャに自動的にルーティングされます。

    図31-7 「データ型」列での「式別」の選択

    図31-7の説明は次にあります。
    「図31-7 「データ型」列での「式別」の選択」の説明

  17. 「値」列で、「参照」アイコン(...)をクリックして、「式ビルダー」ダイアログを起動します。

  18. 「関数」セクションのドロップダウン・リストで、「Identity Service Functions」を選択します。

  19. 「getManager」を選択します。この関数によって、休暇申請タスクを作成したユーザーのマネージャが取得されます。

  20. 「関数」セクション上部にある「式に挿入」をクリックします。

  21. 関数のカッコ内にカーソルを置きます。

  22. 「スキーマ」セクションで、「task:task」「task:payload」「ns1:VacationRequestProcessRequest」「ns1:creator」の順に展開します。

    ここで、ns1はこの例のネームスペースであり、ユーザーのネームスペースとは異なる場合があります。

  23. 「式に挿入」をクリックします。

    「式ビルダー」ダイアログの「式」セクションに、XPath式が表示されます。図31-8に詳細を示します。

  24. 「OK」をクリックして、「式ビルダー」ダイアログを閉じます。

  25. 「OK」をクリックして、「参加者タイプの追加」ダイアログを閉じます。

  26. 「ファイル」メニューから「すべて保存」を選択します。

31.6 ヒューマン・タスクとBPELプロセス・サービス・コンポーネントの関連付け

ヒューマン・タスクを第31.3項「BPELプロセスを使用したアプリケーションおよびプロジェクトの作成」で作成したBPELプロセスに関連付けます。

ヒューマン・タスクとBPELプロセス・サービス・コンポーネントを関連付ける手順は、次のとおりです。

  1. 「アプリケーション・ナビゲータ」で、「composite.xml」をダブルクリックします。

  2. SOAコンポジット・エディタで、「VacationRequestProcess」BPELプロセス・サービス・コンポーネントをダブルクリックします。

    BPELプロセスがOracle BPELデザイナに表示されます。

  3. 「コンポーネント・パレット」で、「SOAコンポーネント」を開きます。

  4. 「receiveInput」receiveアクティビティの下に、「Human Task」をドラッグ・アンド・ドロップします。

  5. アクティビティをダブルクリックします。

    「Human Task」ダイアログが表示されます。

  6. 「タスク定義」リストから、作成した「VacationRequestTask」タスクを選択します(現在表示されていない場合)。

    ダイアログが図31-9に示すようにリフレッシュされ、他のフィールドが表示されます。

    図31-9 「Human Task」ダイアログ

    図31-9の説明は次にあります。
    「図31-9 「Human Task」ダイアログ」の説明

  7. 図31-10に示すように、「BPEL変数」列で「参照」アイコン(...)をクリックします。

    図31-10 BPEL変数のエントリ

    図31-10の説明は次にあります。
    「図31-10 BPEL変数のエントリ」の説明

    「タスク・パラメータ」ダイアログが表示されます。

  8. 「タイプ」リストで「変数」を選択します。

  9. 「プロセス」「変数」「inputVariable」「payload」「ns1:VacationRequestProcessRequest」の順に展開します。図31-11に詳細を示します。

    図31-11 変数の選択

    図31-11の説明は次にあります。
    「図31-11 変数の選択」の説明

  10. 「OK」をクリックします。

    完成すると、ダイアログは図31-12のようになります。

  11. 「OK」をクリックして「Human Task」ダイアログを閉じます。

    図31-13に示すように、ヒューマン・タスク・アクティビティが表示されます。

    図31-13 Oracle BPELデザイナのヒューマン・タスクおよびパートナ・リンク

    図31-13の説明は次にあります。
    「図31-13 Oracle BPELデザイナのヒューマン・タスクおよびパートナ・リンク」の説明

  12. SOAコンポジット・エディタに戻ります。BPELプロセス・サービス・コンポーネントとヒューマン・タスク・サービス・コンポーネントが自動的に接続されていることに注意してください。図31-14に詳細を示します。

    図31-14 SOAコンポジット・エディタ

    図31-14の説明は次にあります。
    「図31-14 SOAコンポジット・エディタ」の説明

  13. 「ファイル」メニューから「すべて保存」を選択します。

31.7 アプリケーション・サーバー接続の作成

Oracle SOA Suiteがインストールされ、SOAインフラストラクチャで構成されたアプリケーション・サーバーへの接続を作成します。ここでは、Oracle WebLogic Serverへの接続を作成する方法について説明します。IBM WebSphere Serverなどの他のアプリケーション・サーバーへの接続を作成する方法は、Oracle Fusion Middlewareサード・パーティ・アプリケーション・サーバー・ガイドを参照してください。

アプリケーション・サーバー接続を作成する手順は、次のとおりです。

  1. 「ファイル」メイン・メニューから、「新規」「接続」「アプリケーション・サーバー接続」の順に選択します。

  2. 「OK」をクリックします。

  3. 「接続名」フィールドに、接続名を入力します。

  4. 「接続タイプ」リストで「WebLogic 10.3」を選択します。

  5. 「次へ」をクリックします。

  6. 「ユーザー名」フィールドに、weblogicと入力します。

  7. 「パスワード」フィールドに、アプリケーション・サーバーに接続するためのパスワードを入力します。

  8. 「次へ」をクリックします。

  9. SOAインフラストラクチャで構成されているアプリケーション・サーバーのホスト名を入力します。

  10. 「WebLogicドメイン」フィールドに、Oracle WebLogic Serverドメインを入力します。

  11. 「次へ」をクリックします。

  12. 「接続のテスト」をクリックします。

    成功した場合は、図31-15に示すメッセージが表示されます。

    図31-15 接続の成功

    図31-15の説明は次にあります。
    「図31-15 接続の成功」の説明

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

  14. 「ファイル」メニューから「すべて保存」を選択します。

31.8 SOAコンポジット・アプリケーションのデプロイ

接続を作成したアプリケーション・サーバーにデプロイします。

SOAコンポジット・アプリケーションをデプロイする手順は、次のとおりです。

  1. 「アプリケーション・ナビゲータ」で、「VacationRequest」プロジェクトを右クリックし、「デプロイ」「VacationRequest」の順に選択します。

  2. デプロイメント・ウィザードの各ページの指示に従い、プロジェクトをデプロイします。

    プロジェクトがデプロイされます。

    デプロイメントの詳細は、第43.7項「SOAコンポジット・アプリケーションのデプロイ」を参照してください。

31.9 プロセス・インスタンスの開始

プロセス・インスタンスを開始する手順は、次のとおりです。

  1. プロセス・インスタンスを開始する「Webサービスのテスト」ページにアクセスする手順の詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。

31.10 タスク・フォームのプロジェクトの作成

タスク・フォームのプロジェクトを作成します。これは、ヒューマン・タスクを作成したプロジェクトとは別のプロジェクトです。

タスク・フォームのプロジェクトを作成する手順は、次のとおりです。

  1. 「VacationRequestTask」ヒューマン・タスクをダブルクリックします。

    ヒューマン・タスク・エディタが表示されます。

  2. 上部の「フォームの作成」メニューから、「タスク・フォームの自動生成」を選択します。図31-16に詳細を示します。

    図31-16 タスク・フォームの作成

    図31-16の説明は次にあります。
    「図31-16 タスク・フォームの作成」の説明

    「プロジェクトの作成」ダイアログが表示されます。

  3. 「プロジェクト名」フィールドに、VacationRequestTaskFlowと入力し、「OK」をクリックします。

  4. 「ファイル」メイン・メニューから「すべて保存」を選択します。

31.11 Oracle BPM Worklistでのタスクの操作

Oracle BPM Worklistでタスクを解決する手順は、次のとおりです。

  1. Oracle BPM Worklistに移動します:

    http://hostname:7001/integration/worklistapp
    
  2. Oracle BPM Worklistにログインします。

  3. タスクを解決します。

31.12 タスク・フォームのデプロイ

タスク・フォームをデプロイする手順は、次のとおりです。

  1. 「アプリケーション・ナビゲータ」で、「VacationRequestTaskFlow」プロジェクトを右クリックし、「デプロイ」「VacationRequestTaskFlow」の順に選択します。

  2. デプロイメント・ウィザードの各ページの指示に従い、タスク・フォームをデプロイします。

    タスク・フォームがデプロイされます。

    デプロイメントの詳細は、第43.7項「SOAコンポジット・アプリケーションのデプロイ」を参照してください。

  3. Oracle BPM Worklistに戻ります。

  4. Oracle BPM Worklistの下部に、タスク・フォームが表示されることに注意してください。

31.13 その他のチュートリアル

休暇申請のユースケースに加えて、他のチュートリアルもOracle SOA Suiteサンプルから入手できます。

表31-2に、複数のサンプルの概要を示します。すべてのサンプルは、ワークリスト・アプリケーションとワークフロー通知の使用を説明しています。サンプルの完全なリストについては、このURLを参照してください。

表31-2 エンドツーエンドの例

サンプル 説明 名前

デモ・コミュニティ・シード・アプリケーション

デモ・コミュニティのシードを実行します。他のすべてのワークフロー・サンプルの前提条件となります。

workflow-001-DemoCommunitySeedApp

休暇申請

承認または却下のため、マネージャに割り当てられる休暇申請を提出するサンプルを提供しています。また、このサンプルは、休暇申請のOracle ADFタスク・フォームを作成して、タスクを操作する方法を説明しています。

workflow-100-VacationRequest

売上げ見積り要請

多重タスクに関連する複雑なワークフローのサンプルを提供しています。

workflow-102-SalesQuote

契約承認

契約を承認するサンプルを提供しています。このサンプルは、タスクのデジタル署名を使用します。

workflow-104-ContractApproval

反復設計

設計プロセスの中でワークフロー・タスクが割当て先との間を何度も通過できるサンプルを提供しています。拡張ルーティング・ルールでルーティング動作を実装します。

workflow-106-IterativeDesign

ワークフロー・カスタマイズ

ワークフロー・サービスAPI(タスク属性、ビュー名などのカスタム・リソース文字列など)にカスタマイズを実装する方法を示します。

workflow-110-workflowCustomizations

MLSサンプル

タスク・タイトルに複数の翻訳があるタスクの設定方法を示します。

workflow-114-MLSSample

ワークフロー・イベント・コールバック

ワークフロー・イベント・コールバックの使用方法を示します。タスク・ライフサイクル・イベントで生成されるワークフロー・イベントがOracle Mediatorによって使用されます。

workflow-116-WorkflowEventCallback

ユーザー構成データ・マイグレータ

ユーザー構成(ビュー、マップ済属性など)を、中間エクスポート・ファイルを介して、あるインスタンスから別のインスタンスに移動します。

workflow-117-UserConfigDataMigrator

Javaサンプル

Javaを使用してヒューマン・ワークフローと対話するサンプル各種を提供します。

workflow-118-JavaSamples