SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

SB C&S

Automation Anywhere - BotStore紹介(Change Date and Time Format)

RPA
2019.07.26

Automation Anywhere - Change Date and Time Format 使ってみた

みなさん、こんにちは。池田です。

Automation Anywhereを使用していて、日付変換に困ったことはないでしょうか?

Automation Anywhereには日付に関わるシステム変数として、

「$Date$」「$Year$」「$Month$」「$Day$」「$Hour$」「$Minute$」「$Second$」「$Millisecond$」などが用意されています。

システム変数.png

これは実行時刻を取得するもで、ここから日付変換をしたくなる場面が多々ありますよね。

例えば、本日から1日後の日付を取りたい。など。

Variable OperationやString Operationを駆使して変換を行うにも限界がありますよね。

本日は、そんな要望に応えられる便利なChange Date and Time Format(DatetTime.mbot)についてご紹介いたします。

これはBot Storeで提供されていて、特に人気のあるものとなっています。


□目次

  1. 事前準備 
    • STEP1 BotStoreへアクセス
    • STEP2 ダウンロード
    • STEP3 License Key取得
    • STEP4 インストーラ起動
    • STEP5 License Keyの登録
    • STEP6 確認
  2. 使ってみる
    • STEP1 BotStoreへアクセス
    • STEP2 ロジック選択
    • STEP3 AddDays呼び出し
    • STEP4 実行
    • STEP5 結果確認
  3. ロジック一覧
  4. まとめ

事前準備(Change Date and Time Formatのダウンロード)

STEP1 BotStoreへアクセス

https://botstore.automationanywhere.com/bot/change-date-and-time-format/

※Bot Storeでのダウンロードは事前に ユーザ登録 が必要となります。

STEP2 ダウンロード

Get Botボタン押下し、インストーラ(AA_Date Time.msi)がダウンロードします。

  GetBot.png

STEP3 License Key取得

Download一覧ページに遷移します

https://botstore.automationanywhere.com/my-account/downloads/

Copy to clipboardをクリックし、クリップボードにLicense Keyをコピーします

LicenseKey.png

STEP4 インストーラ起動

インストーラ(AA_Date Time.msi)起動

※msiファイルの実行には管理者権限が必要となります

msi.png

STEP5 License Keyの登録

STEP3でコピーしたLicense Keyを入力

License Agreement.png

STEP6 確認

無事にインストールが完了すると、以下のフォルダに配置されます

%UserProfile%\Documents\Automation Anywhere Files\Automation Anywhere\My MetaBots

DL.png

以上で準備は完了です。次は【使ってみる】で実際に使用してみたいと思います。

使ってみる

STEP1 DateTime.mbot呼び出し

ワークベンチを起動し、MetaBotsタブをクリックし、DateTime.mbotをアクションリストへドラッグ&ドロップ

Metabot選択.png

STEP2 ロジック選択

左側に表示されているものがロジック一覧です。DateTime.mbotには53個ものロジックが含まれています。

(提供されているMetabotによりロジックの数は異なります。)

この中から、求める結果に応じたロジックを選択し、Input Parameter、Output Parameterを設定します。

ここでは、AddDaysをサンプルで利用したいと思います。

Metabot設定.png

STEP3 AddDays呼び出し

AddDaysロジックは「指定した日付のn日後の日付を取得する」という仕様になっています。

以下のように設定してみます。

Input Parameters:

vStr:$Date$ (F2キーでシステム変数のDateを指定)
vOffset:1

Output Parameters:

vStr:$prompt-Assignment$

これを仕様に当てはめると、

指定した日付($Date$)のn日後(vOffset)を取得する($prompt-Assignment$)

となります。

addDays.png

STEP4 実行

実行してみます。

単純に実行しただけですと、$prompt-Assignment$に戻り値が入ったままなので、$prompt-Assignment$をMessageBoxで表示させてみます。

MessageBoxの中身

date:$Date$
addDays(1):$Prompt-Assignment$execute.png

STEP5 結果確認

1日後の日付が取得できていることが確認できました。

result.png

ロジック一覧

53個のロジックが利用できます。用途と例を以下にまとめてます。

ご参考ください。

#Logic用途Input ParametersOutput Parameters補足
1 AddDays

指定した日付の

n日後の日付を取得する

vStr:表示形式を変更したい値/変数

例:【2019/12/31】

vOffset:追加したい日数

例:【1】

vStr:表示形式変更後の値の格納先(変数)

例:【2020/01/01 0:00:00】

・減算したい場合はマイナス値を指定

・時間を設定しない場合に12:00:00 AMが追加される

2 AddHours

指定した日付の

n時間後の日付を取得する

vStr:表示形式を変更したい値/変数

例:【2019/12/31 23:00:00】

vOffset:追加したい時間数

例:【1.5】

