Tivoli Service Desk 6.0 Developer's Toolkit Script 言語解説書

オペレーティング・システム・インターフェース

メイン・ページに戻る


SysCallProgram

説明

プログラムを呼び出します。

構文

FUNCTION SysCallProgram(VAL commandLine: STRING [VAL arg: STRING ... ]): INTEGER;

引き数の注

引き数名 説明
commandLine 呼び出される実行可能プログラムの名前を含むストリング式。名前が修飾されていない場合には、PATH からプログラムが検索されます。
arg 呼び出されるプログラムのコマンド行引き数。各引き数は、タイプ STRING でなければなりません。

SysCallProgram は、プログラムを開始するためにだけ使用されます。

KNOWLEDGEBASE Make;
    ROUTINES
 PROCEDURE MakeKB( VAL argList: LIST OF STRING );
PRIVATE
    ROUTINES
EVENT ErrorEvent IS
  ACTIONS
 WHEN $Event IS $MsgLabel THEN
 SysCallProgram( 'aseedit.exe',
 $EventParm( 2, STRING ) );
        END;
        END;
PROCEDURE MakeKB( VAL argList: LIST OF STRING ) IS
  VARIABLES
 whdl: WINDOW;
 hdlSession: SESSION;
 fileName: STRING;
  ACTIONS
(* コマンド入力行にファイルが指定されていない場合に、プロンプトを表示 *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb', 0, 0,
                  'File to parse?', $FileDlgCenter +
                  $FileDlgOpen ) <1
                 THEN
Exit;
        END;
 fileName := StrDelete( fileName, StrLength ( fileName )- 2, 3 );
 ListInsert( argList, fileName );
        END;
 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* 「進行中」ウィンドウを表示 *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4, 'Parsing', $Helvetica, 14,
                    BitOr($WinTitle, $WinBorder,
                       $WinAutoPos,$WinSYsMenu ));
 WinWriteLN( whdl, fileName );
(* アプリケーション・ソフトウェア・スクリプト構文解析プログラムのセッション
を作成します。セッションは目に見えない状態で作成されます。エラーのある
IDE 形式ファイルが要求されました *)
 SysCallProgram('kp.exe', '/IDE', '/e', fileName.&:ERR',
                fileName);
  SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN (* エラーのあるファイルをテスト *)
 WinCreateHyperViewer( $Desktop, whdl, '',
                      ErrorEvent, 0, 0, 0, 0,
                      fileName & '.ERR',
                    BitOr($WinTitle, $WinBorder,
 $WinAutoPos, $WinAutoSize, $WinSysMenu,
 $WinReSize ));
 SendMessage( whdl, $MsgOpenFile, fileName & '.ERR',
 fileName, $HyperNoWordWrap );
 WinWait( whdl );
        END;
        END;
        END;

戻りコード

戻りコード 説明
1 成功
-2 不明の値
-3 メモリー不足

次も参照してください


SysCreateSession

説明

新規セッションでプログラムを呼び出し元プログラムの子として開始します。

構文

FUNCTION SysCreateSession(REF hdlSession: SESSION,
                          VAL program, argList: STRING,
                          VAL xLoc, yLoc, width,
                          height, style: INTEGER): INTEGER;

注意: アプリケーションが終了すると、アプリケーションによって作成されたすべてのセッションが終了します

引き数の注

引き数名 説明
hdlSession 新しく作成されたセッションのセッション・ハンドルが戻されます。セッションが作成されていない場合には、ハンドルは $Unknown に設定されます。
program 実行するプログラムの名前。プログラムが PATH にない場合には、完全修飾名を指定しなければなりません。
argList 呼び出されるプログラムのすべてのコマンド行引き数。
xLoc 新規セッションの左上隅の X 座標。必ずしもすべてのプログラムが位置決めをサポートしているわけではありません。
yLoc 新規セッションの左上隅の Y 座標。必ずしもすべてのプログラムが位置決めをサポートしているわけではありません。
width 新規セッションの幅。必ずしもすべてのプログラムが位置決めをサポートしているわけではありません。
height 新規セッションの高さ。必ずしもすべてのプログラムが位置決めをサポートしているわけではありません。
style 新規セッションの動作をコントロールするスタイル・フラグ。次のフラグを結合して、このスタイルを作ることができます。
  • $SessionBackground - $SessionBackground は、バックグラウンドで作成されます。作成ではフォーカスがおかれません。
  • $SessionInvisible - $SessionInvisible は、目に見えずに作成されます。
  • $SessionAutoPosition - $SessionAutoPosition は、サイズおよび位置のパラメーターを無視して、セッションを画面に位置付けます。

この関数が機能するには、引き数リストが知られていなければなりません。引き数がない場合には、長さが 0 のストリング ('') を渡さなければなりません。

注: $Unknown を渡さないでください。

OS/2 では、プログラムとして COMMAND.COM、引き数として /c win <progname> を指定することによって、全画面 Windows セッションを作成することができます。

ウィンドウのサイズ設定パラメーター

OS/2 では、多くのプレゼンテーション・マネージャー・アプリケーションがその始動時にその独自のウィンドウ・サイズを設定します。この場合には、xLoc、yLoc、xLen、および yLen の各パラメーターは、無視されます。

