## \---タイトル:「キャンペーンテンプレートをプログラム的に使う」slug:「campaign-templates-programmatically」 abstract:「キャンペーン作成プロセスを効率化するためにキャンペーンテンプレートを使う。」

# キャンペーンテンプレートをプログラム的に扱う

このトピックは、マーケティングオートメーションキャンペーンテンプレートをプログラム的に活用する方法を説明しています。

キャンペーンテンプレートはSitecore.Marketing.Automation.Definitions.AutomationCampaignTemplates.AutomationCampaignTemplateDefinitionManagerクラスによって管理されます。それらは以下のパスでマスターデータベースに保存されます: \*/sitecore/system/Marketing Control Panel/Marketing Automation Templates\*

## 自動化キャンペーンテンプレートマネージャーにアクセスする

AutomationCampaignTemplateDefinitionManagerはSitecore DIコンテナから入手可能です。

**コンストラクタ注入**

public MyClass(IAutomationCampaignTemplateDefinitionManager manager){}

**サービスロケーター**

IAutomationCampaignTemplateDefinitionManager manager = ServiceLocator.ServiceProvider.GetRequiredService<IAutomationCampaignTemplateDefinitionManager>();

## 自動化キャンペーンテンプレートを定義する

自動化キャンペーンテンプレートと自動化キャンペーンは同じ構造を共有し、IAutomationPlanDefinitionを実装します。詳細は「 [自動化計画](https://doc.sitecore.com/xp/ja/developers/105/sitecore-experience-platform/automation-plans.html)」をご覧ください。

## 自動化キャンペーンテンプレートを保存してください

AutomationPlanDefinition campaignTemplate = CreateTemplate();
IAutomationCampaignTemplateDefinitionManager manager = ServiceLocator.ServiceProvider.GetRequiredService<IAutomationCampaignTemplateDefinitionManager>();
manager.SaveAsync(campaignTemplate);

## 既存の自動化キャンペーンテンプレートを更新する

AutomationPlanDefinition campaignTemplate = CreateTemplate();
IAutomationCampaignTemplateDefinitionManager manager = ServiceLocator.ServiceProvider.GetRequiredService<IAutomationCampaignTemplateDefinitionManager>();
manager.SaveAsync(campaignTemplate);
campaignTemplate.Name = "Updated Name";
manager.SaveAsync(campaignTemplate);

## 自動化キャンペーンテンプレートを削除してください

manager.Delete(campaignTemplateId);

## 自動化キャンペーンテンプレートを取得する

// Get by ID and culture. Will get the latest active version
IAutomationPlanDefinition automationCampaingTemplate = manager.Get(automationCampaingTemplateId, new CultureInfo("da"));

// Get by ID and culture. Will get the latest version, including if the version is inactive
IAutomationPlanDefinition automationCampaingTemplate = manager.Get(automationCampaingTemplateId, new CultureInfo("da"), true);

// Get a specific version by ID, culture and version number
IAutomationPlanDefinition automationCampaingTemplate = manager.Get(automationCampaingTemplateId, new CultureInfo("da"), 3);

## エイリアスを使ってオートメーションキャンペーンテンプレートを取得する

CultureInfo culture = new CultureInfo("fr-fr");
var automatoinCampaignTemplate = definitionManager.GetByAlias("My alias", culture);

## すべての自動化キャンペーンテンプレートを取得する

// Get All with defaults which will be first page, page size 20, latest active versions only
ResultSet<DefinitionResult<IAutomationPlanDefinition>> campaignTemplates = manager.GetAll(new CultureInfo("da"), new RetrievalParameters<IAutomationPlanDefinition, string>());

// Get page 2
ResultSet<DefinitionResult<IAutomationPlanDefinition>> campaignTemplates = manager.GetAll(new CultureInfo("da"), new RetrievalParameters<IAutomationPlanDefinition, string>(pageNumber: 2));

// Include inactive versions
ResultSet<DefinitionResult<IAutomationPlanDefinition>> campaignTemplates = manager.GetAll(new CultureInfo("da"), new RetrievalParameters<IAutomationPlanDefinition, string>(), true);

> !注自動化キャンペーンテンプレートをプログラム的に有効化することはできません。AutomationCampaignTemplateDefinitionManagerの*ActivateAsync*メソッドが呼び出されるか、*SaveAsync*が呼び出されてアクティベートパラメータがtrueに設定されている場合、NotSupportedExceptionが発生します。