WinActorシナリオ作成の基礎 毎週ファイルをダウンロードし、特定フォルダに保存する

本記事では当社内の業務で利用する際に作成したWinActorのシナリオに基づき説明したいと思います。当社経理部メンバーに、WinActorでどのような作業を自動化すると便利かヒヤリングしたところ、いくつか意見がありました。
今回はその中から「毎週仕訳帳をダウンロードし、特定フォルダに保存する」というシナリオ作成を行います。

シナリオの流れ

シナリオの流れをご紹介します。

  1. システムにログインする
  2. 仕訳帳ダウンロード画面を開く
  3. 一週間のデータをダウンロードする
  4. ファイルを特定のフォルダに設置する
  5. 特定時間にシナリオを実行するようにタスクスケジューラを設定する(WinActor外)

仕訳帳は、他の記事でも利用している当社のクラウドERP MA-EYESからダウンロードします。
1と2は利用するシステムによって手順が異なりますので、シナリオの説明は3から行います。

一週間のデータをダウンロードする

システムの仕訳ダウンロード画面が開かれている状態から開始します。
クラウドERP MA-EYESでは、「伝票一覧」という画面から仕訳帳をダウンロードすることができます。

MA-EYESのデフォルト設定では、日付が前月頭から今月末になっていますが、ダウンロードしたい仕訳帳の範囲は、シナリオ実行日の一週間前(6日前)からなので、検索期間”from 6日前 to 本日”に設定する必要があります。

今回は、以下2つのライブラリを利用します。

・日付取得(書式指定)
・日付計算(西暦年のみ/月のみ/日のみ)

日付取得(書式指定)
のライブラリは今日の日付を取得するために使用します。
プロパティは下記の通り設定します。

日付計算(西暦年のみ/月のみ/日のみ)
のライブラリは、6日前の日付を取得するために使用します。

年月日の取得が出来ましたので、文字列送信等の機能を用いてシステムの検索期間の始点に変数「6日前日付」、終点を「本日日付」を設定することで、一週間の仕訳帳をダウンロードすることが出来ます。

なお、もしシステムの検索に使う日付形式がスラッシュの入らないyyyymmdd等、例示した形式と異なる場合は、「日付書式変換」等のライブラリを用いてシステムへの設定前に再変換する必要があります。

再変換しなくてはいけない理由(最初からyyyymmdd形式で取得しない理由)は、日付計算のライブラリがyyyy/mm/ddの形式でしか計算できない為です。

ファイルを特定のフォルダに設置する

続いては、ファイルのダウンロードが完了した状態を前提に開始します。
ダウンロード以降のシナリオは下記の流れとなります。

ファイル名を取得する

まず、ダウンロードしたファイルのフルパスを取得する必要がありますので、「Excelファイル名取得」を使用します。プロパティは下記のように設定します。

変数一覧で変数”ダウンロード先フォルダ”の初期値を設定します。

もし、ダウンロードするファイル名がランダムではなく常に「仕訳帳」といった固定の名前であれば、固定値にできるのでファイル名を取得する必要はありません

また、「Excelファイル名取得」はフォルダにある一番上のExcelファイルの名前を取得するライブラリなので、ダウンロード前にすでにファイルが置いてあるとそちらを開いてしまいます。従ってダウンロードフォルダには常にExcelファイルが無い状態にしておく必要があります。

日付の整形

クラウドERP MA-EYESでは、ファイルのダウンロード先は必ずダウンロードフォルダに格納されるので、特定フォルダへのファイルの移動が必要です。
また、ファイル名もデータの期間がわかるようにリネームすることにします。

ダウンロードしたファイルの移動はライブラリ「ファイル移動」で簡単に実行できます。同じライブラリで移動時にファイル名の変更も同時にできます。

移動後のファイル名は「仕訳帳(データの開始日)yymmdd_(データの終了日)mmdd)」とします。そうするためには、ファイルを移動する前にファイル名を作る準備が必要です。

例えば今日が2019年9月20日とすれば、ファイル名は
「仕訳帳20190914_0920.xlsx
となるように設定します。

