Traitement d’un formulaire
Synchrone
Pour faire évoluer un formulaire en fonction de données extérieures, le workflow peut contenir une action d’appel à un webservice et enchaîner sur une série de sauts automatiques, conditionnés par le résultat de l’appel.
Asynchrone
Pour des traitements asynchrones, w.c.s expose également une API autorisant les logiciels tiers à faire progresser le traitement d’un formulaire; cela passe par la définition dans le statut du workflow d’un élément de type « Changement de statut automatique », dans lequel un identifiant de déclencheur est défini.
La demande d’un changement d’état se fait par une requête POST à l’adresse du formulaire en question, suivi de jump/trigger/ et de la référence à l’identifiant de déclencheur (validate dans l’exemple qui suit).
Lors de cette requête, il est nécessaire d’inclure l’entête Accept: application/json.
POST https://www.example.net/inscriptions/newsletter/14/jump/trigger/validate/
{"test": "data"}
→ {"url": null, "err": 0}Il est également possible d’accompagner le déclenchement d’un changement de statut d’une série de données, qui seront enregistrées dans les données de workflow du formulaire.
POST https://www.example.net/inscriptions/newsletter/14/jump/trigger/validate/
→ {"reason": "C’est ok."}
{"url": null, "err": 0}Ces données seront accessibles dans des variables nommées
form_trigger_ l’identifiant_du
l’identifiant du déclencheur_content_données, l’exemple ci-dessus
donnerait donc
une variable form_trigger_validate_content_reason avec le texte C’est ok. comme valeur.
Des déclencheurs peuvent aussi être définis : form_trigger_validate_content_test avec "data" comme valeur.Il est également possible de définir des déclencheurs
Un tel appel, avec un déclencheur global ici intitulé urgent se ferait ainsi :
POST https://www.example.net/api/forms/newsletter/14/hooks/urgent/ {"err": 0}