オートメーション道場

RPAツール「Automation 360」(旧Automation Anywhere A2019) の使い方についてまとめていきます。

特定のアクション処理の時間を計測する

特定のアクション処理の時間を計測する

アクションリストの中の特定のアクションの実行にかかる時間を計測するにはタイムスタンプ付きでログを出力するか、現在時刻を変数に保持しておき差分を計算します。

目次

 

「ファイルに記録 :ファイルに記録」アクションを使う方法

 計測するアクションの前後に「ファイルに記録 : ファイルに記録」アクションを設置します。

「ファイルに記録 : ファイルに記録」(Log to file : Log to file) アクションの使い方

 あらゆるテキストをファイルに記録します。

 

入力:

 フィールド名  型  説明

ファイルパス
(File path)

ファイルパス   ログファイルのローカルファイルパス
テキストをログへ入力
(Enter text to log)
文字列  テキストに出力する文字列
タイムスタンプを追加
(Append timestamp)
Boolean 追加する文字列の先頭にタイムスタンプを付けるかどうか指定。デフォルトはOFF。
ログ記録時
(When logginig)
選択肢 「既存のログファイルに追加」or「既存のログファイルを上書き」
エンコード
(Encoding)
選択肢 ANSI (デフォルト) / UNICODE / UTF8 / UTF-16LE

 

 

解法:

  1.  計測するアクションの前後に「ファイルに記録 : ファイルに記録」アクションをそれぞれ配置します。(以後、それぞれを「直前の記録アクション」「直後の記録アクション」と呼びます。)
  2.  アクションの詳細パネルで以下を指定します。
    • 「ファイルパス」にはログを記録するローカルパスを指定します。「参照」ボタンを使って指定しようとすると、すでに存在するファイルしか指定できませんが、後でフィールド上で名前変更できます。(ここではC:\User\XXX\Desktop\log.txt を指定するものとします)
    • 「テキストをログへ入力」は「直前の記録アクション」には「開始」、「直後の記録アクション」には「終了」と設定します。
    • 「タイムスタンプを追加」はONにします。
  3. 保存して実行します。

結果:

log.txtを開くと以下のような内容になっています。このタイムスタンプの差分を計算すればかかっている時間が算出されます。

(2020/08/20 18:25:56) 開始
(2020/08/20 18:25:59) 終了

 

現在時刻を変数に保持して両者の差分を計算する方法

計測するアクションの前後でシステム変数 $System:Date$ の内容を保持しておき、差分を計算することで 処理時間を計測します。ただ、日時の差分を計算する関数が標準では用意されていないので、JavaScriptBot Storeから追加パッケージを使って行います。

JavaScriptで計算

JavaScript剰余演算子やslice関数をうまく使って時、分、秒の桁の計算を行います。

解法:

  1. 日時型変数の$dtStartTime$$dtEndTime$およびリスト型変数 $lDates$ をあらかじめ作成しておきます。
  2. 計測するアクションの前に以下のアクションリストを挿入します。
    開始日時の打刻
  3. 計測するアクションの後に以下のアクションリストを挿入します。

    終了時刻の打刻

  4. アクションリストの最後に以下のアクションリストを挿入します。

    時間差の計算を行うJavaScript

    • JavaScript: 開く」アクションのアクションの詳細パネルで「手動インポート」を選択、以下のスクリプトを記載します。

      function dateDiffToString(dates) {
        //リストから日時を得る
        var date0 = new Date(dates[0]);
        var date1 = new Date(dates[1]);

        //二つの日時の差分
        diff = Math.abs(date0 - date1);

        //剰余演算子で時間差を得る
        ms = diff % 1000;
        diff = (diff - ms) / 1000
        ss = diff % 60;
        ss = ("0" + ss).slice(-2);
        diff = (diff - ss) / 60
        mm = diff % 60;
        mm = ("0"+mm).slice(-2)
        diff = (diff - mm) / 60
        hh = diff % 24;
        hh = ("0"+hh).slice(-2)

        return hh + ":" + mm + ":" + ss;
      }

    • JavaScript: JavaScriptを実行」アクションのアクションの詳細パネルで「実行する関数の名前を入力します」に上記の関数名「dateDiffToString」を入力、「関数への引数」にはあらかじめ作成しておいたリスト型変数 $lDates$ を指定、「出力を変数に代入」には $prompt-assignment$ - 文字列を指定します。
  5. 「メッセージボックス : メッセージボックス」アクションを配置してアクションの詳細パネルの「表示するメッセージを入力します」に $prompt-assignment$ を指定します。
  6. 保存して実行します。

 結果:

「00:00:03」のように表示されます。この表示なら3秒間です。

 

 

  「日時ユーティリティ」パッケージで計算

※商用版Enterprise版のみの機能でCommunity Editionでは利用不可。

Bot Store上で配布されている「日時ユーティリティ」パッケージをダウンロードしてインストールしておくと、日時の差分を簡単に計算することができます。

「Datetime Utilities : Difference between dates」アクションの使い方

 2つの日時の差分を計算します。

 

入力:

 フィールド名  型  説明

The first date

日時   1つ目の日時を定数または変数で指定します。
The second date 日時  2つ目の日時を定数または変数で指定します。
Time unit 選択肢

 出力される数字の単位。「Days (日)」or「Hours (時)」or「Minutes (分)」or「Second (秒)」

 

出力:

 フィールド名  型  説明

The difference between two dates

数字   差分の数字を出力する変数を指定。

 

解法:

  1. 日時型変数の$dtStartTime$$dtEndTime$および数字型変数 $nDiffTime$をあらかじめ作成しておきます。
  2. 計測するアクションの前に「日時 : 代入」アクションを挿入します。
  3. アクションの詳細パネルで以下を指定します。
    • 「ソースの日時変数/値を選択」で「変数」を選択。
    • 変数に $System:Date$ - 日時 を選択。
    • 「ターゲットの日時変数を選択」で$dtStartTime$ - 日時を選択。
  4. 計測するアクションの後に「日時 : 代入」アクションを挿入します。
  5. アクションの詳細パネルで以下を指定します。
    • 「ソースの日時変数/値を選択」で「変数」を選択。
    • 変数に $System:Date$ - 日時 を選択。
    • 「ターゲットの日時変数を選択」で$dtEndTime$ - 日時を選択。
  6. アクションリストの最後に「Datetime Utilities : Difference between dates」アクションを挿入します。
  7. アクションの詳細パネルで以下を指定します。
    • 「The fist date」で「変数」を選択、$dtStartTime$を指定。
    • 「The second date」で「変数」を選択、$dtEndTime$を指定。
    • 「Time unit」で「Second」を選択。
    • 「The difference between two dates」で $nDiffTime$ - 数字を選択。
  8. 「メッセージボックス : メッセージボックス」アクションを配置してアクションの詳細パネルの「表示するメッセージを入力します」に $nDiffTime.Number:toString$ を指定します。
  9. 保存して実行します。

結果:

「3」のように表示されます。この表示なら3秒間です。

 

$nDiffTime.Number:toString$の書式は「型キャスト」を使っています。詳しくは『四則演算や変数の型変換を簡単に行う』を参照してください。

 

 

オートメーション道場