
【WinActor】引き出しを増やそうPart3
以前、WinActorのシナリオを開発するとき、使うノードややり方は十人十色で様々ありますが、その時々で自分が思うベターな方法を選択できるように普段からアイデアの引き出しを蓄えておきましょう!といったお話をさせていただきました。今回はその引き出しシリーズ第3弾です!
過去シリーズはこちら👇
1.中間ファイルの活用
シナリオ開発時にこんな状況に遭遇したことはありませんか?
得意先からの発注内容を自社の基幹システムへ登録する業務を自動化したい例に考えてみます。

図1の注文書には「商品名」しか載っていませんが、基幹システムへの登録は「商品コード」を入力する必要があります。
この場合、皆さんならどのようにRPA化しますか?注文書に商品コードが載っていないからRPA化は不可!と諦めるべきなのでしょうか?
いえ、そんなことありません!中間ファイルを使って解決できますよ!
ここでいう「中間ファイル」は、商品名から商品コードを引き当てるマスタです。商品情報であればシステムから出力できる場合も多いので、システムにそのような機能がないか確認します。
システムから出力できない場合も、手作業で作成するのもそこまで手間をかけずにできることもありますので、ぜひ検討してみてください。

マスタファイルの用意ができたらシナリオ作成に入ります。 注文書から「商品名」を取得し、マスタファイルでその商品名を検索、該当行の「商品コード」を取得して、基幹システムへ登録するという流れでRPA化できそうです。

💡検索方法
マスタファイルで商品名を検索するとき、「Excel操作(検索一致)」などのライブラリを使って1件ずつ検索をかける方法と、変換表という第二の中間ファイルを使用する方法もあります(図4・図5参照)。

関数は予め手作業で設定しておいてもいいし、シナリオ内で設定させてもOK
B列に予め関数を設定したファイル(シート)を用意しておき、RPAでA列に注文書から商品名をコピーして貼り付けをすると、商品コードが自動で表示されるようにします。
表示された商品コードを取得してシステムへ入力します。1件ずつマスタで検索をしなくてよいので件数が多い場合などは特に実行時間を短縮できそうです。

なお、今回の例は【注文書とシステムで商品名の表記が一致している】ことを前提としたマスタなので、転記元と転記先で一致するキーがない場合は、違う方法を考えなければならないことは最初に考えておきましょう。
💡キーにする項目
複数のデータを突き合わせるためのキーとなる項目については、個人的にはなるべくコードの類が好ましいと考えています。商品コード、取引先コード、社員コードなどですね。
もちろん商品名、取引先名、社員名などを採用するケースもありますが、全く別の媒体でこれらの表記を完全一致させることは難しい場合が多いです。例えば取引先名については、一方が「株式会社ABC」と正式名称を記載しており、もう一方では「(株)ABC」としているかもしれないからです。旧字体か新字体かの違いも考えられますね。これを揃えるのはパターンが多くなりすぎて完全には難しそうです。
コードであれば「数字」「アルファベット」「記号」で構成されていることが多いため、考えられる表記違いはせいぜい半角/全角と大文字/小文字くらいでしょうか。このくらいでしたら揃える方法はいくらでもあります。
それでも取引先で使っているコードと、自社内で使っているコードが違うことは大いにありえますのでそういった場合にも中間ファイルを使って変換可能なようにしておくのです。
そもそも、商品コードも表示できる注文書を使うようにするなど運用面でカバーする方法もあります。ただ、そのためには取引先に新フォーマットを使ってもらうように依頼しなくてはならず、簡単に実行できない可能性もあります。
ですが、できる・できないは一旦おいておいて、手段を思いつく限り出してみるのもありですね!
いくつか出てきたアイデアの中から、最適な方法を選択してみてはいかがでしょうか。

頭の中に変換表を持っている?!
私の見てきた事務業務の現場において、業務担当者は商品名のみを見てコードをシステムに入力しているという状況をよく見かけます。つまり、自身の頭の中に変換表があって、自然と商品名⇔商品コードの変換作業をしているということです。さすがその業務を毎日やっているスペシャリストです。
ですので、RPA化するときには各人の頭の中に入っている知識を引っ張り出してくる必要があります。
これまで存在しなかった(あるいは使っていなかった)データやファイルを準備するという工程が発生することは、人間の手間が増えていると感じるかもしれませんが、事前の準備をしっかりしておくことで、その先ずっと続くRPA活用による業務の自動化・効率化に繋がります。

