ヘッダーをスキップ
Oracle SOA Suite開発者ガイド
10g(10.1.3.1.0)
B31839-01
  目次へ
目次
索引へ
索引

前へ
前へ
 
次へ
次へ
 

7.2 アプリケーションおよびBPELプロジェクトの作成

BPELプロセスを作成する最初の手順は、Oracle JDeveloperでアプリケーションおよびBPELプロジェクトを作成することです。 アプリケーションおよびBPELプロジェクトの作成では、次のファイルが生成されます。

図7-2に、「BPELProcess1_synch」というBPELプロジェクトに関するこれらのファイルを示します。

図7-2 Oracle JDeveloperで作成されたBPELプロジェクト・ファイル

図7-2の説明は次にあります。
「図7-2 Oracle JDeveloperで作成されたBPELプロジェクト・ファイル」の説明

図7-2に表示されているファイルに加え、次のファイルも作成されます。

7.2.1 アプリケーションの作成方法

BPELプロセスは、Oracle JDeveloperで最初にアプリケーションを作成することで作成します。

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

  1. アプリケーション・ナビゲータで、「アプリケーション」を右クリックし、「新規アプリケーション」を選択します。

  2. 「アプリケーションの作成」ダイアログを使用して、新しいアプリケーションの名前と場所を入力し、アプリケーション・テンプレートを指定します。

    1. アプリケーション名を入力します。

    2. ディレクトリ名を入力または参照するか、デフォルトの名前をそのまま使用します。

    3. アプリケーション・パッケージの接頭辞を入力します。

      後ろにピリオドが続く接頭辞は、アプリケーションの初期プロジェクトで作成されたオブジェクトに適用されます。

    4. BPELプロジェクトの場合は、アプリケーション・テンプレートに「テンプレートなし[すべてのテクノロジ]」を選択します。

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

  3. 「プロジェクトの作成」ウィンドウで、「取消」をクリックします。

7.2.2 BPELプロジェクトの作成方法

Oracle JDeveloperでアプリケーションを作成した後は、アプリケーションに1つ以上のBPELプロジェクトを作成します。

BPELプロジェクトを作成する手順は、次のとおりです。

  1. 作成したアプリケーション名を右クリックし、「新規プロジェクト」を選択します。

  2. 「カテゴリ」で、「General」を開き、「Projects」を選択します。

  3. 「項目」で、「BPELプロセス・プロジェクト」を選択し、「OK」をクリックします。

  4. BPELプロジェクト作成ウィザードの「プロジェクトの設定」ダイアログを使用して、BPELプロジェクトを設定します。

    1. BPELプロセスの名前を入力します。

    2. ネームスペースを入力するか、デフォルト値をそのまま使用します。

    3. デフォルトのプロジェクト設定を使用するか、独自の設定を指定します。

    4. 次のいずれかのテンプレートを選択します。

      非同期BPELプロセス: BPELプロセス・フローを開始するデフォルトのreceiveアクティビティと、非同期でクライアントをコールバックするinvokeアクティビティを備えた非同期プロセスを作成します。

      同期BPELプロセス: BPELプロセス・フローを開始するデフォルトのreceiveアクティビティと、結果を戻すreplyアクティビティを備えた同期プロセスを作成します。

      空のBPELプロセス: アクティビティのない空のプロセスを作成します。

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

  5. BPELプロジェクト作成ウィザードの「入力/出力要素」ダイアログを使用して、独自のスキーマ・ファイルを追加するか、デフォルトのスキーマ・ファイルをそのまま使用します。

7.2.3 アプリケーションおよびBPELプロジェクト作成時の処理内容

図7-3に示すように、BPELプロジェクトを作成すると、Oracle JDeveloperのダイアグラム・ビューにスケルトンBPELプロセスが表示されます。 これは、bpel_process_name.bpelによって表されたワークフローです。

図7-3に、同期BPELプロセスを示します。 「receiveInput」というラベルのreceiveアクティビティは入力変数に対して使用され、「replyOutput」というラベルのreplyアクティビティは出力変数に対して使用されます。

