リトライスコープの条件で使えるアクティビティは[要素の有無]だけでしょうか?
特定フォルダーにファイルの有無でリトライしたいのですが、そういったことはできるでしょうか?
ただ、ファイルパスが不明なので、ファイル数が1であるかどうかで判断させたいのですが。。。
ご指導よろしくお願いいたします。
@196006 さん
まずRetryScopeの条件に使えるのは現時点で下記7つかと思います。
- 要素の有無を検出
- 画像の有無を検出
- テキストの有無を確認
- OCRでテキストの有無を確認
- コレクション内での有無
- Is true(WorkFlow Maneger Activitiesパッケージで追加)
- Is false(WorkFlow Maneger Activitiesパッケージで追加)
で、ファイルの有無だけ判定出来ればOKとのことなのですが、
この場合は『フォルダ内のファイル名をコレクションに追加』という処理をRetryScopeの中に設定するだけで良いんじゃないかな?と思います。
コレクションに入れるべきもの(特定フォルダ内のファイル)が無いとエラーが出る→無条件でRetry処理、となります。
試してみてくださいませ
@ryoko さんも書いていただいていますが補足として。
Retry Scopeがリトライを実行する条件は2つあります。
- Action(処理)をすべて実行したあとに、Condition(条件)に指定したアクティビティが False を返すか、または失敗する(例外を発生させる)とき
- Action(処理)を実行しているときに、キャッチされていない例外が発生したとき
ryoko様
ご指導ありがとうございます。
この方法を早速使わせていただきます。
大変勉強になりました。
cheez_RPA様
いつもご指導ありがとうございます。
もう少しご指導いただければ幸いです。
ryoko様の事例でいうとリトライ条件はいずれに該当するのでしょうか?
条件のところは何もアクティビティを入れなくてもリトライされそうなのですが。。。
ファイルがない場合に、キャッチされていない例外発生でリトライといった感じでしょうか?
条件に「ファイルの有無」を入れてみたらどうでしょうか?
いま @ryoko さんのサンプルを眺めていたのですが……これだと、リトライされないですね。
「コレクションに追加」はファイルの有無を判定しないので、存在しないファイルであってもコレクションに追加されてしまい、かつリトライもされないです。
それを踏まえて伺いたいのですが、リトライしたい条件をもう少し詳細に教えていただけませんでしょうか。その回答によって、実装すべき方法が変わってきます。
- あるフォルダに「ファイルがひとつもない」とき?
- あるフォルダに、「条件に合致するファイルがない」とき?
cheez_RPA様
お手数をおかけいたします。
説明不足で申し訳ございません。
あるフォルダに「ファイルがひとつもない」ときです。
ファイル名を指定できれば「ファイルの有無」を入れられると思ったのですが、
今回はフォルダー名は指定できるものの、ファイル名が指定できず、リトライの条件を
どうすれば良いか困っておりました。
はっ、本当だ、これじゃだめだった!
すみません @196006 さん、ありがとう @cheez_RPA さん、 @rena168さん!
繰り返しじゃなく「trueか確認」 Activityを入れて、
system.io.Directory.getfiles(フォルダパス).count>0
で、どうでしょ?
ファイルが1つもないとエラーを返すので、リトライになります。
それであれば、以下のようにしてあげればOKですね。
Check True アクティビティは、Expression に指定した式が True であるか否か確認し、True であれば何もせず、 False であれば例外を発生させます。
前述のとおり、Actionのなかで例外が発生しますとリトライされますので、Retry Scopeで指定したインターバル、回数をもとにリトライがなされます。
rena168様
ご指導ありがとうございます。
私の説明不足で申し訳ありません。
今回は「フォルダーパス名」は分かるのですが、「ファイル名」が分からない事象で
ございました。
ファイル数だけで判断させたい案件でございました。
ご指導ありがとうございます。
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.