2010-03-04 10 views
5

ich eine C# Sharepoint Sequential Workflow- Projekt generiert haben, die sehr praktisch mit STSDEV tool (es hat mich um die Anforderung Zugriff auf eine Installation 32-Bit-Sharepoint zu haben, die erforderlich ist, für andere Werkzeuge wie VSeWSS 1.3).SPWorkflowActivationProperties.Item ist NULL in einfachen Sharepoint-Workflow

Ich habe eine einfache 'ändern den Titel' Aktion hinzugefügt meine Basis-Setup zu testen:

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(); 
    } 
} 

Wer nach meinem Workflow über WSP in eine Installation von WSS 3.0 installieren, das Feature zu aktivieren, und den Workflow so konfigurieren, dass er immer dann gestartet wird, wenn ein neues Element für eine bestimmte Liste erstellt wird. Ich erhalte meinen Haltepunkt in onWorkflowActivated1_Invoked_1 hit, aber das workflowProperties.Item ist immer NULL anstelle eines SPListItem, das das soeben hinzugefügte Element darstellt.

Was muss ich tun, damit das Element beim Aufruf dieses Callbacks gefüllt wird?

Update: Ich habe festgestellt, dass der Thread, der den Workflow ausführt, anonym statt als angemeldeter Benutzer oder Systembenutzer ausgeführt wird und daher keinen Zugriff auf die Listendaten hat. Darüber hinaus zeigen die Sharepoint-Protokolldatei die folgende Ausnahme:

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....

und

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...

Antwort

1

Dieses Problem tritt auf, wenn die die InitialStateName des Designers in den Workflow-Eigenschaften nicht gleich „Anfangszustand“ oder auf eine andere Stufe abrupt spitz. Sobald ein Zustand, in dem wir die workflowProperties, usw. wie das obige Bild haben. Dinge fangen an, wie erforderlich zu arbeiten.