Documentation en ligne

Enregistrer, modifier, annuler dans un agenda

C'est dans le workflow que l'on va pouvoir procéder à l'enregistrement dans un agenda, pour prendre, annuler ou encore déplacer une ou plusieurs réservations, grâce à une action webservice.

Enregistrer un rendez-vous ou une inscription

L'action webservice doit être configurée en POST. L'URL à utiliser dans cet appel, en considérant que le champ présentant le choix avait comme identifiant « EVENT », sera {{ form_var_EVENT_api_fillslot_url }}.

L'appel webservice doit inclure les « Données à envoyer dans le corps de la requête » suivantes :

  • label pour le libellé qui sera affiché dans les plages réservées dans les agendas, vue back-office (par exemple pourrait être {{ form_name }},
  • user_first_name et user_last_name pour le prénom et le nom de l'usager, si défini viendra s'afficher dans la plage réservée à la suite de label,
  • backoffice_url pour la demande vers laquelle créer un lien activé sur le libellé précédent (usuellement doit être {{ form_url_backoffice }}),
  • user_display_label pour le libellé qui sera présenté à l'usager (par exemple « Rendez-vous passeport »). Ces deux dernières données ne sont utilisées que dans le cas de génération d'un fichier ics (cf. le tutoriel dédié).
  • form_url, optionnel, et permet de passer l'adresse de la demande, ce qui ajoutera un bouton "Modifier ou annuler le rendez-vous" dans les courriels de rappel.
  • cancel_callback_url, optionnel mais à utiliser pour permettre l'annulation.
Il est possible d'ajouter n'importe quelle couple donnée/valeur dans l'appel webservice. La donnée pourra être utilisée ensuite pour configurer un filtre dans l'écran de pointage. Par exemple, si j'utilise regime: "végétarien", je pourrais dans les paramètres de l'écran de pointage indiquer regime comme filtre. Cela permettra d'avoir dans l'écran de pointage un bouton radio pour chaque valeur associée à la donnée regime (Végétarien, Allergique, etc.). Ces boutons radio permettent de n'afficher que les réservations concernées.

L'appel ne doit pas reprendre intégralement  les données de la demande (l'option « Envoyer les données du formulaire » doit rester décochée).

Attribuer un identifiant à l'appel webservice, par exemple « reservation », permettra d'utiliser les variables {{ form_workflow_data_reservation_response_* }} qui contiennent de nombreuses informations utiles (regardez la vue inspect d'une demande pour les voir toutes).

Annuler un rendez-vous ou une inscription

l'action webservice permettant d'annuler un enregistrement dans l'agenda se configure en POST avec :

  • URL : {{ form_workflow_data_reservation_response_api_cancel_url }}
L'annulation ainsi configurée pourra être déclenchée par l'usager ou l'agent en fonction des choix faits dans le workflow, voir en exemple le workflow « Prise de rendez-vous » sur le catalogue des démarches.

On peut également permettre aux agents d'annuler un rendez-vous depuis l'agenda, mais cela nécessite une configuration différente et plus poussée du workflow.

Modifier un rendez-vous ou une inscription

La modification d'un enregistrement c'est en réalité une action d'annulation de l'enregistrement existant et une action de création d'un nouvel enregistrement. Il est tout à fait possible de faire cela avec 2 actions webservices séparés en utilisant les deux appels vu précédemment.

Mais il est possible d'utiliser un seul appel pour faciliter les choses : il fera à la fois l'annulation et le nouvel enregistrement comme sur le workflow « Prise de rendez-vous » sur le catalogue. Dans notre exemple, nous avons stocké l'identifiant du rendez-vous existant dans une donnée de traitement {{ form_var_id_rdv }}, et nous exposons la possibilité de changer l'enregistrement via une action formulaire dans le workflow qui nous donne une variable {{ form_workflow_data_IDENTIFIANT-FORMULAIRE_var_IDENTIFIANT-CHAMP-EVENT_api_fillslot_url }}.

L'action webservice est utilisée à la fois pour faire le premier enregistrement et le modifier. Elle se configure en post comme suit :

  • URL : {% firstof form_workflow_data_IDENTIFIANT-FORMULAIRE_var_IDENTIFIANT-CHAMP-EVENT_api_fillslot_url form_var_IDENTIFIANT-CHAMP-EVENT-api_fillslot_url %}
  • backoffice_url : {{form_url_backoffice|safe}}
  • cancel_booking_id : {{form_var_id_rdv|default:""}}
  • label : {{form_name|safe}}
  • user_name : {{form_user_display_name|safe}}

Aller plus loin

Un paramétrage plus avancé du workflow est possible pour faire plusieurs d'inscriptions d'un coup, gérer les erreurs, annuler les rendez-vous directement depuis l'agenda ou encore gérer une liste d'attente.

Dernière mise à jour le 31 mai 2022 14:10 — Éditer