我正在编写一个管道处理器以在复制项目后将其两个字段置空以避免重复的自动生成字段:
- 项目
a
被复制到项目中b
- 项目
b
已删除一个或多个字段的值
我为此设置了一个类,但只能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";
}
}
}
}