Cosminexus サービスプラットフォーム 開発ガイド
![[目次]](FIGURE/CONTENT.GIF)
![[用語]](FIGURE/GLOSS.GIF)
![[索引]](FIGURE/INDEX.GIF)
![[前へ]](FIGURE/FRONT.GIF)
(1) Java呼出アクティビティの定義前の準備
Java呼出アクティビティを定義する前には,次の準備をする必要があります。
- HCSCTEプロジェクトの作成
- [Java呼出アクティビティ]ダイアログで指定するJavaクラスは,HCSCTEプロジェクトのsrcディレクトリに格納されます。そのため,必ずHCSCTEプロジェクトを作成しておく必要があります。
- HCSCTEプロジェクトの作成方法については,「3.1 プロジェクトの管理」を参照してください。
- Javaクラスの作成
- Java呼出アクティビティで利用するJavaクラスを作成します。利用するJavaクラスのインターフェースについては「6.6.5(2) 利用するJavaクラスのインターフェース」を参照してください。
- なお,コンパイルするには,次に示すJARファイルを,HCSCTEプロジェクトプロパティーの[Javaのビルド・パス]に追加しておく必要があります。
<Cosminexusのインストールディレクトリ>\CSC\lib\cscbp_ejb.jar
- 注意
- Javaクラスは,リポジトリ内のすべてのHCSCコンポーネントで共有されます。そのため,既存のJavaクラスを変更した場合,変更前の内容のクラスと変更後の内容のクラスのHCSCコンポーネントが混在してしまうおそれがあります。
- Javaクラスを変更した場合,変更したJavaクラスを呼び出すJava呼出アクティビティが定義されているビジネスプロセスを,再度パッケージングしてください。
- また,Java呼出アクティビティを削除しても,利用しているJavaクラスは削除されません。使用していない不要なJavaクラスは,別途削除してください。
- ライブラリの追加
- ビジネスプロセスをパッケージングして作成されるEARファイルにライブラリを追加したい場合,HCSCTEプロジェクトのlibディレクトリにライブラリをコピーしておいてください。
- libディレクトリにコピーしたライブラリは,ビジネスプロセスをパッケージングすると,自動的にEARファイルに追加されます。
- なお,libディレクトリには,ディレクトリや次の名前のライブラリを登録しないでください。
- csbdef.jar
- cscbp_ejb.jar
- csbjava.jar
- 注意
- HCSCTEプロジェクト内のsrcディレクトリおよびlibディレクトリへのリンクは削除しないでください。
(2) 利用するJavaクラスのインターフェース
Java呼出アクティビティで呼び出すJavaクラスは,次に示すインターフェースを実装している必要があります。
package jp.co.Hitachi.soft.csc.bp.receiver.ejb;
public interface CustomClassInterface {
public Object invoke(
String processName,
int version,
String activityName,
Object inputData
) throws CSBUserException,CSBSystemException;
}
|
Javaクラスの内容について次に説明します。
- 引数
| 仮引数名 |
説明 |
| processName |
ビジネスプロセス名 |
| version |
ビジネスプロセスのバージョン |
| activityName |
アクティビティ名 |
| inputData |
Java呼出アクティビティダイアログの[引数用割当変数]で指定した変数 |
- 戻り値
- Java呼出アクティビティダイアログの[戻り値用割当変数]に指定した変数に代入されます。
- 例外
- throwされる例外がCSBUserExceptionか,CSBSystemExceptionかによって処理が異なります。
- CSBUserExceptionがthrowされた場合
- Java呼出アクティビティにフォルト処理が設定されている場合,CSBUserExceptionがthrowされると,フォルトコネクションでフォルト処理として定義されているアクティビティが実行されます。
- Java呼出アクティビティにフォルト処理が設定されていない場合,invokeJavaFaultが発生したものとして処理が進められます。
- CSBUserExceptionのインターフェースを次に示します。
package jp.co.Hitachi.soft.csc.bp;
public class CSBUserException extends Exception {
public CSBUserException() { super(); }
public CSBUserException(String message) { super(message); }
}
|
- CSBSystemExceptionがthrowされた場合
- CSBSystemExceptionがthrowされると,システム例外が発生したものとして処理が中断されます。このとき,プロセスの実行状態を永続化している場合には,ロールバックが実行されます。
- CSBSystemExceptionのインターフェースを次に示します。
package jp.co.Hitachi.soft.csc.bp;
public class CSBSystemException extends Exception {
public CSBSystemException() { super(); }
public CSBSystemException(String message) { super(message); }
public CSBSystemException(String message, Throwable cause) {
super(message, cause);
}
public CSBSystemException(Throwable cause) { super(cause); }
}
|
- CSBUserExceptionおよびCSBSystemException以外の例外が発生した場合,処理が中断されます。このとき,プロセスの実行状態を永続化している場合には,ロールバックが実行されます。
- 注意事項
- Java呼出アクティビティダイアログの[引数用割当変数]および[戻り値用割当変数]に指定する変数の型と,このインターフェースの引数および戻り値の型の対応を次に示します。
| [引数用割当変数]および[戻り値用割当変数]の変数型 |
引数および戻り値の型 |
| boolean |
java.lang.Boolean |
| numeric |
java.lang.Double |
| string |
java.lang.String |
| message |
byte[] |
上記の型以外を指定した場合,エラー(KDEC20030-E)になります。
- 利用するJavaクラスのインターフェースはcscbp_ejb.jarに含まれます。そのため,コンパイルするときには,cscbp_ejb.jarをクラスパスに追加する必要があります。
- Javaプログラムでは,呼び出しごとにデフォルトコンストラクタでインスタンスが生成されます。そのため,インスタンスにデータを保持することはできません。
- Javaプログラムの呼び出しは,コンテナ拡張ライブラリの延長で行われます。開発および実行にあたっては,Cosminexusにおけるコンテナ拡張ライブラリの利用の指針に従ってください。コンテナ拡張ライブラリの利用の指針については,マニュアル「Cosminexus 機能解説」を参照してください。
Java呼出アクティビティの定義の手順を次に示します。
- Java呼出アクティビティをキャンバスに配置します。
アクティビティを配置する方法については,「6.4.1 アクティビティを配置する」を参照してください。
- 次のどちらかの方法で[Java呼出アクティビティ]ダイアログを表示させます。
- キャンバスのJava呼出アクティビティをダブルクリックする
- キャンバスのJava呼出アクティビティを選択して右クリックし,[設定]を選択する
[Java呼出アクティビティ]ダイアログが表示されます。
- [Java呼出アクティビティ]ダイアログに必要な情報を入力します。
[Java呼出アクティビティ]ダイアログの表示・入力内容の詳細については,「11.4.9 Java呼出アクティビティダイアログ」を参照してください。
[引数用割当変数]および[戻り値用割当変数]に設定する変数の内容を編集する場合,[編集]ボタンをクリックします。表示される[変数・相関セット一覧]ダイアログで,変数の内容を編集できます。[変数・相関セット一覧]ダイアログの詳細については,「11.4.1 変数・相関セット一覧ダイアログ」を参照してください。
- [Java呼出アクティビティ]ダイアログの[OK]ボタンをクリックします。
[Java呼出アクティビティ]ダイアログが閉じられます。
- キャンバスのJava呼出アクティビティを右クリックし,[Javaエディタ起動]を選択します。
EclipseのJavaエディタが起動されます。
Javaエディタには,[Java呼出アクティビティ]ダイアログで指定したクラスのソースコードが表示されます。[Java呼出アクティビティ]ダイアログで指定したクラスが初めて編集するクラスの場合,Javaエディタを起動するとソースコードのテンプレートが表示されます。
- Java呼出アクティビティから呼び出されるJavaクラスのソースコードを,Javaエディタで編集します。
- 編集したJavaクラスのソースコードをコンパイルします。
- 編集したソースコードおよびコンパイルしたクラスファイルを保存して,Javaエディタを終了します。
(4) 定義時の注意事項
- アクティビティ名はビジネスプロセス(スコープ内も含む)内で一意になるように指定してください。
- アクティビティ名は64バイト以内にしてください。
- 必ずJavaクラス名を設定してください。
All Rights Reserved. Copyright (C) 2006, 2008, Hitachi, Ltd.