В Sitecore возможно ли настроить рабочий процесс таким образом, чтобы изменение какого-либо поля элемента не приводило к тому, что элемент переходил в состояния утверждения?
Мы бы хотели, чтобы несколько полей были редактируемыми и сразу же публиковавшимися, а рабочий процесс был бы изменен на одно конкретное поле. В случае изменения этого поля элемент будет переведен в состояние «Ожидает утверждения».
Я не нашел ничего о том, как это сделать, в справочнике .
С тех пор я написал некоторый код, полученный из ответа Стива и пример этого фрагмента:
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);
}
}
}
}
Проблема в том, что «Следующее состояние» в «Команде» перезаписывает все изменения состояния, которые я вносил в элемент в «Действии».