Improvement - Flujos de trabajo - Deshacer cambios y modificar índice de búsqueda #507
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Descripción
Se eliminan los cambios introducidos en el PR #411 debido a que podían provocar la reejecución indebida de algunas acciones de flujos que hubieran fallado previamente.
Se modifica el índice aow_processed_index_workflow, moviendo el campo parent_id delante del campo status para dar respuesta a las búsquedas que se realizan para comprobar si un flujo ya se ha ejecutado sobre un registro, donde no se utiliza el campo status.
Se han realizado búsquedas en el código para detectar si había algún punto en que se estuviera utilizando parcialmente el índice con workflow_id y status pero sin parent_id. Al no encontrarse ningún caso se considera segura la modificación del índice.
Pruebas
1.- Definir un flujo, sin ejecuciones múltiples y con varias acciones. Una de las acciones debe fallar (por ejemplo un envío de e-mail) y otra debe realizarse correctamente (por ejemplo modificar el registro)
2.- Ejecutar el flujo sobre algún registro y comprobar que una acción ha quedado completado y la otra fallada y que el flujo queda como fallado.
3.- Ejecutar de nuevo la acción que provocaba que se ejecutase el flujo y comprobar que sólo se vuelve a intentar ejecutar la acción que falló