Studio
2023.10
バナーの背景画像
Studio ガイド
最終更新日 2024年4月26日

コード化されたワークフロー

コード化されたワークフローはローコード ワークフローと同じですが、唯一の違いは、別々のインターフェイスを使用して構築することです。
  • ワークフローでは、視覚的なデザイン インターフェイスを使用できます。
  • コード化されたワークフローでは、コードベースのインターフェイスを使用できます。

さらに、コード化されたワークフローをローコードのアクティビティやワークフローと統合し、ハイブリッド オートメーション アプローチを使用することもできます。これにより、コードベースのオートメーションのメリットとローコード コンポーネントの視覚的なデザインを組み合わせて利用することができます。

構造

コード化されたオートメーションは、名前空間、ヘルパー クラス、およびエントリ ポイントのメソッドを使用した構造化されたデザインを特徴とします。コード化されたオートメーションのフレームワークを使用すると、C# プログラミング言語を使用してオートメーションを記述できます。

コード化されたオートメーションの詳細な構造は、以下のセクションに記載されています。

コード化されたオートメーションを作成すると、Studio プロジェクトの名前を使用して名前空間が自動的に生成されます。たとえば、Studio プロジェクトの名前が「My project」である場合、コード化されたすべてのオートメーションの名前空間は「Myproject」になります。

また、Studio プロジェクトのフォルダー内にコード化されたオートメーションを作成した場合、名前空間はプロジェクトの名前とフォルダーの名前の組み合わせになります。たとえば、Studio プロジェクトの名前が「My project」でフォルダーの名前が「place」である場合、名前空間は「Myproject.place」になります。

コード化されたワークフローコード化されたテスト ケースのオートメーションはどちらも、UiPath.CodedWorkflows パッケージの CodedWorkflow 部分クラスを使用します。このクラスは、プロジェクトにインストールされているアクティビティ パッケージに基づいて、サービスに必要なインターフェイス (アクティビティ パッケージと同じ) へのアクセス権をオートメーションに付与します。
注: UiPath.System.Activities 23.10 以降などの、コード化されたオートメーションをサポートするアクティビティ パッケージをインポートするときには、UiPath.CodedWorkflows パッケージが自動的に含まれます。

CodedWorkflow

コード化されたオートメーションは、部分クラス CodedWorkflow を継承し、CodedAutomationExample : CodedWorkflow 型のリレーションシップを作成します。つまり、クラス CodedAutomationExample は、クラス CodedWorkflow から属性、メソッド、および機能を継承します。これにより、コード化されたオートメーションの基盤となるクラス CodedWorkflow で定義されている機能にアクセスして利用できるため、オートメーションの動作が構築・カスタマイズしやすくなります。
CodedWorkflow クラスは部分クラスとして宣言され、コード ソース ファイルで同じ部分クラス CodedWorkflow を定義することで機能を拡張できます。これにより、新しいフィールドやメソッドを追加して、コード化されたオートメーションの動作をさらにカスタマイズできます。この方法を使用すると、コード化されたテスト ケースのためのBefore インターフェイスと After インターフェイスを実装できます。
さらに、CodedWorkflow 部分クラスは CodedWorkflowBase クラスを継承します。


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() メソッドによりエントリ ポイントとして簡単に識別されるようになります。


プロジェクトの対応 OS

コード化されたオートメーションは、Windows プロジェクトとクロスプラットフォーム プロジェクトでのみ使用できます。

  • 構造
  • CodedWorkflow
  • CodedWorkflowBase
  • プロジェクトの対応 OS

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.