第6章

Javaアクティビティウィザード

この章では、ワークフロープロセスで使用するJavaアクティビティの作成方法について説明します。この章は、次の節から構成されています。

 
Top of page

Javaアクティビティについて

Javaアクティビティは、exteNd Directorワークフローアプリケーションのコンテキスト内で実行するJavaクラスです。 Javaアクティビティを使用することによって、ユーザの操作なしに自動的に実行されるカスタムビジネスロジックを作成できます。

Javaアクティビティウィザードを使用してJavaアクティビティを作成し、Javaクラステンプレートをコード化してワークフローモデラーにアクティビティを追加することができます。 ワークフローエンジンは、Javaアクティビティが処理されると、自動的に作業を転送します。

 
Top of page

Javaアクティビティウィザードの使用

Procedure Javaアクティビティのコードテンプレートを生成する

  1. exteNd Directorでプロジェクトが開いている状態で、[ファイル]>[新規]>[ファイル]の順に選択します。

  2. [新規ファイル]ダイアログボックスで、[ワークフロー]タブを選択して[Javaアクティビティ]をクリックします。

    JActivityWizMenu

  3. [OK]をクリックしてウィザードを起動します。 次のパネルが表示されます。

    JActivityWizMenu2

  4. ウィザードパネルを完了します。

    オプション

    操作内容

    クラス名

    Javaアクティビティにクラス名を指定する

    パッケージ

    (オプション) Javaアクティビティを基本ディレクトリのサブディレクトリに配置するため、パッケージ階層(レベルをピリオドで区切ります)を指定します。

    この指定で影響を受けるのはJavaアクティビティが保存されているディレクトリだけです。 たとえば、基本ディレクトリがProjectDir/srcのときにパッケージとしてcom.mycoを指定した場合、JavaアクティビティはProjectDir/src/com/mycoに作成されます。

    リソースセット

    アプリケーションデータを保存するリソースセットを選択します。

  5. [完了]をクリックします。 ウィザードによってJavaソーステンプレートが生成されます。

  6. ポップアップの[OK]をクリックしてテンプレートにアクセスします。

 
Top of page

Javaアクティビティのコード化

生成されたクラスは、EbiJavaActivityインタフェースを実装して、invoke()メソッドに対してメソッドスタブを生成します。 このメソッドは、ワークフローコンテキストを提供し、ワークフロープロセスで作業がJavaアクティビティに転送されると、呼び出されます。

 
Top of section

スコープパスへのアクセス

次の例では、ランタイム時にJavaアクティビティのスコープパスにアクセスする方法を示します。 この例では、セッションスコープを使用します。 一般的に、ワークフローのワークアイテムはFlowスコープに保存されます。

  import com.sssw.wf.api.*;
   
    public void invoke(EbiContext context) {
  
          try {
              // how to get a value from a scopedPath. ( assuming a request var of fname )
              com.sssw.fw.api.EbiScopedPath fname =
                com.sssw.fw.factory.EboScopedPathFactory.createScopedPath(
                   "/Request/param/fname");
              String theFirstName = (String)fname.getValue( context );
   
              // how to set a value on a scopedPath.
              com.sssw.fw.api.EbiScopedPath sessionDoc =
                com.sssw.fw.factory.EboScopedPathFactory.createScopedPath(
                  "/Session/DOC");
              sessionDoc.setValue( context, "mySessionDocValue" );
   
              // how to copy the request Referer into a session variable
              com.sssw.fw.api.EbiScopedPath from =
                com.sssw.fw.factory.EboScopedPathFactory.createScopedPath(
                  "/Request/prop/Referer");
              com.sssw.fw.api.EbiScopedPath to =
                com.sssw.fw.factory.EboScopedPathFactory.createScopedPath(
                  "/Session/Referer");
              com.sssw.fw.core.EboScopedPathUtil.copy( context, from, to );
          }
          catch( Exception e ) {
              System.out.println(e);
          }
  
      }




Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...