Automation Anywhere 開発環境をV11からA2019に変えるときの心構え – 「My Scripts」フォルダはどこにいった

Automation Anywhere

開発環境を変更するときの学習コストは、できるだけ抑えたいものです。「Automation Anywhere 開発環境をV11からA2019に変えるときの心構え」では、これまでV11の開発環境を使っていた筆者が、A2019を使い始めて気付いた事を中心に説明しています。

A2019でVBScriptを呼び出すBotを作ろうとしてまず困惑したことは、「My Scripts」フォルダが無くなっていたことです。また、V11では、スクリプトファイルを事前に作っておいて呼び出す仕掛けになっていましたが、A2019では、VBScriptのコードをBotの中に直接記述できるようになりました。

ここでは、入力した西暦年がうるう年かどうかを判定する処理を例にして、スクリプトファイルを使う方法とスクリプトを直接記述する方法をそれぞれ示します。

※以下の説明の中で、スクリプト名称やパスに全角文字を含んでいますが、全角文字が原因でスクリプトが正常に動作しないケースがあることが分かりました。スクリプト名称やパスに全角文字を含めないことを推奨します。(関連情報は こちら

スクリプトファイルを使う方法

(1)ローカルフォルダにVBScriptファイルを作成します。(ここでは「C:\ScriptVB」フォルダに作成することにします。)


'-----------------------------------------
'うるう年のとき「True」、それ以外「False」
'-----------------------------------------
Function IsLeapYear(intYear)
    IsLeapYear = (intYear Mod 4 = 0 And intYear Mod 100 <> 0) Or intYear Mod 400 = 0
End Function

 

(2)「VBScript」パッケージのアクション「Open」、「Run function」、「Close」の順に追加します。

「Open」

①「Open」アクションを挿入します。

②[Import existing file]を選択して、[参照]ボタンをクリックします。

③[ファイルをアップロード]を選択します。

④アップロード先のフォルダ(この例では「Bots\Blog\依存関係\VBScript」)を選択したら、ファイルの[選択]ボタンをクリックします。

⑤事前に作成したスクリプトファイルを選択して[開く]ボタンをクリックします。

⑥[アップロードと確認]ボタンをクリックします。

⑦[適用]ボタンをクリックします。

「Run function」

①「Run function」アクションを挿入します。

②ここは、設定した結果のみ示します。
「LsLeapYear」はVBScriptで作成した関数名、「N_Year」はNumber型のユーザー変数です。

「Close」

①「Close」アクションを挿入します。

②セッションが「Default」であれば、変更する箇所はありません。

スクリプトを直接記述する方法

(1)「VBScript」パッケージのアクションを、「Open」、「Run function」、「Close」の順に追加します。

「Open」

①「Open」アクションを挿入します。

②[Manual imput]を選択して、[Enter script here]テキストボックスにスクリプトを入力します。
スクリプトの右側が切れて全体が見えませんが、スクリプトの内容は、上述の「■スクリプトファイルを使う方法」で示した内容と全く同じものです。

「Run function」

①「Run function」アクションを挿入します。

②ここは、設定した結果のみ示します。
「LsLeapYear」は「Open」アクションの詳細設定で作成したスクリプトの関数名、「N_Year」はNumber型のユーザー変数です。

「Close」

①「Close」アクションを挿入します。

②セッションが「Default」であれば、変更する箇所はありません。

【余談】

よくよく考えると、スクリプトファイルを使う場合、スクリプトを直接記述する場合、いずれの場合でも、スクリプトをBotに組み込む前にスクリプトの動作確認を行っておく必要があります。たとえば、以下のようなスクリプトをファイルに作成して実行するはずです。(文字を緑色で表示している行は、Botに組み込む際にコメント化する行を示しています。)


'-----------------------------------------
'うるう年のとき「True」、それ以外「False」
'-----------------------------------------
Function IsLeapYear(intYear)
    IsLeapYear = (intYear Mod 4 = 0 And intYear Mod 100 <> 0) Or intYear Mod 400 = 0
End Function
'-----------------------------------------
'コマンドライン引数を関数の引数として渡す
'(デバッグ用)
'-----------------------------------------
If WScript.Arguments.Count = 1 Then
    WScript.Echo IsLeapYear(WScript.Arguments.Item(0))
End If

スクリプトを直接記述する例の全体象

このように考えると、『今後のBot開発でスクリプトを直接記述する方法を使う場面があるのか?』という疑問が湧いてきました。(^^;)


タイトルとURLをコピーしました