- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- 制御フロー
- ファイルの比較
- オートメーションのベスト プラクティス
- ソース管理との連携
- デバッグ
- ログ
- 診断ツール
- ワークフロー アナライザー
- ワークフロー アナライザーについて
- ST-DBP-002 - 多数の引数
- ST-DBP-003 - 空の catch ブロック
- ST-DBP-007 - 複数のフローチャートレイヤー
- ST-DPB-010 - [ワークフロー] または [テスト ケース] の複数のインスタンス
- ST-DBP-020 - 未定義の出力プロパティ
- ST-DBP-021 - ハードコードされたタイムアウト
- ST-DBP-023 - 空のワークフロー
- ST-DBP-024 - 永続性アクティビティの確認
- ST-DBP-025 - 変数のシリアル化の前提条件
- ST-DBP-026 - [待機] アクティビティの使用
- ST-DBP-027 - Persistence のベスト プラクティス
- ST-DBP-028 - 引数のシリアル化の前提条件
- ST-USG-005 - ハードコードされたアクティビティ引数
- ST-USG-009 - 未使用の変数
- ST-USG-010 - 未使用の依存関係
- ST-USG-014 - パッケージの制限
- ST-USG-017 - Invalid parameter modifier
- ST-USG-020 - 最小ログ メッセージ
- ST-USG-024 - 未使用で保存されたままの値
- ST-USG-025 - 保存した値の誤用
- ST-USG-026 - アクティビティの制限
- ST-USG-027 - 必要なパッケージ
- ST-USG-028 - ファイル テンプレートの呼び出しの制限
- ST-USG-027 - 必須のタグ
- ST-USG-034 - Automation Hub URL
- 変数
- 引数
- インポートされた名前空間
- コード化されたオートメーション
- トリガーベースの有人オートメーション
- レコーディング
- UI 要素
- セレクター
- オブジェクト リポジトリ
- データ スクレイピング
- 画像とテキストの自動化
- Citrix テクノロジの自動化
- RDP の自動化
- VMware Horizon の自動化
- Salesforce の操作の自動化
- SAP のオートメーション
- macOS の UI Automation
- ScreenScrapeJavaSupport ツール
- Webdriver プロトコル
- 拡張機能
- Test Suite - Studio
- トラブルシューティング
Studio ガイド
概要
トリガー ベースの有人オートメーションには、以下を含めることができます。
- フォーム – フォーム ビルダーを使用して作成し、Form.Activities パッケージを使用して処理されます。
- 吹き出し – フォーム ビルダーを使用して作成され、Callout.Activities パッケージを使用して表示されます。
- トリガー – System.Activities パッケージと UIAutomation.Activities パッケージを使用します。
- グローバル変数 – データ マネージャーから作成します。
フォームと吹き出しは、有人オートメーションの中心となる機能です。トリガーを使用して実行することで、複雑なシナリオを構築できます。このようなシナリオでは、同時に複数のイベントを発生させる必要があります。さらに、グローバル変数の値に基づいてアクションをトリガーすることもでき、対応できる有人シナリオがさらに広がります。
下図は、フォーム、フォーム イベント トリガー、アプリケーション イベント トリガーを使用して構築されたプロセスを示しています。同様のプロセスを、ユーザー イベント トリガーと吹き出しに基づいて構築することもできます。
トリガー ベースの有人オートメーションを設計および実行するには、以下の手順を実行します。
- 次のアクティビティ パッケージをインストールします。
- Form.Activities バージョン 23.4
- System.Activities 23.4
- UIAutomation.Activities 23.4
- Callout.Activities 23.4
- フォーム ファイルの作成時に「Couldn't find a compatible Webview2 Runtime installation to host WebViews (WebView をホストできる WebView2 ランタイム インストールが見つかりませんでした。)」というエラーが発生する場合は、Microsoft Edge WebView2 をインストールします。
有人オートメーションにおけるフォームの目的は、ユーザーまたはアプリケーションによる入力を収集して処理することです。現在のフォーム機能では、以下を行うことができます。
- プロジェクトの内部で フォーム (uiform ファイル) を使用して、アクティビティの外部でフォームを作成する。後から、フォームを使用するアクティビティから独立してフォームの構築や編集を行うことができます。これにより、フォームを構築するプロセスを分離した上で、そのフォームを同じオートメーションで使用できます。
- カスタム HTML ファイルを使用してフォームを作成する。HTML フォームは、uiform ファイルと同様に使用できます。
- [フォームを表示] アクティビティを使用して、同時に複数のフォームを表示する。複数の [フォームを表示] アクティビティを追加し、[インスタンス名] フィールドで各アクティビティに一意の名前を指定します。[インスタンス名] プロパティは、Form.Activities パッケージのほとんどのアクティビティで利用でき、以下の目的に使用できます。
- 表示する各フォームに一意のインスタンス名を指定して、同じフォームの複数のインスタンスに対してアクションを表示または実行する。
- [インスタンス名] フィールドを空のままにして、すべてのインスタンスに対してアクションを表示または実行する。
- フォーム イベントに基づいて開始するトリガーを設定する。このようなイベントでは、フォームを閉じるイベントや、特定のフォーム コンポーネントが変化するイベントを表すことができます。このためには、[フォーム イベント トリガー] アクティビティを使用できます。
- フォームを表示するだけにするのか、それとも残りのワークフローの実行中にフォームを表示するのかを選択する。このためには、[ワークフローの実行を続行] プロパティを有効化または無効化します。
- [フォームの値を設定] アクティビティと [フォームの値を取得] アクティビティを使用して、実行時にフォームの値を編集および取得する。
- [フォームのプロパティを変更] アクティビティを使用して、実行時にフォームのプロパティを変更する。
- [フォームのスクリプトを実行] アクティビティを使用して、カスタム JavaScript をフォームに挿入する。
有人オートメーションにおける吹き出しの役割は、ユーザーをアプリケーション、Web サイト、製品、さらにはフォーム内の特定の UI 要素に誘導することです。また、吹き出しを使用してアプリのカスタム検証を作成したり、フィールドに事前に入力したり、複数のオートメーションをユーザーの入力に基づいてトリガーしたりすることもできます。
吹き出し機能では、以下を行うことができます。
- フォーム (uiform) ファイルを使用して吹き出しを作成し、フォーム ビルダーを使用してデザインする。
- [吹き出しを表示] アクティビティを使用して、吹き出しを表示する場所の横にある UI 要素を指定する。
- 吹き出し内の要素に値を渡す。
吹き出し専用の Callout.Activities パッケージがありますが、吹き出しは通常のフォームと同じように uiform ファイルであるため、Form.Activities パッケージを使用して吹き出しを処理することもできます。つまり、Form.Activities パッケージを使用する場合は、通常のフォームを操作するのと同じ方法で吹き出しを操作できます。
- アプリケーション イベントやユーザー イベントに基づいてワークフローを開始する。さらに、スケジュール モードを使用して、トリガーの起動時にアクションを実行する方法を指定できます。
- Sequential - アクションは 1 つずつ順番に実行されます。
- Concurrent - アクションの実行が重なる場合があります。
- OneTime - 1 つのアクションを実行し、監視を終了します。
- SequentialCollapse - 現在のイベントの実行が完了するまで、今後発生するすべてのイベント (最新のイベントを除く) を無視します。
- 順次 (drop) - 前のイベントの実行を停止し、次のイベントを開始します。
アクティビティ 説明 フォーム イベント トリガー フォーム内で発生するイベントに基づいてワークフローをトリガーする。 アプリケーション イベント トリガー 任意の種類の要素 (トップレベル ウィンドウやその他の指定した UI 要素) のネイティブ イベントに基づいてトリガーを設定する。 トリガーを繰り返し このアクティビティでは、TimeSpan を入力引数として設定できます。この時間が経過すると、トリガーが実行され、設定に基づいてトリガーを繰り返すことができます。 キー押下イベント トリガー 指定した UI 要素に対するキー押下のイベント トリガーを設定します。 クリック イベント トリガー 指定した UI 要素にクリック イベント トリガーを設定します。 ホットキー トリガー 指定したシステムワイドのキー イベントを監視します。 マウス トリガー* 指定したマウスとキーの組み合わせのシステムワイドのイベントを監視します。 画像クリック トリガー* ターゲットの UI 要素によって定義された画像に対してのマウス入力を監視します。 システム トリガー* 指定したシステムワイドのキーおよび/またはマウス イベントを監視します。 SAP セッション属性変更トリガー* 指定した SAP セッションの属性の変更を監視します。 * - 自身のアクティビティで使用することも、[トリガー スコープ] アクティビティ内で使用することもできます。
- 一度だけ、順番に、または同時に発生する可能性のある複数の有人シナリオを自動化する。このためには、以下のアクティビティを使用します。
アクティビティ 説明 ローカル トリガーを実行 ユーザーのマシン上のイベントをリッスンするすべてのローカル トリガーを初期化して開始します。 ローカル トリガーを停止 ローカル トリガーの実行を終了します。実行すると、イベントによってトリガーされたワークフローを含めて、実行中のすべてのアクションがキャンセルされます。[ローカル トリガーを停止] を実行すると、イベントによってトリガーされる実行中のワークフローはキャンセルされますが、メイン ワークフロー内のアクティビティは通常どおり続行されます。 ローカル トリガーを無効化 [ローカル トリガーを実行] アクティビティで開始された 1 つ以上のアクティブなローカル トリガーを無効化します。 ローカル トリガーを有効化 [ローカル トリガーを実行] アクティビティで開始された 1 つ以上のアクティブなローカル トリガーを有効化します。 - データ マネージャーで作成したグローバル変数の動作に基づいてワークフローを開始する。このためには、以下のアクティビティを使用します。
アクティビティ 説明 グローバル変数変更トリガー グローバル変数の値が変化したときに、通知に登録している全ユーザーに通知をプッシュする。 グローバル変数の変更を通知 グローバル変数の値が変化したときに開始するトリガーです。
Triggereventargs
という別個の読み取り専用ワークフローが生成されます。このワークフローには複数の [トリガー スコープ] アクティビティが含まれ、これによってプロジェクト内のすべてのトリガーを並列実行します。
Triggereventargs
ワークフローを引数として [引数] パネルにキャプチャします。トリガー ワークフローごとに専用の Triggereventargs
引数があり、ここに各ワークフローの情報が保持されます。プロジェクトを実行すると、Triggereventargs
引数は最新の実行情報で更新されます。
Triggereventargs
引数は主に、各トリガー ワークフローに固有の次の情報を提供します。
- トリガーの種類
- トリガー名
- トリガーを起動するターゲット要素
- フォーム コンポーネント ([フォーム トリガー アクティビティ] の場合)
- フォーム インスタンス名 ([フォーム トリガー アクティビティ] の場合)
Triggereventargs
引数の情報にアクセスするには、トリガーの種類に基づいてさまざまなメソッドを適用できます。ユーザー イベント トリガーでは、次のメソッドを使用できます。
- TargetElement - 監視対象のターゲット要素の情報を取得します。
- Attributes - 監視対象のターゲット要素の属性を取得します。
- DisplayDpiScaleFactor - ターゲット要素のサイズをピクセル単位で指定します。
- ImageBase64 - ターゲット要素の画像を Base64 画像に変換します。
- Selector - ターゲット要素で使用されているセレクターの情報を取得します。
- トリガーの種類
- FormSourceId - トリガーが起動されたフォームの ID にアクセスします。
- インスタンス名 - トリガーが起動されたフォームのインスタンス名を取得します。
- トリガー ワークフローとは、トリガーによって開始されるワークフローです。プロジェクト全体のコンテキストでデバッグすることも、独立してデバッグすることもできます。
- トリガーが大量にあるためパフォーマンスに影響が出ると思われる場合は、[ローカル トリガーを有効化] および [ローカル トリガーを無効化] アクティビティを使用して、特定のトリガーを有効化または無効化できます。
- [ローカル トリガーを有効化] および [ローカル トリガーを無効化] アクティビティは、ユーザー イベントを監視するワークフローが複数あり、そのイベントを判断するために、ユーザーが到達したオートメーションのフェーズを使用するようなシナリオで便利です。
- たとえば、[ローカル トリガーを有効化] アクティビティを使用して、ユーザーが自身のユーザー名をフォーム内に入力した後にトリガーをアクティブ化できます。
- 一方、[ローカル トリガーを無効化] アクティビティを使用すると、たとえばユーザーが製品ガイド ツアー中に特定の手順に到達した後に、順次実行されるようにスケジュールされたトリガーを無効化できます。
有人オートメーションにおけるグローバル変数の目的は、ユーザー イベントやアプリケーション イベントに関する情報を記録して変数内に格納し、後でその変数を他のアクティビティの入力やトリガーとして使用できるようにすることです。これにより、データを複数のワークフロー間で簡単に共有できます。グローバル変数機能では、以下を行うことができます。
- [グローバル変数の変更を通知] アクティビティを使用して、グローバル変数の値が変化したときに通知する。
- [グローバル変数変更トリガー] アクティビティを使用して、グローバル変数の値が変化したときにワークフローまたはアクティビティをトリガーする。