ブラウザ関連で、設定値の一覧から順番にデータを検索・更新するんだけど
システム側の値を更新した時は更新した個所のログが欲しいって場合の話。
普通にサブルーチングループ使って実装せいって話なんだけど
ブラウザ関連のライブラリのスクリプトをいじくって実験したかったので書いてみた。
1.ブラウザ関連 取得・更新・更新ログ取得
「値の取得」と「値の設定」を合体させています。
まず、値の取得を実行して、設定したい値と比較。
違ければ新しい値にフィールドを更新して、「変数名:[前の値⇒新しい値]」という文字列を更新ログに格納します。
新旧の値が同じで、操作を行わなかった場合は更新の処理は行わず更新ログに空白をセットします。
いつもの如く、スクリプト実行ステージのスクリプトタブに張り付ければすぐに使えるスクリプトです。
browserName = !ブラウザ名!
xpath = !XPath!
new_value = !設定する値!
TEMP_VAR = $設定されていた値$
' ブラウザ関連 値の取得
SetUmsVariable "$CLEAR_ARGUMENT", ""
SetUmsVariable "$SET_ARGUMENT", "getText"
SetUmsVariable "$SET_ARGUMENT", browserName
SetUmsVariable "$SET_ARGUMENT", xpath
SetUmsVariable "$SET_ARGUMENT", TEMP_VAR
SetUmsVariable "$RUN_CLASS2" , "SpvWeb"
if GetUmsVariable("$RUN_CLASS2") <> "true" then
Err.Raise 1, "", "ライブラリ実行(spv_Web)に失敗しました。"
end if
' 値のチェック
old_value = GetUmsVariable(TEMP_VAR)
If new_value <> old_value Then
' ブラウザ関連 値の設定
SetUmsVariable "$CLEAR_ARGUMENT", ""
SetUmsVariable "$SET_ARGUMENT", "setText"
SetUmsVariable "$SET_ARGUMENT", browserName
SetUmsVariable "$SET_ARGUMENT", xpath
SetUmsVariable "$SET_ARGUMENT", new_value
SetUmsVariable "$RUN_CLASS2" , "SpvWeb"
if GetUmsVariable("$RUN_CLASS2") <> "true" then
Err.Raise 1, "", "ライブラリ実行(spv_Web)に失敗しました。"
end if
SetUmsVariable $更新ログ$ , "値:[" & old_value & "⇒" & new_value & "]"
Else
SetUmsVariable $更新ログ$ , ""
End If
ふむふむ。
なんとなくだったけど、動くね。