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

最初のワークフローを設計する方法を最初から最後まで学習します。

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

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

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

  • 従業員は休暇申請を提出します

  • マネージャは休暇申請を承認または却下します

  • 従業員は、自分の申請が承認または却下された通知を受け取ります

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

  • BPELプロセス

  • ヒューマン・タスク。従業員が提出した休暇申請を承認します。

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

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

  • SOAコンポジット・エディタの使用

  • ヒューマン・タスク・エディタの使用

  • Oracle BPELデザイナを使用した単一承認ワークフローのモデリング

  • Oracle ADFベースのOracle BPM Worklistの作成

  • Oracle BPM Worklistを使用したタスクの表示および応答

31.2 前提条件

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

  • Oracle SOA Suiteは、SOAインフラストラクチャが構成されているホストにインストールされています。

  • BPELアクティビティやパートナ・リンクなどの基本的なBPEL構成要素と、基本的なXPath関数について理解しているユーザーを対象にしています。このユーザーは、SOAコンポジット・エディタとOracle BPELデザイナ(BPELプロセスを設計およびデプロイするための環境)についても理解している必要があります。

次の構文を使用して、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>

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

BPELプロセスを使用してアプリケーションおよびプロジェクトを作成する方法を学習します。

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

  • Oracle SOA Suiteは、SOAインフラストラクチャが構成されているホストにインストールされています。

  • BPELアクティビティやパートナ・リンクなどの基本的なBPEL構成要素と、基本的なXPath関数について理解しているユーザーを対象にしています。このユーザーは、SOAコンポジット・エディタとOracle BPELデザイナ(BPELプロセスを設計およびデプロイするための環境)についても理解している必要があります。

次の構文を使用して、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>

BPELプロセスを使用してアプリケーションおよびプロジェクトを作成するには:

  1. Oracle JDeveloperを起動します。「ファイル」メイン・メニューから、「新規」「アプリケーション」「SOAアプリケーション」を選択します。

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

  2. 「アプリケーション名」フィールドにVacationRequestと入力し、「次へ」をクリックします。
  3. 「プロジェクト名」フィールドにVacationRequestと入力し、「次へ」をクリックします。
  4. 「コンポジット・テンプレート」リストで、BPELプロセスを使用するコンポジットを選択し、「終了」をクリックします。

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

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

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

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

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

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

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

  8. VacationRequest.xsdファイルを検索して選択します。

    「タイプ・チューザ」ダイアログに戻るまで、「OK」をクリックします。

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

    図31-1の説明が続きます
    「図31-1 リクエスト要素とレスポンス要素が表示された「タイプ・チューザ」ダイアログ・ボックス」の説明
  9. 入力要素の「VacationRequestProcessRequest」を選択して、「OK」をクリックします。

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

  10. 「出力」フィールドの右側にある「検索」アイコンをクリックします。
  11. 出力要素の「VacationRequestProcessResponse」を選択して、「OK」をクリックします。

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

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

    図31-2の説明が続きます
    「図31-2 BPELプロセス・ダイアログ」の説明
  12. 残りのすべての設定に対するデフォルト値をそのまま使用し、「OK」をクリックします。

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

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

    図31-3の説明が続きます
    「図31-3 SOAコンポジット・エディタのBPELプロセス」の説明

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

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

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

ヒューマン・タスク・サービス・コンポーネントを作成するには:

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

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

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

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

    フィールド

    名前

    VacationRequestTaskと入力します。

    ネームスペース

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

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

    チェック・ボックスを選択しないでください。かわりに、後で「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. 「文字列パラメータの追加」を選択します。

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

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

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

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

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

    図31-5の説明が続きます
    「図31-5 「タイプ・チューザ」ダイアログ」の説明

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

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

  7. エディタの左側にある「割当て」タブをクリックします。
  8. 「コンポーネント」ウィンドウの「参加者」セクションから、「単一の参加者」タイプをドラッグして「参加者をここにドロップ」ボックスにドロップします(図31-6を参照)。休暇申請タスクを操作するのは単一の割当て先であるマネージャのため、このタイプを選択します。

    Oracle SOA Suiteには、特定のビジネス・ニーズに対応するために、参加者タイプと呼ばれるすぐに使用できるパターンが複数用意されています。詳細は、「タスクの割当ておよびルーティング」を参照してください。

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

    図31-6の説明が続きます
    「図31-6 割当ておよびルーティング・ポリシー」の説明
  9. 追加した参加者をダブルクリックします。

    「参加者タイプの編集」ダイアログ・ボックスが開きます。

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

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

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

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

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

    図31-7の説明が続きます
    「図31-7 「データ型」列での「式別」の選択」の説明
  12. 「値」列で、「参照」アイコン(...)をクリックして、「式ビルダー」ダイアログを起動します。
  13. 「関数」セクションのドロップダウン・リストで、「アイデンティティ・サービス関数」を選択します。
  14. 「getManager」を選択します。この関数によって、休暇申請タスクを作成したユーザーのマネージャが取得されます。
  15. 「関数」セクション上部にある「式に挿入」をクリックします。関数のカッコ内にカーソルを置きます。
  16. 「スキーマ」セクションで、「task:task」「task:payload」「ns1:VacationRequestProcessRequest」「ns1:creator」の順に展開します。

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

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

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

  18. 「OK」をクリックして、「式ビルダー」ダイアログを閉じます。「OK」を再度クリックして、「参加者タイプの追加」ダイアログを閉じます。
  19. 「ファイル」メニューから「すべて保存」を選択します。

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

