SPWorkflowActivationProperties.Item имеет значение NULL в простом рабочем процессе SharePoint - PullRequest
5 голосов
/ 04 марта 2010

Я сгенерировал C # SharePoint Sequential Workflow проект с использованием очень удобного STSDEV инструмента (это заставило меня обойтись требованием иметь битная установка SharePoint, которая требуется для других инструментов, таких как VSeWSS 1.3).

Я добавил простое действие «изменить заголовок», чтобы проверить мои основные настройки:

public sealed partial class CopyWorkflow : SharePointSequentialWorkflowActivity
{

    public CopyWorkflow()
    {
        InitializeComponent();
        workflowProperties = new SPWorkflowActivationProperties();
    }

    public SPWorkflowActivationProperties workflowProperties;

    private void onWorkflowActivated1_Invoked_1(object sender, ExternalDataEventArgs e)
    {
        workflowProperties.Item["Title"] = workflowProperties.Item["Title"].ToString() + ": Processed by Workflow";
        workflowProperties.Item.Update();
    }
}

Кто бы ни после установки моего рабочего процесса через WSP в установку WSS 3.0 , активации функции и настройки запуска рабочего процесса при создании нового элемента для определенного списка, я получаю свою точку останова в попадание onWorkflowActivation1_Invoked_1, но workflowProperties.Item всегда равно NULL вместо SPListItem , представляющего только что добавленный элемент.

Что мне нужно сделать, чтобы заполнить элемент при вызове этого обратного вызова?

Обновление: Я заметил, что поток, выполняющий рабочий процесс, работает анонимно, а не как зарегистрированный пользователь или системный пользователь, и поэтому не будет иметь доступа к данным списка. Кроме того, в файле журнала SharePoint показано следующее исключение:

Unexpected System.ArgumentNullException: Value cannot be null. Parameter name: uriString at System.Uri..ctor(String uriString) at Microsoft.SharePoint.SPSite..ctor(String requestUrl) at Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties.<get_Site>b__0() at Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state) at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2() at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode) at Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties....

и

Unexpected ...get_Site() at Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties.get_Web() at Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties.get_Item() at BechtelWorkflow.CopyWorkflow.onWorkflowActivated1_Invoked_1(Object sender, ExternalDataEventArgs e) at System.Workflow.ComponentModel.Activity.RaiseGenericEvent[T](DependencyProperty dependencyEvent, Object sender, T e) at System.Workflow.Activities.HandleExternalEventActivity.RaiseEvent(Object[] args) at System.Workflow.Activities.HandleExternalEventActivity.Execute(ActivityExecutionContext executionContext) at System.Workflow.ComponentModel.ActivityExecutor'1.Execute(T activity, ActivityExecutionContext executionContext) at System.Workflow.ComponentModel.ActivityExecutor'1.Execute(Activity activi...

Ответы [ 2 ]

4 голосов
/ 05 марта 2010

Связали ли вы WorkflowActivationProperties с конструктором Workflow?

WorkflowActivationProperties http://img718.imageshack.us/img718/9703/ss20100305091353.png

1 голос
/ 21 августа 2012

Эта проблема возникает, если значение InitialStateName конструктора в свойствах рабочего процесса не равно «Начальное состояние» или резко указывается на другой этап. Когда-то состояние, в котором у нас есть workflowProperties и т. Д., Как на изображении выше. Вещи начинают работать как требуется.

...