通知を受け取る

UiPath Studio

UiPath Studio ガイド

カスタム ウィザードの作成

オフィシャル フィード (https://packages.uipath.com/activities) から提供される UiPath.Activities.API パッケージを使用して、Studio のリボンに独自のカスタム ウィザードを追加できます。

📘

重要

カスタム プロジェクトでは開発依存関係として UiPath.Activities.API パッケージを使用する必要があります。開発依存関係についてご覧ください。

API の使用法

アクティビティが Studio に読み込まれると、IWorkflowDesignApi は次のようないくつかの方法で参照できます。

  1. IRegisterMetadata の実装に public void Initialize(object api) メソッドを追加します。このメソッドはアクティビティの読み込みプロセスで呼び出され、読み込まれたアクティビティは後で使用するため api パラメーターを保存します。
  2. IRegisterWorkflowDesignApi を実装するクラスを定義します。IRegisterWorkflowDesignApi.Initialize(IWorkflowDesignApi api) メソッドはアクティビティの読み込みプロセスで呼び出され、読み込まれたアクティビティは後で使用するため api パラメーターを保存します。このメソッドを使用する場合、Studio の 2019.10 以降のバージョンでしかパッケージを読み込むことができません。
  3. api オブジェクトへの参照を、context.Services.GetService<IWorkflowDesignApi>() を呼び出すことで取得します。ここで、context は、通常アクティビティの設計者がアクセス可能な System.Activities.Presentation.EditingContext です。

フィーチャー キーのチェック

必要な機能キーがサポートされているかどうかを調べるために、DesignFeatureKeys に対して予備チェックを実行することが重要です。
2019.10.1 時点で Studio がサポートしている機能キーは以下のとおりです。これは、将来のバージョンで変更される可能性があります。

namespace UiPath.Studio.Activities.Api
{
    /// <summary>
    /// Supported Studio feature keys.
    /// </summary>
    public static class DesignFeatureKeys
    {
        /// <summary>
        /// Studio 19.8
        /// </summary>
        public const string Settings = nameof(Settings) + "V1";

        /// <summary>
        /// Studio 19.8
        /// </summary>
        public const string Theme = nameof(Theme) + "V1";

        /// <summary>
        /// Studio 19.8
        /// </summary>
        public const string Wizards = nameof(Wizards) + "V1";

        /// <summary>
        /// Studio 19.8
        /// </summary>
        public const string AccessProvider = nameof(AccessProvider) + "V1";

        /// <summary>
        /// Studio 19.10
        /// </summary>
        public const string Telemetry = nameof(Telemetry) + "V1";
    }
}

フィーチャーをチェックするには、IWorkflowDesignApi の参照に対して HasFeature メソッドを呼び出す必要があります。

IWorkflowDesignApi studioActivitiesApi;
            // How to check for a feature.
            if (studioActivitiesApi.HasFeature(UiPath.Studio.Activities.Api.DesignFeatureKeys.Settings))
            {
                // Call Method or lambda that is using specific feature
                // This ensures that the code is JIT compiled only after the feature check
           }

カスタム ウィザードの作成

以下のサンプルは、クリックすると空のシーケンスを作成するウィザードの定義を示したものです。

using System.Activities;
using System.Windows;
using System.Windows.Input;
using UiPath.Studio.Activities.Api;
using UiPath.Studio.Activities.Api.Wizards;

namespace MyCustomActivityPack
{
    public static class WizardCreator
    {
        public static void CreateWizards(IWorkflowDesignApi workflowDesignApi)
        {
            CreateDemoWizard(workflowDesignApi);
        }

        private static void CreateDemoWizard(IWorkflowDesignApi workflowDesignApi)
        {
            var wizardApi = workflowDesignApi.Wizards;
            var wizardDefinition = new WizardDefinition()
            {
                // You can add other definitions here to create a dropdown.
                //ChildrenDefinitions.Add()
                Wizard = new WizardBase()
                {
                    RunWizard = RunWizard
                },
                DisplayName = "DemoWizardDisplayName",
                Shortcut = new KeyGesture(Key.F9, ModifierKeys.Control | ModifierKeys.Shift),
                IconUri = "Icons/RecordIcon",
                Tooltip = "DemoWizardTooltip"
            };

            var collection = new WizardCollection(); //Use a collection to group all of your wizards.
            collection.WizardDefinitions.Add(wizardDefinition);
            wizardApi.Register(collection);
        }

        private static Activity RunWizard()
        {
            if(MessageBox.Show("Do you want a sequence?", "This is a wizard window", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                return new System.Activities.Statements.Sequence()
                {
                    DisplayName = "The wizard generated this sequence"
                };
            }

            return null;
        }
    }
}

RunWizard を呼び出す前に、MinimizeBeforeRun プロパティにより Studio を最小化し、RunWizard から戻った時点で復元します。

RunWizardAsync プロパティはウィザードを非同期で実行するために使用してください。

Studio へのプロジェクトの追加

Studio の リボンにウィザードを表示させるには、カスタム アクティビティを NuGet パッケージにパブリッシュして、このパッケージを Studio バージョン 2019.10.1 以降で定義したフィードで利用できるようにする必要があります。

NuGet パッケージの作成

  1. NuGet Package Explorer を起動します。
  2. [Create a new package] (Ctrl + N) をクリックします。[Package metadata] と、[Package contents] を示す分割ウィンドウが表示されます。後者のセクションに、すべての依存関係を追加する必要があります。
  3. [Package contents] セクションを右クリックします。コンテキスト メニューが表示されます。
  4. [Add lib folder] をクリックします。新しい [lib] 項目が、[Package contents] セクションに作成されます。
  5. [lib] を右クリックして、[Add Existing File…] を選択します。
  6. プロジェクトの外部アセンブリ (.dll) を読み込みます。
  7. [Edit] > [Edit Metadata] をクリックします。[Package metadata] セクションが表示されます。
  8. プロジェクトの適切な説明をフィールドに入力します。
  9. [Id] フィールドに入力し、キーワード Activities が含まれていることを確認します。これにより、Studio の [パッケージを管理] ウィンドウにパッケージが表示されるようになります。
  10. [File] > [Save] をクリックします。このケースでは、.nupkg ファイルが作成されます。

📘

注:

アクティビティには、直感的なフォルダー構造を作成してください。Orchestrator で使用すると、カスタム アクティビティ内の空のフォルダーはすべて削除されます。

UiPath Studio への NuGet パッケージのインストール

.nupkg ファイルを作成したら、こちらの説明に従い、これを Studio のカスタム フィードに追加します。

[パッケージを管理] ウィンドウを開き、パッケージをインストールします。カスタム フィードが Studio で有効化されていることを確認します。

サンプル ウィザード

下記のリンクをクリックしてサンプルをダウンロードします。サンプルには、カスタム アクティビティ設定の作成例も含まれています。

サンプルをダウンロード

7 か月前に更新


カスタム ウィザードの作成


改善の提案は、API リファレンスのページでは制限されています

改善を提案できるのは Markdown の本文コンテンツのみであり、API 仕様に行うことはできません。