【发布时间】:2013-08-27 03:01:17
【问题描述】:
在 Sitecore 中是否可以设置工作流,以便更改项目的某些字段不会导致项目进入批准状态?
我们希望有多个可编辑和可立即发布的字段,同时执行工作流以更改某个特定字段。如果编辑此字段,则会将该项目传递到“等待批准”状态。
我在reference 中没有找到有关如何执行此操作的任何信息。
我已经写了一些来自Steve's reply 的代码和一个关于这个sn-p的例子:
class Filter
{
public void Process(WorkflowPipelineArgs args)
{
Database master = Factory.GetDatabase("master");
Item item = args.DataItem;
IWorkflow wf = master.WorkflowProvider.GetWorkflow(item);
AllowPublishIfNoChangeToBodyField(item, wf);
}
/// <summary>
/// If the item's 'Body' field was not modified change the workflow state to Pending Publication
/// by running the Approve and Submit for Publication command
/// </summary>
/// <param name="item"></param>
/// <param name="wf"></param>
void AllowPublishIfNoChangeToBodyField(Item item, IWorkflow wf)
{
using (new Sitecore.SecurityModel.SecurityDisabler())
{
if (true//pseudo code for now: body wasn't modified)
{
wf.Execute("{command-id}", item, "allow edits and publishing of all fields other than 'Body'", false);
}
}
}
}
问题是“命令”的“下一个状态”会覆盖我对“操作”中的项目所做的任何状态更改。
【问题讨论】:
标签: sitecore