项目特定字段上的Sitecore工作流

项目特定字段上的Sitecore工作流,sitecore,Sitecore,在Sitecore中,是否可以设置工作流,以便更改项目的某些字段不会导致项目进入批准状态 我们希望有几个字段可以编辑并立即发布,同时强制执行一个特定字段更改的工作流。如果编辑此字段,则会将项目传递到“等待批准”状态 我没有找到任何关于如何做这件事的资料 此后,我编写了一些源代码,并在此代码段上给出了一个示例: 类过滤器 { 公共作废进程(WorkflowPipelineArgs args) { 数据库主机=Factory.GetDatabase(“主机”); Item=args.DataItem

在Sitecore中,是否可以设置工作流,以便更改项目的某些字段不会导致项目进入批准状态

我们希望有几个字段可以编辑并立即发布,同时强制执行一个特定字段更改的工作流。如果编辑此字段,则会将项目传递到“等待批准”状态

我没有找到任何关于如何做这件事的资料

此后,我编写了一些源代码,并在此代码段上给出了一个示例:

类过滤器
{
公共作废进程(WorkflowPipelineArgs args)
{
数据库主机=Factory.GetDatabase(“主机”);
Item=args.DataItem;
IWorkflow wf=master.WorkflowProvider.GetWorkflow(项目);
AllowPublishShifNoChangeToBodyField(项目,wf);
}
/// 
///如果未修改项目的“正文”字段,请将工作流状态更改为“挂起发布”
///通过运行“批准并提交发布”命令
/// 
/// 
/// 
作废AllowPublishShifNoChangeToBodyField(项目项,IWorkflow wf)
{
使用(新Sitecore.SecurityModel.SecurityDisabler())
{
if(true//目前的伪代码:主体未修改)
{
Execute(“{command id}”,项,“允许编辑和发布除“Body”以外的所有字段,false);
}
}
}
}

问题是“命令”的“下一个状态”会覆盖我对“操作”中的项所做的任何状态更改。

听起来像是自定义工作流操作可以做到这一点,在用户提交更改时启动它,并以编程方式检查字段的更改

如果进行了更改,请将工作流移动到“等待批准”状态,如果不是,请退出并让其进入自动发布状态


sdn上有一个名为“”的片段,我自己还没有尝试过,但它可能会奏效。

Steve,我已经更新了我的问题,添加了一些新代码。对工作流的更改(我已验证状态已使用item.state.GetWorkflowState()更改)在操作后未保存。我认为将状态切换到命令的“下一个状态字段”的“命令”的其余部分将在我的操作之后处理。有什么想法吗?谢谢