私が働く会社では、朝の定形業務として社内の物流系データベース(IBM i)にクエリを送信しデータを抽出するルーティンワークが多数転がっています。クエリを送信する部分はシステム内の機能にあるマクロで自動化はできますが、システムの起動~サイン・オンの部分の自動化はできていませんでした。最近RPAでの自動化に向けた機運が社内で高まってることもあり、Power Automate Desktopを利用してシステム起動~クエリ送信までを一気通貫で自動化し今後のRPA推進に役立てようと考えました。
#そもそもIBM iとは。
IBM i(アイ・ビー・エム アイ)は、IBM Power Systems(旧・AS/400)及び、IBM PureSystemsに搭載されているオペレーティングシステムである。1988年にIBMのミッドレンジコンピュータ向けに開発されたOSであり、かつてはOS/400、i5/OSと呼ばれていたが、2008年にIBM iに改称した。
引用元:https://ja.wikipedia.org/wiki/IBM_i
#使用アプリケーション
- Power Automate Desktop
- IBM i Access Client Solutions
#作業手順
1. アプリケーションの実行
2. システムへのサイン・オン
アプリケーションの実行後、下記のようなウインドウがシステムの立上げ前に表示され、
処理が完了されるまでサイン・オンの画面は表示されない。
そのため画像の待機を実行し赤枠部を画像として表示されるまでアクションを待機。
この段階ではシステムのウインドウにフォーカスされていないため、ウインドウにフォーカス。
文字が入力される位置は起動時に、ユーザーIDの入力位置に設定されている。
キー送信を実行しユーザーIDとパスワードを入力する。
3.目的のメニュー番号の送信とクエリの送信
メニュー番号をキー送信しクエリ送信画面を開く。
クエリが記録されているエクセルを開き、ページ1への範囲をコピーし、システムにフォーカスを合わせる。
※クエリは下記のようにエクセルでA1-A12までにまとめている。
現在は手動作業なのでクエリの区切りは視覚化している。(1ページ6行までしか貼り付けられないため)
キー送信で、貼付け初期位置まで移動、Ctrl + V(クエリを貼付け)、Pagedown次ページ。
再度エクセルへフォーカスし、ページ2への範囲をコピー、システムにフォーカスを合わせ、
キー送信、Ctrl + V(クエリを貼付け)、Returnでクエリを送信する。
#まとめ
成功はしたがPower Automate Desktopを使った自動化が正しいアプローチかは疑問が残る形となった。アプリケーションの特性上、処理の切り替わりに対しUI要素を利用することができず、次の処理までの待機は画像認識で画面の切り替わりを認識させる必要があったため自動化自体もかなり手間が掛かった。また、他のメニュー番号では後から打たれたクエリが優先されることもあり、根本的なシステム改善をしないと手放しで使える自動化にはならなかった。