Linux で シェルスクリプト(shell script) から Caché/Ensemble のルーチンやメソッドを実行し戻り値を取得するには csession または ccontrol session コマンドを使用します。以下ドキュメントをご参照ください。
Caché インスタンスの接続について
※コマンドのオプション指定方法は両コマンドで共通です。
コマンド記述例は以下の通りです。
シェルスクリプトへの戻り値の指定は、ルーチンやメソッド終了時に指定する QUIT や RETURN コマンドに引数を指定する方法ではなく、Caché/Ensemble 内の処理終了時に %SYSTEM.Process クラスの Terminate() メソッドを使用して 特殊変数 $? に値を返す方法を利用します。
値は、0~255 を指定できます。
ルーチンでの利用例は以下の通りです。
// ルーチン名をTestとします
start1() public {
hang 5 // 5秒待つ
//第2引数に指定した数値がシェルスクリプトに戻ります
set st=$system.Process.Terminate($JOB,11)
}
実行例は以下の通りです。
# csession cache -U USER "start1^Test()"
# echo $?
11
クラスメソッドでの利用例は以下の通りです。
Class Test.Class1
{
実行例は以下の通りです。
# csession cache -U USER "##class(Test.Class1).test()"
# echo $?
12