Power Automate for Desktopを使った在庫管理システムへのCSVファイル自動取込の実現方法
目次
はじめに
在庫管理システム・倉庫管理システム(WMS)を運用するには、外部システムとのデータ連携が必要です。
APIを活用した連携もありますが、
・外部システム側がAPIに対応していない
・双方のAPIを連携させるための開発ハードルが高い
といった理由で、CSVファイルによる連携もまだ広く活用されています。
CSVファイルによる連携では、各システムが扱える形式が異なるため、外部システムが出力したCSVファイルを「変換」した後に「取り込み」ます。
前回は、Power Automate for Desktop を使ったCSVファイルの「変換」について紹介しました。
今回は、Power Automate for Desktop を使ったCSVファイルの取り込み操作の自動化を紹介しましょう。
画面操作を自動化するUIオートメーション機能により、当社が提供するクラウド在庫管理・倉庫管理システム「在庫スイートクラウドPro」において、出荷指示ファイルの取り込み操作を自動化させる手順を紹介します。
〈Power Automate for Desktopを使い、CSVファイルを自動取込みしている動画〉
RPAツールである「Power Automate for Desktop」はプログラミング知識がなくても「ノーコード・ローコード」で開発できます。
画面操作に関しても、さまざまな機能が用意されており、ドラッグ&ドロップでフローを構築できます。
ただ、UIオートメーションの構築は、コツを知らないとつまずきがち。
ぜひ、本コラムで実践的な情報を確認しスムーズに構築してください。
UIオートメーション 知っておきたい4つのコツ
具体的な設計や構築に入るまえに、UIオートメーション機能について簡単に確認したいと思います。
この機能は画面操作を再現するものです。
レコーダーを使えば、人が行う操作をフローとして記録してくれます。
また、画面操作用アクションをドラッグ&ドロップし、フローを作成することもできます。
しかし、
「自分たちが日々やっている操作をそのまま再現させるだけ」
と考えるのは禁物。
人間だと簡単なことも、RPAツールに対応させると複雑になり、動作も不安定になることがあります。
RPAの得意・苦手を理解して進めることが肝心です。
RPAで画面操作を構築するための4つのコツを紹介しましょう。
キー操作を中心に
マウス操作よりキー操作のほうが安定して動作します。
多くのアプリで、マウスクリックだけでなく、ショートカットキーも用意されています。
極力、キーで画面を操作するようにしましょう。
動作が変わらないシナリオ
処理する件数や他のユーザーの利用状況によって、警告や確認画面が出ることがあります。
「警告画面が出た場合は〇〇を行う」といった条件分岐に対応すると、複雑になり安定性も落ちます。
なるべく、同じ操作をすると同じ結果となるシナリオ(操作の流れ)を作りましょう。
処理時間が変わらないシナリオ
データ量などによって、画面が表示されるまでの時間が変わることがあります。
時間のバラつきが大きい場合、「3秒間待つ」といった単純なウエイトでは対応できません。
次の画面が表示されるまで「待機」するアクションが必要となります。
しかし、画面を待つアクションは、画面が出たのに認識しないなど不安定な場合があります。
動作しない原因も、内部的に処理されるためユーザー側では分かりません。
「3秒間待つ」といった単純なウエイトで済むよう、なるべく処理時間が一定となるシナリオをお勧めします。
短時間で終わるシナリオ
画面操作の多くは、直前に呼び出した画面が一番上にいることを前提に作ります。
処理中に、アンチウイルスソフトなどが不意に表示させる通知画面が一番上になり、上手く動作しないこともあります。
そうしたトラブルの発生頻度を下げるためにもなるべく短時間で済むシナリオ作りを心掛けましょう。
シナリオの作成とアクションの設定
いよいよ、具体的にシナリオを考えつつフローを作成していきます。
まずは、アプリへの操作を確認しましょう。
「在庫スイートクラウドPro」において、ログインから出荷指示ファイルの取り込みまでの操作は、大きく5つに分けられます。
(1)起動とログイン
(2)出荷指示伝票一覧画面の呼び出し
(3)出荷指示伝票一覧画面の表示
(4)ファイル指定画面を呼び出しインポートを開始
(5)完了通知画面を閉じる
それぞれを必要な操作を具体的に確認しながら、フローを作成していきます。
<前提条件>
・在庫スイートクラウドPro クライアントアプリ(最新バージョン)がインストールされていること
・タストバーに在庫スイートクラウドProのアイコンがあること
・在庫スイートクラウドProが起動していないこと
・ログイン画面はグループIDが保存されていること
・ログインユーザーは対象倉庫にのみ所属していること
・取込ファイルのパスは「C:\PAD\Zsc出荷指示(変換後).csv」であること
起動とログイン
ログインまでの動作ですが、まず在庫スイートクラウドProを起動します。
すると、サーバーとの間で最新バージョンであることを確認し、ログイン画面が表示されます。
ログイン画面は「グループID」「ユーザーID」「パスワード」の3項目ありますが、グループIDは契約毎に決まるもので、一度入力すれば変更する必要はありません。
グループIDは前回入力値が保存されていることを前提とし、フロー内に埋め込んだユーザーIDとパスワードを自動入力することにします。
それではシナリオに沿って、フローを作成していきます。
「ウィンドウ内のボタンを押す」アクションで、タスクバーのアイコンをクリックしアプリを起動させます。
サーバーとのバージョンチェックでログイン画面が表示されるまで間が空くため、「ウィンドウを待機する」アクションで、ログイン画面が表示するのを待ちます。
表示されれば、「ウィンドウ内のテキストフィールドに入力する」アクションで、ユーザーIDとパスワードを入力します。
パスワードはソースを見ても分からない様に暗号化しておきましょう。
最後に「Enterキー(Return)」を送り、サーバー側にログインを要求します。
出荷指示伝票一覧画面の呼び出し
サーバー側でログイン処理が成功すると、対象倉庫が指定された状態でメイン画面が呼び出されます。
出荷指示伝票一覧の呼び出しは、
・メニューバーから呼び出し
・ガイドメニュー(左側)のアイコンから呼び出し
の2通りがありますが、ショートカットキーが用意されているメニューバーを利用することとします。
具体的な呼び出し操作は[作業(Alt+S)]→[出荷(S)]→[出荷指示(U)]。
(小文字でもOK)
では、シナリオ沿って、フローを作成していきます。
メイン画面の呼び出しを確認した後にメイン画面に対する操作を行うため、「ウィンドウを待機する」アクションを設定した後にキーを送信します。
出荷指示伝票一覧画面の表示
呼出し後の動作ですが、まず条件指定画面が表示されます。
条件を指定すると、指定範囲の伝票一覧画面が表示します。
※クリックすると画像が大きく見えます。
条件指定画面ですが、デフォルトの条件は「伝票日付」=「先月1日以降」です。
この条件では運用によって、対象の出荷指示伝票の件数が大きく異なります。
対象件数が最大表示件数を超えると、通知画面がポップアップで出るため、動作が変わってしまいます。
ここでは、出荷指示伝票一覧画面を呼び出したいだけであり、表示は不要。
表示件数が0件になるよう、条件に「登録日時」=「今の日時以降」を追加してから呼び出すこととします。
では、シナリオ沿って、フローを作成していきます。
条件指定画面は、左上の項目にカーソルがあります。
「登録日時」にカーソルを移動させるにはTABキーを7回押します。
チェックを付けるためのSpaceキー、その後右矢印キーを押すと年にカーソルが移動します。
そこからは「年」「月」「日」「時」「分」を入れますが、それぞれの間に右矢印キーを入れて移動させます。
最後に「Enterキー(Return)」を送り、この条件で出荷指示伝票一覧画面を呼び出します。
ファイル指定画面を呼び出しインポートを開始
出荷指示伝票一覧画面のフッター(画面下)に「インポート」ボタンがあります。
ショートカットキー「Alt+I」(小文字でもOK)を送信すると、ファイル選択画面が表示されます。
ファイルレイアウト「[拡]2行目から(*.*)」をドロップダウンリストで指定した後に、ショートカットキー「Alt+N」により「ファイル名」欄にカーソル移動。
取り込むファイルをフルパスで指定後、最後に「Enterキー(Return)」。
すると、「2行目からインポート」確認画面が表示されます。
Yes選択のための「Enterキー(Return)」を送ることで、インポートが始まります。
では、シナリオ沿って、フローを作成していきます。
適度にウエイト(3秒)を入れた後に、「キーの送信」アクションで「Alt+I」キーを送信。
次は、レコーダーを使い「ウィンドウでドロップダウンリストの値を設定する」アクションを設定しました。
レイアウト指定後は、適度にウエイト(1秒)を入れ、「キーの送信」アクションで「Alt+N」+ファイルのフルパス+「Enterキー(Return)」を送信。
適度にウエイト(0.5秒)を入れた後に、「2行目からインポート」確認画面用の「Enterキー(Return)」を送ります。
完了通知画面を閉じる
インポートが終わると、完了通知画面が表示されます。
インポート開始から完了まで=完了通知画面が表示されるまでの時間は件数等によって異なります。
固定時間の待機(ウエイト)では対応できず、通知画面が表示されるのを待つ必要があります。
完了通知画面が出れば、「Enterキー(Return)」を送り、通知画面を閉じます。
今回のフローはここまでとします。
では、シナリオ沿って、フローを作成していきましょう。
「ウィンドウを待機する」アクションで通知画面を待ちます。
通知画面が確認できれば、適度にウエイト(3秒)を入れて「Enterキー(Return)」を送ります。
最後に
今回はログインし、用意した出荷指示CSVファイルの取り込みまでを自動化しました。
・極力マウス操作のレコードは使わず、ショートカットキーなどのキー送信で行っている点
・対象件数によって通知画面が出る/出ないが分かれないように、また処理時間が一定になるように、絞り込み条件を指定するシナリオにしている点
をご覧いただけたことと思います。
Power Automate for Desktopと対象アプリの動作を理解することでシンプルかつ安定したフローが作成できます。
ぜひ自動化のノウハウを取り込み、業務の効率化にお役立てください。
こんな記事も読まれています
-
システム基礎知識
-
システム基礎知識
-
システム基礎知識
倉庫管理の基礎知識
在庫管理の基礎知識
倉庫管理の基礎知識