ここまでのシナリオで、変数は下記の状態で格納されています。

6日前日付:2019/09/14
当日日付:2019/09/20

上記をファイル名にするにあたり、6日前日付はスラッシュを抜いた状態、当日日付はスラッシュを抜いてかつmmddの下4桁のみ残す必要があります。
6日前日付のスラッシュを抜くために、ライブラリ「日付書式変換」を使用します。

続いて、当日日付の整形を行います。
同様にライブラリ「日付書式変換」を使用しますが、今度は年が不要なのでmmddに変換します。

これで、リネームに必要な変数が揃いました。

リネーム用ファイル名の作成

続いて、複数の変数および値を組み合わせて一つのフルパス(変数)を作成します。
ライブラリ「文字列の連結(5つ)」を使用します。

ここは少し複雑なので、例示して解説します。
最終的なリネーム後のファイルのフルパスは下記となるように設定します。

C\xxxx\仕訳帳20190914_0920.xlsx

文字列1:値→C\xxxx\仕訳帳

最初の変数が出てくる前までが文字列1です。
変数で初期値を設定しても良いですが、わかりやすく値とします。

文字列2:リネーム用6日前日付(変数)

続いて、整形した6日前日付が来ます。

文字列3:値→_

日付と日付の間にアンダーバーを入れます

文字列4:リネーム用本日日付(変数)

整形した本日日付が続きます。

文字列5:.xlsx

最後に、拡張子をつけます。これがないとダブルクリックしても開けません。

仕上げに、5つの文字列を結合した

C\xxxx\仕訳帳20190914_0920.xlsx

の値を変数”リネーム後フルパス”に格納します。

ファイルを移動し、リネームする

ライブラリ「ファイル移動」のプロパティは下記となります。

「移動元」は先程「Excelファイル名取得」で取得したダウンロードファイルのフルパスとなりますので、「移動先」にリネームしたファイルのフルパスを設定します。

タスクスケジューラを設定する

起動用ショートカットの作成

タスクスケジューラの設定はWinActorではなくWindowsの機能です。
しかし、WinActorのシナリオファイルから直接起動してもシナリオの実行までしてくれないので、起動用のショートカットを先に作成しておく必要があります。
起動ショートカットはメインメニューの設定から作成します。

ショートカット作成画面の設定を行います。

タスクスケジューラの設定

作成したショートカットをタスクスケジューラに登録します。
Windows10の場合、タスクバーの検索窓に「タスクスケジューラ」と記入することで表示ができます。
「タスクスケジューラー」と最後を伸ばしてしまうと何も表示されないので気をつけてください。

タスクスケジューラが開いたら、基本タスクの作成をクリックします。

後はしばらくウィザードに沿って、タスク名や起動したい日時を設定していきます。
今回は週1の起動なので、金曜日の19時としています。

最後に、起動するプログラムの設定が出てきます。

「プログラム/スクリプト」のところで、先ほど作成したショートカットを指定すると、設定されるのはWinActor.exeになっており、これではWinActorが空の状態で起動するだけで、希望通りにシナリオ実行されません。追加で、「引数の追加(オプション)」の設定が必要です。

引数に設定する内容は、先程のショートカットのプロパティを見ればわかります。
右クリックでプロパティを表示し、「リンク先」の中身を見てみます。

下記のようになっているはずです

C:\xxxx\Desktop\WinActor\WinActor.exe -f “C:\xxxx\リネーム.ums6″ -r -e

こちらの、 -f 以降を引数に設定します。
起動オプションの引数については、WinActor簡易マニュアルの最後の方のページに記載されていますので、併せてご確認ください。

最後に内容を確認し完了することでタスクが作成されます。

全体像と動画

シナリオの全体像は下記となります。

青い部分は利用しているシステムでの処理を組み込んでください。

参考までに動画も掲載します。
仕訳帳のダウンロードページが開かれている状態で始まります。

以上です。
本記事が、業務効率化を図るためのシナリオ作成の一助になれば幸いです。