第10章
この章では、ページフロープロセスで使用するJavaアクティビティの作成方法について説明します。この章は、次の節から構成されています。
Javaアクティビティは、ページフローのコンテキスト内でJavaクラスを実行するシステムアクティビティです。 Javaアクティビティを使用すると、ユーザ操作なしに自動的に実行される、カスタムのビジネスロジックを記述できます。
Javaアクティビティウィザードを使用してJavaアクティビティを作成し、作成されたJavaクラステンプレートをコード化してページフローモデラーでアクティビティを追加することができます。 ページフローエンジンは、Javaアクティビティが処理された後に、自動的に作業を転送します。
ページフロー内でのアクティビティの使用の詳細については、Javaアクティビティを参照してください。
[新規ファイル]ダイアログボックスから、[ポートレット ]タブを選択し、[ページフローのJavaアクティビティ]をクリックします。
|
オプション |
操作内容 |
|---|---|
|
クラス名 |
Javaアクティビティのクラス名を指定します |
|
パッケージ |
(オプション)Javaアクティビティを基本ディレクトリのサブディレクトリに配置するため、パッケージ階層(レベルをピリオドで区切ります)を指定します。 これは、Javaアクティビティが保存されるディレクトリにのみ影響します。 たとえば、基本ディレクトリがProjectDir/srcで、パッケージとしてcom.mycoを指定した場合、JavaアクティビティはProjectDir/src/com/mycoに作成されます。 |
|
リソースセット |
アプリケーションデータを格納するリソースセットを選択します。
|
[完了]をクリックします。 ウィザードはJavaソーステンプレートを生成します。 ポップアップで[OK]をクリックしてテンプレートにアクセスします。
生成されたクラスは、EbiJavaActivityインタフェースを実装し、invoke()メソッドのメソッドスタブを生成します。 このメソッドはコンテキストを提供し、作業がページフロープロセスの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);
}
*/
}
ページフローのコンテキスト内で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 ...