xLoc、yLoc、xLen、および yLen のパラメーターは、Windows では使用されません。Windows では、これらのスタイルを $SessionAutoPosition とみなしてすべてのセッションが作成されます。

KNOWLEDGEBASE Make;
    ROUTINES
 PROCEDURE MakeKB( VAL argList: LIST OF STRING );
PRIVATE
    ROUTINES
EVENT ErrorEvent IS
  ACTIONS
 WHEN $Event IS $MsgLabel THEN
SysCallProgram( 'aseedit.exe', $EventParm( 2, STRING ) );
        END;
        END;
PROCEDURE MakeKB( VAL argList: LIST OF STRING ) IS
  VARIABLES
 whdl: WINDOW;
 hdlSession: SESSION;
 fileName: STRING;
  ACTIONS
(* コマンド入力行にファイルが指定されていない場合に、プロンプトを表示 *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb',
                  0, 0, 'File to parse?',
                  $FileDlgCenter + $FileDlgOpen ) <1
                 THEN
Exit;
        END;
 fileName := StrDelete( fileName, StrLength
                       (fileName) - 2, 3 );
 ListInsert( argList, fileName );
        END;



 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* 「進行中」ウィンドウを表示 *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4,
                       'Parsing', $Helvetica, 14,
                    BitOr($WinTitle, $WinBorder,
                       $WinAutoPos,$WinSYsMenu ));
 WinWriteLN( whdl,fileName );
(* アプリケーション・ソフトウェア・スクリプト構文解析プログラムのセッション *)
(* を作成します。セッションは目に見えない状態で作成されます。エラーのある *)
(* IDE 形式ファイルが要求されました *)
SysCreateSession( hdlsession, 'kp.exe','/IDE /e' &
                 fileName & '.ERR ' & fileName,
                  0, 0, 0, 0, $SessionInvisible );
 SysWaitSession( hdlSession ); 
(* 構文解析プログラムが完了した時に、「進行中」ウィンドウをクローズ *)
  SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN
(* エラーのあるファイルをテスト *)
 WinCreateHyperViewer( $Desktop, whdl, '',
                      ErrorEvent, 0, 0, 0, 0,
                      fileName & '.ERR',
                    BitOr($WinTitle, $WinBorder,
                      $WinAutoPos, $WinAutoSize,
                      $WinSysMenu, $WinReSize ));
 SendMessage( whdl, $MsgOpenFile, fileName & '.ERR',
 fileName, $HyperNoWordWrap );
 WinWait( whdl );
        END;
        END;
        END;

戻りコード

戻りコード 説明
1 正常終了
-2 不明の値
-4 セッションを作成できませんでした。

次も参照してください


SysDelay

説明

n ミリ秒間実行を休止させます。

構文

FUNCTION SysDelay(VAL time: INTEGER): INTEGER;

引き数の注

引き数名 説明
time 遅延期間 (ミリ秒)

KNOWLEDGEBASE Tone;
    ROUTINES
PROCEDURE ToneExample;
PRIVATE
    ROUTINES
PROCEDURE ToneExample IS
  ACTIONS
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 300, 400 );
        END;

戻りコード

戻りコード 説明
1 正常終了
-2 不明の値

次も参照してください


SysGetClipboard

説明

システム・クリップボードからストリングを取り出します。

構文

FUNCTION SysGetClipboard(REF clipBoard: STRING): INTEGER;

引き数の注

引き数名 説明
clipBoard システム・クリップボードの値を戻します。クリップボードにテキストがない場合には、$Unknown に設定されます。

KNOWLEDGEBASE Clip;
  CONSTANTS
 MENU_REFRESH IS 101;
 MENU_EXIT IS 102;
    ROUTINES
 PROCEDURE ClipView;
PRIVATE
  CONSTANTS
 menuList IS { '~File', '~Refresh', 'e~xit', '' }: LIST OF
STRING;
    ROUTINES
(* ******** EDITOR EVENT HANDLER ******** *)
EVENT ClipboardEvent( REF clipBoard: STRING ) IS
  ACTIONS
     WHEN $Event IS $MsgCreate THEN
    WinSetMenuBar( $Handle, menuList );
 SysGetClipboard( clipBoard );
 WinWrite( $Handle, clipBoard );
 ELSWHEN $MsgMenu THEN (* メニュー・メッセージ *)
 WHEN $MenuSelection IS MENU_REFRESH THEN
 SysGetClipboard( clipBoard );
 WinCLear( $Handle );
 WinWrite( $Handle, clipBoard );
 ELSWHEN MENU_EXIT THEN
      SendMessage( $Handle, $MsgClose );
        END;
        END;
        END;
PROCEDURE ClipView IS
  VARIABLES
 whdl: WINDOW;
  result: INTEGER;
  ACTIONS
 result := WinCreateScrollWindow( $Desktop, whdl,
                                 ClipboardEvent{''}, 0, 0, 0, 0,
                                 'KML Clipboard viewer', '', 10,
                                 BitOr($WinBorder, $WinTitle,
                                 $WinResize, $WinSysMenu,
                                 $WinMenu, $WinAutoPos,
                                 $WinAutoSize, $WinVScroll,
                                 $WinHScroll, $WinTaskList ))
  IF result < 1 THEN
                                 WinMessageBox( $Desktop, 'Error', $mbok + $MBIconError,
                                 'Open failed' & result );
        END;
 WinWait( whdl );
        END;

戻りコード

戻りコード 説明
1 正常終了
0 クリップボードが空です
-3 メモリー不足
-10 クリップボードにアクセスするためのオペレーティング・システム呼び出しの 1 つが失敗しました

次も参照してください


SysGetContext

説明

参照されたコンテキスト・レコードのフィールドを現行操作環境についての情報で完成させます。

構文

FUNCTION SysGetContext (REF context: $SystemContext): INTEGER;

引き数の注

引き数名 説明
context タイプ $SystemContext の変数

$SystemContext は、知識ベース kml.kb で宣言された RECORD タイプです。 $SystemContext の宣言は次の通りです。

$SystemContext IS RECORD
 operatingSystem: String;
 ASEVersion: String;
 VendorOSName: String:
 VendorOSVersion: String;
 FreeMemory: Integer:
 FreeResources: Integer:
 NLSInfo: $SystemNlsInfo;
        END;

$SystemContext で使用される各フィールドの説明は次の通りです。

フィールド 説明
operatingSystem Windows、OS/2、または UNIX。
ASEVersion 現在 5.0。
VendorOSName ワークステーションのオペレーティング・システムのベンダーのフルネーム。このフィールドは、$SystemContext operatingSystem フィールドと異なり、識別子の代わりに 'Microsoft Windows 95' などオペレーティング・システムの実際の名前を含みます。
VendorOSVersion ワークステーションのオペレーティング・システムのベンダーのバージョン番号。 以下の場合には、このフィールドが不明になる可能性があります。
  • バージョン番号は、(Microsoft Windows NT の場合と同様に) 相当の正確性で決定することができません。
  • オペレーティング・システムのバージョン番号は、オペレーティング・システムの名前の一部です。
FreeMemory SysGetContext 呼び出しが行われた時点にオペレーティング・システムで使用可能な空きメモリー (物理と仮想の両方) の現在の見積容量。 戻される値は、キロバイト (KB) 単位で表されます。
FreeResources このフィールドには、SysGetContext 呼び出しが行われた時点にオペレーティング・システムで使用可能な空きリソースの現在の見積容量が含まれます。オペレーティング・システムがこの概念をサポートしない場合には (OS/2 の場合にはこれが該当します)、このフィールドが不明になる可能性があります。
NlsInfo 各国語サポート情報。下の $SystemNlsInfo レコードの説明を参照してください。


SysGetContext によって戻されるレコードには次の各国語サポート (NLS) 情報が含まれます。

$SystemNlsInfo IS RECORD
 CountryCode: Integer;
 CurrencySymbol: String;
 CurrencyBefore: Boolean;
 DateFourDigitYear: Boolean;
 DateOrdering: String;
 DateSeparator: String;
 DecimalSeparator: String;
 DecimalLeadingZero: Boolean;
 NumCurrencyDecimalDigits: Integer;
 NumCurrencyExtraSpaces: Integer;
 NumericGroupSeparator: String;
 NumRealDecimalDigits: Integer;
 TimeSeparator: String;
フィールド 説明
CountryCode ホスト・マシンの国別コード。
CurrencyBefore 数値の前または後に通貨記号が表示されるかどうか。

TRUE - 通貨記号は数値の前におかれます。

FALSE - 通貨記号は数値の後におかれます。

CurrencySymbol ホスト・マシンの通貨記号
DateFourDigitYear 固有日付形式が 2 桁であるか、それとも 4 桁であるか。

TRUE = 日付は 1999 として形式設定されます

FALSE = 日付は 99 として形式設定されます

DateOrdering MM/DD/YY のような書式制御ストリング。
DateSeparator 日付の日、月、および年の値を区切るために使用される文字。
DecimalSeparator 正数部と小数部を区切るために使用される文字。
DecimalLeadingZero 1 より小さい 10 進数が先行ゼロを必要とするかどうか (たとえば 0.123 か .123)
IntlCurrencySymbol 正しい文字が常に使用可能であるとは限らない場所で国際的に使用される通過記号
LocaleId ホスト・マシンの現在の地域。
NumCurrencyDecimalDigit 小数点の左側に一般的に使用される桁数
NumCurrencyExtraSpaces 通貨記号と数値の間に挿入されるスペース数
NumericGroupSeparator 大きな数字の桁のグループをまとめるために使用される文字 (言い換えると 3 桁ごとの区切り文字)
NumRealDecimalDigits 実数を示す時に表示される桁数 (たとえば、3.14159 または 3.14)
TimeSeparator 時分秒を区切るために使用される文字

この関数によって使用される $SystemContext RECORD には、GMTBias という名前の新規フィールドがあります。 これは、現地時間と同時刻の GMT 時間との時差を
秒数で示したものです。この値は通常、ホストのオペレーティング・システムから取り出されますが、SysSetGMTDiff を使用して手操作で設定することもできます。

入力フィールドのプロパティー

このダイアログ・ボックスの「テキスト・ボックス」ページには、「GMT との間で変換」というラベルのついた新規チェック・ボックスが含まれています。このボックスは、時刻または日付パターンを含む入力フィールドの場合にのみチェックすることができます。このボックスをチェックすると、提供された時間または日付を Tivoli Service Desk Developer's Toolkit が自動的に地方時間に合わせるようにしたいということを示すことができます (SysLocalizeTime を参照)。

