エアレジの会計明細CSVを毎月自動でダウンロードしたい。WildFireという拡張機能を使ったが。

エアレジを使っている人からの相談。

エアレジは、会計明細データ(何時何分に、この商品がいくつ売れた)が前月分までしか保存されないそうで、毎月忘れないようにダウンロードしている、との事。

何か、良い方法は無いか調べてみました。

結論からいうと

ブラウザの自動化ツール WildFie を使って、ファイルをダウンロードするときの操作を記録。

が、データの年月指定するところが、うまく再生されず、つまってしまいました。

手順

対応ブラウザを用意

Chrome と FireFox に対応しているようです。

それ以外のブラウザを使っている場合は、まず対応ブラウザをインストール。

Chorme → https://www.google.com/intl/ja_jp/chrome/

FireFox → https://www.mozilla.org/ja/firefox/new/

※僕のPCでは、FireFoxのWildFireは、レアレジにログインする操作の時点でうまく再生されませんでした。Chromeを使った方が確実かと思います。

アドオンをインストール

使っているブラウザに対応したアドオンをインストールします。

Chrome → https://chrome.google.com/webstore/detail/wildfire/djhgeeodemlfdpmcccdekfalbhllcoim?hl=ja

FireFox → https://tech.mercari.com/entry/2019/08/27/080000

操作を記録

記録開始

ブラウザでエアレジのサイトを開いて、右上に表示されているWildFireのアイコンをクリック。「Start Recording」をクリック。

操作する

  • ログイン
  • 「日別売上」を選択
  • 日付指定で先月を指定して、「表示する」をクリック
  • 「CSVデータをダウンロードする」をクリックして「会計明細」をクリック

※1日から月末までのデータを取得するには、月末日の業務終了後または、翌月になってからダウンロードする必要がある。でも、月末日の業務終了後にPCを起動する保証がないので、先月を指定するようにしています。

記録終了

上に表示されているWildFireのアイコンをクリック。「Stop Recording」をクリック。

動作確認

「Stop Recording」をクリックすると、WildFire のダッシュボード画面が起動する。

右上の「Actions」の「Run Simuration」をクリックして、動作確認。

が、

日付指定の操作だけが、再現されない!

その後の操作、「表示する」をクリックした時の読み込み中のアイコンは表示され、今月のファイルはダウンロードされる。

マウスでクリックしてダメだったので、キーボードでTabキーと矢印キーで操作しても、ダメ。

とりあえず、当月のままダウンロードする操作を記録します。

画面右上の☆アイコンクリック、名前をつけて「OK」

スケジュールを設定

当月分をダウンロードする操作を、月末日の業務終了後に実行するように設定してみます。

「settings」の「scheduled」を選択し、「Add New Schedule」をクリック。

「Workflow」を指定。

毎月実行するような設定は無いので、「Data / Time of Simulation」で日時を指定。これで、自動的にダウンロードできるはず!ブラウザが起動していれば。

まとめ

月末日の業務終了後にブラウザが起動している保証がないので、最終的には年月指定が動作するようにしたいけど、とりあえずはこれで良しとします。

※追記

「Custom Function」を使って、年月の計算してセレクトボックスの選択する処理を追加してみました。が、一度先月が選択された後、読込中のアイコンぐるぐるが回って、元の年月に戻ってしまいました。

    let lastmonth = new Date();
    lastmonth.setMonth(lastmonth.getMonth()-1);
    let yearToYear = new Date().getFullYear() - lastmonth.getFullYear();

   document.querySelector("#app > div > div.page-layout.has-header.has-common-header > div > div > div > div > div > div > div.searchPanel--I_e797YoxD0J > div > div.col-sm-12 > div.input-control.input-select-date > div:nth-child(1) > select").selectedIndex = yearToYear;
   document.querySelector("#app > div > div.page-layout.has-header.has-common-header > div > div > div > div > div > div > div.searchPanel--I_e797YoxD0J > div > div.col-sm-12 > div.input-control.input-select-date > div:nth-child(2) > select").selectedIndex = lastmonth.getMonth();