2.ブラウザ操作
ブラウザの操作も方法がいくつもあります。
Webページのアイコンをクリックして次のページへ進めたいときのやり方としてどのような方法が思い浮かぶでしょうか。
XPathを指定してクリック、画像マッチングでクリックなどがポピュラーでしょうか。では思いつく限り試してみましょう!
弊社のHPを例に考えてみます。
HPのトップページから右上に見える「資料ダウンロード」をクリックしたいとします。

①XPathでクリック
ブラウザ操作といえばまずはこれが思いつく方も多いかもしれません。
ライブラリ▸23_ブラウザ関連▸03_クリックの「クリック」を使います。自動記録機能を使ってノードを生成することもできます。
XPathは要素の住所なので、Webページの仕様変更によって住所が変わればXPathも変わる可能性があることには留意しておく必要があります。

②画像マッチングでクリック
画像マッチングでクリックする方法もありますね!
こちらもWebページの仕様変更、さらにWinActorの実行環境の変更にも留意しておく必要があります。

③エミュレーションで選択
Webページの仕様が変わりやすかったり、シナリオを動かすPC端末が限定されない・変わるときのメンテナンスのことを考えて画像マッチングを避けたい場合は、キーボード操作で該当の項目を選択することも可能な場合もあります。
今回のWebページでは、Tabキーを8回押すと「資料ダウンロード」にカーソルがあたるのでEnterでメニューを選択できます。

④URLを指定して次のページを開く
開きたいページのURLを指定して開くこともできます。これならWebページの見た目や操作するPC端末の変更などは気にしなくてよいですね。
また、進んだページで更にボタンをクリックして次のページへ進む…といったように、たどり着きたいページが何個かアイコンをクリックして表示されるようなときも、URLを指定すれば1回でそのページへたどり着くことができます。

もちろん、Webサイトの仕様によって4通りが全て選択肢に入らない場合もあるでしょうし、他にもやり方があることもあります。
その時々でこれだ!と思うやり方で設定してくださいね。
3.おまけ(Googleスプレッドシートのダウンロード)
ブラウザ操作の延長のお話として、Googleスプレッドシートについても軽く触れておきたいと思います。
スプレッドシートのデータをダウンロードしたいとき、これもURLを使ってシンプルに実行できます。

2025年1月現在、WinActorの最新バージョンであるVer7.5.1においてはスプレッドシートのダウンロードに関するライブラリは一つしかありません。(サブシナリオ▸02_GoogleWorkspace▸03_スプレッドシート▸スプレッドシート操作(PDF形式でダウンロード))
Excel形式やCSV形式などでダウンロードする場合は「ファイル」メニューから選んでいくことが可能です。

この手順をスキップし、URLを指定してダウンロードすることもできます。
スプレッドシートを開いた時のURLの一部を変更する必要がありますので、まずはスプレッドシートのURLを確認しましょう。

黒塗りしている部分がスプレッドシートごとに設定されているファイルIDで、「gid=」以降の部分が各シートに設定されているシートIDです。
この点を確認したら、あとはどの形式でダウンロードするかによってURLの一部を書き換えます。ここではExcel形式とCSV形式をみてみましょう!

このURLを開くだけでExcel形式でダウンロードすることができます。
PDF形式やOpenDocument形式の場合も同じ要領で【format=●●●】の「●●●」部分を変えることでダウンロードできますよ!
4.おわりに
さて引き出しシリーズ第三弾はいかがでしょうか。
扱うアプリケーションとWinActor双方の機能や特性を掴んでおくことで同じ処理でも様々なアプローチ方法があることが分かりますね。
またこういった知識やアイデアは自分で思いつくこともありますが、他のユーザさんと話をする中で出てくることも多々ありますので、ぜひぜひお近くの仲間同士で知見の共有を進めていってくださいね!
最後までお読みいただきありがとうございました。
また次回お楽しみに🎵
▼エンジニアにRPAのことを相談したい方はこちら
▼RPAやWinActorのお役立ち情報はこちらにも!