自動生成されたフィールドの重複を避けるために、アイテムが複製された後、アイテムの 2 つのフィールドを空白にするパイプライン プロセッサを作成しています。
- アイテム
aはアイテムに複製されますb - 項目
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";
}
}
}
}