vStr:表示形式変更後の値の格納先(変数)

例:【2020/01/01 12:30:00】

減算したい場合はマイナス値を指定
3 AddMilliseconds

指定した日付の

nミリ秒後の日付を取得する

vStr:表示形式を変更したい値/変数

例:【2019/12/31 23:00:00】

vOffset:追加したいミリ秒数

例:【1000】

vStr:表示形式変更後の値の格納先(変数)

例:【2019/12/31 23:00:01】

減算したい場合はマイナス値を指定
4 AddMinutes

指定した日付の

n分後の日付を取得する

vStr:表示形式を変更したい値/変数

例:【2019/12/31 23:30:00】

vOffset:追加したい分数

例:【30】

vStr:表示形式変更後の値の格納先(変数)

例:【2020/01/01 12:00:00】

減算したい場合はマイナス値を指定
5 AddMonths

指定した日付の

nヶ月後の日付を取得する

vStr:表示形式を変更したい値/変数

例:【2019/12/31 23:30:00】

vOffset:追加したい月数

例:【1】

vStr:表示形式変更後の値の格納先(変数)

例:【2020/01/31 23:30:00】

減算したい場合はマイナス値を指定
6 AddSeconds

指定した日付の

n秒後の日付を取得する

vStr:表示形式を変更したい値/変数

例:【2019/12/31 23:30:00】

vOffset:追加したい秒数

例:【1】

vStr:表示形式変更後の値の格納先(変数)

例:【2019/12/31 23:30:01】

減算したい場合はマイナス値を指定
7 AddYears

指定した日付の

n年後の日付を取得する

vStr:表示形式を変更したい値/変数

例:【2019/12/31 23:30:00】

vOffset:追加したい年数

例:【1】

vStr:表示形式変更後の値の格納先(変数)

例:【2020/12/31 23:30:01】

減算したい場合はマイナス値を指定
8 compare

指定した2つの日付を

比較する

vStr1: 元としての時点を比較したい値/変数

例:【2019/12/31 12:00:00】

vStr2: 元としての時点の値/変数

例:【2019/12/31 12:00:01】

vStr: 比較結果の値の格納先(変数)

例:【Later】 OR 【Earlier】 OR 【Equal】

Earlier: vStr1はvStr2より早い Later : vStr1はvStr2より遅い Equal : vStr1=vStr2
9 Day

指定した日付から

【日】を抽出する

vStr:日を抽出したい日付文字例/変数

例:【2019/10/01】

vStr: 抽出した日の格納先(変数)

例:【1】

10 DayOfWeek

指定した日付から

週の曜日を取得する

vStr:曜日を取得したい日付文字例/変数/

例:【2020/01/01】

vStr: 取得した曜日の格納先(変数)

例:【Wednesday】

11 DayOfYear

指定した日付の

