2010年3月30日火曜日

OSS 11g/Human Task

シンプルな Human Task を作って動かしてみる。

■■■ 環境/前提/準備
■ 環境
  • Oracle SOA Suite 11g
  • Oracle JDeveloper 11g
  • サーバ: 192.168.0.3(余りに重いので作業マシンとサーバマシンを分けた)
  • Weblogicコンソール: http://192.168.0.3:7001/console/
  • Enterprise Manager: http://192.168.0.3:7001/em/
  • ワークリスト: http://192.168.0.3:7001/integration/worklistapp/

■ ユーザ追加
  • Weblogic のコンソールで以下のようにナビゲート
    base_domain > Summary of Security Realms > myrealm > Users and Groupsタブ > Usersタブ
  • New でユーザを追加。 ここでは approver とした。


■■■ アプリ作成
■ コンポジット作成
  • 新規プロジェクト 作成する
    • 名前: 任意(SimpleHumanTaskとした)
    • プロジェクト・テクノロジ: SOAを選択
    • コンポジット・テンプレート: BPEL を使用するコンポジット
※ 勝手にBPELプロセス作成ウィザードが始まる

■ BPELプロセス作成
  • 名前:任意(SimpleHumanTaskProcess とした)
  • テンプレート:非同期BPELプロセス
  • SOAPサービスとして公開:チェック

■ HumanTask 作成
  • composite.xml を開く
  • コンポーネントのレーンにヒューマン・タスクを置く
  • 任意の名前を入力(ここではEvaluation とした)
  • ダブルクリックして編集開始
    • 一般/タイトル:<%'Evaluate Input'%>
    • データ/ペイロードの追加
      • [その他のペイロードの追加]
      • "要素"を選択
      • 虫眼鏡のアイコンからタイプチューザを起動し、以下を選択
        "プロジェクトのスキーマ・ファイル">SimpleHumanTaskProcess.xsd>process
      • ワークリストにより編集可能: チェック
    • 割当てを選択
    • Stage1をダブルクリック
      • タイプ: 単一
      • 値ベース: チェック
      • ユーザの追加
      •  識別タイプ: ユーザ
      •  データ型: 名前別
      •  値: approver (以下のようにアイデンティティ・ルックアップが使える)

  • composite エディタ上で、BPELプロセスから HumanTask にワイアリング

■ BPEL の編集
  • receiveInput と callbackClient の間に HumanTask を置く
  • タスク定義で上で Evaluation を選択
  • タスクパラメータに inputVariable/payload/processを指定
  • taskSwitch を展開して、各case 内のassign を編集
    • REJECTケース内のassign を展開してコピー操作を追加
      • from: 式'rejected'
      • to: output/payload/processResponse/result
    • 同様に APPROVEケースで式'approved', 残りのケースに式'expired'を追加

■ フォームの作成
  • BPELエディタ上でHumanTask を右クリック
  • [タスクフォームの自動生成]を実行
  • しばらく待つとかなりの量のソースが自動生成され、フォームエディタが開いて自動生成完了

■■■ デプロイとテスト
■ デプロイ
  • SimpleHumanTask プロジェクトをデプロイする
  • アプリケーションメニューのデプロイから EvaluationForm をデプロイ
    ※プロジェクトのコンテキストメニューのデプロイではない
    ※万一でぷろいエラー[Deployer:149140]が出たら、Weblogic のコンソールを開いて左上の"Change Center"からセッションをクリア

■ テスト
  • Enterprise Manager で SimpleHumanTask を選択し、[Test]を実行する
  • Input Arguments の領域で、payload/input に 何か適当に入力
  • [Test Web Service] ボタンを押下
    • [Launch Message Flow Trace]を押下するとフローの状態が表示され、BPEL プロセスと Evaluation ヒューマン・タスクが Running 状態のままになのが分かる。
  • ワークリストに ブラウザからapprover でログインすると、回ってきたタスクが表示されている。
  • ダブルクリックするとフォームが開く
  • [承認]ボタンを押す。
    • 再度、Enterprise Manager からプロセスの様子を見ると、全部 Completed になったのが分かる

0 件のコメント:

コメントを投稿