YUTO-Wの日記

美容と健康のためのブログです(`・ω・´) #ビタミンC #健康志向 #機械学習 #AI #ロボット #ROS

RPA開発で最も重要なのは "例外処理" だと感じた

f:id:yutow0403:20190208170814p:plain

言いたいこと

RPAを開発する際に最も注力すべきポイントは、

 

例外処理をいかに作り込むか

 

だと思った。(経験談

 

理由

・RPAは一度実行したら、基本的に数時間動きっぱなしになる。

 そのため、途中でエラーが発生して処理が止まることによる時間的弊害が大きい。

 (例)

 全部で5000件ある台帳の自動登録をするRPAを開発した。

 帰宅前に実行し、朝には終わっている予定だった。

 朝会社に来てみると、開始から100件目のところでエラー発生&停止していた。涙

 

・上記例にもある通り、実行開始したらパソコンの前から人はいなくなるので、エラー発生に気づけない(ことが多い)

 

ということで、ちゃんと try-catch 実装しましょうね、というお話。

 

※実際には、想定外のエラーが発生することが多いので、実行しつつ改善していくことになると思います。RPA開発のコツを詳しく知りたい方は、私に連絡くださいね。

 

【UiPath】Excel で複数列の値を取得する

やりたいこと

 UiPath(RPAツール)で、Excelの複数列の値を取得したい。

f:id:yutow0403:20181106162622p:plain

 

やる方法

UiPath上でExcelを読み込む。

Excel Application Scope を使う。

f:id:yutow0403:20181106163253p:plain

 

セルの範囲を指定する。

f:id:yutow0403:20181106163415p:plain

 

範囲について、例えば A1:C6 を指定すると以下のようになる。

f:id:yutow0403:20181106163839p:plain

 

Read Range で指定した範囲をデータテーブルに変換する。以下のような感じ。

f:id:yutow0403:20181106164002p:plain

 

for each 文を使ってループさせる。

f:id:yutow0403:20181106164247p:plain

 

列の値は row(i) , row(i+2) で取得できる

以下のような感じ。

f:id:yutow0403:20181106164652p:plain

図示すると以下。

f:id:yutow0403:20181106165114p:plain

 

結論

面倒な関数や多重ループとか使わなくても、

row(i) とか row(i+3) とか書けば情報取得できるんや!!

【UiPathエラー】コマンドライン(オフライン)でアクティベーションする際の注意点

以下の記事で、コマンドライン(オフライン)でアクティベーションする際の手順を書いた。

しかし、以下の通りにやってもうまくいかない場合があることが分かった。

 

 

yutow0403.hatenablog.com

 

具体的には、

アクティベーションする直前にPCをオフラインにする

必要があることが判明した。

 

ということで、手順を改めて記載すると以下の通り。

 

+++ PCをオンラインにして実行(手順①~④) +++

Windowsコマンドプロンプトで以下を実行し、有効化証明書を生成する

>> regutil.exe get-activation-cert /email=*****@****** /code=***** /out_file=./certificate.txt

※out_fileは任意の場所/名前でOK

 

②インターネット接続のあるマシンで、以下URLにアクセスする

http://support.uipath.com/activation

※有効化ポータルが表示される

 

③Activation Codeフィールドに、①で作成された証明書内の情報を貼り付ける

※テキストファイルの内容を全コピー&ペースト

 

④Activateをクリックする。これで起動応答コードが作成される。作成された応答をテキストファイルに保存する

※テキストファイルは任意の場所/名前でOK

 

 +++ PCをオフラインにして実行(手順⑤) +++

⑤①で使用したマシンで以下コマンドを実行し、ライセンスをオフラインで有効にする
>> regutil.exe activate /offline /code=***** /response_file=./response.txt

※response_fileは④で保存したテキストファイル

※codeは手順①でも入力したコード

 

PCをオフラインにするには、LANケーブルを抜けば良い。

ノートPCで無線を使っているなら、無線受信スイッチをオフにすれば良い。

 

【まとめ】

オフラインでアクティベーションする際は、アクティベーションする直前でオフラインにしましょう。

そうしないと、なぜかライセンスエラーが起きます。

まったく、このせいで1時間くらい作業が止まったわ(´・ω・`)

