定義マネージャー

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

定義マネージャーは、マーケティング アクティビティの取得、作成、検索、アクティブ化、および削除に使用されます。

Sitecoreのコンテキストで定義マネージャーを取得する

次の例は、SitecoreコンテキストでIGoalDefinitionManagerを取得する方法を示しています。

using Sitecore.DependencyInjection;
using Sitecore.Marketing.Definitions;
using Sitecore.Marketing.Definitions.Goals;


namespace Documentation
{
    public class DefineAGoal
    {
        public void Example()
        {
            IDefinitionManager<IGoalDefinition> goalDefinitionManager = ServiceLocator.ServiceProvider.GetDefinitionManagerFactory().GetDefinitionManager<Sitecore.Marketing.Definitions.Goals.IGoalDefinition>();
        }
    }
}

Sitecore以外のコンテキストで定義マネージャーを構築する

次の例は、Reference Data Serviceをリポジトリとして使用して、Sitecore以外のコンテキストでAutomationPlanDefinitionManagerを構築する方法を示しています。

メモ

参照データ サービスのエンドポイントを指すアプリケーションのConnectionStrings.configファイルにxdb.referencedata.client接続文字列を追加する必要があります (例: https://refdata/

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Sitecore.Marketing.Definitions;
using Sitecore.Marketing.Definitions.AutomationPlans;
using Sitecore.Marketing.Definitions.AutomationPlans.Model;
using Sitecore.Marketing.Definitions.Config;
using Sitecore.Marketing.ObservableFeed.Activation;
using Sitecore.Marketing.ObservableFeed.DeleteDefinition;
using Sitecore.Marketing.Operations.Xdb.ReferenceData.Model.Definitions.AutomationPlans;
using Sitecore.Marketing.Operations.Xdb.ReferenceData.Service.Definitions.AutomationPlans;
using Sitecore.Marketing.Search;
using Sitecore.Marketing.Taxonomy;
using Sitecore.Xdb.ReferenceData.Client;
using Sitecore.Xdb.ReferenceData.Core.Converter;
using Sitecore.Xdb.ReferenceData.Core.Results;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sitecore.Marketing.Core.ObservableFeed;
using Sitecore.Xdb.Common.Web;

namespace Documentation
{
    public class DefinitionManagerExternal
    {
        public static AutomationPlanDefinitionManager CreatePlanDefinitionManager()
        {
            var loggerFactory = new LoggerFactory();

            // Replace value of FindValue= with certificate thumbprint for your reference data service
            CertificateWebRequestHandlerModifierOptions options =
            CertificateWebRequestHandlerModifierOptions.Parse("StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint;FindValue=15E6693B0AECB63DE57D991EC363CA462DC52432");

            // Optional timeout modifier
            IWebRequestHandlerModifier[] handlers = { new CertificateWebRequestHandlerModifier(options) };


            var refDataClient = new ReferenceDataHttpClient(
                new DefinitionEnvelopeJsonConverter(),
                handlers,
                new Logger<ReferenceDataHttpClient>(loggerFactory)
            );

            var repo = new PlanDefinitionReferenceDataRepository(
                refDataClient,
                new PlanDataConverter(),
                new GuidMonikerConverter(),
                new DefinitionOperationResultDiagnostics()
            );

            var services = new ServiceCollection();

            services.AddSingleton<ITaxonomyManagerProvider, TaxonomyManagerProvider>();
            services.AddSingleton<ITaxonomyClassificationResolver<IAutomationPlanDefinition>, DefaultClassificationResolver<IAutomationPlanDefinition>>();
            services.AddSingleton<FieldTaxonomyMap<IAutomationPlanDefinition>>();

            IServiceProvider serviceProvider = services.BuildServiceProvider();

            var classificationResolver = serviceProvider.GetRequiredService<ITaxonomyClassificationResolver<IAutomationPlanDefinition>>();

            return new AutomationPlanDefinitionManager(
                repo,
                classificationResolver,
                new NotSupportedSearchProvider<IAutomationPlanDefinition>(),
                new ActivationRetryingObservableFeed<IAutomationPlanDefinition>(new Logger<ActivationRetryingObservableFeed<IAutomationPlanDefinition>>(loggerFactory)),
                new DummyDeleteDefinitionObservableFeed(),
                new DefaultDefinitionManagerSettings()
            );
        }

        class DummyDeleteDefinitionObservableFeed : IDeleteDefinitionObservableFeed<IAutomationPlanDefinition>
        {
            public void NotifyObservers(DeleteDefinitionArgs<IAutomationPlanDefinition> value)
            {
            }

            IList<Sitecore.Marketing.Core.ObservableFeed.IObserver<DeleteDefinitionArgs<IAutomationPlanDefinition>>> IObservableFeed<DeleteDefinitionArgs<IAutomationPlanDefinition>>.Observers
            {
                get;
            }
        }

    }
}
この記事を改善するための提案がある場合は、 お知らせください!