Las tareas del flujo de trabajo de SharePoint no esperan a ser ejecutadas
-
10-12-2019 - |
Pregunta
Creé un flujo de trabajo en Visual Studio que contiene un replicador que crea múltiples tareas para su aprobación.El replicador contiene una actividad de secuencia que consiste en createTask
, a while
bucle con onTaskChanged
y un completeTask
elementos.
Mi flujo de trabajo se está comportando muy extraño.El replicator_Initialized
inicializa correctamente el InstanceData
que es un IList
de cuerdas (es decir,los aprobadores), el replicator_ChildInitialized
también se comporta como se esperaba, el createTask_MethodInvoking
en la secuencia la actividad se ejecuta bien e incluso el ciclo isComplete
El método verifica para cada una de las tareas que no se hayan completado.Pero entonces, el onTaskChanged_Invoked
Nunca lo llaman y lo mismo ocurre con completeTask_MethodInvoking
.En otras palabras, nunca tengo la oportunidad de ir a la lista de tareas del flujo de trabajo y aprobarlas.El flujo de trabajo falla y se quema después porque estoy tratando de hacer referencia a las tareas. AfterProperties
cuales son todos null
por supuesto porque el después nunca ocurrió.
¿Alguien ha encontrado algo similar?¿Cómo soluciono o incluso analizo esto?Por ejemplo, no tengo idea de dónde colocar el punto de interrupción porque parece que el flujo de trabajo simplemente se salta algunas partes.Gracias por toda la ayuda, realmente lo aprecio.
Solución
Resolví esto.El problema fue que he definido algunos campos en el Workflow1.cs
archivo que era de tipo SPListItem
, SPList
y SPUser
.Cuando se crearon las tareas, el flujo de trabajo falló y me pareció que simplemente se realizó sin crear tareas ni esperar a que se completaran.Eliminando esos campos particulares de Workflow1.cs
hizo que todo funcionara como se esperaba.
Llegué a la conclusión de que Workflow1.cs
No tolerará campos que no sean de los siguientes tipos:
- En t
- booleano
- flotar
- doble
- cadena
- Fecha y hora
Tal vez lo sería si agregara un campo y lo hiciera serializable (o todo Workflow1.cs
, no estoy seguro).