【メモ】イントラ内のサーバにOfficeをインストールしてライセンス認証する

以下の記事で、『インターネット接続が必須』と書いたがそうでもなかった。

 

yutow0403.hatenablog.com

 

【解決策】

以下①②のどちらかを試してみると良いかも。

 

①電話でのライセンス認証

②社内プロキシサーバを指定して、一時的にインターネット接続できるようにする。その後、オンラインでライセンス認証する

 →インターネットオプションで設定。以下画像参照

 f:id:yutow0403:20180911114401j:plain

※ライセンス認証後、プロキシサーバの指定を無効にするのを忘れないように!

 

①はできない場合もあるらしい。

②は、社内ポリシー的に禁止されている可能性もあるので、注意が必要。

【UiPathエラー】There was an error trying to reach the activation server.

【目的】

UiPathを使用して、以下のエラーが出た場合の対処法を教える。

 

【エラー内容】

There was an error trying to reach the activation server.

You might be behind a firewall. Please contact your network

administrator and retry later.

f:id:yutow0403:20180910171550p:plain

 

その後、メールアドレス/ライセンスキーを入力すると以下エラーが出る。

 

Activation failed with error: -4006
Error description: Server returned invalid XML
License status: Undetermined

f:id:yutow0403:20180910171733p:plain

 

【問題解決までの経緯①】

エラー内容は、アクティベーションサーバに接続できない」というもの。

以下を試してみた。だが解決できなかった。

 

Windowsファイアウォールを全て無効化

Windowsファイアウォール設定変更(アクセス許可など)

・ウィルスソフト停止/アンインストール

・PC再起動
・C:\Users\【ユーザ名】\AppData\Local\UiPath\Activities\NPOI.2.2.1 以下の LICENCEファイルを削除後、再実行

 ※上記は、デバイスIDを変えることが目的

 ※Windows7だとLICENCEフォルダが無いので、AppData以下のLICENCEファイルを全て削除して再実行

 

【問題解決までの経緯②】

以下サイトの対処法は全て実行した。だが解決できなかった。

UiPathでよくある質問集

「アクティベーションサーバに接続できないエラー」の対処法

 

【問題解決までの経緯③】

公式HPを見て、コマンドラインベースでアクティベーションしようとした。

公式HP:

UiPath Studio Guide

f:id:yutow0403:20180910173936p:plain

だが解決できなかった。

 

【解決策】

コマンドラインベース&オフライン でアクティベーション成功した。

具体的には、以下①~⑤を実行する。

 

Windowsコマンドプロンプトで以下を実行し、有効化証明書を生成する

>> regutil.exe get-activation-cert /email=*****@****** /code=***** /out_file=./certificate.txt

※out_fileは任意の場所/名前でOK

 

②インターネット接続のあるマシンで、以下URLにアクセスする

http://support.uipath.com/activation

※有効化ポータルが表示される

 

③Activation Codeフィールドに、①で作成された証明書内の情報を貼り付ける

※テキストファイルの内容を全コピー&ペースト

 

④Activateをクリックする。これで起動応答コードが作成される。作成された応答をテキストファイルに保存する

※テキストファイルは任意の場所/名前でOK

 

☆☆☆ここでPCをオフラインにしましょう(2018/11/05 追記)

 

⑤①で使用したマシンで以下コマンドを実行し、ライセンスをオフラインで有効にする
>> regutil.exe activate /offline /code=***** /response_file=./response.txt

※response_fileは④で保存したテキストファイル

 

上記は、以下URLを参考にして実行した。

robot.uipath.com

 

【まとめ】

このエラーには、本当に苦しめられた。

解決まで約1ヶ月もかかったため、開発する気が失せた。

導入するのにクソ手間がかかるツールってどうなんだろうと本気で感じた。