自動生成されたフィールドの重複を避けるために、アイテムが複製された後、アイテムの 2 つのフィールドを空白にするパイプライン プロセッサを作成しています。
- アイテム
a
はアイテムに複製されますb
- 項目
b
の 1 つ以上のフィールドの値が削除されています
このためのクラスがありますが、パラメータa
を介してのみ元のアイテムにアクセスできます。ClientPipelineArgs
id
ID
新しく複製されたアイテムをキャプチャする方法はありますb
か?
以下のコード:
namespace XXXX.SC.Pipeline
{
public class DuplicateItem
{
public void StripShortIDs(ClientPipelineArgs args)
{
Item item = Sitecore.Configuration.Factory.GetDatabase(args.Parameters["database"]).GetItem(args.Parameters["id"]);
if (!String.IsNullOrWhiteSpace(item["Short ID"]))
using (new EditContext(item))
{
item["Short ID"] = String.Empty;
}
}
public void StripStatus(ClientPipelineArgs args)
{
Item item = Sitecore.Configuration.Factory.GetDatabase(args.Parameters["database"]).GetItem(args.Parameters["id"]);
if (item.TemplateID.ToString() == ConfigurationManager.AppSettings["config key redacted"])
using (new EditContext(item))
{
item["Status"] = "0";
}
}
}
}