4.5 カスタムアクティビティの作成
4.5.6 カスタムアクティビティスクリプトに使用でき cl./ct.変数および関数
4.5.6.1 クライアントスクリプトファイルで使用する cl.変数および関数
CatToolsのクライアントスクリプトで使用する「cl.」変数、関数、サブルーチン
の一覧とカスタムアクティビティクライアントスクリプトファイルでの実装例 を以下に挙げます。この一覧に記載した以外の CatTools 内で使用される内部ク ライアント変数/関数もありますが、スクリプトのテンプレートファイル内で使 用されているものとカスタムアクティビティクライアントスクリプトを作成す る際に役立つ変数/関数のいくつかについて説明してあります。
変数
cl.AppPath CatTools のアプリケーションパス(インストー
ル先ディレクトリ)です。
cl.ScheduleNumber 現在のスケジュール番号です。
cl.DeviceName 現在の接続先デバイス名です。
2008 Kiwi Enterprises cl.TelnetConnectionStatus (プロトコルエンジンコントロール)クライアン
トスレッドのインスタンスに対するコネクショ ンステータスです。
例: 現在のクライアントコネクションステータ スをチェックし、ステータスが「OK」でない場 合は関数を終了させる場合
If StrComp(cl.TelnetConnectionStatus,
"OK", vbTextCompare) <> 0 Then Exit Function
cl.QuitNow アクティビティを停止するために複数の箇所で
チェックされる変数です。(例えば)アクティビ ティの実行中に[Stop]ボタンが押されると、1に 設定されます。この変数はアクティビティクラ イアントスクリプト内でのみ参照可能です。メ インスクリプトを参照する場合はct.QuitNow変 数を使用してください。
代表的な関数およびサブルーチン 汎用およびファイル関連
cl.Log Infolog.txt ファイルにテキスト行を送信し
ます。この情報は[Info Log]タブに表示され ます。
cl.LogToFile データをファイルに書き出します。
cl.FileExists ファイルが存在するかどうかをチェックし
ます。
cl.CreateFile 指定したファイル名とパスで新しいファイ
ルを作成します。
cl.DeleteFile 指定したファイル名とパスのファイルを削
除します。
cl.ReadFromFile 指定したファイルの内容を読み込みます。
cl.ReplaceClientFilenameVariables クライアントレポートのファイル名に書か れているファイル名変数またはメタ変数を 実際のテキスト値に置換します。
cl.SaveResults 結 果 を 一 時 フ ァ イ ル(.txt)に 書 き 出 し
¥ClientTempフォルダの下に保存します。
2008 Kiwi Enterprises アクティビティ関連
cl.DBCheckScheduleOption 指定したアクティビティ内で特定のオプ
ションが選択されているかどうかを確認し ます。
cl.DBScheduleGetField CatTools データベースからアクティビティ
フィールド値を取得します。
デバイス関連
cl.DisconnectHost (プロトコルエンジンコントロール)クライ アントスレッドのインスタンスをエンドデ バイスから切断します。
関数およびサブルーチンの詳細およびコード例
ここでは、上記の関数およびサブルーチンについて入力パラメータやコード例な ども織り交ぜながらさらに詳しく説明します。
cl.Log (iPriority、sMessage)
このサブルーチンはテキスト行をInfolog.txtファイルに送信します。この情報は
[Info Log]ペインに表示されます。入力パラメータは2つです。
iPriority 1〜4 の整数で送信される行のロギングレベルを指定
します。1=エラー、2=警告、3=情報、4=デバッグ
sMessage 送信されるテキストメッセージを指定します。
例:アクティビティの[Options]タブにある[Use alternate command]フィールドに 指定がなく、レベル3(情報)のメッセージを出力する
Dim sAltCommand
sAltCommand = cl.DBScheduleGetField(cl.ScheduleNumber,
"OptionsString1")
If Len(Trim(sAltCommand)) = 0 Then
cl.Log 3, "No alternate command specified"
End if
cl.LogToFile (sFilename, sData, bAppend)
このサブルーチンは指定したファイルにデータを書き込みます。入力パラメータ は3つです。
2008 Kiwi Enterprises
sFileName 書き込むファイルの名前とパスを文字列で指定しま
す。
sData 書き込むデータを文字列で指定します。
bAppend ブール値で指定します。この値が 0 以外(すなわち
False 以外)に指定されているときファイに情報が追
記されます。
例:アクティビティの[Options]タブにある[Use alternate command]フィールドに 指定がない場合にレベル 2(警告)のメッセージを[Info Log]に出力し、¥Reports フォルダにあるファイルにそのテキストを追記する
Dim sLogResultsFile Dim sAltCommand
sLogResultsFile = cl.AppPath & "Reports¥" & cl.UniqueFileID
& ".txt"
sAltCommand = cl.DBScheduleGetField(cl.ScheduleNumber,
"OptionsString1")
If Len(Trim(sAltCommand)) = 0 Then
cl.Log 2, "No alternative command specified"
Call cl.LogToFile(sLogResultsFile, "No alternative command specified in activity Options tab", 1)
End if
cl.FileExists(sFileName) As Boolean
この関数は指定したファイルが存在するかどうかをチェックします。ファイルが 見つかった場合はTrue、見つからなかった場合はFalseが返されます。
入力パラメータは1つです。
sFileName 存在するかどうか確認するファイルのファイル名と
パスを文字列で指定します。
cl.CreateFile(sFileName) As Boolean
この関数は指定したファイル名とパスで新しいファイルを作成します。ファイル が既に存在している場合またはファイル作成が成功した場合は True、ファイル が作成できず既存のファイルも見つからない場合はFalseが返されます。
入力パラメータは1つです。
2008 Kiwi Enterprises
sFileName 作成するファイルのファイル名とパスを文字列で指
定します。
cl.DeleteFile(sFileName) As Boolean
この関数は指定したファイル名とパスのファイルを削除します。ファイル削除が 成功した場合はTrue、ファイルが削除できなかった場合はFalseが返されます。
入力パラメータは1つです。
sFileName 削除するファイルのファイル名とパスを文字列で指
定します。
cl.ReadFromFile(sFileName) As String
この関数は指定したファイルの内容を読み込みます。ファイルデータが文字列で 返されます。CatTools関数のct.ReadFromFileと同様の処理を実行しますが、ア クティビティクライアントスクリプト内からのみ呼び出すことができます。
入力パラメータは1つです。
sFileName 内容を読み込むファイルのファイル名とパスを文字
列で指定します。
例: 指定したファイル(この場合はCLIコマンドリスト)の内容を読み込む Dim sFileName
Dim sCommandList
If cl.DBCheckScheduleOption(cl.ScheduleNumber, 1) = 0 Then ' Option selected to load CLI commands to send to device from a file
sFileName = cl.DBScheduleGetField(cl.ScheduleNumber,
"OptionsString2")
sCommandList = cl.ReadFromFile(sFileName) End If
cl.ReplaceClientFilenameVariables(sData) As String
この関数はクライアントレポートファイルに記述されているファイル名変数ま たはデバイスに送信されるコマンド内に記述されているメタ変数を実際のテキ スト値に置換します。置換後の変更された文字列が戻されます。
2008 Kiwi Enterprises 入力パラメータは1つです。
sData ファイル名とパス、あるいはチェック対象のコマンド
リストを文字列で指定します。
例:指定したファイルのファイル名変数を置換し、その内容(この場合は CLI コ マンドリスト)の内容を読み込む。次に、コマンドリストに含まれているメタ変 数を置換する
Dim sFileName Dim sCommandList
If cl.DBCheckScheduleOption(cl.ScheduleNumber, 1) = 0 Then
' Option selected to load CLI commands to send to device from a file
sFileName = cl.DBScheduleGetField(cl.ScheduleNumber,
"OptionsString2")
' Replace any filename variables
sFileName = cl.ReplaceClientFilenameVariables(sFileName) ' Read in the file contents
sCommandList = cl.ReadFromFile(sFileName) ' Replace meta (command) variables with values
sCommandList = cl.ReplaceClientFilenameVariables(sCommandList) End If
cl.SaveResults(sData, bAppend)
このサブルーチンは結果を一時ファイル(.txt)に書き出し¥ClientTempフォルダの 下に保存します。
入力パラメータは2つです。
sData 書き出すデータを文字列で指定します。
bAppend ブール値で指定します。0(False)を指定するとファイ
ルは上書きされ、1(True)を指定するとファイルに文 字列が追記されます。
例:現在のデバイスの応答(sResults)を一時ファイル(.txt)に書き出し、その際既存 のデータを上書きしてファイルを保存する
Call cl.SaveResults(sResults, 0)
2008 Kiwi Enterprises cl.DBCheckScheduleOption(lScheduleNumber, lOptionNumber) As Long この関数は指定したアクティビティ内で特定のオプションが選択されているか どうかを確認します。
入力パラメータは2つです。
lScheduleNumber 現在のスケジュール番号をLongで指定します。
lOptionNumber チェック対象のアクティビティ内のオプションを
Longで指定します。lOptionNumberは1〜10までの 値で指定する必要があります。
例:アクティビティ(この場合は Device.CLI.Send commands アクティビティ)を チェックし、コマンドの出力結果を電子メール送信するかどうかを確認する
lRetVal = cl.DBCheckScheduleOption(cl.ScheduleNumber, 8) If lRetVal = 1 then
' code to email commands goes here...
End if
cl.DBScheduleGetField(lScheduleNumber, sFieldName)
この関数は CatTools データベースから指定したアクティビティのフィールド値 を取得します。CatTools 関数の ct.DBScheduleGetField と同様の処理を実行し ますが、アクティビティクライアントスクリプト内からのみ呼び出すことができ ます。
入力パラメータは2つです。
lScheduleNumber 現在のスケジュール番号をLongで指定します。
sFieldName データベースに登録されている、値を取得したい
フィールドの名前を文字列で指定します。
例: (上記の cl.DBCheckScheduleOption 関数と併用)アクティビティの[Options]
タブにある[Use alternate command]のチェックがオンになっているかどうか チェックする。オンになっているとき、データベースから送信したい代替コマン ドを取得する
'Check the option 1 check-box to see if selected - i.e. set to 1
If cl.DBCheckScheduleOption(cl.ScheduleNumber, 1) = 1 Then ' Get value from database for associated string field (being field
"OptionsString1" in the database) to set a variable value
2008 Kiwi Enterprises sAltCommand = cl.DBScheduleGetField(cl.ScheduleNumber,
"OptionsString1") End If
cl.DisconnectHost
このサブルーチンは(プロトコルエンジンコントロール)クライアントスレッドの インスタンスを伝度デバイスから接続します。
クライアントスレッドから完全に切り離すためにデバイスをログアウトしてか ら呼び出す必要があります。