3.5.4.16. システム.アクティビティ

OpenRPA.System.Activitiesツールボックスにあるアクティビティを紹介します。

AddToCollection<> アクティビティ

このアクティビティは、コレクションにアイテムを追加します。

コレクションはリストと似ていますが、リストが新しい項目を受け入れないのに対して、コレクションは新しい項目を受け入れないという点を覚えておいてください。このテーマに関する包括的な説明は、Microsoftの.NET公式Webページ(https://docs.microsoft.com/pt-br/dotnet/visual-basic/programming-guide/concepts/collections)を参照してください。

Collectionはまず、System.Collections.Generic.List<T>に変数を代入して初期化する必要がある。ここでTはCollection内に含まれるオブジェクトのデータ型に対応するものである。例えば、文字列の コレクションで、ユーザが一つの値"name" で初期化したい場合、彼は値new List(of string)({"name"})を目的の変数に代入します。

プロパティパラメータ

Collection– 一致する要素が存在するかどうかをチェックするコレクションの名前。これは、変数または引数として最初に宣言されている必要があり、引数の型はSystem.Collections.Generic.List<T> です。ここで、Tは、コレクション内に含まれるオブジェクトのデータ型に対応します。

.

表示名– シーケンス内のアクティビティのタイトルです。

Item– 追加される項目。TypeArgumentで宣言されたものと同じ型でなければならない。

TypeArgument– リストの項目のデータのタイプ。

images/openrpa_add_to_collection.png

システム.アクティビティAddToCollection<>。

アクティビティを割り当てる

このActivityは、変数に値を代入するために使用されます。

プロパティパラメータ

DisplayName– シーケンス内のアクティビティーのタイトル。

To– 値が割り当てられる変数ファイルのパス。

Value– 変数に代入される値です。

images/openrpa_assign.png

システム.アクティビティ割り当て

ClearCollection<> アクティビティ

このアクティビティは、コレクションをクリアする、つまり、コレクションからすべてのアイテムを削除します。

プロパティ パラメータ

Collection– 一致する要素が存在するかどうかをチェックするコレクションの名前。これは、変数または引数として最初に宣言されている必要があり、引数タイプはSystem.Collections.Generic.List<T> です。ここで、TはAddToCollection<>アクティビティセクションの画像に見られるように、コレクション内に含まれるオブジェクトのデータ型に対応しています。

表示名– シーケンス内のアクティビティのタイトルです。

TypeArgument– リストの項目のデータの型。

images/clearcollection.png

System.Activities ClearCollection<>。

ディレイ活動

TimeSpanクラスへのオブジェクトのインスタンスから遅延を作成します。また、ユーザーは単純にHH:MM:SSのフォーマットで時間の長さを入力することができます。

プロパティ パラメータ

Displayname– シーケンス内のアクティビティのタイトルです。

Duration– 遅延の長さを指定する引数です。単純な 00:00:00.00 {hh:min:ss.mili} またはTimeSpanクラスのオブジェクトにすることができます。

備考

TimeSpan値は時間間隔を表し、特定の日数、時間、分、秒、ミリ秒として表現することができる。特定の始点や終点を持たない一般的な間隔を表すため、日数が可変である年や月で表すことはできない¹。

¹ – `TimeSpan Struct <https://docs.microsoft.com/en-us/dotnet/api/system.timespan?view=netcore-3.1>`_ (“https://docs.microsoft.com/en-us/dotnet/api/system.timespan?view=netcore-3.1“)

images/openrpa_delay.png

システム.アクティビティ ディレイ.

Do Whileアクティビティ

ループ内にドロップされた他のアクティビティを少なくとも1回実行し、ループの条件が Trueに評価されなくなるまで繰り返し実行するループを作成します。

プロパティ パラメータ

Condition– これは、ループ条件を表すVB Expressionです。

Displayname– シーケンス内のアクティビティのタイトルです。

images/openrpa_do_while.png

システム.アクティビティ.Do.While.

ExistsInCollection<> アクティビティ

このActivityは、コレクションにItemが存在するかどうかを調べ、ブール値を返す。

Collectionはまず、System.Collections.Generic.List<T>に変数を代入して初期化する必要がある。ここでTはCollection内に含まれるオブジェクトのデータ型に対応するものである。例えば、文字列の コレクションで、ユーザが一つの値"name" で初期化したい場合、彼は値new List(of string)({"name"})を目的の変数に代入します。

プロパティ パラメータ

Collection– 一致する要素が存在するかどうかをチェックするコレクションの名前。これは、変数または引数として最初に宣言されている必要があり、引数タイプはSystem.Collections.Generic.List<T> です。ここで、TはAddToCollection<>アクティビティセクションの画像に見られるように、コレクション内に含まれるオブジェクトのデータ型に対応しています。

Displayname– シーケンス内のアクティビティのタイトルです。

Itemコレクション内部で検索される項目。TypeArgumentで宣言されたものと同じタイプでなければならない。

Resultブーリアン変数、または結果が保存されるファイルパス。

TypeArgument– リストの項目のdatatype

images/existsincollection.png

システム.アクティビティExistsInCollection<>。

フローチャート活動

フローチャートは、非連続的なワークフローを追加するために使用される。定義によると、フローチャートアクティビティは、実行されるアクティビティのコレクションを含むアクティビティである。

フローチャートはシーケンスに似ているが、より簡単に扱えるのがデシジョンツリーである。シーケンスの中に複数の「if」文がある場合(特にネストされている場合)、アクティビティやデータの扱いが非常に難しくなることがある。フローチャートは、このような状況を簡単に処理し、ワークフローをよりユーザーフレンドリーでグラフィカルな方法で可視化することができます。

フローチャートにアクティビティを追加するには、フローチャートに「シーケンス」を追加し、その「シーケンス」の中にアクティビティを追加する方法がある。

プロパティ パラメータ

表示名– シーケンス内のアクティビティのタイトルです。

ValidateUnconnectedNodesTrue の場合、フローチャートの実行フローに接続されていないノード内のワークフロー ロジックの検証を実行します。

images/flowchart.png

System.Activityのフローチャート

FlowDecision活動

このアクティビティは、変数の値に基づいて、含まれるアクティビティ間の実行を指示する。Ifアクティビティと同様に、ブーリアン条件に基づいて実行を分岐させる。

このアクティビティは、ブール値「True」または「False」で表される2つの可能なパスにフローをルーティングする役割を担っています。これは、2つの可能な分岐結果のみを持つIf文と非常によく似ている。

プロパティパラメータ

条件– バリデートされるVB式。

表示名– フローチャート内のアクティビティのタイトル。

FalseLabelFlowDecisionノードの “False “出口に表示されるテキスト。

TrueLabelFlowDecisionノードの “True “出口に表示されるテキスト。

images/flowdecision.png

システム.アクティビティフローの決定。

FlowStep活動

Coming soon – work in progress!

FlowSwitch<>アクティビティ

このアクティビティは、2つ以上の代替ブランチを持つマッチ基準に基づく条件ノード(FlowDecisionと同様)である。分岐が2つだけの場合は、FlowDecisionの方が良い選択である。また、Switchと似ているが、シーケンスではなくフローチャート上で動作するように設計されている。

ワークフローに複数のルートを作成する必要がある場合に有効です。

プロパティパラメータ

DisplayName– シーケンス内のアクティビティーのタイトル。

Expression– アクティビティで検証されるVB式です。

images/flowswitch.png

システム.アクティビティフロースイッチの

HandleScope<> アクティビティ

このActivityは、Microsoft Workflow Foundationからのベースラインであるため、System.Activityに存在し、リストされていますが、OpenFlow/ OpenRPAのコンテキストで使用されています。

このActivityの包括的な説明は、このテーマに関するマイクロソフトのウェブサイト(https://docs.microsoft.com/pt-br/dotnet/api/system.activities.statements.handlescope-1?view=netframework-4.8)をご覧ください。

アクティビティーの場合

progの条件文に似ている。節条件が Trueの場合、Thenブロックのアクティビティを実行します。もしFalseなら、Elseブロックを実行する。

プロパティパラメータ

Condition– これは、句の条件を表すVB Expressionである。

Displayname– シーケンス内のアクティビティのタイトルです。

images/openrpa_if.png

システム.アクティビティ場合

InvokeMethod アクティビティ

このActivityは、オブジェクトに定義されたパブリックメソッドを変数内部で呼び出すことができるものです。

実用的には、値を返さない式を呼び出したり、OpenRPA内部にActivityとして存在しないメソッドを実行するための方法です。また、値を返すメソッドにしか使えないAssignアクティビティの代替と見なされています。

ユーザーはまず、MethodNameパラメータで呼び出されるメソッドを指定する必要があります。

もしユーザが非静的メソッドを呼び出したい場合は、TargetObjectフィールド内にメソッドが実行されるオブジェクトを代入する必要があります。TargetObjectと TargetTypeは相互に排他的であることをユーザーに思い出させるのに便利です。

静的メソッドを呼び出したい場合は、TargetTypeフィールドにメソッドが実行されるクラスタイプを指定する必要があります。

もしユーザがジェネリックメソッドを呼び出したい場合は、GenericTypeArgumentsフィールドにジェネリックタイプを指定する必要があります。これについては、`Generic Methods (C# Programming Guide)`_(https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/generic-methods)を参照してください。

また、Resultパラメータには、メソッド呼び出しの結果を保存する変数をユーザーが指定することができる。

また、ユーザーはRunAsynchronouslyチェックボックスをチェックすることで、メソッドを非同期で実行するかどうかを指定することができます。

InvokeCodeを使用すると、インテリセンスによる自動補完やその他の機能があるため、より良い選択肢であることに注意してください。

プロパティパラメータ

表示名– シーケンス内のアクティビティのタイトルです。

GenericTypeArgumentsジェネリックメソッドを呼び出す際に、ユーザーがジェネリック 引数を渡すことを可能にする。

MethodName– 呼び出されるメソッドの名前です。

パラメータ– メソッドに必要なパラメータ。

Result– 結果を格納する変数または引数ファイルのパス。データ型は、メソッドから期待される結果と一致している必要があります。

RunAsynchronouslyTrueに設定すると、ロボットはワークフローと並行してこのメソッドを実行します(つまり、他のアクティビティに移る前にメソッドが完了するのを待つことはありません)。

TargetObject– メソッドが実行されるオブジェクト。TargetTypeと相互排他的です。

TargetType– メソッドが実行されるクラスタイプ。TargetObjectと排他的です。

images/openrpa_invoke_method.png
NoPersistScope 活動

このActivityは、Microsoft Workflow Foundationからのベースラインであるため、System.Activityに存在し、リストされていますが、OpenFlow/ OpenRPAのコンテキストで使用されています。

このActivityの包括的な説明は、このテーマに関するマイクロソフトのウェブサイト(https://docs.microsoft.com/en-us/dotnet/api/system.activities.statements.nopersistscope?view=netframework-4.8)をご覧ください。

パラレル・アクティビティ

OpenRPAが複数のSequenceを同時に実行できるようにするActivityです。

Parallelの中にSequence Activityを追加し、このSequenceの中にActivityを追加する必要があることに注意してください。

このアクティビティは、その中の複数のシーケンスがUIで動作している場合、異なるアクティビティ間の競合を引き起こす可能性があるため、推奨されません。これは、異なるSequenceが同時に同じアプリケーションにアクセスする場合や、マウスやキーボードを使用する場合にも当てはまります。

プロパティ パラメータ

CompletionCondition– ブール値。Falseに設定された場合、ロボットは次のアクティビティに進む前に、並行しているすべてのSequenceが終了するのを待ちます。そうでない場合、ロボットは、1つのSequenceが終了すると、次のアクティビティに進みます。

表示名– シーケンス内のアクティビティのタイトルです。

パーシスト活動

このアクティビティは、すべての変数と状態をXMLファイルに保存し、OpenRPAが「アイドル」状態になった最後のアクティビティからワークフローを継続できるようにします。

重要なことは、ワークフローがシリアライズ可能な変数を持っている場合のみ、この処理を行うことができるということです。例えば、DataTablesはシリアライズ可能ではありません。したがって、変数のシリアライズ時に何らかのエラーが発生した場合(つまり、ワークフローがDataTablesを持つ場合)、状態は全く持続されない。

プロパティ パラメータ

表示名– シーケンス内のアクティビティのタイトルです。

images/persist.png

System.Activityの永続性

ピック活動

このアクティビティでは、ユーザーがワークフローの実行を分岐させ、最初にトリガーされた分岐を進めることができます。

各ブランチには、TriggerフィールドとActionフィールドがあります。トリガーは、Detectorのようなイベントドリブンなアクティビティと連動するように設計されています。Detectorがトリガーされると、ActionフィールドにあるActivityが実行されます。

トリガーフィールドに何も入力されていない場合、両方のブランチが実行され、最初のブランチが完了すると、ロボットはピックアクティビティを終了します。実用的には、このアクティビティの使い方は「並列アクティビティ」と非常に似ていますが、次に進む前にすべてのブランチが完了するのを待たないという点が異なります。

プロパティパラメータ

表示名– シーケンス内のアクティビティのタイトルです。

images/pick.png

システム.アクティビティピック

RemoveFromCollection<> アクティビティ

このアクティビティは、コレクションから1つのアイテムを削除します。

コレクションはリストと似ていますが、リストが新しい項目を受け入れないのに対して、コレクションは新しい項目を受け入れないという点を覚えておいてください。このテーマに関する包括的な説明は、Microsoftの.NET公式Webページ(https://docs.microsoft.com/pt-br/dotnet/visual-basic/programming-guide/concepts/collections)を参照してください。

プロパティパラメータ

Collection– 一致する要素が存在するかどうかをチェックするコレクションの名前。これは、変数または引数として最初に宣言されている必要があり、引数タイプはSystem.Collections.Generic.List<T> です。ここで、TはAddToCollection<>アクティビティセクションの画像に見られるように、コレクション内に含まれるオブジェクトのデータ型に対応しています。

表示名– シーケンス内のアクティビティのタイトルです。

Item– 削除される項目。TypeArgumentで宣言されたものと同じ型でなければならない。

Result– 結果を格納する変数または引数ファイルのパス。これは、”Boolean “タイプでなければなりません。

TypeArgument– リストの項目のデータの型。

images/removefromcollection.png

System.ActivitiesRemoveFromCollection<>の略。

Rethrow活動

このActivityは、Throwブロックと同じコンテキストで、Catchブロックの内部で使用する必要があります。違いは、このアクティビティはTryブロックで投げた例外と同じ例外をCatchブロックで再度投げることです。

プロパティパラメータ

DisplayName– シーケンス内のアクティビティーのタイトル。

images/rethrow.png

システム.アクティビティ再投入

シーケンス活動

このアクティビティは、メインシーケンスにシーケンスをネストさせるために使用される。メインシーケンスと同じように、この中にアクティビティをドロップすることができます。展開したり折りたたんだりできるので、コードやワークフローを整理するのに便利です。

プロパティパラメータ

Displayname– シーケンス内のアクティビティのタイトルです。

images/openrpa_sequence.png

システム.アクティビティ シーケンス.

国家活動

ステートマシンを構成する基本単位で、特定の時間に1つの状態にしかならない。

各状態には、Entry Action(状態に入るときに実行されるアクティビティ)とExit Action(状態を抜けるときに実行されるアクティビティ)が存在することになります。OpenRPAでは、ユーザーは各状態をダブルクリックして、その状態の入口と出口で実行されるアクティビティを編集することができます。

それ以外に、ステート間の遷移を編集することも必要です。新しいStateを追加して最初のStateに接続すると、両者の接続線に「T」と数字が付いた円が表示されます(例:最初の遷移はT1、2番目はT2、などなど)。この円をダブルクリックすると、StateMachineがこれらの異なる状態間をどのように遷移するかを、評価およびチェックされるConditionとして VB 式を 挿入して編集できます。

Transitionの設定では、あるConditionを満たした場合に実行するActivityと、そのConditionをチェックした場合に実行するActivityを追加することができます(Triggerフィールドで)。つまり、ロボットは実行可能な全てのトランジションをチェックし、トリガー内のアクティビティを実行し、コンディションを満たしたものだけに順次進んでいく。なお、「条件」は「状態」ではなく「遷移」の中にあるので、「条件」を満たさない場合でも「トリガー」は実行される。

StateとStateMachineに関する包括的な説明は、マイクロソフトの公式サイト(https://docs.microsoft.com/pt-br/dotnet/framework/windows-workflow-foundation/state-machine-workflows)を参照してください。

プロパティパラメータ

表示名– シーケンス内のアクティビティのタイトルです。

images/state.png

System.Activityの状態

StateMachine 活動

ステートマシンはイベント駆動型のワークフローであり、「シーケンス」や「フローチャート」とは異なるタイプのワークフローを構成する。ワークフローが完了したときに到達する初期状態と最終状態は、少なくとも1つだけ存在することができる。ステートマシンは、特定の時間に1つの状態であることができるだけです。

プロパティパラメータ

表示名– シーケンス内のアクティビティのタイトルです。

StateとStateMachineに関する包括的な説明は、マイクロソフトの公式サイト(https://docs.microsoft.com/pt-br/dotnet/framework/windows-workflow-foundation/state-machine-workflows)を参照してください。

images/statemachine.png

システム.アクティビティStateMachine

スイッチ<>アクティビティ

このアクティビティは、ケース内のキーに対して式を評価し、一致したケースに関連するアクティビティを実行します。

このアクティビティをデザイナーにドラッグすると、ダイアログウィンドウが表示され、ユーザーは式のデータ型を選択することができます。その後、式が評価されるたびに実行される「デフォルト」ブロックと、新しいケースを追加するオプションが表示されます。それぞれのケースには、キー(式に対してテストされる値)と新しいアクティビティをドロップするためのブロックが含まれます。ロボットはすべての値を「式」に対してテストし、そのうちの1つが一致すれば、関連するアクティビティが実行されます。

プロパティパラメータ

DisplayName– シーケンス内のアクティビティーのタイトル。

Expression– ケース内のキーのテスト対象となる式。

images/switch.png

システム.アクティビティ スイッチ<>。

TerminateWorkflow 活動

ワークフローの実行を終了させるアクティビティ。一度終了したワークフローは、再開することができない。

プロパティパラメータ

DisplayName– シーケンス内のアクティビティーのタイトル。

Exception– ワークフローが終了するときにスローされる例外。対応するデータ型(System.Exception)で既に宣言された変数または引数でなければなりません。

Reason– ワークフローが終了した理由を説明する文字列。

images/terminateworkflow.png

System.Activities TerminateWorflow (システムアクティビティターミネイトワーフロー

投擲活動

このアクティビティは、特定のケースでワークフローの実行を終了させ、エラーメッセージを表示するメソッドを提供します。プログラミングでは、「例外を投げる」と呼ばれます。Exception欄に例外を入力し、newと入力すると、利用可能な例外が表示されます。

プロパティパラメータ

Displayname– シーケンス内のアクティビティのタイトルです。

Exception– エラーメッセージに表示される例外です。

images/openrpa_throw.png

システム.アクティビティスロー

TransactionScope アクティビティ

このActivityは、Microsoft Workflow Foundationからのベースラインであるため、System.Activityに存在し、リストされていますが、OpenFlow/ OpenRPAのコンテキストで使用されています。

このActivityの包括的な説明は、このテーマに関するマイクロソフトのウェブサイト(https://docs.microsoft.com/pt-br/dotnet/api/system.transactions.transactionscope?view=netcore-3.1)をご覧ください。

TryCatch 活動

Tryブロック内の一連のアクティビティを実行しようとします。その中でエラーが発生した場合、エラーがキャッチされ、Catchesブロック内のアクティビティが実行されます。実行の最後には、Finallyブロックが実行されます。

プロパティパラメータ

Displayname– メインシーケンス内のアクティビティのタイトルです。

images/openrpa_try_catch.png

システム.アクティビティ TryCatch.

活動中

このActivityは、条件が満たされていない間(つまりFalseの間)、その中にドロップされた他のActivityを実行するループを作成する。条件が満たされる、つまりTrueになると、ループは終了し、次のActivityに移行する。ループを開始する前に、まず条件がTrueに評価されるかどうかをチェックするDo WhileActivityとは異なる。

プロパティパラメータ

Condition– これは条件を表すVB Expressionです。

Displayname– シーケンス内のアクティビティのタイトルです。

images/openrpa_while.png

システム.アクティビティ.While.

WriteLine 活動

このActivityは、Text文字列に従って、コンソールに出力を書き込む。

プロパティパラメータ

Displayname– シーケンス内のアクティビティのタイトルです。

Text– コンソールに表示される文字列.

TextWriterオプション– 文字ストリームの書き込みに使用されるライターです。

TextWriterクラスは抽象クラスです。したがって、ユーザーはコード内でこれをインスタンス化するべきではありません。StreamWriterクラスはTextWriterから派生したクラスで、ストリームに書き込むためのメンバの実装を提供します。以下の例では、WriteLineAsync(String)メソッドを使用して、文字列値からなる2行をテキストファイルに書き込む方法を示します¹。

¹ – `TextWriter クラス <https://docs.microsoft.com/en-us/dotnet/api/system.io.textwriter?view=netcore-3.1>`_ (“https://docs.microsoft.com/en-us/dotnet/api/system.io.textwriter?view=netcore-3.1“)

images/openrpa_write_line.png

システム.アクティビティ.ライン.書く