はじめに
この記事は、RPA歴約5年の自分が、UiPathを中心に数々の案件を経験してきて得た知識やポイントについて自分なりにまとめてみました。
ほかの言語の実装でも活用できる...かは自分次第ですね。
①本記事は、2023年7月開催の「UiPathブログ 発信チャレンジサマー」の2日目のブログです。
ブログの詳細、参加方法については、以下のブログを参照ください。
https://note.com/shumpei_w/n/nd082bdf28853
②このブログ情報は、2023/7時点の情報です。
③この実装ポイントはあくまでも「筆者の経験」に基づくものです。
実装のルール(規定、開発標準)が決まっている場合は、そのルールに基づいて開発しましょう。
RPAの実装は、物語を作成するイメージ?
多くの漫画や小説には「起承転結」というストーリーの枠組みがあると思うのですが、まずRPAの開発ではおおむね以下の枠組みを抑えていけばよいと思っています。
※実際この大枠にTryCatchアクティビティがあって、Tryに上記の処理が入っていることが多いかなと。
ロボットを作成する際に、フレームワーク(処理を円滑にできるようにするための枠組み)があるというところもあれば、まっさらな状態から作成することもあるかと思います。
ただ、大体以下の流れは抑えたほうがよいです。
初期処理:設定ファイルの読込、フォルダやファイルの有無、処理対象ファイルの中身を取得等
本処理:ファイルへ書込、削除、新規作成や使用するWebサイトへのアクセス&閲覧&取得等
終了処理:Webサイトへのログアウト&閉じる、ファイルを指定場所へ保存、不要ファイルの削除、メール送信等
ポイント1 【初期処理】処理の最初で何をするか確認する
処理の最初には大体上記3点の設定、確認処理を実装することで本処理に向けた準備をします。
①設定ファイルの読込
処理に必要な項目や値は、基本「ハードコーディング(=xamlファイルに直接ファイル名を書く等)しない」というように教わった方もいるかと思います。
設定ファイルに記載する内容の例として、ファイルの名前やセルの位置にシート名、WebサイトのURL、Delayやタイムアウトの時間等、色々あります。
設定値を管理することでxamlの修正や改修の手間を最小限にします。
可変要素があるものは、あらかじめ設定ファイルに書いておきましょう。
②使用するフォルダ、ファイルの有無を確認
どの処理でも何らかのフォルダやファイルにアクセスすることは多いと思います。
その中で、こういったことは本処理前に検知できたら良いと思いませんか?
・フォルダ名やファイル名が知らない間にいじられていて、名前が変わっていた
・あるはずの場所にファイルがない
...etc
なので、「フォルダーの存在を確認(Folder Exists)」や「ファイルの存在を確認(File Exists)」、(クラシックアクティビティを使用する場合は「パスの存在を確認(Path Exists)」)といった処理を実装しておいて、なければエラーで処理する感じです。
フォルダやファイルがない→なければエラーが出る→フォルダやファイルの確認&セット→再実行等
になるかと思います。
エラー時はこうしますというのもあらかじめ決めておくことも大切です。
③値を変数に設定
設定ファイルの値を辞書型で設定して書いてもいいのですが、意外と長かったりで面倒...
なので、変数に設定しておけば長くならない!(筆者が見聞きし実装した感想です)
よくあるExcelファイルの中身→データテーブル型への格納もこの段階でやっておきます。このほうが個人的にラクと思っています。
ポイント2 【本処理】パターンが決まってくる...
本処理はそのロボットの「一番盛り上がる=主役の処理」になってきます。
本処理は以下の傾向になってくるかと思います。
①フォルダやファイルの数分繰り返しで、ファイルの閲覧・更新を実行して別のフォルダに格納
②Webサイトへアクセスして、サイトの閲覧・取得を行う
③アプリケーション(SAPやSalesforce等)にアクセスして、各種設定や閲覧、更新作業を行う
④上記①や②、③を組み合わせた複雑な処理
繰り返しについては、
・繰り返す処理は一体何か、どういう順序で処理するのか?
・処理結果を格納する場合、どういう方法で結果を格納するのか?しない場合は本当に何もしなくてよいか?
・途中でNGの処理が出た場合、その時点で中断するor継続させるのか?
を考えておきましょう。
ポイント3【終了処理】最後はどうするのか、決めておく
処理の最後には「結局どうしたい」、「こうなってありたい」というものは決めておくことがほとんどだと思います。
正常終了、異常終了に関係なく、処理終了時点で「どういう状態であってほしいのか」を設計時にきちんと決めておきましょう。
終了の通知有無・通知の手段:メールで通知、メッセージボックスを使用する、チャット機能で通知するとか
処理結果・出力したファイルの保管場所:フォルダが見つからない、ファイルが見つからないことのないようにしておく(ない場合はフォルダを新規で作成する処理を初期処理の段階で検討しておくことも大事です)
エラー時:ログは以上処理時だけ残す、スクリーンショットはどこで保管するか等
最後に
RPAをきっかけにIT業界に入った自分は、プログラミングやWebサイトの構築もしたことがなく手探りしながらここまでお仕事をすることができました。
もちろん企業のルールはそれぞれあると思いますので、まずはそのルールになれていただくのがベストだと思います。
この記事は一つのアドバイスとして、開発される皆様のお役に立てればと思います。
今後も精進してまいりますので、どうぞよろしくお願いいたします。。
ここまでお読みいただきありがとうございました。