2010-03-04 11 views
5

He generado un proyecto C# de SharePoint Flujo de trabajo secuencial usando el muy práctico STSDEV tool (me dieron por el requisito de tener acceso a una instalación de SharePoint de 32 bits que se requiere para otras herramientas como VSeWSS 1.3).SPWorkflowActivationProperties.Item es NULL en simple flujo de trabajo de SharePoint

He añadido un simple 'modificar el título de' acción para poner a prueba mi configuración básica:

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

El que, después de instalar mi flujo de trabajo a través del PSA en una instalación de WSS 3.0 , la activación de la función, y configurar el flujo de trabajo para que se inicie cada vez que se crea un nuevo elemento para una lista en particular, obtengo mi punto de interrupción en onWorkflowActivated1_Invoked_1, pero el workflowProperties.Item siempre es NULL en lugar de un SPListItem que representa el elemento que acaba de agregarse.

¿Qué debo hacer para que el artículo se llene cuando se llame a esta devolución de llamada?

Actualización: me he dado cuenta de que el hilo de ejecución del flujo de trabajo se está ejecutando de forma anónima y no como el registrado en el usuario del sistema o usuario, y por lo tanto no tendrá acceso a los datos de la lista. Además, el archivo de registro de SharePoint muestra la siguiente excepción:

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

y

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

Respuesta

1

Este problema se produce si el la InitialStateName del diseñador en las propiedades de flujo de trabajo no es igual a "Estado inicial" o se señala a otra etapa abruptamente. Una vez que un estado en el que tenemos el workflowProperties, etc como la imagen de arriba. Las cosas comienzan a funcionar como se requiere.

Cuestiones relacionadas