Documentation en ligne

Annulation dans un agenda

L'annulation d'une réservation peut se faire via le workflow, c'est la méthode historique, mais il est également possible d'annuler une réservation depuis la vue back-office des agendas.

Annulation dans le workflow

Dans le cours du workflow, un ou plusieurs statuts peuvent être paramétrés avec un appel  webservice en POST avec, comme URL, {{reservation_response_api_cancel_url}}, cf. page Enregistrement dans l'agenda.
En réponse à cet appel webservice, une erreur pourra être retournée, par exemple {'err': 1, 'reason': 'already cancelled'} si la réservation a déjà été annulée.
Une annulation via le workflow sera indispensable si vous permettez l'annulation par l'usager : dans ce cas, il faut paramétrer un saut manuel, déclenchable par l'usager, pour déboucher dans un statut où l'appel webservice d'annulation est effectué, voir en exemple le workflow «Prise de rendez-vous» sur le catalogue des démarches.

Annulation depuis le back-office

L'annulation depuis l'agenda est possible depuis 2020 (lien « Annuler» à droite des réservations dans la vue back-office d'un agenda) mais il faut alors, en plus de l'annulation de la réservation en elle-même, paramétrer également une action dans le workflow pour que la demande reste cohérente avec la réservation, ceci se fait via l'enregistrement d'un déclencheur dans le paramètre cancel_callback_url dans l'appel webservice de réservation, cf. page Enregistrement dans l'agenda.

Deux possibilités pour configurer un déclencheur dans le workflow.
  • Créer dans le workflow une action globale, y positionner un déclencheur de type "Appel externe" en renseignant l'identifiant. Dans ce cas l'adresse à passer dans cancel_callback_url sera {{form_api_url}}hooks/IDENTIFIANT_APPEL_EXTERNE/. Pour assurer un changement de statut lorsque ce déclencheur est appelé, il faut spécifier dans l'action globale un saut automatique, par exemple vers un statut « Annulé ». Aucun rôle ne doit être configuré ni sur le déclencheur, ni sur le saut automatique. Ceci est la méthode recommandée par défaut.
  • Une autre façon de positionner un déclencheur se fait en créant un saut automatique, par exemple entre un statut "Réservé" et un statut "Annulé", et en renseignant l'identifiant d'appel webservice sur le saut automatique mais, attention, dans ce cas au moment de l'annulation dans l'agenda, la demande devra impérativement se trouver dans le statut où le saut est configuré. L'adresse à passer dans cancel_callback_url sera {{form_url}}jump/trigger/IDENTIFIANT_DU_SAUT/. Aucun rôle ne doit être configuré sur le saut automatique.
Si vous travaillez sur la base d'un workflow comportant déjà une action, probablement manuelle, d'annulation de la réservation, l'action globale ou le saut automatique ne devront pas amener la demande sur le statut comportant ce webservice d'annulation de réservation sinon vous provoqueriez une erreur en tentant d'annuler une réservation, déjà annulée. Une façon de faire est de positionner l'appel webservice d'annulation manuelle sur un statut intermédiaire "annulation" qui sera court-circuité par le saut via déclencheur.

Dernière mise à jour le 8 avril 2021 16:07 — Éditer