Cómo hacer un flujo de trabajo secuencial automáticamente recibe la siguiente tarea
Pregunta
Tengo un flujo de trabajo secuencial con un OnworkFlowAcivado y tres tareas de creación que están dentro de una secuencia. Actualmente, después de que se llama a OnworkFlowActivated y termina de ejecutar el código, llamará a la primera de las tres tareas de creación. Sin embargo, una vez que se realice la primera tarea ejecutando todo el código, no llamará a las siguientes dos tareas. La única forma en que una tarea puede llamar a la siguiente tarea es llamar al nombre del método real, por ejemplo,
uploadToFTPTask_MethodInvoking(sender, e);
Me gustaría que el flujo de trabajo sea automáticamente (sin la entrada del usuario) vaya a la siguiente tarea siempre que todo el código en la tarea anterior se haya completado con éxito. Y si el código no se ha completado, tenga el informe de flujo de trabajo que el flujo de trabajo no se completó. Este flujo de trabajo está dentro de Visual Studio y no en el diseñador de SharePoint.
Solución
Necesitaba tener un token de correlación único para cada tarea, así como poblar el Guid de la tarea en tiempo de ejecución y asociar el listemid en tiempo de ejecución. El código dentro del método de tarea se ve así:
UploadToFTPTask_TaskId1 = Guid.NewGuid();
UploadToFTPTask_ListItemId1 = workflowProperties.ItemId;
Con ese código, no necesitaba llamar a la siguiente tarea con su nombre de método, el flujo de trabajo automáticamente fue a la siguiente tarea siempre que tuviera un TaskID único y un ListEmid.