複数欄リスト・ボックスのプロパティー

このダイアログ・ボックスの「欄」タブには、「GMT との間で変換」というラベルのついた新規チェック・ボックスが含まれています。このボックスは、MCLB の各欄に対して個別に設定することができます。タイプ DATE または TIME の値を含むことになる欄にだけこれを設定してください。

コントロールでの日付 / 時刻の組み合わせ

入力フィールドおよび MCLB 欄 (前に説明) の「GMT との間で変換」チェック・ボックスを使用する時には、変換が行えるように、
簡単な命名規則を使用するように心掛ける必要があります。

GMT 変換用にマークされた時刻フィールドのそれぞれに対応する日付フィールドもマークしなければなりません。これら 2 つのフィールドは、命名規則を使用して相互に関連付けなければなりません (詳細については、SysLocalizeTimeSysGlobalizeTime
の説明を参照してください。

時刻フィールドおよび日付フィールドは、それぞれ "_TIME" と "_DATE" で終わるコントロール名をもつ必要があります。名前の先行する他の部分は、すべて同じでなければなりません。 以下に幾つか例を示してあります。

時刻フィールド・ 日付フィールド・
コントロール名 コントロール名 妥当性
----------------------- ----------------------- --------
START_TIME START_DATE (正)
MY_BIRTH_TIME MY_BIRTH_DATE (正)
MYBIRTHTIME MYBIRTHDATE (誤)
THE_TIME_ENDS THE_DATE_ENDS (誤)

2 つのフィールドが正しく対になっていない場合には、変換が行われないことがあります。

次も参照してください

戻りコード 説明
1 正常終了
-2 コンテキスト・パラメーターに無効な参照が含まれています

SysGetEnvironment

説明

SysGetEnvironment 関数は、オペレーティング・システムによって環境リストが提供されていれば、そのリストから指定のキーに一致するストリングを検索します。キーが見つかると、SysGetEnvironment は、そのキーに関連したストリングを戻します。

構文

FUNCTION SysGetEnvironment (VAL key: STRING): STRING;

引き数の注

引き数名 説明
key 検索するキー

環境リストに指定のキーと一致する項目が含まれていない場合には、$Unknown が戻されます。

IF UNKNOWN (fileName := SysGetEnvironment ('CONFIG')) THEN
            CreateDefaultConfigFile;\
        END;
ConfigFile :=FOpen (fileName);

戻りコード

キーが見つかると、SysGetEnvironment は、そのキーに関連したストリングを戻します。

次も参照してください

SysSetEnvironment


SysGetTaskList

説明

システムですべてのアクティブ・タスクのリストを照会します。

構文

FUNCTION SysGetTaskList(REF taskList: LIST OF $TASKRECORD): INTEGER;

注意

注: システムのセッション・コマンドは、呼び出し元のセッションによって作成されたセッションにのみ使用することができます

OS/2 では、異なるプロセスに属するウィンドウに送られるメッセージについて制限が設けられています。 こうした制限の詳細については、OS/2 システムのプログラミング資料を参照してください。

引き数の注

引き数名 説明
taskList この引き数は、システム定義のレコード・タイプ $TASKRECORD のリスト変数でなければなりません。 $TASKRECORD は、システムの知識ベース kml.kb 中に次のように定義されています。
 $TASKRECORD IS
 title: STRING;
 hWindow: WINDOW;
 hSession: SESSION;
 hProcess: PROCESS;
        END;

SysGetTaskList は、TSD Script セッションでないセッションを含め、オープンされている各セッションからのタスク・レコードを戻します。各タスク・レコードには、その対応するセッションの最上位ウィンドウからのタイトル・テキストが含まれています。

KNOWLEDGEBASE Tasks;
    ROUTINES
 FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN;
PRIVATE
    ROUTINES
FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN IS
  VARIABLES
 taskList: LIST OF $TASKRECORD; 
(* $TASKRECORD はシステム定義です *)
  ACTIONS
 IF SysGetTaskList( taskList ) <= 0 THEN EXIT FALSE;
        END;
 FOR taskList DO (* リストからタスク名を検索 *)
 IF taskList[ $CURRENT ].title = taskName THEN
 SysSelectTask (taskList[ $CURRENT ] );
 EXIT TRUE;
        END;
        END;
 EXIT FALSE;
        END;

戻りコード

戻りコード 説明
いずれか TSD Script セッションでないセッションを含め、オープンされている各セッションからのタスク・レコードを戻します。各タスク・レコードには、その対応するセッションの最上位ウィンドウからのタイトル・テキストが含まれています。OS/2 と Windows の間の相違については、注を参照してください。
-2 不明な値。
-3 メモリー不足。

次も参照してください

SysSelectTask


SysOSShell

説明

新規コマンド・プロセッサー・セッションを作成します。

構文

FUNCTION SysOSShell(VAL commandLine: STRING): INTEGER;

注意

OS/2 では、SysOSShell によって開始されたシェルは、TSD Script アプリケーション (親セッション) が終了すると終了します。

引き数の注

引き数名 説明
commandLine コマンド・プロセッサーによって実行されるコマンド。空ストリングの場合には、新規コマンド・プロンプトが作成されます。

OS/2 では、SysOSShell は、COMSPEC 環境変数によって指定されたシェルを実行するセッションを開始します。(これは通常、OS/2 コマンド・プロセッサー cmd.exe です。) SysOSShell への引き数は、コマンド行としてシェルに渡されます。SysOSShell によって開始されたシェルは、呼び出し元プロセスとは非同期に実行されます。

UNIX では、 引き数として与えられたコマンドは、次の 1 つとして直接に実行されます。

SysOSShell は、/usr/bin/X11/xterm プログラム (Sun マシンの場合には、 /usr/openwin/bin/xterm) を起動します。これは、PATH 環境で見つけることができるプログラムまたは完全修飾パスをもつプログラムへの SAI_XTERM 変数を設定することによって指定変更することができます。 (SAI_XTERM は、ユーザーの環境にない限り、SysOSShell を呼び出す TSD Script プログラムを実行することはできません。)

Windows では、SysOSShell は、次のことを行います。

コマンド行からシェルを実行するために使用される /C と /K という 2 つの引き数があります。 /C はコマンドを実行して、シェルをクローズします。/K はコマンドを実行しますが、シェルをオープン状態のままにしておきます。これらの引き数は、UNIX には適用できません。

KNOWLEDGEBASE OSShell;
    ROUTINES
PROCEDURE OSShellExample;
PRIVATE
    ROUTINES
PROCEDURE OSShellExample IS
  ACTIONS
 (* Windows または OS/2 の外部コマンドを実行するには、
 /C または /K が必要です。*)
 SysOSShell( '/C aseedit' );
 (* 親セッションが終了すると、子セッションが終了します *)
 WinMessageBox( $Desktop, 'Cancel', $mbok, '' );
        END;

戻りコード

戻りコード 説明
1 正常終了
-2 不明の値

次も参照してください

cmd.exe の詳細については、OS/2 の資料を参照してください。

COMMAND.COM の詳細については、DOS のヘルプ・システムを参照してください。


SysSelectSession

説明

セッションを選択し、それにフォーカスをおきます。

構文

FUNCTION SysSelectSession(VAL hdlSession: SESSION): INTEGER;

引き数の注

引き数名 説明
hdlSession 選択されたセッションのハンドル

OS/2 セッションは、$WinTaskList スタイルのあるウィンドウがない限り、選択することはできません。タスク・リストに表示されないセッションは、選択することができません。 セッションは、呼び出し元のセッションによって作成されていなければなりません。UNIX では、この関数は、セッションの選択を試みることなく 1 (成功) を戻すだけです。

KNOWLEDGEBASE Make2;
    ROUTINES
 PROCEDURE MakeKB( VAL argList: LIST OF STRING );
PRIVATE
  VARIABLES
 hdlSessionEdit: SESSION;
    ROUTINES
EVENT ErrorEvent IS
  ACTIONS
 WHEN $Event IS $MsgLabel THEN
 IF SysSelectSession( hdlSessionEdit ) < 1 THEN
 SysCreateSession( hdlSessionEdit, 'vi.exe',
                  $EventParm(2, STRING ),
                  0, 0, 0, 0, $SessionAutoPosition );
        END;
        END;
        END;
PROCEDURE MakeKB( VAL argList: LIST OF STRING ) IS
  VARIABLES
 whdl: WINDOW;
 hdlSession: SESSION;
 fileName: STRING;
  ACTIONS
(* コマンド入力行にファイルが指定されていない場合に、プロンプトを表示 *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb', 0, 0,
                  'File to parse?', $FileDlgCenter +
                  $FileDlgOpen ) <1
                 THEN
Exit;
        END;
 fileName := StrDelete( fileName, StrLength
                       (fileName) - 2, 3 );
 ListInsert( argList, fileName );
        END;
 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* 「進行中」ウィンドウを表示 *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4, 'Parsing', $Helvetica, 14,
                    BitOr($WinTitle, $WinBorder,
                       $WinAutoPos, $WinSYsMenu ));
 WinWrIteLN( whdl, fileName );
