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

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

UiPathでカスタムフォームを活用しよう


RPAエンジニア 大庭

RPAロボットを開発する中で、実行の途中でユーザー(今回の場合はロボットを実行している人)から入力を受け付けたい場面があると思います。Input Dialog(入力ダイアログ)アクティビティCustom Input(カスタム入力)アクティビティを使うこともできますが、先日、UiPath.Form.Activitiesパッケージがリリースされ、UiPathのアクティビティでカスタムフォームが作成できるようになりました。

カスタムフォームを作成すれば、ユーザーが入力した複数項目を対話形式で受け取ることができます。これを利用すれば、例えばロボットの実行中に何らかのIDとパスワードが必要なときに、ユーザーからの手入力で設定することがよりシンプルにできるようになったり、ほかにも、ユーザーが予めカスタムフォーム内で設定した内容でロボット内の複数の条件分岐の方向を指定すれば、その時の場面に応じたロボットのフローを実行できます。具体的にはデバッグ作業にも応用できると思います。

UiPath.Form.Activitiesパッケージをインストールすると、Create Form(フォームを作成)アクティビティが使えるようになります。出力は、アクティビティのプロパティパネルにある「フォームフィールドコレクション」でフォームに入力された情報を一つずつ変数に格納したり、「フォームフィールド出力データ」でJSON形式のデータ(String型)で一度に受け取ることができます。後者の場合は、UiPath.Web.ActivitiesパッケージをインストールすればDeserialize JSON(JSONをデシリアライズ)アクティビティを使ってJSONオブジェクトにできます。

これからはCreate Form(フォームを作成)アクティビティを活用してより使いやすいロボットを開発していきたいです。

Uipathで繰り返し処理を途中再開するための工夫


RPAエンジニア 小林

RPAを使った自動化作業では、繰り返し処理を行うことがよくあります。同じ作業を何度もするのはRPAの得意領域ですが、時には途中で想定外のパターンが生じてしまいロボットが止まってしまうということもあります。小規模の作業ならまだしも、時間のかかる作業を再度初めから動かすのはなるべく避けたいものです。ロボットが止まらない設計も大事ですが、万が一止まってしまっても途中再開がしやすい設計にすることで効率的に作業を進められます。今回は、UiPathでループを途中再開するための工夫を紹介します。

扱う例

Excelファイルに書かれたデータを使って、行ごとに同じ作業を繰り返す場合を考えます。例えば、商品情報が書かれたExcelファイルから各情報を拾い、CMSに入力して商品ページを作るという作業があります。今回扱う例は、Excelファイルの1行目には商品名や価格などの項目名が、2行目から100行目までは各商品の情報が書かれているものとします。

繰り返し処理で扱うExcelファイルの例

処理がどこまで進んだかログを残す

ロボットを途中再開するために最も重要なのは、処理がどこまで進んだかのログを残すことです。Write Cell(セルに書き込み)アクティビティを使ってExcelファイルに逐次書き込んでもよいですし、Append Line(文字列を追加書き込み)アクティビティを使ってテキストファイルに追記していくのもよいでしょう。どこまで進んだか簡易的に見るだけなら、Write Line(1行を書き込み)アクティビティを使って出力パネルに表示するという方法もありますが、実行の記録を残すという意味ではファイルとして出力したほうが無難です。

「Uipathで繰り返し処理を途中再開するための工夫」の全文を読む

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のセルを読み込むときに気をつけたいこと」の全文を読む