Timeoutプロパティを持たないアクティビティの使用法について

woman-robot-laptop-home-office

多くのアクティビティは Timeout プロパティを持っており、設定した時間内に処理が終了できなかった場合には例外がスローされます。しかし、Timeout プロパティを持たないアクティビティもあります。そのようなアクティビティを使ってワークフローを実装した場合、対象のアプリケーションを操作できないとワークフローの処理が進まなくなってしまうことがあります。

このような症状を回避するには、Parallelアクティビティを使います。本記事では、そのようなParallelアクティビティの使用方法を説明します。

Timeout プロパティを持たないアクティビティの例

  •  Maximize Window

  •  Minimize Window

  •  Send Outlook Email Message 

  •  Excel Application Scope

Parallelアクティビティを使用する例

 Excel Application Scope アクティビティは Timeout プロ パティを持たないため、何らかの原因により処理が止まる とそのまま次の処理に進めなくなる可能性があります。 下 記サンプルのように Parallel アクティビティを使用する と、止まってしまった処理から抜けることができます。

Excel Application Scope

 Parallel アクティビティの中には実行したい (Timeout プ ロパティを持たない) アクティビティを配置すると並行 して、Delay アクティビティと Throw アクティビティを 含む Sequence を配置しておきます。これにより、Delay  アクティビティの Duration プロパティに設定した時間が  過ぎたら、Throw アクティビティにより TimeoutException をスローすることができます。

TimeoutException

このとき、Parallel アクティビティのプロパティ CompleteCondition には True を設定することが必要で す。これにより、Parallel アクティビティ に含まれる分岐 のいずれかの処理が終了すると、Parallel アクティビティ 全体の処理が終了する動作となります。False を設定した 場合には Parallel アクティビティに含まれる分岐の全てが  終了しなければ Parallel アクティビティが終了しないめ、 本記事での用途に適しません。

Parallel

Invoke Workflow アクティビティを使用する例

個別のアクティビティではなく、対象ワークフロー全体の処理から抜けることもできます。この場合には、Invoke Workflow の Timeout プロパティに適切な時間を設定することが必要です。

Topics:

Studio