第10章

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

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

 
Top of page

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

Javaアクティビティは、ページフローのコンテキスト内でJavaクラスを実行するシステムアクティビティです。 Javaアクティビティを使用すると、ユーザ操作なしに自動的に実行される、カスタムのビジネスロジックを記述できます。

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

For more information    ページフロー内でのアクティビティの使用の詳細については、Javaアクティビティを参照してください。

 
Top of page

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

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

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

  2. [新規ファイル]ダイアログボックスから、[ポートレット ]タブを選択し、[ページフローのJavaアクティビティ]をクリックします。

    JavaActivityWizard1

  3. [OK]をクリックしてウィザードを開始します。

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

    オプション

    操作内容

    クラス名

    Javaアクティビティのクラス名を指定します

    パッケージ

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

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

    リソースセット

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

    For more information    詳細については、『exteNd Directorアプリケーションの開発』のexteNd Director アプリケーションでのリソースセットの使用に関する章を参照してください。

    JActivityWizMenu2

  5. [完了]をクリックします。 ウィザードはJavaソーステンプレートを生成します。 ポップアップで[OK]をクリックしてテンプレートにアクセスします。

 
Top of page

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

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

 
Top of section

Javaアクティビティからのスコープパスへのアクセス

次の例は、Javaアクティビティが実行されているページフローで定義されているスコープパスにアクセスするための、invoke()メソッドをコード化する方法を表しています。

      
  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);
          }
          */
  
      }

 
Top of page

例: ワークフロープロセスの開始

ページフローのコンテキスト内でJavaクラスを実行する理由のひとつは、ワークフロープロセスを開始することにあります。

次の例は、この処理が行われる方法を表しています。

  // in the Java activity\qs invoke method 
  public void invoke(com.sssw.wf.api.EbiContext context) { 
    com.sssw.wf.api.EbiContext newWFContext =   com.sssw.wf.client.EboFactory.createEbiContext(); 
    EbiWorkflowEngineDelegate engineDelegate = com.sssw.wf.client.EboFactory.getWorkflowEngineDelegate();
    engineDelegate.startProcessByName("someProcess", newWFContext); 
  }




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