Development #56832
Action de Wf externe : avoir une option pour ne pas loguer les erreurs
0%
Description
Dans un WF de fiche, j'ai besoin à partir d'une fiche principale modèle A de créer n fiches liées modèle B.
Certaines fiches liées peuvent par la suite être supprimées.
Lorsqu'une action de wf externe cherchent à agir sur les fiches liées, le fait d'avoir supprimé préalablement des fiches liées génère une erreur visible dans le wf.
Mais tout se passe bien fonctionnellement.
"Impossible de trouver « Habilitations » lié par l’identifiant 24"
Je voudrais pouvoir explicitement ne pas loguer les erreurs pour cette action de wf externe.
(ou alternativement, ce serait pouvoir récupérer la liste des fiches liées encore existantes, et spécifier que l'action de wf externe ne doit pouvoir s'exécuter que sur ces fiches.
avec une requête type {{ cards|objects:"XXXXX"|filter_by_user:form_user|getlist:"form_internal_id }}, mais ce serait un autre ticket : #56847).
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a plus de 2 ans
Effectivement lors du parcours des fiches liées en vue de l'exécution de l'action, on loggue une erreur "normale" si une des fiches liées n'est pas présente. Ca se passe dans formdata.iter_target_datas :
for (slug, target_id, origin) in data_ids: if object_type: # workflow action try: yield objectdef.data_class().get(target_id) except KeyError as e: # use custom error message depending on target type get_publisher().record_error( _('Could not find linked "%(object_name)s" object by id %(object_id)s') % {'object_name': objectdef.name, 'object_id': target_id}, formdata=self, status_item=status_item, exception=e, ) (...)
On pourrait effectivement avoir un flag "ne pas logguer si une fiche liée n'existe plus", ça me semblerait une option un peu bizarre... Autre solution, supprimer complétement ce log, avec le risque de ne plus comprendre ce qui dérape parfois...
Je ne vois pas de troisième voie.
Mis à jour par Frédéric Péters il y a plus de 2 ans
(je suis plutôt à préférer ne pas avoir d'option, et simplement ne pas logguer)
Mis à jour par Thomas Noël il y a plus de 2 ans
- Fichier 0001-external_workflow-do-not-record-error-on-missing-tar.patch 0001-external_workflow-do-not-record-error-on-missing-tar.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
On choisi de ne plus enregistrer d'erreur quand une fiche liée à la demande n'existe plus. À noter qu'on continuera à en enregistrer une dans le cas d'une cible manuelle : je ne supprime pas ça.
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Thomas Noël il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 59a4fcb485bd73038e2c97d47b71883069b39682 Author: Thomas NOËL <tnoel@entrouvert.com> Date: Fri Sep 10 11:35:43 2021 +0200 external_workflow: do not record error on missing target (#56832)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
external_workflow: do not record error on missing target (#56832)