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

标签 sitecore

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

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

我在 reference 中没有找到有关如何执行此操作的任何信息.

从那以后,我写了一些来自 Steve's reply 的代码。以及这个片段的一个例子:

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); 
            }
        }
    }
}

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

最佳答案

听起来像自定义工作流操作可以解决问题,当用户提交更改并以编程方式检查该字段的更改时触发它。

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

sdn 上有一个恰本地标题为“Changing the Workflow State on an Item via API”的片段,我自己还没有尝试过,但它应该可以解决问题。

关于项目特定字段的 Sitecore 工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2120036/

相关文章:

Sitecore 项目不包含所有字段,为什么?

sitecore - 演示详细信息跨版本共享

asp.net - 这个属性 "headerindex="5h"是什么?

c# - 在 SItecore 中首次保存后如何停止自定义 OnSaving 事件?

c# - 从 WebAPI 调用返回 Sitecore 媒体项目

c# - 清除 Sitecore 的 .NET 缓存

sitecore - 缺少所需的许可证 : Runtime Sitecore

sitecore - 从 Sitecore 项目中删除渲染

javascript - 将/ja-jp/网站的标准字体样式更新为微软的Meiryo字体

telerik - Sitecore 7.0 中的自定义 RTE 下拉列表