クローン機能がSitecoreソリューション全体で幅広く使用されている場合、クローンされたアイテムの変更の自動的な承認が必要なことがあります。
たとえばこの機能は、アイテムがワークフロー内にある場合に役立つことがあります。具体的に言うと、一部の状況では、元のアイテムの新しいアイテム バージョンが作成されるたびに、クローンされたアイテムの変更を承認するということが、無駄なアクションであると見なされる場合があります。そのような場合には、クローンされたアイテムを自動的に更新させることができます。
この記事では、クローンされたアイテムの変更を自動的に承認する挙動を実装するためのガイダンスを提供します。
クローンされたアイテムの変更を自動的に承認するには、以下の手順を実行してください:
public override void AddNotification(Notification notification)
{
if (this.ShouldAutomaticallyAcceptChanges(notification))
{
try
{
notification.Accept(ItemManager.GetItem(notification.Uri.ItemID, notification.Uri.Language, notification.Uri.Version, Database.GetDatabase(notification.Uri.DatabaseName)));
}
catch (NullReferenceException ex)
{ }
}
else
{
base.AddNotification(notification);
}
}
private bool ShouldAutomaticallyAcceptChanges(Notification notification)
{
//設定値に基づいて通知を承認する
return Settings.GetBoolSetting("Cloning.AcceptChangesAutomatically", false);
//特定のタイプの通知を承認する
//返却するnotificationはVersionAddedNotification
}
<NotificationProvider type="[通知プロバイダー クラスへの完全修飾パス], [クラスを含むアセンブリ]"> <param connectionStringName="$(id)"> </param> <param desc="databaseName">$(id)</param> </NotificationProvider>
備考: