ejemplos - SPWorkflowActivationProperties.Item es NULL en Flujo de trabajo de SharePoint simple
flujo de trabajo de aprobacion sharepoint 2013 (2)
¿Ha enlazado WorkflowActivationProperties con el diseñador de flujo de trabajo?
WorkflowActivationProperties http://img718.imageshack.us/img718/9703/ss20100305091353.png
He generado un proyecto de flujo de trabajo secuencial de C # SharePoint usando la muy práctica herramienta STSDEV (me dio la vuelta al requisito de tener acceso a una instalación de SharePoint de 32 bits que es necesaria para otras herramientas como VSeWSS 1.3).
Agregué una acción simple de ''modificar el título'' para probar 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();
}
}
Quien, después de instalar mi flujo de trabajo a través de WSP en una instalación de WSS 3.0 , activando la función y configurando 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 workflowProperties.Item es siempre NULL en lugar de 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 que ejecuta el flujo de trabajo se ejecuta de forma anónima en lugar de como el usuario que inició sesión o el usuario del sistema, 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...
Este problema se produce si el InitialStateName del diseñador en las propiedades del flujo de trabajo no es igual a "Estado inicial" o si se apunta 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.