12.3. Stocker des données

12.3.1. Introduction

Le guichet en ligne enregistre les données personnelles des usagers et agents, ce qui permet de leur donner des droits d’accès spécifiques ainsi que les demandes. Il n’est pas orienté vers le stockage durable de données.

Cependant, il peut arriver qu’il soit nécessaire de mettre en place un tel système de stockage, notamment dans le cas d’enregistrement d’associations. Dans ce genre de cas, une solution existe : le connecteur Stockage de données JSON.

Dans cette documentation, nous allons vous expliquer comment mettre en place une telle base de données et comment intéragir avec elle, mais nous ne détaillerons pas de cas concret.

12.3.2. Mettre en place la base de données

La base de données se construit via un nouveau connecteur dans la page Services web. Il faut choisir, dans nouveau connecteur, le Stockage de données JSON. Lors de sa création, trois champs vous seront demandés :

  • Titre : Contiendra le nom de votre base de données. Sa version slugifiée [1] vous sera très utile par la suite pour construire vos intéractions.

  • Description : Si ce champ n’est pas utilisé en tant que tel, il est nécessaire de le remplir correctement afin de savoir quels types de données sont enregistrés dans cette base (par exemple, « Cette base de données contient des associations, leur nom, adresse, adresse électronique et numéro de téléphone »).

  • Modèle à appliquer pour la valeur de la clé « text » : Ce champ, enfin, contiendra le nom de la variable qui sera affiché lorsque la base de données sera utilisée pour alimenter une liste. Il faut l’écrire sous cette forme :

{{ nom_de_la_variable|safe }}

Et voilà, vous avez une nouvelle base de données !

12.3.3. Comment sont structurées les informations dans la base de données ?

Elles sont stockées sous forme d’enregistrement contenant des clés. Chaque clé à sa valeur. Il y a trois clés principales :

  • id : défini automatiquement, unique. Sa valeur n’a aucun sens en tant que telle, mais permet au système d’identifier précisément l’élément dont il est question.

  • text : défini en fonction du Modèle à appliquer pour la valeur de la clé « text ». Sa valeur se retrouve affichée sur les champs de type liste ou liste à choix multiples.

  • content : la valeur de cette clé est un nouvel ensemble paires clé-valeur, celles-ci personnalisables. Il s’agit des informations qu’il nous fallait stocker.

Voici un exemple d’enregistrement :

../_images/json_exemple_enregistrement.webp

12.3.4. Intéragir avec la base de données

Dans le formulaire

Un formulaire pourra être amené à récupérer les informations d’une telle base de données. Ceci se ferait via un champ de type liste ou liste à choix multiple. Dans les paramètres supplémentaires, il faut spécifier comme source de données une URL du JSON. Celle-ci devra être formatée de la façon suivante :

{{passerelle_url}}jsondatastore/titre_slugifié_de_la_base/data/

Une fois cette liste configurée, elle affichera à l’utilisateur les informations « text » de chaque élément de la base.

En général

Lorsqu’une telle liste est utilisée, la donnée enregistrée lors de la soumission contient l’ensemble des clés-valeur de l’enregistrement sélectionné. Si je reprends l’exemple de l’adresse d’iMio ci-dessus, vous pourrez réutiliser ces informations comme ceci :

  • form_var_identifiant_de_la_liste : iMio

  • form_var_identifiant_de_la_liste_raw : 0ebg6d7d496544e7a5a73ff2b88c29d3

  • form_var_identifiant_de_la_liste_content_nom : iMio

  • form_var_identifiant_de_la_liste_content_adresse : Rue Léon Morel, n°1, 5032 Gembloux

  • form_var_identifiant_de_la_liste_content_telephone : 081586117

Ceci est valable tant au sein du formulaire que du workflow, avec cependant quelques petites adaptations au niveau du préfixe :

  • form_var est le préfixe des variables du formulaires et des données de traitement.

  • form_option est celui des variables de workflow et donc des options de formulaire.

  • identifiant_du_formulaire_var est le préfixe des variables définies dans une action formulaire.

Dans un workflow

Les différents types d’actions possibles sur une base de données pourront être faits au sein du workflow. Ces actions sont : la création d’un nouvel enregistrement, la mise à jour, le remplacement et la suppression. Toutes ces intéractions passent par l’action Webservice disponible dans la catégorie d’actions Échanger.

Création

La création consiste en l’insertion d’un nouvel élément dans le stockage de données. Il est donc nécessaire de savoir quelles sont les données qui vont être insérées.

L’action webservice doit être paramétrée comme suit :

  • URL : {{ passerelle_url }}jsondatastore/{{titre_slugifié_du_stockage}}/data/create

  • Méthode : POST (JSON)

  • Données à envoyer dans le corps de la requête : à gauche, les différentes clés qui feront partie du content. Dans l’exemple de l’adresse d’iMio, ci-dessus, il s’agit de nom, adresse et téléphone. L’une de ces clés doit impérativement être le Modèle à appliquer pour la valeur de la clé « text » ! À droite, les valeurs pour chacune de ces clés.

  • Identifiant : création

Mise à jour

Ici, il serait question de mettre à jour une ou plusieurs informations définies d’un élément préalablement stocké. L’élément qui doit être modifié et les informations qui doivent être modifiées doivent donc être indiqués auparavant, que ce soit dans le workflow ou dans le formulaire.

Voici comment paramétrer l’action webservice :

  • URL : {{passerelle_url}}jsondatastore/{{titre_slugifié_du_stockage}}/data/{{element_a_mettre_a_jour_raw}}/

  • Méthode :** PATCH (JSON)

  • Données à envoyer dans le corps de la requête : à gauche, les clés qui seront impactées ; à droite, leurs nouvelles valeurs.

  • Identifiant : mise_a_jour

Remplacement

Contrairement à la mise à jour, le remplacement écrase toutes les données pour écrire celles qui lui ont été transmises.

Voici comment paramétrer l’action webservice :

  • URL : {{passerelle_url}}jsondatastore/{{titre_slugifié_du_stockage}}/data/{{element_a_replacer_raw}}/

  • Méthode : POST (JSON)

  • Données à envoyer dans le corps de la requête : à gauche, les nouvelles clés qui seront impactées ; à droite, les nouvelles valeurs.

  • Identifiant : replacement

Suppression

Enfin, cette dernière action permet de supprimer définitivement un élément de la liste.

Voici comment paramétrer l’action webservice :

  • URL : {{passerelle_url}}jsondatastore/{{titre_slugifié_du_stockage}}/data/{{element_a_supprimer_raw}}/delete

  • Méthode : POST (JSON)

  • Identifiant : suppression

Si une question subsiste, veuillez ouvrir un ticket, nous tenterons d’y répondre et de mettre à jour cette documentation.

📣 Signaler un problème dans cette page

❓ Consulter la foire aux questions

📝 Ouvrir un ticket sur support.imio.be