【发布时间】:2011-06-13 13:07:21
【问题描述】:
我们正致力于在 Sitecore 6.2 网站的工作流程中实施一些自定义代码。我们的工作流程目前如下所示:
我们的目标很简单:在“等待批准”步骤中通过电子邮件向提交者发送他们的内容修订是否被批准以及审阅者所做的 cmets。为此,我们在“批准”和“拒绝”步骤下添加一个操作,如下所示:
我们在尝试编写这段代码时遇到了两个大问题
- 似乎没有任何简单的方法可以确定选择了哪个命令(解决方法是在操作步骤中传递一个参数,但我更愿意检测选择了哪个)
- 我似乎无法在此工作流状态下获取 cmets(但我可以在下一个状态下获取它们)
关于进一步的上下文,这里是我到目前为止的代码:
var contentItem = args.DataItem;
var contentDatabase = contentItem.Database;
var contentWorkflow = contentDatabase.WorkflowProvider.GetWorkflow(contentItem);
var contentHistory = contentWorkflow.GetHistory(contentItem);
//Get the workflow history so that we can email the last person in that chain.
if (contentHistory.Length > 0)
{
//contentWorkflow.GetCommands
var status = contentWorkflow.GetState(contentHistory[contentHistory.Length - 1].NewState);
//submitting user (string)
string lastUser = contentHistory[contentHistory.Length - 1].User;
//approve/reject comments
var message = contentHistory[contentHistory.Length - 1].Text;
//sitecore user (so we can get email address)
var submittingUser = sc.Security.Accounts.User.FromName(lastUser, false);
}
【问题讨论】:
标签: c# asp.net sitecore sitecore6