4
在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);
}
}
}
}
的問題是「命令」重寫任何狀態變化我做出了的「下一狀態」 「行動」中的項目。
Steve, 我已更新我的問題,包括一些新的代碼。工作流程的更改(我已驗證狀態已更改,item.State.GetWorkflowState())在操作後未保存。我認爲在我的行動之後,正在處理將狀態切換到命令的「下一個狀態」字段的「命令」的其餘部分。有什麼想法嗎? 謝謝! – David