(* アプリケーション・ソフトウェア・スクリプト構文解析プログラムのセッション *)
(* を作成します。セッションは目に見えない状態で作成されます。エラーのある *)
(* IDE 形式ファイルが要求されました *)
 SysCreateSession( hdlSession, 'kp.exe', '/IDE /e' &
                  fileName & '.ERR ' & fileName, 0, 0, 0, 0,
                  $SessionInvisible );
 SysWaitSession( hdlSession );
(* 構文解析プログラムが完了した時に、「進行中」ウィンドウをクローズ *)
  SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN
(* エラーのあるファイルをテスト *)
 WinCreateHyperViewer( $Desktop, whdl, '',
                      ErrorEvent, 0, 0, 0, 0,
                      fileName & '.ERR',
                    BitOr($WinTitle, $WinBorder,
                      $WinAutoPos, $WinAutoSize,
                      $WinSysMenu, $WinReSize ));
 SendMessage( whdl, $MsgOpenFile,
                      fileName & '.ERR',
             fileName,
 $HyperNoWordWrap );
 WinWait( whdl );
        END;
 END; (* FOR の終わり *)
END; (* KB 作成の終わり *)

戻りコード

戻りコード 説明
1 正常終了。
-2 不明な値。
-369 セッション・ハンドルが有効なセッションを参照していません。
-460 呼び出し元プロセスがセッションの親でありません。セッションは、それを作成したプロセスのみが選択することができます。

