前のトピック: 出力パラメータ次のトピック: Java の呼び出しオペレータ サンプルの実行のためのリソース


Java サンプル

以下のサンプルは、[Required Main Method]フィールドの[例]セクションにあります。

/*
Java SDK または外部 Jar で定義されたオブジェクトおよびメソッドを呼び出すために、メイン メソッドが使用されます。
メイン メソッドは通常の Java ステートメントと式で構成されます。
また、以下を実行できます。
- 自身のメソッドを定義し、メイン メソッドの内部でそのメソッドを使用する
- 入力パラメータをメイン メソッドにに渡す
- メイン メソッドの実行の最終段階で、出力変数をオペレータのデータセット内に保存する
- メイン メソッド内でロガー オブジェクトを使用する

通常、外部 Jar 内のクラス定義をすべて記述しオペレータの外部 Jar パスでそれらをリスト表示し、その後、初期化して、メイン メソッドでこれらのオブジェクトを使用します。
*/

/*
以下では、MyAccount オブジェクトを初期化して使用する方法のサンプルを示します。このオブジェクトは、外部 Jar ファイルで定義されます。
オペレータ設定:
1. パスを指定します。 
外部 Jar パスのオペレータ リストの「Invoke_Java_Op_Example_Jars/MyAccount.jar」。 MyAccount.jar には ca.tech.pam.MyAccount クラスが含まれ、以下のコードで使用されます。 MyAccount.jar は、CA Process Automation のインストール中に、ユーザ リソースとしてアップロードされます。
2. オペレータの入力パラメータのリストで、最初のオブジェクトとしてタイプ Date のデータセット変数を指定します。 
    このパラメータには、args [0]として、メイン メソッド内でアクセスできます。
3. オペレータの入力パラメータのリストで、2 番目のオブジェクトとしてタイプ Integer と値 100 のデータセット変数を指定します。 
    このパラメータには args [1]として、メイン メソッド内でアクセスできます。
4. オペレータの出力変数名のリストで、最初のオブジェクトとして変数名 acct (引用符なし)を指定します。
    acct は、MyAccount オブジェクトとして、メイン メソッドで作成されます。このため、acct はオペレータの実行の最終段階で、acct はタイプ JavaObject の変数としてオペレータのデータセットで保存されます。
5. ロガーを使用するオペレータを設定し、[ログ ファイル パス]をローカル ローカル ファイル パス、[ログ レベル]を[情報]、[ログ ファイルに追加しますか?]を false、[ログ情報なしのログ データ]を true に設定します。
*/

// 使用するクラスをインポートします
import ca.tech.pam.MyAccount;

// 注: StringBuffer と Date (以下で使用)は、自動的にインポートされるパッケージに含まれるため
// (これらのパッケージの全リストはドキュメントで指定されます)、インポートする必要はありません
// import java.lang.StringBuffer;
// import java.util.Date;

// MyAccount オブジェクトを初期化します
// MyAccount コンストラクタが外部 jar で次のように定義されることに注意します。
// public MyAccount(Date date, int balance)
MyAccount acct = new MyAccount(args[0], args[1]);

// MyAccount オブジェクトのパブリック メソッドを使用します
// addFunds が外部 jar で次のように定義されることに注意します。
// public int addFunds (int amnt)
acct.addFunds(34);

// subFunds が外部 jar で次のように定義されることに注意します。 
// public int subFunds (int amnt)
acct.subFunds(10);

// 自分のメソッドを定義します
String getStatement(MyAccount acc) {
    StringBuffer strBuff = new StringBuffer("Account Balance: " + acc.getBalance());
    Date dt = new Date(System.currentTimeMillis());
    strBuff.append(" on date: " + dt);
    return strBuff.toString();
}

// 定義したメソッドを使用し、オペレータ の[ロガー]ページでセットアップした「ロガー」オブジェクトを使用する
// ステートメントを印刷します
logger.info(getStatement(acct));

// オペレータの実行の終わりで:
// acct はタイプ JavaObject の変数としてオペレータのデータセットに保存されます。
// ロガーのログ ファイルには、次のメッセージが含まれます。
// 	Account Balance: 124 on date: Thu Aug 22 11:27:29 EDT 2013
// 	(メッセージには、実行の正しい日時が含まれます)。