w.c.s. › API »

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).

$ curl -H "Accept: application/json" -X POST \
     https://www.example.net/inscriptions/newsletter/14/jump/trigger/validate?signature…
{"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.

$ curl -H "Content-type: application/json" -H "Accept: application/json" \
     -X POST -d@donnes.json \
     https://www.example.net/inscriptions/newsletter/14/jump/trigger/validate?signature…
{"url": null, "err": 0}

Il est également possible de définir des déclencheurs au niveau des actions globales du workflow, ils pourront alors être appelés quel que soit le statut de la demande.

Un tel appel, avec un déclencheur global ici intitulé urgent se ferait ainsi :

$ curl -H "Accept: application/json" -X POST \
     https://www.example.net/api/forms/newsletter/14/hooks/urgent/?signature…
{"err": 0}