次も参照してください


SysSelectTask

説明

選択されたタスクをアクティブ化します。

構文

FUNCTION SysSelectTask(VAL task: $TASKRECORD): INTEGER;

引き数の注

引き数名 説明
task この引き数は、システム定義のレコード・タイプ $TASKRECORD でなければなりません。 $TASKRECORD は、システムの知識ベース kml.kb 中に次のように定義されています。
 $TASKRECORD IS title: STRING;hWindow:
WINDOW; hSession: SESSION;
hProcess: PROCESS; END;

レコードのフィールドは、SysGetTaskList によって設定されていなければなりません。

KNOWLEDGEBASE Tasks;
    ROUTINES
 FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN;
PRIVATE
    ROUTINES
FUNCTION SelectTask( VAL taskName: STRING ): BOOLEAN IS
  VARIABLES
 taskList: LIST OF $TASKRECORD;
(* $TASKRECORD はシステム定義です *)
  ACTIONS
 IF SysGetTaskList( taskList ) <= 0 THEN
 EXIT FALSE;
        END;
 FOR taskList DO (* リストからタスク名を検索 *)
 IF taskList[ $CURRENT ].title = taskName THEN
 SysSelectTask (taskList[ $CURRENT ] );
 EXIT TRUE;
        END;
        END;
 EXIT FALSE;
        END;

戻りコード

戻りコード 説明
1 正常終了。
-2 不明な値。
-10 関数の完了に必要なオペレーティング・システム・サービスの要求が失敗しました。ステートメントに対する引き数として値が無効であるか、あるいはシステム・リソースの制限が原因として考えられます。

次も参照してください

SysGetTaskList


SysSetClipboard

説明

システム・クリップボードのストリング値を設定します。

構文

FUNCTION SysSetClipboard(VAL clipBoard: STRING): INTEGER;

引き数の注

引き数名 説明
clipBoard クリップボードの前の値に置き換わる新規値。

KNOWLEDGEBASE SetClip;
    ROUTINES
 PROCEDURE SetClipBoard( VAL clipBoard: LIST OF STRING );
PRIVATE
    ROUTINES
PROCEDURE SetClipBoard( VAL clipBoard: LIST OF STRING ) IS
  VARIABLES
 clipBoardString: STRING;
  ACTIONS
 clipBoardString := '';
 FOR clipBoard DO
 clipBoardString := clipBoardString & ' ' & clipBoard[
                    $CURRENT ];
        END;
 SysSetClipboard( clipBoardString );
        END;

戻りコード

戻りコード 説明
1 正常終了
-2 不明の値
-3 メモリー不足
-10 クリップボードへのアクセスのために必要なオペレーティング・システム操作の 1 つが失敗しました

次も参照してください

SysGetClipboard


SysSetEnvironment

説明

オペレーティング・システムによって提供される環境リストに項目を追加 (あるいはその中の項目を変更) して、新規値があればそれが指定のキーに関連付けられるようにします。

構文

FUNCTION SysSetEnvironment (VAL key: STRING [, VAL newValue: STRING]): INTEGER;

注意

DOS および OS/2 の場合には、環境リストに渡されるストリングのコピーは作成されません。その代わりに、環境リストに渡されるストリングが直接に使用されます。これは、メモリーの使用に関して次の 2 つの結論を導きます。

引き数の注

引き数名 説明
key 環境リスト中のキー・ストリング
newValue キーに関連した新規ストリング。

SysSetEnvironment 関数は、新規値を環境リスト中の指定のキーに関連付けるか、あるいは newValue 引き数が除外されている場合には、指定のキーおよびその関連値を除去します。

環境リストの正確の性質は、オペレーティング・システムによります。しかし、一般的には、環境リストは親プロセスから子プロセスにコピーされ、子プロセスが終了すると、破棄されます。

SysSetEnvironment を介して設定される環境変数は、新規値を戻し、呼び出し SysCallProgramSysCreateSession、および SysOSShell よって開始される子プロセスにコピーされるようになっていなければなりません。この変数は、Tivoli Service Desk Developer's Toolkit 実行時システムが始動された環境にコピーし戻されることはありません。

注: newValue が提供されていない場合には、指定される環境変数は "unset" となります。

IF SQLSelectInto ('SELECT ICONS FROM DIRECTORIES',
 iconPATHPATHPATHPATH)
 >= 1 AND
 StrPos (globalPath := SysGetEnvironment ('PATH'), iconPath)
 = 0
                 THEN
 SysSetEnvironment ('PATH', globalPath & ';' & iconPath);
        END;

戻りコード

戻りコード 説明
1 正常終了
-10 オペレーティング・システムの呼び出しが失敗しました

次も参照してください


SysSetGMTDiff

説明

通常、Tivoli Service Desk Developer's Toolkit 内部プログラムは、ホスト・オペレーティング・システムを照会して、地方時とグリニッジ標準時 (GMT) の間の時差を入手します。この関数は、時差を手操作で設定するか、現地値を指定変更するために使用することができます。

構文

FUNCTION SysSetGMTDiff( VAL NewDiff : Integer
 [, $Seconds | $Minutes | $Hours]) : INTEGER;

引き数の注