通算日を取得する(年の何日目

vStr:年の日数目を取得したい日付文字例/変数

例:【2020/02/01】

vStr: 取得した年の日数目の格納先(変数)

例:【32】

12 DaysInMonth

指定した日付の

月の日数を取得する

vStr:月の日数を取得したい日付文字例/変数

例:【2020/02/01】

vStr: 当月の日数の格納先(変数)

例:【29】

13 Diff

指定した2つの日付の

差分を取得する

vStr1: 元としての日付文字例を比較したい日付文字例/変数

例:【2019/02/01 12:00:00 AM】

vStr2: 元としての日付文字例/変数

例:【2019/03/01 11:59:59 PM】

vStr: 日付の差分の格納先(変数)

例:【-28.23.59.59】

vStr1はvStr2より遅い場合、マイナス値を戻す
14 DiffTotalDays

指定した2つの日付の

日の差分を取得する

vStr1: 元としての日付文字例を比較したい日付文字例/変数

例:【2019/02/01】

vStr2: 元としての日付文字例/変数

例:【2019/03/01】

vStr: 日付の差分の格納先(変数)

例:【-28】

vStr1はvStr2より過去の場合、マイナス値を戻す
15 DiffTotalHours

指定した2つの日付の

時間の差分を取得する

vStr1: 元としての日付文字例を比較したい日付文字例/変数

例:【2019/01/01 12:00:00 AM】

vStr2: 元としての日付文字例/変数

例:【2019/01/02 11:30:00 PM】

vStr: 時間の差分の格納先(変数)

例:【-47.5】

vStr1はvStr2より過去の場合、マイナス値を戻す
16 DiffTotalMilliseconds

指定した2つの日付の

ミリ秒の差分を取得する

vStr1: 元としての日付文字例を比較したい日付文字例/変数

例:【2019/01/02 11:30:01.130 PM】

vStr2: 元としての日付文字例/変数

例:【2019/01/02 11:30:00.125 PM】

vStr: ミリ秒の差分の格納先(変数)

例:【1005】

vStr1はvStr2より過去の場合、マイナス値を戻す
17 DiffTotalMinutes

指定した2つの日付の

分の差分を取得する

vStr1: 元としての日付文字例を比較したい日付文字例/変数

例:【2019/01/02 11:30:00 PM】

vStr2: 元としての日付文字例/変数

例:【2019/01/02 11:35:00 PM】

vStr: 分の差分の格納先(変数)

例:【-5】

vStr1はvStr2より過去の場合、マイナス値を戻す
18 DiffTotalSeconds

指定した2つの日付の

秒の差分を取得する

vStr1: 元としての日付文字例を比較したい日付文字例/変数

例:【2019/01/02 11:30:10 PM】

vStr2: 元としての日付文字例/変数

例:【2019/01/02 11:35:00 PM】

vStr: 分の差分の格納先(変数)

例:【-290】

vStr1はvStr2より過去の場合、マイナス値を戻す
19 ElapsedHours

タイマーの経過

時間を取得する

なし

vResult: StartTimerロジックの実行時点からの経過時間(あるいはStopTimerロジックの実行時点まで)の格納先(変数)

例:【1】 (一時間)

20 ElapsedMilliseconds

タイマーの経過

ミリ秒を取得する

なし

vResult: StartTimerロジックの実行時点からの経過ミリ秒(あるいはStopTimerロジックの実行時点まで)の格納先(変数)

例:【500】 (500miliseconds)

21 ElapsedMnutes

タイマーの経過

分を取得する

なし

vResult: StartTimerロジックの実行時点からの経過分(あるいはStopTimerロジックの実行時点までの格納先(変数)

例:【3】 (3分)

22 ElapsedSeconds

タイマーの経過

秒を取得する

なし

vResult: StartTimerロジックの実行時点からの経過秒(あるいはStopTimerロジックの実行時点まで)の格納先(変数)

例:【50】 (50 seconds)

23 ElapsedTimeSpan

タイマーの経過

タイムスパンを取得する

なし

vResult: StartTimerロジックの実行時点からの経過の期間(タイムスタンプ)(あるいはStopTimerロジックの実行時点まで)の格納先(変数)

例:【00:00:03.135】

24 FirstDayOfMonth

指定した日付の

当月の初日を取得する

vStr: 当月の初日を取得したい値/変数

例:【2019/12/22】

vStr: 当月の初日の格納先(変数)

例:【2019/12/01/】

25 FirstDayOfNextMonth

指定した日付の

来月の初日を取得する

vStr: 来月の初日を取得したい値/変数

例:【2019/12/22】

vStr: 来月の初日の格納先(変数)

例:【2020/01/01】

26 FirstDayOfPreviousMonth

指定した日付の

先月の初日を取得する

vStr: 先月の初日を取得したい値/変数

例:【2019/12/22】

vStr: 先月の初日の格納先(変数)

例:【2019/11/01】

27 FirstDayOfQuarter

指定した日付の

四半期の初日を取得する

vStr: 四半期月の初日を取得したい値/変数

例:【2019/12/22】

vStr: 四半期の初日の格納先(変数)

例:【2019/10/01】

28 FirstDayOfYear

指定した日付の

当年の初日を取得する

vStr: 当年の初日を取得したい値/変数

例:【2019/12/22】

vStr: 当年の初日の格納先(変数)

例:【2019/01/01】

29 FormatStringWithDateTime 日付の形式を変更する

vStr: 変更したい値/変数

例:【2019-12-01 11:30:00】

vFormat: 変更後の形式

例:【MM/d/yy hh:mm:ss】

vStr: 変更後の値の格納先(変数)

例:【12/1/19 11:30:00】

形式の参照:

https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

30 GetDateTime 日付を取得する

vStr: 日付を取得したい値/変数

例:【2019/07/22 16:07:00】

vStr:日付の格納先(変数)

例:【2019/07/22 16:07:00】

31 Hour

指定した日付から

【時間】分を抽出する

vStr: 時間を抽出したい日付文字例/変数

例:【2019/07/22 16:07:00】

vStr:抽出した時間の格納先(変数)

例:【16】

32 IsdaylightSavingTime

指定した日付が

夏時間であるかどうか確認する

vStr: 夏時間であるかどうか確認したい値/変数

例:【2019/07/22 16:07:00】

vStr:確認結果の格納先(変数) 結果は【True】あるいは【False】になる。

例:【False】

日本は夏時間を適応しない
33 IsLeapYear

指定した日付が

閏年かどうか確認する

vStr: 閏年の確認をしたい値/変数 例1:【2019/07/22 16:07:00】

例2:【2020/07/22 16:07:00】

vStr:確認結果の格納先(変数) 結果は【True】あるいは【False】になる。

例1:【False】

例2:【True】(2020年がうるう年である)

34 LastDayOfMonth

指定した日付の

当月の末日を取得する

vStr:当月の末日を取得したい値/変数

例:【2019/12/01】

vStr:当月の末日の格納先(変数)

例:【2019/12/31】

35 LastDayOfNextMonth

指定した日付の

来月の末日を取得する

vStr:来月の末日を取得したい値/変数

例:【2019/12/01】

vStr:来月の末日の格納先(変数)

例:【2020/01/31】

36 LastDayOfPreviousMonth

指定した日付の

先月の末日を取得する

vStr:先月の末日を取得したい値/変数

例:【2019/12/01】

vStr:先月月の末日の格納先(変数)

例:【2019/11/30】

37 LastDayOfQuarter

指定した日付の

四半期の末日を取得する

vStr:四半期の末日を取得したい値/変数

例:【2019/12/01】

vStr:四半期の末日の格納先(変数)

例:【2019/12/31】

38 LastDayOfYear

指定した日付の

当年の末日を取得する

vStr:当年の末日を取得したい値/変数

例:【2019/12/01】

vStr:当年の末日の格納先(変数)

例:【2019/12/31】

39 LocalToUniversalTime

指定日付を

UTC協定世界時間に変換する

vStr:UTC協定世界時間に変換したい値/変数 例:【2020/12/31 23:59:59】

vStr:変換後の値の格納先(変数)

例:【2019/12/31 14:59:59】

40 MaxSQLServerDateTime

SQLサーバの

DateTimeタイプの最大の値を取得する

なし

vStr:SQLサーバのDateTimeタイプの最大の値の格納先(変数)

例:【9999/12/31 23:59:59】

41 MaxValue

DateTimeタイプの

最大の値を取得する

なし vStr:DateTimeタイプの最大の値の格納先(変数) 固定:【9999/12/31 23:59:59】
42 Millisecond

指定した日付から

【ミリ秒】を抽出する

vStr:ミリ秒を抽出したい日付文字例/変数

例:【2020/12/31 23:59:59.123】

vStr:抽出した3桁のミリ秒の値の格納先(変数)

例:【123】

43 MinSQLServerDateTime

SQLサーバの

DateTimeタイプの最低のバリューを取得する

なし

vStr:SQLサーバのDateTimeタイプの最低のバリューの格納先(変数)

例:【9999/12/31 23:59:59】

44 Minute

指定した日付から

【分】分を抽出する

vStr:分を抽出したい日付文字例/変数

例:【2020/12/31 23:59:59.123】

vStr:抽出した分の値の格納先(変数)

例:【59】

45 MinValue

DateTimeタイプの

最低の値を取得する

なし

vStr:DateTimeタイプの最低の値の格納先(変数)

固定:【1753/01/01 00:00:00】

46 Month

指定した日付から

【月】を抽出する

vStr:月を抽出したい日付文字例/変数

例:【2020/12/31 23:59:59.123】

vStr:抽出した月の値の格納先(変数)

例:【12】

47 Now 現在のタイムスタンプを取得する なし

vStr:現在のタイムスタンプの値の格納先(変数)

例:【2019/07/22/ 17:06:00】

48 Second

指定した日付から

【秒】を抽出する

vStr:秒を抽出したい日付文字例/変数

例:【2020/12/31 23:59:59.123】

vStr:抽出した秒の値の格納先(変数)

例:【59】

49 StartTimer タイマー開始する なし なし Elapsed系Logicと共に利用
50 StopTimer タイマー終了する なし なし Elapsed系Logicと共に利用
51 TimeOfDay

指定した日付から

【時間】を抽出する

vStr:時間を抽出したい日付文字例/変数

例:【2020/12/31 23:59:59.123】

vStr:時間の値の格納先(変数)

例:【23:59:59】

52 UniversalToLocalTime

UTC協定世界時間を

ローカル時間に変更する

vStr:ローカルタイムゾーンに変換したい値/変数

例:【2020/12/31 23:59:59】

vStr:返還後の値の格納先(変数)

例:【2020/01/01 08:59:59】 (持っているMetabotで実行してみましたが、変換されない)

53 Year

指定した日付から

【年】を抽出する

vStr:年を抽出したい日付文字例/変数

例:【2020/12/31 23:59:59.123】

vStr:抽出した年の値の格納先(変数)

例:【2020】

まとめ

いかがだったでしょうか。これで日付処理は楽になりますね。

Bot Storeを利用することで手間な実装も楽に進めることができるので、

一から実装する前に先ずはBot Storeに実現したいことを賄う機能があるかどうか

探してみるのがいいかもしれません。

Can Be Great!

著者紹介

先端技術推進統括部
RPAビジネス推進部
池田 康一

写真アップデートしました
Can Be Great!