Récupérer le choix d'un "radio buttons" et l'enregistrer en base de données

1
0
-1

Bonjour à tous.
je suis débutant en bonitasoft et rencontre quelques problèmes. Dans ce cas précis, j'aimerais récupérer le choix fait par un utilisateur dans une liste de boutons radio et l’enregistrer en base de données.
Merci d'avance.

Comments

Submitted by antoine.mottier on Thu, 08/24/2017 - 13:48

Est ce que vous pouvez être plus précis concernant le type de problème actuellement rencontré ?

Est ce que vous avez pu comprendre les concepts de variable dans les formulaires, contrats et opérations qui sont par exemple utilisé dans le getting started tutorial ou dans le BPM Camp ?

Submitted by fabrice.nague_1 on Thu, 08/24/2017 - 14:16

Merci pour votre promptitude.
Pour être plus précis, j'ai une liste de choix possible (5 éléments) créer avec le widget "RADIO BUTTONS" dans l'UI Designer pouvant se présenter comme suit (Désolé, je ne parviens a insérer la capture):
o Camionnage
o Débours
o PAD
o Douane
o Autres
J'aimerais récupérer le label du choix (Camionnage, PAD, Douane ...) dans les propriétés du widget et l'envoyer dans le champ approprié de mon formOutput afin de le lié à l'attribut créer à cet effet dans le bdm.
Une fois de plus merci.

1 answer

1
0
-1
This one is the BEST answer!

Voila un exemple qui illustre comment depuis un formulaire d'instanciation obtenir les données saisies par l'utilisateur via un groupe de radio buttons et stocker cette information en base de données en utilisant la fonctionnalité BDM de Bonita.

Le principe est le suivant :

  • Dans le formulaire le on a une variable de type JSON qui contient un tableau d'objet associant un "label" et une "valeur" (par exemple label "Débours" associé à la valeur "debours").
  • Dans la configuration du widget "Available values" utilise la variable (il faut cliquer sur le bouton "fx" pour passer du mode "constante" au mode "variable ou expression") pour définir les labels à afficher et les valeurs à stocker.
  • Displayed key indique que c'est l'attribut "label" des objets qui doit être utilisé comme texte des labels des radio buttons. De même pour Returned key qui indique que c'est l'attribut "value" qu'il faut utiliser pour la valeur à sauvegarder.
  • On a une seconde variable de type JSON, formData, qui est utilisé pour stocker le choix de l'utilisateur.
  • Le widget radio button est configuré via la propriété "Selected Value" pour stocker le choix de l'utilisateur dans un objet JSON référencé par la variable formData. C'est l'attribut maBusinessVariableInput de l'objet JSON qui stocke lui même un autre objet JSON avec une propriété attribut qui aura comme valeur le choix de l'utilisateur. Le nom formData viens du nom choisi pour la variable (nom libre), le nom maBusinessVariableInput viens du nom du contract choisi dans la définition du process (onglet Général -> Exécution -> Contrat), le nom attribut viens aussi du nom choisi dans la définition du contrat.
  • Le bouton submit dans le formulaire est configuré pour envoyer le contenu de la donnée formData et utilise une action de type Start process. Le clic sur se bouton va donc faire un appel pour démarrer une instance de processus en fournissant les données saisies par l'utilisateur (l'appel est visible en utilisant la console developper du naviagteur web).
  • Côté processus le contrat récupère les données.
  • La valeur par défaut de la business variable maBusinessVariable est configurée pour créer un nouvel objet de type MaBusinessVariable et pour initialiser son attribut "attribut" avec la valeur reçue dans le contrat (maBusinessVariableInput.attribut)

Comments

Submitted by fabrice.nague_1 on Thu, 08/24/2017 - 15:27

Mille fois merci. Vos explications et l'exemple associé m'ont permis de résoudre le problème.
Merci pour votre disponibilité.

Submitted by antoine.mottier on Thu, 08/24/2017 - 15:37

Merci de bien utiliser les commentaires pour ajouter des éléments à un sujet de discussion et de créer une "answer" seulement pour apporter une réponse à une question posée.

Si la réponse vous conviens merci de la coché comme "Select as the best answer" pour que le sujet soit marqué comme répondu.

Merci

Notifications