SharePoint: доступ к переменным рабочего процесса после завершения StartWorkflow () - PullRequest
0 голосов
/ 26 июня 2010

Я запускаю рабочий процесс SharePoint программно из приемника событий SharePoint, вызывая workflowManager.StartWorkflow ().

Рабочий процесс устанавливает некоторые переменные рабочего процесса во время выполнения.Есть ли способ получить доступ к последнему значению этих переменных после завершения рабочего процесса (например, возврат к StartWorkflow ())?

Вот мой пример кода, который демонстрирует мое намерение:

    public override void ItemAdded(SPItemEventProperties properties)
    {
        SPWorkflow workflow = null;
        SPWorkflowManager workflowManager = null;
        try
        {
            base.ItemAdded(properties);

            workflowManager = properties.OpenWeb().Site.WorkflowManager;
            var workflowAssociation = properties.ListItem.ParentList.WorkflowAssociations[0];

            workflow = workflowManager.StartWorkflow(properties.ListItem, workflowAssociation, "<Data></Data>");

            // I can read any fields that were updated by the WF
            SPListItem item = properties.ListItem.ParentList.GetItemById(properties.ListItemId);
            string validationResult = (string) item["ValidationResult"];

            // how can I access any workflow variables created during execution?
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex);
            if (workflow != null && workflowManager != null)
            {
                SPWorkflowManager.CancelWorkflow(workflow);
            }
            throw;
        }
   }

1 Ответ

0 голосов
/ 29 июня 2010

Может быть, записать их в список? Это может быть ваш наименее грязный вариант.

В качестве альтернативы есть свойство SPWorkflow.Xml, которое «возвращает строку, представляющую экземпляр рабочего процесса в формате XML», но я никогда не пробовал его. Хотя передать это обратно в SharePoint может быть неловко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...