6.6.5 Java呼出アクティビティ

専用インターフェース(jp.co.Hitachi.soft.csc.bp.receiver.ejb.CustomClassInterface)を実装したJavaクラスの呼び出しを定義するアクティビティです。

Java呼出アクティビティは,[Java呼出アクティビティ]ダイアログで詳細を定義します。

<この項の構成>
(1) Java呼出アクティビティの定義前の準備
(2) 利用するJavaクラスのインターフェース
(3) 定義手順
(4) 定義時の注意事項

(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アクティビティ名
inputDataJava呼出アクティビティダイアログの[引数用割当変数]で指定した変数
戻り値
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呼出アクティビティダイアログの[引数用割当変数]および[戻り値用割当変数]に指定する変数の型と,このインターフェースの引数および戻り値の型の対応を次に示します。
    [引数用割当変数]および[戻り値用割当変数]の変数型引数および戻り値の型
    booleanjava.lang.Boolean
    numericjava.lang.Double
    stringjava.lang.String
    messagebyte[]
    上記の型以外を指定した場合,エラー(KDEC20030-E)になります。
  • 利用するJavaクラスのインターフェースはcscbp_ejb.jarに含まれます。そのため,コンパイルするときには,cscbp_ejb.jarをクラスパスに追加する必要があります。
  • Javaプログラムでは,呼び出しごとにデフォルトコンストラクタでインスタンスが生成されます。そのため,インスタンスにデータを保持することはできません。
  • Javaプログラムの呼び出しは,コンテナ拡張ライブラリの延長で行われます。開発および実行にあたっては,Cosminexusにおけるコンテナ拡張ライブラリの利用の指針に従ってください。コンテナ拡張ライブラリの利用の指針については,マニュアル「Cosminexus 機能解説」を参照してください。

(3) 定義手順

Java呼出アクティビティの定義の手順を次に示します。

  1. Java呼出アクティビティをキャンバスに配置します。
    アクティビティを配置する方法については,「6.4.1 アクティビティを配置する」を参照してください。
  2. 次のどちらかの方法で[Java呼出アクティビティ]ダイアログを表示させます。
    • キャンバスのJava呼出アクティビティをダブルクリックする
    • キャンバスのJava呼出アクティビティを選択して右クリックし,[設定]を選択する
    [Java呼出アクティビティ]ダイアログが表示されます。
  3. [Java呼出アクティビティ]ダイアログに必要な情報を入力します。
    [Java呼出アクティビティ]ダイアログの表示・入力内容の詳細については,「11.4.9 Java呼出アクティビティダイアログ」を参照してください。
    [引数用割当変数]および[戻り値用割当変数]に設定する変数の内容を編集する場合,[編集]ボタンをクリックします。表示される[変数・相関セット一覧]ダイアログで,変数の内容を編集できます。[変数・相関セット一覧]ダイアログの詳細については,「11.4.1 変数・相関セット一覧ダイアログ」を参照してください。
  4. [Java呼出アクティビティ]ダイアログの[OK]ボタンをクリックします。
    [Java呼出アクティビティ]ダイアログが閉じられます。
  5. キャンバスのJava呼出アクティビティを右クリックし,[Javaエディタ起動]を選択します。
    EclipseのJavaエディタが起動されます。
    Javaエディタには,[Java呼出アクティビティ]ダイアログで指定したクラスのソースコードが表示されます。[Java呼出アクティビティ]ダイアログで指定したクラスが初めて編集するクラスの場合,Javaエディタを起動するとソースコードのテンプレートが表示されます。
  6. Java呼出アクティビティから呼び出されるJavaクラスのソースコードを,Javaエディタで編集します。
  7. 編集したJavaクラスのソースコードをコンパイルします。
  8. 編集したソースコードおよびコンパイルしたクラスファイルを保存して,Javaエディタを終了します。

(4) 定義時の注意事項