Pregunta

Tengo un problema relacionado con los flujos de trabajo de Sharepoint y la lista de tareas asociadas.

Tengo 2 flujos de trabajo personalizados que creamos para nuestro producto.Ambos usan la misma lista de tareas que tiene un tipo de contenido personalizado que hereda del tipo de contenido de tarea.

Ahora tengo un caso en el que se eliminó un flujo de trabajo en ejecución mediante la lista o el documento, lo que da como resultado tareas huérfanas.

Quiero sobrescribir el evento OnDeleting de listas de tareas, para que los usuarios puedan limpiar sus tareas para que no contengan tareas huérfanas innecesarias.Entonces mi elemento eliminado se ve así

public override void ItemDeleting(SPItemEventProperties properties)
{
   SPListItem currentListItem = properties.ListItem;
}

El problema es que cuando entro en modo de depuración y verifico el campo currentListItem.Workflows.Count, siempre es 0.No importa qué flujo de trabajo inicie o qué tarea mire, el SPWorkflowCollection devuelto siempre está vacío :(

Me preguntaba si esto podría estar relacionado con un error en nuestro flujo de trabajo personalizado donde no está conectado correctamente (pero finaliza correctamente y las tareas se eliminan cuando finaliza un flujo de trabajo) o ¿estoy viendo esto de manera incorrecta?

¿Fue útil?

Solución

El currentListItem El alcance que tiene aquí es el elemento de la tarea en sí, no el elemento de la lista en el que se ejecuta el flujo de trabajo.La tarea no tiene un flujo de trabajo ejecutándose en su contra, por lo que se espera el recuento cero.

Si está intentando acceder a las tareas de flujo de trabajo asociadas con los flujos de trabajo de un elemento que está eliminando, necesitará este tipo de controlador de eventos en cada lista el flujo de trabajo se activa, no en la lista de tareas que el flujo de trabajo utiliza para almacenar sus tareas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top