アクティビティ・タイプ・クラスからのサービスへのアクセス

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

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

Servicesプロパティを使用すると、アクティビティから次のサービスにアクセスできます。

  • xConnectクライアントAPI via Collection

  • タクソノミーマネージャー Taxonomies

  • 定義マネージャー Definitions

  • 参照データサービスクライアントAPI via Reference

  • アクティビティ登録サービス ActivityEnrollmentOperations

  • ConditionEvaluationによる条件評価サービス(本サービスはIConditionを受け入れます)

次の例は、各サービスにアクセスする方法を示しています。

using Sitecore.Xdb.MarketingAutomation.Core.Activity;
using Sitecore.Xdb.MarketingAutomation.Core.Processing.Plan;
using Microsoft.Extensions.Logging;
using System;
using Sitecore.Marketing.Taxonomy;
using Sitecore.Marketing.Definitions.Outcomes.Model;
using System.Linq;

namespace Documentation.Examples
{
    public class DoNothingActivity : IActivity
    {
        public string NoReplyAddress { get; set; }

        public IActivityServices Services { get; set; }

        public DoNothingActivity()
        {
        }

        public ActivityResult Invoke(IContactProcessingContext context)
        {
            // Get outcome definition manager
            var outcomeDefinitionManager = Services.Definitions.GetDefinitionManager<IOutcomeDefinition>();

            // Get outcome group taxonomy manager
            var outcomeGroupTaxonomyManager = Services.Taxonomies.GetManager<OutcomeGroupTaxonomyManager>();

            // Search other contacts
            var contacts = Services.Collection.Contacts.Where(x => x.Identifiers.Any(f => f.Source == "twitter"));

            // Search other interactions
            var interactions = Services.Collection.Interactions.Where(x => x.StartDateTime < DateTime.UtcNow);

            // Use reference data service
            var definition = Services.Reference.EnsureDefinitionType("mytype");

            // Enroll contact in plan without custom values
            Services.ActivityEnrollmentOperations.EnrollInPlan(context.Contact.Id.Value, Guid.NewGuid(), null);

            return new SuccessMove();
        }
    }
}

また、独自のサービスを注入することも可能です。

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