Activity Type Descriptor Locator API

Activity Type Descriptor Locator API (Descriptor Locator API) を使用して、ID または分類によって記述子を取得できます。Sitecore のサービス ロケーターを使用して、Descriptor Locator API のインスタンスを取得します。

using Sitecore.DependencyInjection;
using Sitecore.Xdb.Locators.AutomationPlans;
using Microsoft.Extensions.DependencyInjection;

namespace Documentation
{
    public class ActivityLocatorService
    {
        public void Example()
        {
            var locatorService = ServiceLocator.ServiceProvider.GetService<IActivityDescriptorLocator>();
        }
    }
}

注記

Activity Type Descriptor Locators API は、Marketing Operations API とは別のものです。アクティビティ タイプ記述子は、実装されたタイプの登録を表し、開発者によって作成されます。Marketing Operations API によって管理される定義は、マーケターによって作成されます。

.GetDescriptor() メソッドを使用して、ID で記述子を取得します。ID は、Sitecore の記述子アイテムの ID に対応します。

using Sitecore.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using System;
using Sitecore.Xdb.MarketingAutomation.Locators.AutomationPlans;
using Sitecore.Xdb.MarketingAutomation.Locators.AutomationPlans.Model;

namespace Documentation
{
    public class ActivityLocatorCreate
    {
        public void Example()
        {
            var locatorService = ServiceLocator.ServiceProvider.GetService<IActivityDescriptorLocator>();

            var locatorId = Guid.Parse("{743489A2-8BD0-49ED-B284-5534AC59685A}"); // Item ID

            IActivityDescriptor descriptor = locatorService.GetDescriptor(locatorId, new System.Globalization.CultureInfo("dk"));
        }
    }
}

.GetAllDescriptors() メソッドを使用して、すべてのアクティビティ タイプを取得します。結果はページネーションを行うことができます。

using Sitecore.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using System;
using Sitecore.Marketing.Core;
using Sitecore.Xdb.MarketingAutomation.Locators.AutomationPlans.Model;
using Sitecore.Xdb.MarketingAutomation.Locators.AutomationPlans;

namespace Documentation
{
    public class ActivityLocatorGetAll
    {
        public void Example()
        {
            var locatorService = ServiceLocator.ServiceProvider.GetService<IActivityDescriptorLocator>();

            // Get first 200 descriptors with 'DK' culture
            ResultSet<IActivityDescriptor> descriptors = locatorService.GetAllDescriptors(new System.Globalization.CultureInfo("dk"), 1, 200);

            // Cycle through results
            var firstPage = descriptors.DataPage;
            var total = descriptors.Total;

            foreach (var descriptor in firstPage)
            {
                var nameOfDescriptor = descriptor.Name;
            }

        }
    }
}

.GetDescriptorsByClassification() メソッドを使用して、特定のタクソノミー値が割り当てられたすべてのアクティビティ タイプ記述子を取得します。

using Sitecore.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using System;
using Sitecore.Marketing.Core;
using Sitecore.Xdb.MarketingAutomation.Locators.AutomationPlans;

namespace Documentation
{
    public class ActivityLocatorGetByClassification
    {
        public void Example()
        {
            var locatorService = ServiceLocator.ServiceProvider.GetService<IActivityDescriptorLocator>();

            var taxonomyId = Guid.Parse("{340062A7-9F50-4CE1-8A53-DA3F6A23B73A}"); // Activity functional type taxonomy
            var taxonomyValue = Guid.Parse("{144EEBB0-1CD1-4DEA-95A7-04D24D16FDC0}"); // Marketing action value

            var descriptors = locatorService.GetDescriptorsByClassification(new System.Globalization.CultureInfo("dk"), taxonomyId, taxonomyValue, 1, 20);

            var pageData = descriptors.DataPage;

            foreach (var descriptor in pageData)
            {
                var name = descriptor.Name;
            }
        }
    }
    }

重要

パフォーマンス上の理由から、ルート タクソノミー Guid だけでなく、値 Guid を指定する必要があります。