Smart Communication Design Company
ホーム > ナレッジ > Blog > RPA Blog

RPA(ロボティック プロセス オートメーション)にまつわる国内外の最新情報をお伝えすると共に、自動化推進に役立つ話題や社内の導入事例などについてご紹介します。
ミツエーリンクスでは「Webサイト運用RPA導入支援」サービスを提供しています。Webサイト運用におけるロボット化にご興味がありましたら、お気軽にお問い合わせください。

UiPath高速化の工夫(フローチャートの構造編)


RPAエンジニア 小林

RPAを用いた業務自動化において、処理にどのくらい時間がかかるかというのはとても重要な点です。 特に、手順が多く処理に時間がかかる場合、「もっと早く処理が終わるといいけど、どのようにロボットを変えたら良いかわからない」ということも多いのではないでしょうか? このBlogでも以前UiPathを高速化するための工夫を紹介しました。 その中でも特に重要なのが、「無駄な処理を行っていないか、手順を見直す」というポイントでした。 今回はさらに一歩踏み込んで、「無駄になり得る処理を効果的に減らす方法」、つまり状況によって必要だったり必要でなかったりする処理を扱うための方法を考えてみます。 UiPathの画面を例として示していますが、フローチャートの構造そのものを扱うのでRPA全般に共通する話でもあります。

「UiPath高速化の工夫(フローチャートの構造編)」の全文を読む

UiPathで呼び出し先のロボットからファイルを参照する


RPAエンジニア 小林

ロボットを動作させるとき、Excelファイルやテキストファイルなど、何らかの外部ファイルを参照するシーンがよくあります。 UiPathで外部ファイルを参照するには、適切なアクティビティに適切なファイルパスを渡せばよいのですが、Invoke Workflow File(ワークフローファイルを呼び出し)アクティビティで呼び出されたアクティビティからファイルを参照する際にはパスの扱いに注意が必要な点があります。 今回は、UiPathで呼び出し先のロボットからファイルを参照する方法について考えてみます。

ロボットから外部ファイルを参照するとき、ファイルが置かれている場所をフルパスで考えたほうがわかりやすい場合と、ロボットから見た相対的な位置(相対パス)で考えたほうがわかりやすい場合があります。 例えば、共有フォルダにあるExcelファイルをロボットで編集するなどの場合は、参照したいファイルの置き場所をフルパスで記述してロボットに参照させることが多いと思います。 一方で、ロボットを動作させる上で一時ファイルを書き出したり、スクリプトを実行したりするということもあります。 このようなロボットの一部とも言えるファイルは、ロボットから見た相対パスで参照する場所を考えたほうが都合がよいことが多いです。

スクリプトなどロボットの動作を補助するファイルを含んだプロジェクトの場合、参照するファイルの場所は相対パスで考えたほうがわかりやすい

「UiPathで呼び出し先のロボットからファイルを参照する」の全文を読む

UiPathで引数の値をどう管理するか?


RPAエンジニア 小林

ロボットを開発して作業を自動化すると、あとは実行ボタンを押すだけで目的の処理を実行することができます。 しかし時には、今までと異なるExcelファイルを読み込みたい、書類に入力する日付を都度変えたいなど、ロボットを実行する前に変数の値を設定したい場合があります。 実行前に設定する機会や項目が多くなると、設定し忘れたり誤った値を設定してしまったりすることもあるかもしれません。 今回は、UiPathで初期値の設定が必要な変数(引数)をどう管理するかについて考えてみます。

外部からロボットに渡す値は引数として定義する

ロボット内のアクティビティ間で渡す値を変数と呼びますが、その中でも特に外部からロボットに渡す値を引数と呼びます。今回設定するのも、ロボットの実行時に設定しておく必要がある値(=ロボットの外部から管理したい値)なので引数と言えます。まず、引数は引数であることが分かるように設定しておきましょう。UiPathの引数はデザイナーパネルで「変数」の横にある「引数」の項目で設定できます。引数の使い方は基本的に変数と同じで、各種アクティビティ内で使うことができます。通常の変数との違いは、引数として設定することで、他のロボット(ワークフローファイル)とやり取りする値として使うことができるという点です。今回紹介する例ではロボット間の値の受け渡しは行わないので、全て通常の変数として設定しても問題はないのですが、今後の拡張性やロボットとしての見通しのよさを考えると、外部から渡す値は引数として設定したほうがよいでしょう。

デザイナーパネルで、「変数」の横にある「引数」の項目を使って引数を定義できる

「UiPathで引数の値をどう管理するか?」の全文を読む

公共機関で加速するRPAの導入


UI開発者 宇賀

大手企業を中心に導入が進み、日々拡大するRPAの市場規模。もはやすっかり「RPA」というキーワード自体が珍しくなくなってきている印象です。

RPA元年から数年、昨今では私企業だけではなく公的機関でも導入が進んでいます。

「公共機関で加速するRPAの導入」の全文を読む

あれ、値が何か違う...?UiPathでExcelのセルを読み込むときに気をつけたいこと