引き数 説明
NewDiff これは、GMT と地方時の間の新規時差です。指定された数値は、地方時に加算され、GMT 時間を作ります。たとえば、ニューヨークのデフォルトの GMT 時差は +5 時間です。カイロの GMT 時差は -2 時間です。引き数に有効な範囲は、-12 時間 <= NewDiff <= +12 時間です。
Units 時差を指定するために使用される単位。

戻りコード

戻りコード 説明
1 成功
-1 無効な時差が指定されました。

KNOWLEDGEBASE GMTTest;
    ROUTINES
Procedure Proc1;
PRIVATE
    ROUTINES
Procedure Proc1 IS
  VARIABLES
 whdl : Window;
 r : $SystemContext;
 t : TIME;
 d : DATE;
 nRC : Integer;
   ACTIONS
 WinCreateScrollWindow($Desktop, whdl, $NullHandler, 15,10,80,20, 'Stuff',
                       $SystemMonospaced, 10, $WinDefaultStyle);
 --GMT 偏差を奇妙なものに設定します。これは、モスクワの
 --GMT 時間に相当します...
 nRC := SysSetGMTDiff(-3, $hours);
 WinWriteLn(whdl, 'SysSetGMTDiff returned: ' & nRC);
 --現在 -3 時間 (ただし秒数で指定) となっている GMT 偏差を取り出し、
 --表示します
 SysGetContext(r);
 WinWriteLn(whdl, 'GMT Bias = ' & r.GMTBias);
 --この時刻と日付はランダムに取り出しました
 t := {01,07,07}:TIME;
 d := {07,07,1993}:DATE;
 WinWriteLn(whdl, 'Before globalization: ' & d & ' ' & t );
 --この時刻を世界標準化して、表示します
 SysGlobalizeTime(t, d);
 WinWriteLn(whdl, 'After globalization: ' & d & ' ' & t );
 --もう一度この時刻を地域化して、表示します (「世界標準化」の前
 --と同じになっているはずです)
 SysLocalizeTime(t, d);
 WinWriteLn(whdl, 'After localization: ' & d & ' ' & t );
 WinWait( whdl );
        END;

次も参照してください


SysSetReturnCode

説明

TSD Script インタープリターが正常終了の場合に UNIX コマンド・シェルまたは DOS ウィンドウに戻す整数値を設定します。SysSetReturnCode が使用されなかった場合には、インタープリターは 1 を戻します。

構文

FUNCTION SysSetReturnCode(VAL Code: INTEGER]):INTEGER;

注意: TSD Script インタープリターは、致命的エラーを見つけ、終了すると、SysSetReturnCode によって設定された値を指定変更します

引き数の注

引き数名 説明
code コマンド・シェルまたは DOS ウィンドウに戻すコード

この関数が複数回呼び出された場合には、最後の呼び出しによって渡された値が使用されます。

注: この関数と TSD Script の RETURN ステートメントを混同しないでください。後者は、TSD Script 関数によって戻される値を設定するものです

PROCEDURE DeepThought IS
  ACTIONS
 SysDelay(1000000);
 SysSetReturnCode(42);
        END;

戻りコード

戻りコード 説明
1 正常終了
-10 オペレーティング・システムの呼び出しが失敗しました

次も参照してください


SysStopSession

説明

アクティブ・セッションを停止します。

構文

FUNCTION SysStopSession(VAL hdlSession: SESSION): INTEGER;

引き数の注

引き数名 説明
hdlSession 停止されるセッションのハンドル。セッションは、呼び出し元のセッションが開始しなければなりません。

KNOWLEDGEBASE Make;
    ROUTINES
 PROCEDURE SessionExp( VAL argList: LIST OF STRING );
PRIVATE
    ROUTINES
PROCEDURE MakeKB( VAL argList: LIST OF STRING ) IS
  VARIABLES
 whdl: WINDOW;
 hdlSession: SESSION;
 fileName: STRING;
  ACTIONS
 SysCreateSession( hdlSession, argList[1], argList[2],
                  0, 0, 0, 0, $SessionAutoPos );
 SysStopSession( hdlSession );
        END;

戻りコード

戻りコード 説明
1 正常終了
-2 不明の値
-369 ハンドルは、有効なセッションを参照していません。セッションがもう存在していない可能性があります。
-460 呼び出し元プロセスがセッションの親でありません。プロセスは、それが作成したセッションしか停止することができません。

次も参照してください


SysTone

説明

システム・スピーカーから音を出します。

構文

FUNCTION SysTone(VAL frequency: INTEGER, VAL duration: INTEGER
                    ): INTEGER;

引き数の注

引き数名 説明
frequency 鳴る音の周波数 (ヘルツ)
duration 音が鳴っている時間 (ミリ秒)

Windows では、継続時間と周波数のデフォルトはシステム・サウンドです。

KNOWLEDGEBASE Tone;
    ROUTINES
PROCEDURE ToneExample;
PRIVATE
    ROUTINES
PROCEDURE ToneExample IS
  ACTIONS
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 440, 100 );
 SysDelay( 50 );
 SysTone( 300, 400 );
        END;

戻りコード

戻りコード 説明
1 正常終了
-2 不明の値

次も参照してください

SysDelay


SysWaitSession

説明

セッションが終了するのを待機します。

構文

FUNCTION SysWaitSession(VAL hdlSession: SESSION): INTEGER;