ヒューマン・タスクをBPELに関連付ける方法を学習します。

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

ヒューマン・タスクとBPELプロセス・サービス・コンポーネントを関連付けるには:

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

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

  3. 「コンポーネント」ウィンドウで、「SOAコンポーネント」を開きます。
  4. 「receiveInput」receiveアクティビティの下に、「ヒューマン・タスク」をドラッグ・アンド・ドロップします。アクティビティをダブルクリックします。

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

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

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

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

    図31-9の説明が続きます
    「図31-9 「Human Task」ダイアログ」の説明
  6. 図31-10に示すように、「BPEL変数」列で「参照」アイコン(...)をクリックします。

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

    図31-10の説明が続きます
    「図31-10 BPEL変数のエントリ」の説明

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

  7. 「タイプ」リストで「変数」を選択します。
  8. 「プロセス」「変数」「inputVariable」「payload」「ns1:VacationRequestProcessRequest」の順に展開します。図31-11に詳細を示します。

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

  9. 「OK」をクリックして「ヒューマン・タスク」ダイアログを閉じます。

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

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

    図31-12の説明が続きます
    「図31-12 Oracle BPELデザイナのヒューマン・タスクおよびパートナ・リンク」の説明
  10. SOAコンポジット・エディタに戻ります。BPELプロセス・サービス・コンポーネントとヒューマン・タスク・サービス・コンポーネントが自動的に接続されていることに注意してください。図31-13に詳細を示します。「ファイル」メニューから「すべて保存」を選択します。

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

    図31-13の説明が続きます
    「図31-13 SOAコンポジット・エディタ」の説明

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

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

タスク・フォームのプロジェクトを作成するには:

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

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

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

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

    図31-14の説明が続きます
    「図31-14 タスク・フォームの作成」の説明

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

  3. 「プロジェクト名」フィールドに、VacationRequestTaskFlowと入力し、「OK」をクリックします。
  4. 「ファイル」メイン・メニューから、「すべて保存」を選択します。

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

タスク・フォームをデプロイする方法を学習します。

タスク・フォームをデプロイするには:

  1. 「アプリケーション」ウィンドウで、「VacationRequestTaskFlow」プロジェクトを右クリックして「デプロイ」「VacationRequestTaskFlow」の順に選択します。
  2. デプロイメント・ウィザードの各ページの指示に従い、タスク・フォームをデプロイします。

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

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

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

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

Oracle SOA Suiteがインストールされ、SOAインフラストラクチャで構成されたアプリケーション・サーバーへの接続を作成する方法を学習します。ここでは、Oracle WebLogic Serverへの接続を作成する方法について説明します。

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

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

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

  2. 「接続名」フィールドに、接続名を入力します。
  3. 「接続タイプ」リストで「WebLogic 10.3」を選択します。

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

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

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

  6. SOAインフラストラクチャで構成されているアプリケーション・サーバーのホスト名を入力します。
  7. 「WebLogicドメイン」フィールドに、Oracle WebLogic Serverドメインを入力します。

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

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

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

  9. 「終了」をクリックします。
  10. 「ファイル」メニューから「すべて保存」を選択します。

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

接続を作成したアプリケーション・サーバーへのデプロイ方法を学習します。

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

  1. 「アプリケーション」ウィンドウで、「VacationRequest」プロジェクトを右クリックして「デプロイ」「VacationRequest」の順に選択します。
  2. デプロイメント・ウィザードの各ページの指示に従い、プロジェクトをデプロイします。

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

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

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

プロセス・インスタンスを開始する方法を学習します。

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

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

Oracle BPM Worklistでタスクを操作する方法を学習します。

Oracle BPM Worklistでタスクを解決するには:

  1. Oracle BPM Worklistに移動します。
    http://hostname:7001/integration/worklistapp
    
  2. Oracle BPM Worklistにログインします。
  3. タスクを解決します。