Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張 チュートリアル Jun Gao Agile PLM Development 共著 2009 年 10 月
目次 概要... 4 このチュートリアルについて... 4 目的および範囲... 4 使用ソフトウェア... 4 はじめに... 5 必要な環境の準備... 5 Agile PLM ワークフロー機能の拡張... 6 Oracle BPEL プロセスの作成... 6 Agile パートナー リンクの作成... 9 入力変数の定義... 11 パートナー リンクの作成とオペレーションの定義... 13 Agile PLM への Oracle BPEL プロセスのデプロイと起動... 30 Oracle BPEL プロセスのデプロイ... 30 Agile PLM の設定と Oracle BPEL プロセスの起動... 31 3
第 1 章 概要 この章に含まれる内容は 以下のとおりです このチュートリアルについて... 4 目的および範囲... 4 使用ソフトウェア... 4 このチュートリアルについて このチュートリアルでは Agile イベント フレームワークと Oracle Business Process Execution Language (Oracle BPEL) を使用して Agile ワークフローの機能を拡張する方法について説明します 目的および範囲 このチュートリアルでは Oracle BPEL ベースのビジネス プロセスを使用して サード パーティ アプリケーションとデータ交換を行い 次に Agile Product Lifecycle Management(Agile PLM) の Web サービス API を起動して Agile PLM 内のオブジェクトを操作します 具体的には Agile 9.3 のイベント フレームワークを使用して Oracle BPEL ベースのビジネス プロセスを開始します このビジネス プロセスは ワークフロー プロセスに対して変更を加えるか影響を及ぼすか または通知を送信します 使用ソフトウェア このチュートリアルで使用するソフトウェアは 以下のとおりです Agile PLM 9.3 Oracle SOA Suite 10.1.3.4(Oracle Technology Network(OTN)Web サイト : http://www.oracle.com/technology/documentation/agile.html からダウンロードできます ) Oracle JDeveloper Studio Edition 11g(Oracle Technology Network Web サイト : http://www.oracle.com/technology/documentation/agile.html からダウンロードできます ) 4 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 2 章 : はじめに 第 2 章 はじめに この章に含まれる内容は 以下のとおりです 必要な環境の準備... 5 必要な環境の準備 チュートリアルの環境を準備するには 以下の手順に従います Oracle SOA Suite が実行中であることを確認します Oracle JDeveloper を起動します http://<agile サーバー >:< ポート >/CoreService/services から Agile Web サービスにアクセスできることを確認します 5
第 3 章 Agile PLM ワークフロー機能の拡張 この章に含まれる内容は 以下のとおりです Oracle BPEL プロセスの作成... 6 Agile パートナー リンクの作成... 6 入力変数の定義... 11 パートナー リンクの作成とオペレーションの定義... 13 Oracle BPEL プロセスの作成 以下の手順に従って Oracle BPEL の作業領域とプロジェクトを作成します 1. アプリケーション ナビゲータ ウィンドウで Applications を右クリックしてから New Application を選択します 2. Application Name フィールドに AgileWorkflowBPEL と入力したら すべてをデフォルト設定のままにします (Directory Name フィールドが下図と異なる場合も メッセージを無視してデフォルトを受け入れます ) 3. OK をクリックします 6 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 3 章 :Agile PLM ワークフロー機能の拡張 4. Cancel をクリックします 5. 新しい AgileWorkflowBPEL アプリケーションを右クリックし New Project を選択します 6. Categories リストで BPEL を選択し Items ウィンドウで BPEL Process Project を選択します 7. OK をクリックします BPEL Project Creation ウィザードが表示されます 8. Project Settings ウィンドウの Name フィールドに プロセス名として AgileWorkflowBPEL を入力します 7
9. Synchronous BPEL Process を選択してから Next をクリックします 10. Finish をクリックします 次のような BPEL プロセス ダイアグラムが表示されます 11. Save All をクリックして 作業内容を保存します 8 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 第 4 章 Agile パートナー リンクの作成 Agile パートナー リンクを作成するには 以下の手順に従います 1. JDeveloper の右上部にあるコンポーネント パレットを選択し ドロップダウン メニューから Services を選択します 2. PartnerLink アクティビティをドラッグし デザイナ ウィンドウの右側の Services の下にドロップします 3. Create Partner Link ウィンドウで WSDL File フィールドに Agile WSDL URL を入力し [Enter] キーを押します Oracle BPEL Process Manager により 次の Agile URL から WSDL がロードされます http://93demo/coreservice/services/collaboration?wsdl 注 : 上記 URL の 93demo を Agile インスタンスの場所で置き換えてください 9
4. Yes をクリックします Name フィールドと Partner Link Type フィールドは 自動的に入力されます 5. 以下のとおりに Partner Role を選択します 6. OK をクリックします 7. ステップ 1~6 を繰り返して AgileBusinessObject パートナー リンクを作成します 注 : ステップ 3 では 次の URL を使用してください http://93demo/coreservice/services/businessobject?wsdl BPEL デザイナは 以下のように表示されます 10 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 入力変数の定義 以下の手順に従って 入力変数を定義します 1. 左側のパネルで AgileWorkflowBPEL プロジェクト Integration Content Schemas を選択し AgileWorkflowBPEL.xsd を開きます 2. Design タブをクリックして デザイン ビューからソース ビューに切り替えます 3. 要素 <element name="input" type="string"/> を 次の 3 つの要素で置き換えます <element name="classidentified" type="string"/> <element name="objectnumber" type="string"/> 11
<element name="nextstatus" type="string"/> 4. Design タブをクリックして デザイン ビューに切り替えます 12 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 パートナー リンクの作成とオペレーションの定義 パートナー リンクを作成し オペレーションを定義するには 以下の手順に従います 1. BPEL デザイン ダイアグラムの左側のパネルで AgileWorkflowBPEL プロジェクト Integration Content Schemas を選択して AgileWorkflowBPEL.bpel を選択します 2. JDeveloper のコンポーネント パレットで ドロップダウン リストから Process Activities を選択します Process Activities に BPEL アクティビティが表示されます これらのアクティビティは プロセス デザイナ ウィンドウにドラッグ アンド ドロップできます 13
3. コンポーネント パレットの Invoke をドラッグし キャンバスの receiveinput アクティビティのすぐ後にドロップします 4. Invoke アイコンをダブルクリックして Invoke ウィンドウを開きます 5. Invoke Name として UpdateObjectInvoke と入力します 6. 懐中電灯型のアイコンをクリックします 14 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 7. AgileCollaborationService パートナー リンクを選択して OK をクリックします 8. Operation に changestatus を設定します 9. Input Variable テキスト フィールドの横にある魔法の杖型のアイコン (Auto-create variable) をクリックして このアクティビティのグローバル変数を作成します デフォルト値はそのままにします Apply をクリックし 次に OK をクリックします 10. Output Variable テキスト フィールドの横にある魔法の杖型のアイコン (Auto-create variable) をクリックして このアクティビティのグローバル変数を作成します 11. デフォルト値はそのままにします Apply をクリックし 次に OK をクリックします 12. ウィンドウが以下のように表示されることを確認し OK をクリックします 15
13. ステップ 1~13 を繰り返し UpdateObjectInvoke を作成します BPEL デザイン ビューは 以下のように表示されます 14. 作成した 2 つのパートナー リンクに資格証明を設定します 15. AgileCollaborationServer パートナー リンクのアイコンをダブルクリックしてから Property タブを表示して 2 つのプロパティを作成します 16 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 注 : ユーザー名とパスワードに使用した値を Agile PLM システムで検証する必要があります 16. 上記ステップを繰り返して AgileBusinessObject パートナー リンクを作成します 17
17. コンポーネント パレットから Assign アクティビティをドラッグし receiveinput アクティビティと ChangeStatusInvoke アクティビティにドロップします 18. 先ほど追加した Assign アイコンをダブルクリックします 19. General タブをクリックして Name フィールドに CopyInput と入力します 20. Apply をクリックします 21. Copy Operation タブをクリックします 22. Create をクリックしてから ドロップダウン リストから Copy Operation を選択します 23. 次に示すとおり 2 つのコピー オペレーションを作成します それぞれのコピー オペレーションで OK をクリックして 次に進みます 18 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 19
24. Create をクリックしてから ドロップダウン リストから Copy Operation を選択します 25. From セクションで Type ドロップダウン リストから Expression を選択し xp20:current-datetime() と入力します 26. Create をクリックしてから ドロップダウン リストから Copy Operation を選択します 27. From セクションで Type ドロップダウン リストから Expression を選択し 375 と入力します 20 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 28. Create をクリックしてから ドロップダウン リストから Copy Operation を選択します 29. From セクションで Type ドロップダウン リストから Expression を選択し DISABLE と入力します 30. Create をクリックしてから ドロップダウン リストから Copy Operation を選択します 31. From セクションで Type ドロップダウン リストから Expression を選択し true() と入力します 21
32. 次に示すとおり さらに数回 コピー オペレーションの作成を繰り返します admin については システム内の有効なユーザー ID で置き換えます 22 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 23
24 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 33. 新たに Assign オブジェクトを作成して UpdateObjectAssign という名前を指定します 25
34. ChangeStatusAssign に対して 数回 コピー オペレーションの作成を繰り返します 26 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 27
35. Append オペレーションを作成します 28 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 4 章 :Agile PLM ワークフロー機能の拡張 注 : 1575 は Agile システムの設定に使用される属性 ID です 完成した Oracle BPEL プロセスは 以下のようになります 29
第 5 章 Agile PLM への Oracle BPEL プロセスのデプロイと起動 この章に含まれる内容は 以下のとおりです Oracle BPEL プロセスのデプロイ... 30 Agile PLM の設定と Oracle BPEL プロセスの起動... 31 Oracle BPEL プロセスのデプロイ Oracle BPEL プロセスをデプロイするには 以下の手順に従います 1. 左側のペインで build.properties をダブルクリックして このファイルを開きます 2. build.properties ファイルに 次の 3 つのプロパティを定義します これらのプロパティには 環境に応じた値を設定してください admin.user = bpeladmin admin.password =welcome1 http.port = 80 30 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 5 章 :Agile PLM への Oracle BPEL プロセスのデプロイと起動 3. build.xml を右クリックしてから Run Ant Target deploy を選択します これにより Oracle BPEL プロセスがコンパイルされ ターゲットの Oracle BPEL サーバーにデプロイされます Agile PLM の設定と Oracle BPEL プロセスの起動 この項では Agile PLM システムに関する実用的な知識を前提としています 特に Java クライアントを使用して ワークフロー イベント サブスクライバ およびイベント ハンドラを設定できる必要があります 必要に応じて Agile PLM 9.3 の Administorator Guide および SDK Developer Guide の該当部分を参照してください 31
Agile PLM の設定を行うには 以下の手順に従います 1. BPEL Change Order という名前で 新規ワークフローを作成します 手順について 詳しくは Agile Product Lifecycle Management Administorator Guide を参照してください 2. 作成したワークフローに 新規ステータスを追加します 32 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 5 章 :Agile PLM への Oracle BPEL プロセスのデプロイと起動 3. Agile 9.3 イベントを作成します 4. イベント ハンドラを作成します Oracle BPEL プロセスを起動するには 以下の手順に従います 1. 以下の手順に従って WSDL2Java を使用して 上記の Oracle BPEL プロセスにスタブを生成します 33
a. Oracle BPEL Control にログオンし Oracle BPEL プロセス向けの WSDL ファイルをダウンロードします b. Apache Web サイト (http://ws.apache.org/muse/docs/2.2.0/tutorial/03-wsdl2java.html) にある WSDL2Java チュートリアルに従って スタブを生成します c. コンパイルを実行し Java jar コマンドを使用してすべてのスタブを圧縮したファイルを Agile システムの extension ディレクトリに保存します d. Agile PLM システムを再起動します 2. スタブを使用して Oracle BPEL プロセスを起動するように イベント ハンドラに Groovy スクリプティング コードを作成します 34 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張
第 5 章 :Agile PLM への Oracle BPEL プロセスのデプロイと起動 3. イベント サブスクライバを作成して イベントにイベント ハンドラを関連付けます 4. 変更要求を作成し ワークフローに BPEL Change Order を設定します 35
5. 変更が Pending から BPELStatus へルーティングされると イベントが呼び出され イベント ハンドラによりビジネス プロセスが起動されます 次に ビジネス プロセスにより Agile Web サービス API が呼び出され 変更が BPELStatus から CCB へルーティングされます さらに Agile オブジェクト フィールド (BPEL Triggerd) に ビジネス プロセスが起動された時点のタイムスタンプが記録されます 36 Agile イベント フレームワークと Oracle BPEL を使用した PLM ワークフローの拡張