注意: セッション待機スタック これは、待機中のセッションが終了する場合であっても、先行する呼び出しで戻る前に、SysWaitSession に対する最後の呼び出しで戻らなければないということを意味します。

引き数の注

引き数名 説明
hdlSession 待機するセッションのハンドル。セッションは、呼び出し元のプロセスが開始しなければなりません。

KNOWLEDGEBASE Make;
    ROUTINES
 PROCEDURE MakeKB( VAL argList: LIST OF STRING );
PRIVATE
    ROUTINES
EVENT ErrorEvent IS
  ACTIONS
 WHEN $Event IS $MsgLabel THEN
SysCallProgram( 'aseedit.exe', $EventParm( 2, STRING ) );
        END;
        END;
PROCEDURE MakeKB( VAL argList: LIST OF STRING ) IS
  VARIABLES
 whdl: WINDOW;
 hdlSession: SESSION;
 fileName: STRING;
  ACTIONS
(* コマンド入力行にファイルが指定されていない場合に、プロンプトを表示 *)
 IF ListLength( argList ) = 0 THEN
 IF WinFileDialog( $Desktop, fileName, '*.kb', 0, 0,
                  'File to parse?', $FileDlgCenter +
                  $FileDlgOpen ) <1

                 THEN
Exit;
        END;
 fileName := StrDelete( fileName,

 StrLength( fileName ) - 2, 3 );
 ListInsert( argList, fileName );
        END;
 FOR argList DO
 fileName := argList[ $CURRENT ];
 (* 「進行中」ウィンドウを表示 *)
 WinCreateScrollWindow( $Desktop, whdl, $NullHandler,
                       0, 0, 30, 4, 'Parsing', $Helvetica, 14,
                    BitOr($WinTitle, $WinBorder,
                       $WinAutoPos, $WinSYsMenu ));
 WinWriteLN( whdl, fileName );
(* アプリケーション・ソフトウェア・スクリプト構文解析プログラムのセッション *)
(* を作成します。セッションは目に見えない状態で作成されます。エラーのある *)
(* IDE 形式ファイルが要求されました *)
 SysCreateSession( hdlSession, 'kp.exe', '/IDE
                  /e' & fileName & '.ERR ' & fileName,
                  0, 0, 0, 0, $SessionInvisible );
 SysWaitSession( hdlSession );
(* 構文解析プログラムが完了した時に、「進行中」ウィンドウをクローズ *)
  SendMessage( whdl, $MsgClose );
 IF FExists( fileName & '.ERR' ) THEN
(* エラーのあるファイルをテスト *)
 WinCreateHyperViewer( $Desktop, whdl, '',
                      ErrorEvent, 0, 0, 0, 0,
                      fileName & '.ERR',
                    BitOr($WinTitle, $WinBorder,
                      $WinAutoPos, $WinAutoSize,
                      $WinSysMenu, (* 目に見えない状態で
                      作成。エラーのある IDE 形式ファイル
                      が要求されました
                      *) $WinReSize ));
 SendMessage( whdl, $MsgOpenFile, fileName & '.ERR',
 fileName, $HyperNoWordWrap );
 WinWait( whdl );
        END;
 END; (* FOR の終わり *)
END; (* KB 作成の終わり *)

戻りコード

戻りコード 説明
1 正常終了
-2 不明の値

次も参照してください


SysYield

説明

待ち行列中のすべてのメッセージ がディスパッチされるまで、現行スレッドの実行が防止されます。

構文

FUNCTION SysYield

アプリケーションのユーザー・インターフェースがプロセッサーの内包機能によって生成されたメッセージを反映する必要がある場合に、SysYield が役立ちます。

次も参照してください

SysDelay


SysGlobalizeTime

説明

地方時とみなされる時間タイプの変数を与えると、この関数は、それを同時刻の GMT 時間に調整します。調整が日付に影響する場合には、日付も指定しなければなりません。

構文

FUNCTION SysGlobalizeTime(REF t : TIME, REF d : DATE) : INTEGER;

引き数の注

引き数 説明
t これは、世界標準化される時刻です。
d この値は、指定しなければなりません。指定の時刻を調整すると、翌日 (または前日) にまたがる場合には、
日付がこれを反映するように調整されます。日付 / 時刻の対では「常に」SysGlobalizeTime を使用してください。

戻りコード

戻りコード 説明
1 成功
-1 不明の日付または時刻が指定されました

SysSetGMTDiff の例を参照してください。

次も参照してください


SysLocalizeTime

説明

GMT 時とみなされる時間タイプの変数を与えると、この関数は、それを地方時に調整します。調整が日付に影響する場合には、日付も指定しなければなりません。

構文

FUNCTION SysLocalizeTime(REF t : TIME, REF d : DATE) : INTEGER;

引き数の注

引き数 説明
t これは、地域化される時刻です。
d この値は、指定しなければなりません。指定の時刻を調整すると、翌日 (または前日) にまたがる場合には、日付がこれを反映するように調整されます。日付 / 時刻の対では常に SysLocalizeTime を使用してください。

戻りコード

戻りコード 説明
1 成功
-1 不明の日付または時刻が指定されました

SysSetGMTDiff の例を参照してください。

次も参照してください


Tivoli Service Desk 6.0 Developer's Toolkit Script 言語解説書

メイン・ページに戻る

著作権