図7-3 同期プロセスのBPELダイアグラム

図7-3の説明は次にあります。
「図7-3 同期プロセスのBPELダイアグラム」の説明

図7-4に、非同期プロセスを示します。 「receiveInput」というラベルのreceiveアクティビティは入力変数に対して使用され、「callBackClient」というラベルのinvokeアクティビティは出力変数に対して使用され、さらにWebサービスを起動するために使用されます。

図7-4 非同期プロセスのBPELダイアグラム

図7-4の説明は次にあります。
「図7-4 非同期プロセスのBPELダイアグラム」の説明

ダイアグラムの下の「ソース」タブには、ダイアグラム・ビューに対応するBPELソース・コードが表示されます。

例7-1に、非同期プロセスのソース・コードを示します。

例7-1 非同期プロセスのソース・コード

<?xml version = "1.0" encoding = "UTF-8" ?>
<!--
///////////////////////////////////////////////////////////////////////////////////////////////////
  Oracle JDeveloper BPEL Designer
  Created: Wed May 03 10:14:38 PDT 2006
  Author:
  Purpose: Asynchronous BPEL Process
///////////////////////////////////////////////////////////////////////////////////////////////////
-->
<process name="BPELProcess1_asynch"
         targetNamespace="http://xmlns.oracle.com/BPELProcess1_asynch"
         xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
         xmlns:xp20="http://www.oracle.com/XSL/Transform/java/
           oracle.tip.pc.services.functions.Xpath20"
         xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
         xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         xmlns:client="http://xmlns.oracle.com/BPELProcess1_asynch"
         xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
         xmlns:ora="http://schemas.oracle.com/xpath/extension"
         xmlns:orcl="http://www.oracle.com/XSL/Transform/java/
           oracle.tip.pc.services.functions.ExtFunc">
    <!--
      ///////////////////////////////////////////////////////////////////////////////////////////////////
        PARTNERLINKS
        List of services participating in this BPEL process
///////////////////////////////////////////////////////////////////////////////////////////////////
    -->
    <partnerLinks>
        <!--
      The 'client' role represents the requester of this service. It is
      used for callback. The location and correlation information associated
      with the client role are automatically set using WS-Addressing.
    -->
        <partnerLink name="client" partnerLinkType="client:BPELProcess1_asynch"
                     myRole="BPELProcess1_asynchProvider"
                     partnerRole="BPELProcess1_asynchRequester"/>
    </partnerLinks>
    <!--
  ///////////////////////////////////////////////////////////////////////////////////////////////////
        VARIABLES
        List of messages and XML documents used within this BPEL process
 ///////////////////////////////////////////////////////////////////////////////////////////////////
    -->
    <variables>
        <!-- Reference to the message passed as input during initiation -->
        <variable name="inputVariable"
                  messageType="client:BPELProcess1_asynchRequestMessage"/>
        <!-- Reference to the message that will be sent back to the requester during callback -->
        <variable name="outputVariable"
                  messageType="client:BPELProcess1_asynchResponseMessage"/>
    </variables>
    <!--
      ///////////////////////////////////////////////////////////////////////////////////////////////////
       ORCHESTRATION LOGIC
       Set of activities coordinating the flow of messages across the
       services integrated within this business process
      ///////////////////////////////////////////////////////////////////////////////////////////////////
    -->
    <sequence name="main">
        <!-- Receive input from requestor. (Note: This maps to operation defined in BPELProcess1_asynch.wsdl) -->
        <receive name="receiveInput" partnerLink="client"
                 portType="client:BPELProcess1_asynch" operation="initiate"
                 variable="inputVariable" createInstance="yes"/>
        <!--
          Asynchronous callback to the requester. (The callback location and correlation id are
          transparently handled using WS-addressing.)
        -->
        <invoke name="callbackClient" partnerLink="client"
                portType="client:BPELProcess1_asynchCallback"
                operation="onResult" inputVariable="outputVariable"/>
    </sequence>
</process>

非同期プロセスのソース・コードの詳細は、『Oracle BPEL Process Managerクイック・スタート・ガイド』を参照してください。