RPAエンジニア 小林

UiPathを使ったExcelの操作は、自動化の中でも特によく行う作業だと思います。 Excelまわりの操作をするアクティビティの代表例として、特定のセルの値を読むRead Cellがあります。 Read Cellアクティビティでは、セルの位置(A1など)を指定してその値を特定の変数に入れるだけなので設定は簡単ですが、注意が必要な点もあります。

まず注意したいのが、読み込みたいセルのExcel側の表示形式とその値を格納する変数の型です。 例えば、Read Cellアクティビティで読み込みたいセルの値が、Excel側では数値として表示されているのに、出力としてString型の変数を指定していると、エラーとなりロボットが止まってしまいます。もちろん、読み込みたいすべてのセルが文字列形式で表示されていることがあらかじめわかっている場合はString型の変数を指定しても問題ありません。しかし、そうでない場合はGenericValue型の変数を使ったほうが良いでしょう。例えば、読み込んだ値を(数値や日付などの表示形式にかかわらず)すべて文字列として扱いたい場合でも、いったんGenericValue型の変数に格納してからObject.ToString()メソッドを使って文字列に変換したほうがエラーは起きにくくなります。

Read Cellアクティビティで読み取った値は、基本的にGeneric Value型の変数に格納する

「あれ、値が何か違う...?UiPathでExcelのセルを読み込むときに気をつけたいこと」の全文を読む

UiPath Forward Japan 2019 参加レポート


UI開発者 宇賀

先日、UiPath Forward Japan 2019 というイベントに参加しました。

※ 本イベントは参加するために招待コードが必要な非公開イベントのため、具体的な内容は避けてお送りいたします。

印象深かった登壇内容の1つが、AIやOCR(Optical Character Recognition/Reader)との連携についてです。 これらと組み合わせて運用する方法は、紙媒体でのやり取りが多く残る企業によってはやはり大変重要なようです。

基調講演に続いた茨城県知事による、県庁業務のRPAによる効率化についての紹介も興味深い内容でした。UiPath社のプレスリリースで公開されているような、多くの時間創出を実現できたそうです。こうした素晴らしい前例が誕生した今、あっという間に公的業務の中でUiPathが利用されるようになり、RPA/DXはますます爆発的な躍進と浸透を遂げていくことでしょう。

一方で、民間企業のそうそうたる面々によるセッションでは、当社でいう「RPAエンジニア」の育成と、作ったロボットの保守運用についてが共通の議題として上げられていました。 事例紹介としてUiPath導入までのKSF(Key Success Factor)の明確化や、BPR(Business Process Re-engineering)への取り組みなどを紹介していましたが、最終的にはどの企業も保守運用とEUC(End-User Computing)を課題にしていたように思います。

中でも「いかにUiPathの使い方を既存スタッフに理解してもらうか」という話は、特に印象深かったです。もちろんEUCの道を選ばなかった企業もありましたが、しっかりリソースを確保し学習コストをかけて育成すれば実りのあるEUCを実現できたという多くの実例を聞くことができました。

さまざまな成功と失敗、手法が数多く紹介された素晴らしいイベントでした。UiPathForward Japan 2018が昨年ありましたので、来年にはまた違ったRPAのトレンドや実例が聞けるかもしれません。今から楽しみですね。

UiPathでブラウザを閉じるときの注意点


RPAエンジニア 小林

RPAを使った自動化処理は多岐にわたりますが、中でもWebサイトからデータを集めてくるなど、ブラウザを使う機会は多いのではないでしょうか。 ブラウザを開いたら、最後にはブラウザを閉じるという作業が必要になります。例えば繰り返しの作業の場合、閉じる操作を怠るとブラウザウィンドウがたくさん立ち上がってしまったり、同じブラウザが複数起動していることでロボットが誤動作したりするという問題につながります。

UiPathでブラウザを閉じるためにはClose Tabアクティビティを使うのが一般的です。しかしこのClose Tabアクティビティを使うときには注意が必要な点があります。 ブラウザを「前回開いていたページを開く」という設定にしていると、再びブラウザを開いたときに前回のタブが復元され、新しく開きたいページは別のタブとして開かれてしまうのです。複数のタブが開かれた状態だと、ロボットが目的のタブ以外を誤操作する可能性があるので、これは避けたい所です。そのため、ブラウザを複数回開くようなロボットを動かす前にはブラウザのタブを復元しない設定にしておいたほうが無難でしょう。

また、Google Chromeの場合はショートカットキーでClose Tabアクティビティを代用するという手もあります。Send Hotkeyアクティビティを使い、タブを閉じるためのショートカット(Ctrl + w)を入力する形でブラウザを終了するようにすると、次の起動時に前回のタブが復元されることなく、新しく開きたいページだけが開きます。

今回はRPAでブラウザを閉じるときの注意点と工夫について紹介しました。ちょっとした工夫ではありますが、アクティビティが本当に想定通りの動作をしているのか、より確実な方法はあるかという観点を持って開発を行い、ロボットの誤動作を減らしていきたいですね。