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