WinActor:業務の途中からシナリオ実行をする方法について考えてみる
「業務の途中からシナリオ実行をする」というのは、例えばシナリオを頭から実行していく中で予期せぬエラーが起こりシナリオを途中で止めてしまうことになった場合でも、また実行すれば処理途中の業務を冒頭から行うことなく、さきほど止まってしまった箇所からスタートできるようする、ということです。
こんにちは!
ワークスアイディ キャンスタ編集部 RPAエンジニアのすずです。
エラー対策シリーズでこれまでいくつか記事を出してきました。
エラーを出さない作り方、エラーが出ても動きを止めない構成、エラー時の情報を収集して修正に役立てる方法など、私自身も日々試行錯誤して取り組んでいます。
そしてエラーに関して、お客様にもよくいただくご要望やご質問の一つが今回のテーマである『もしエラーが起こって途中でシナリオを一度止めてしまっても、リトライしたら続きから実行するようにつくれないか』ということです。
エラーが起きてシナリオを停止し、再度実行しようとしたときに状態を初期化しないといけないということがたびたびあります。
状態を初期化するというのは、使用していたファイルを保存せずに閉じて元のフォルダに戻したり、起動しているシステムを閉じておいたりと、シナリオを最初から実行するときと同じ環境に戻すことを指します。
その状態に戻すのはそこそこの手間ですし、せっかく途中まで処理が終わったのにまたやり直すのは時間的にもったいない、リトライしたら続きからやってほしい!と思うことは当たり前のことです。
しかしながら、シナリオ作成代行をしている場合はどうしても第一に「完成」、その次は「エラーをできるだけ潰す」ことが優先されやすく、リトライできる仕組みづくりまでは手が回らないケースも多いです。
ですが、やはり長い目でみるとリトライの仕組みはとても重要ですので、どのような方法で実現できるのかを考えていきたいと思います。
他にも様々手段はあると思いますので、ぜひ考えてみてください。
1.進捗ごとにフォルダを分ける
リトライできる仕組みに必要なのは「その業務がどの工程まで終わっていて、どこからが未対応なのか」を正確に把握できるようにすることです。
そこで、作業内容ごとにフォルダを用意しておき、そのフォルダのどこにファイルがあるかによって業務の進捗を判断する方法を考えてみます。
例として、基幹システムでデータを検索・ダウンロードし、メール添付する業務の場合を考えてみます。
手順の流れとしては以下になります。
続いて予め用意しておくフォルダの構成を考えます。
今回は以下の様に設定しました。
各工程が終わるたびにファイルを移動させる工程を入れることにより、シナリオが途中で止まっていても、業務のどこまで完了しているかを把握できるようになります。
この例の場合、最後まで正常に処理が終了すると01、02、04のフォルダは空になって、03と05フォルダに処理が終わったファイルが格納されている状態になります。
シナリオフローチャートで表わすと以下のようなイメージになります。
作業途中のファイルがないかフォルダを確認して、ファイルが残っていればそこから実行し、ファイルがなければスキップして次の工程へ進む(もしくは最初から実行していく)という手順で実行するようになっています。
実際の開発の際には、重複する工程(上図でいうと【申請書から値取得する工程】をサブルーチン化したり、工程ごとにシナリオを分けるといった構成にすることで視認性や使いやすさも向上させることもできます。
2.Excel進捗管理をおこなう
もう一つの方法をご紹介します。業務の進捗管理をおこなうという点は同様ですが、進捗管理用のExcelファイルを一つ用意して進捗を記録しながら処理を進めていく方法です。
例として、以下のWeb EDIからダウンロードしたデータを加工してからPDF化し、基幹システムへ取り込む業務で考えてみます。
元々の業務では使用していない、WinActorでの実行進捗管理用のExcelファイルを用意します。
シナリオの中で、工程が終わるごとにこの管理表の該当箇所に”済”などの文言を書き込んでおきます。
各工程の冒頭でWinActorに該当箇所の値を確認させ、空白ならその工程の処理を実行し、値が入っていればスキップして次の処理へ進むようにしておくことで、前回の処理が途中で終わっていても空白の工程から実行をリトライできるようになります。
以下、シナリオのイメージです。
3.さいごに
いかがでしょうか。
エラーが起こりそうな箇所がはじめから分かっているのであれば、部分的に例外処理や繰り返しを使って成功するまで実行させる等の対策を講じることも可能です。
一度シナリオを止めても、状態の初期化をおこなわなくてもそのまますぐリトライできる仕組みにしておくことで利便性がぐっと上がりますので、ぜひ挑戦してみてください!
最後までお読みいただきありがとうございました。
また次回お楽しみに!
ワークスアイディ キャンスタ編集部 RPAエンジニアのすずでした。