Tivoli Service Desk 6.0 Developer's Toolkit Script 言語解説書
メイン・ページに戻る
TSD Script アプリケーションを即時に終了します。
PROCEDURE Abort;
ACTIONS IF NOT FExists('F:\DATA\MYFILE.DAT') THEN WinMessageBox($Desktop,'Error',$MBOK,'I can't live without this file'); Abort; END;
現行関数を中断し、TSD Script デバッガーを起動します。
PROCEDURE BreakPoint;
注意:TSD Script インタープリターがデバッガー・ライブラリー・ファイルを見つけることができない場合には、このステートメントは何の効果もありません
BreakPoint プロシージャーは、主としてアプリケーションのデバッグで TSD Script プログラマーを補助するために提供されています。TSD Script デバッガーを使用して、プログラマーはアプリケーションの現在の状態を検査し、そのステートメントの進行状況をモニターすることができます。
Tivoli Service Desk 6.0 Developer's Toolkit Script プログラミングの手引き
知識ベース名および関数名またはプロシージャー名が文字列式に組み込まれている関数またはプロシージャーを呼び出します。
FUNCTION CallFunction (VAL func: STRING [, arg: ANY ...] ): INTEGER;
CallFunction への追加引き数に対するタイプの検査は行われません。不適切なタイプの引き数は予期しない動作 (アプリケーションの時ならぬ終了を含む) の原因になる場合があります。
CallFunction は、正常コードまたは障害コードしか戻しません。呼び出し先ルーチンによって戻された値は廃棄されます。
ターゲット関数に渡す引き数を指定する場合には、それらの引き数は値ではなく変数でなければなりません。そうでない場合には、TSD Script Parser はエラー・メッセージを表示します。たとえば、次は無効です。
CallFunction ('mykb:myfunc', 1, 'foo');
代りに、ユーザーは、関数に渡す値を格納する一時変数を宣言する必要があります。
i:=1; s:='foo'; CallFunction ('mykb:myfunc', i,s);
CallFunction を使用するには、呼び出し先関数が入っている知識ベースをロードしなければなりません。一般に、知識ベースは 1 つ以上の知識ベースの USES セクションで指定されるので、通常のプログラム開始処理時にロードされます。また、コマンド行で /F 引き数によってそれを TSD Script インタープリターに渡すことによってロードすることもできます。例:
KML /F=EA.KBC /F=CUSTOM.KBC
この例では、2 つの知識ベースが TSD Script インタープリターに 1 つのコマンドで渡しました。コマンド行手法は、元のソース・コードを更新しないでアプリケーションをカスタマイズするために使用することができます。
引き数名 | 説明 |
func | 知識ベース名とプロシージャー名または関数名がコロンで区切られて format:kbase.func に入っている文字列式 |
arg | 不特定タイプのゼロ個または 1 個以上の引き数。この引き数に関する詳細については、「注意」の項を参照してください。 |
この関数が役立つのは、カスタマイズ可能アイコン・バーなどの特殊機構を作成する場合です。たとえば、アイコンおよびアクションのデータベース・テーブルを作成することができます。ユーザーがアイコンをクリックすると、それと関連付けられたアクションが実行されます。アクションはテーブルに文字列として保管されていなければならないので、メソッドを使用して TSD Script ルーチンを起動します。 CallFunction はこの機能を提供します。
CallFunction は、呼び出し先ルーチンに渡す任意の数の引き数を取ります。
CallFunction('SERVICES:DISPLAYINFO');
戻りコード | 説明 |
1 | 正常終了。 |
-1 | 最初の引き数が不明です。1 つ以上の仮パラメーターを対応する引き数にバインドできなかったので、呼び出しはルーチンを起動しないで打ち切られました。通常、これはパラメーターのいずれかで境界外索引エラーの結果です。 |
-2 | 実行時システムが指定のルーチンを見つけることができませんでした。 |
-3 | メモリー不足。 |
システム・エラー報告のために重大度しきい値を設定します。
FUNCTION ErrorFilter [ (VAL level: INTEGER) ] : INTEGER;
引き数名 | 説明 |
level | 指定されると、この引き数がシステム単位の新規エラー報告しきい値になります。 |
注意: 致命エラー・メッセージは抑止することができません
一般に、TSD Script は、エラーが起こると常にエラー・ボックスを表示します。各エラーには、次の事前定義のエラー・レベルのいずれかが割り当てられています。
戻りコード | 説明 |
0 | 致命的エラー |
1 | エラー |
2 | 警告 |
3 | メッセージ |
ErrorLevel のデフォルト値により全エラー・レベルが表示されます。
ErrorFilter により、このしきい値より大きいレベルのエラー (致命的エラー以外) が表示されないように、しきい値エラー・レベルを設定することができます。
VARIABLES oldLevel, err: INTEGER; employee: EmployeeRecord;
ACTIONS oldLevel := ErrorFilter(2); -- すべての警告を抑制します。 err := SQLSelectInto('SELECT * FROM EMPLOYEES WHERE SALARY > ' & limit, employee); ErrorFilter(oldLevel); IF err > 0 THEN ...
戻りコード | 説明 |
ErrorFilter | 直前の重大度レベルを戻します |
変数の値を $Unknown に設定します。
FUNCTION SetUnknown (REF var: ANY): INTEGER;
引き数名 | 説明 |
var | 値を $Unknown に設定する変数。 |
SetUnknown により、指示された変数と関連付けられた値が破棄されます。 RECORD のメンバーの他に、タイプが RECORD 以外の変数も $Unknown に設定されます。リストおよび配列はゼロに設定されます。
VARIABLES r: EmployeeRecord;
ACTIONS REPEAT IF NOT DataEntryForm(r) THEN ExitLoop; END; StoreRecord(r); SetUnknown(r); UNTIL FALSE;
戻りコード | 説明 |
1 | エラーなし |
-1 | そのような変数がありません |
Sin
Tivoli Service Desk 6.0 Developer's Toolkit Script 言語解説書