- リリース ノート
- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- 制御フロー
- ファイルの比較
- オートメーションのベスト プラクティス
- ソース管理との連携
- デバッグ
- ログ
- 診断ツール
- ワークフロー アナライザー
- ワークフロー アナライザーについて
- 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 - 引数のシリアル化の前提条件
- 変数
- 引数
- インポートされた名前空間
- コード化されたオートメーション
- トリガーベースの有人オートメーション
- レコーディング
- UI 要素
- セレクター
- オブジェクト リポジトリ
- データ スクレイピング
- 画像とテキストの自動化
- Citrix テクノロジの自動化
- RDP の自動化
- VMware Horizon の自動化
- Salesforce の操作の自動化
- SAP のオートメーション
- macOS の UI Automation
- ScreenScrapeJavaSupport ツール
- Webdriver プロトコル
- 拡張機能
- Test Suite - Studio
- トラブルシューティング
はじめに
コード化されたオートメーションを使用すると、ドラッグ アンド ドロップ アクティビティの代わりにコードを使用してオートメーションを作成できるため、複雑なプロジェクトでの共同作業が可能になります。コード化されたワークフローおよびテスト ケースでは、UiPath サービス (アクティビティ パッケージと同一)、API (アクティビティに類似)、外部 .NET NuGet パッケージ、およびカスタム C# クラスを UiPath Studio で使用できます。これにより、外部システム、データベース、API、その他のサービスとの統合が容易になります。
コード化されたワークフローは標準ワークフローと同じように動作します。つまり、[ワークフロー ファイルを呼び出し] アクティビティを使用して標準の UiPath ワークフローから呼び出すことも、その逆も可能です。
さらに、コードで定義された型 (列挙型など) は、標準の UiPath ワークフローの入力として使用できます。
コード化されたオートメーションには、以下の 3 種類があります。
- コード化されたワークフロー – コードを使用してワークフローを設計するために使用します。
- コード化されたテスト ケース – テスト ケースの設計に使用されます。
- コード ソース ファイル – 他の種類のコード化されたファイルで後から呼び出すことのできるコードを作成するために使用します。
UiPath.CodedWorkflows
パッケージがあらかじめインストールされています。パッケージには、CodedWorkflowBase
基本クラスと CodedWorkflow
部分クラスが付属しています。
パッケージは、次の場合に事前インストールされます。
- v23.10 以降の System.Activities、Testing.Activities、UIAutomation.Activities、またはコード化されたワークフローがサポートされているその他のアクティビティ パッケージを使用して、新しいプロジェクトを作成する場合
- プロジェクトで、コード化されたワークフロー、コード化されたテスト ケース、または コード ソース ファイルを新規作成する場合
指定したシナリオでコード化されたオートメーションを使用できない場合は、[パッケージを管理] メニューからパッケージをダウンロードします。
コード化されたオートメーションを使用するメリットをいくつか以下に示します。
- 生産性の向上 – コーディングやスクリプティングに精通している場合は、そのスキルを活かして生産性を向上させることができます。慣れ親しんだコーディング環境で作業することで、より効率的なオートメーションを開発できます。
- 複雑さの管理 – コード化されたオートメーションは、複雑なオートメーション シナリオを管理するための柔軟なソリューションを提供します。コードを使用して、カスタム ロジックの実装、例外の管理、および再利用可能な関数の作成が可能です。
- ハイブリッド オートメーション – コード化されたオートメーションは、ローコードのオートメーションと同様に使用できます。これにより、2 つのアプローチがシームレスに統合され、柔軟なオートメーション ソリューションを作成できるようになります。
- パフォーマンスの向上 – コード化されたオートメーションを使用すると、オートメーション ワークフローを最適化してパフォーマンスを向上させることができます。コードを使用することで、特定のアルゴリズムを実装してオートメーションの実行を高速化できます。
- 読みやすさ – コード化されたオートメーションを使用すると、構造化されたコードを作成できるため、コードが読みやすくなります。コードを整理して文書化すると、管理や他の共同作業者への共有がしやすくなります。
コード化されたオートメーションは、名前空間、ヘルパー クラス、およびエントリ ポイントのメソッドを使用した構造化されたデザインを特徴とします。コード化されたオートメーションのフレームワークを使用すると、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
クラスを表示します。
CodedWorkflowBase
メソッドの説明を確認してください。
メソッド | 説明 |
---|---|
ICodedWorkflowServices services 注:
Log メソッド、BuildClient メソッド、および RunWorkflow メソッドは、すぐに使用可能なスタンドアロンのメソッドとして使用するのではなく、services クラスとそれに対応するサービスを介して使用することをお勧めします。
| 次のような、コード化されたワークフローで利用可能なサービスへのアクセスを提供します。
|
serviceContainer(ICodedWorkflowServiceContainer) 注: これは
ICodedWorkflowServices services で置き換えられました。この構文を引き続き使用する場合は、新しい services.Container 構文を使用するように指示する警告が表示されます。
| 現在のコード化されたワークフローに固有の依存関係インジェクション コンテナーにアクセスできるようにします。このコンテナーは、サービス コンテナーと呼ばれ、コンテナー内に登録されているサービスのインスタンスを取得できるようにします。 |
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()
メソッドによりエントリ ポイントとして簡単に識別されるようになります。
プロジェクトの対応 OS
コード化されたオートメーションは、Windows プロジェクトとクロスプラットフォーム プロジェクトでのみ使用できます。
System.Activities
はローコード オートメーションのアクティビティ パッケージであるだけでなく、コード化されたオートメーションのサービスでもあります。アクティビティ パッケージ内のアクティビティと同様に、サービスにもコード化されたオートメーションの作成に使用できる API があります。
コード化されたオートメーション内で使用できるサービスは次のとおりです。
サービス | バージョン |
---|---|
System.Activities | 23.10 以降 |
UiAutomation.Activities | 23.10 以降 |
Testing.Activities | 23.10 以降 |
MobileAutomation.Activities | 23.12-preview 以降 |
Mail.Activities | 1.22.1 以降 |
Excel.Activities | 2.23.2-preview 以降 |
コード化されたオートメーションでアクティビティ パッケージを使用するには、次の手順を実行します。
- ローコードのオートメーションの場合と同様に、サービスと同一のアクティビティ パッケージをダウンロードします。それにより、コードで使用する API のコレクションが提供されます。
- サービス内の API を、サービス.API という形式で呼び出します。たとえば、GetAsset API を使用する場合は、
system.GetAsset
のように指定して呼び出します。 - API には、プロパティの代わりにパラメーターがあります。API を呼び出した後、かっこで囲んだ値を指定して、パラメーターを設定できます。たとえば、接続先の Orchestrator インスタンスに
Email Address
というアセットがある場合、このアセットの名前をString
として API に渡すことができます:system.GetAsset("Email Address")
。