1

自動生成されたフィールドの重複を避けるために、アイテムが複製された後、アイテムの 2 つのフィールドを空白にするパイプライン プロセッサを作成しています。

  1. アイテムaはアイテムに複製されますb
  2. 項目bの 1 つ以上のフィールドの値が削除されています

このためのクラスがありますが、パラメータaを介してのみ元のアイテムにアクセスできます。ClientPipelineArgsid

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";
                }
        }
    }
}
4

1 に答える 1