Version 2015.1.x ~
  Linux のシェルスクリプトで Caché/Ensembmle のルーチンやメソッドの戻り値を取得する方法を教えてください

 

Linux で シェルスクリプト(shell script) から Caché/Ensemble のルーチンやメソッドを実行し戻り値を取得するには csession または ccontrol session コマンドを使用します。以下ドキュメントをご参照ください。
Caché インスタンスの接続について
※コマンドのオプション指定方法は両コマンドで共通です。

コマンド記述例は以下の通りです。

csession インスタンス名 -U ネームスペース名 "実行ルーチン・メソッド" 


シェルスクリプトへの戻り値の指定は、ルーチンやメソッド終了時に指定する 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
{

ClassMethod test()
{
hang 5 // 5秒待つ
//第2引数に指定した数値が シェルスクリプトに戻ります
set st=$system.Process.Terminate($JOB,12)
}
}


実行例は以下の通りです。
 

# csession cache -U USER "##class(Test.Class1).test()"
# echo $?
12

該当する製品: Caché, Ensemble, HealthShare/Caché Based
関連トピック: Windows のバッチスクリプトで Caché/Ensemble のルーチンやメソッドの戻り値を取得する方法を教えてください。
関連トピック:Windowsバッチでターミナルスクリプトを実行する方法を教えてください
添付ファイル:

アンケートにご協力をお願いします
このトピックは参考になりましたか?
このトピックに関するお問い合わせ

FAQトップに戻る