- リリース ノート
- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- ファイルの比較
- オートメーションのベスト プラクティス
- ソース管理との連携
- デバッグ
- 診断ツール
- ワークフロー アナライザー
- 変数
- 引数
- インポートされた名前空間
- コード化されたオートメーション
- トリガーベースの有人オートメーション
- レコーディング
- UI 要素
- 制御フロー
- セレクター
- オブジェクト リポジトリ
- データ スクレイピング
- 画像とテキストの自動化
- Citrix テクノロジの自動化
- RDP の自動化
- Salesforce の操作の自動化
- SAP のオートメーション
- VMware Horizon の自動化
- ログ
- ScreenScrapeJavaSupport ツール
- Webdriver プロトコル
- Test Suite - Studio
- 拡張機能
- トラブルシューティング
コード化されたワークフロー
- ワークフローでは、視覚的なデザイン インターフェイスを使用できます。
- コード化されたワークフローでは、コードベースのインターフェイスを使用できます。
さらに、コード化されたワークフローをローコードのアクティビティやワークフローと統合し、ハイブリッド オートメーション アプローチを使用することもできます。これにより、コードベースのオートメーションのメリットとローコード コンポーネントの視覚的なデザインを組み合わせて利用することができます。
コード化されたオートメーションは、名前空間、ヘルパー クラス、およびエントリ ポイントのメソッドを使用した構造化されたデザインを特徴とします。コード化されたオートメーションのフレームワークを使用すると、C# プログラミング言語を使用してオートメーションを記述できます。
コード化されたオートメーションの詳細な構造は、以下のセクションに記載されています。
コード化されたオートメーションを作成すると、Studio プロジェクトの名前を使用して名前空間が自動的に生成されます。たとえば、Studio プロジェクトの名前が「My project」である場合、コード化されたすべてのオートメーションの名前空間は「Myproject」になります。
また、Studio プロジェクトのフォルダー内にコード化されたオートメーションを作成した場合、名前空間はプロジェクトの名前とフォルダーの名前の組み合わせになります。たとえば、Studio プロジェクトの名前が「My project」でフォルダーの名前が「place」である場合、名前空間は「Myproject.place」になります。
CodedWorkflow
部分クラスを使用します。このクラスは、プロジェクトにインストールされているアクティビティ パッケージに基づいて、サービスに必要なインターフェイス (アクティビティ パッケージと同じ) へのアクセス権をオートメーションに付与します。
CodedWorkflow
を継承し、CodedAutomationExample : CodedWorkflow
型のリレーションシップを作成します。つまり、クラス CodedAutomationExample
は、クラス CodedWorkflow
から属性、メソッド、および機能を継承します。これにより、コード化されたオートメーションの基盤となるクラス CodedWorkflow
で定義されている機能にアクセスして利用できるため、オートメーションの動作が構築・カスタマイズしやすくなります。
CodedWorkflow
クラスは部分クラスとして宣言され、コード ソース ファイルで同じ部分クラス CodedWorkflow
を定義することで機能を拡張できます。これにより、新しいフィールドやメソッドを追加して、コード化されたオートメーションの動作をさらにカスタマイズできます。この方法を使用すると、コード化されたテスト ケースのためのBefore インターフェイスと After インターフェイスを実装できます。
CodedWorkflow
部分クラスは CodedWorkflowBase
クラスを継承します。
CodedWorkflowBase
クラスは、コード化されたオートメーションが継承する組み込み機能を保持します。このクラスには、ワークフロー インスタンスの管理、ランタイム アクセス、サービス コンテナーの処理、および環境コンテキストの構成を行うためのメソッドと特定のプロパティが含まれています。CodedWorkflowBase
クラスには、ユーザー自身がカスタマイズできるログ用メソッドも別途用意されています。
CodedWorkflowBase
クラスを表示します。
CodedWorkflowBase
メソッドの説明を確認してください。
メソッド | 説明 |
---|---|
serviceContainer(ICodedWorkflowServiceContainer) | 現在のコード化されたワークフローに固有の依存関係インジェクション コンテナーにアクセスできるようにします。このコンテナーは、サービス コンテナーと呼ばれ、コンテナー内に登録されているサービスのインスタンスを取得できるようにします。 |
GetRunningJobInformation() | コード化されたワークフローのコンテキスト内で現在実行中のジョブに関する情報を取得します。このメソッドは、ジョブのステータス、進行状況、パラメーター、およびタイムスタンプに関する情報を保持する executorRuntime オブジェクトの RunningJobInformation プロパティにアクセスします。
|
Log(string message, LogLevel level = LogLevel.Info, IDictionary<string, object> additionalLogFields = null) | 指定した属性を持つログ メッセージにログ フィールドを追加します。 |
RunWorkflow(string
workflowFilePath, IDictionary<string, object> inputArguments = null, TimeSpan? timeout = null, bool isolated = false,
InvokeTargetSession targetSession = InvokeTargetSession.Current) | 特定のワークフロー ランタイムのコンテキスト内でワークフローを実行するための構造を提供します。パラメーターの設定、潜在的な分離の処理、ワークフローの実行開始が可能です。返されるタスクは、実行されたワークフローの結果 (出力および入力/出力引数を含む) を示します。 |
RunWorkflowAsync(string
workflowFilePath, IDictionary<string, object> inputArguments = null, TimeSpan? timeout = null, bool isolated = false,
InvokeTargetSession targetSession = InvokeTargetSession.Current) | 特定のワークフロー ランタイムのコンテキスト内でワークフローを非同期的に実行するための構造を提供します。パラメーターの設定、潜在的な分離の処理、ワークフローの実行開始が可能です。返されるタスクは、実行されたワークフローの結果 (出力および入力/出力引数を含む) を示します。 |
DelayAsync(TimeSpan time) と DelayAsync(int delayMs) | 指定された時間、非同期的に実行を中断します。 |
Delay(TimeSpan time) と Delay(int delayMs) | 指定した期間、実行を中断します。 |
HttpClient BuildClient (string scope = "Orchestrator", bool force = true) | 指定されたスコープとアクセス トークンを使用して HTTP クライアントを構築します。 |
RegisterServices (ICodedWorkflowsServiceLocator serviceLocator) | コード化されたワークフローのサービス ロケーターにサービス (アクティビティ パッケージ) を登録します。これは、カスタム サービスを依存関係インジェクション コンテナーに挿入するときにオーバーライドできます。カスタム サービス (コード化されたアクティビティ パッケージ) の作成および使用方法については、こちらをご覧ください。 |
Execute()
であり、Workflow
または TestCase
のいずれかに属性付けされています。メソッドの名前は、Workflow
または TestCase
のいずれかに属性付けする限り変更できます。
Coded Workflow
クラスを継承する 1 つの Execute()
メソッド ([TestCase]
または [Workflow]
) のみです。
このメソッドでは、入力引数または出力引数を追加できます。これらの引数は、ローコード オートメーションの入力、出力、または入力/出力引数に相当します。コード化されたオートメーションでの引数の使用方法については、「入力引数と出力引数を使用する」のチュートリアルをご覧ください。
Execute()
メソッドによりエントリ ポイントとして簡単に識別されるようになります。