Objet java pour la persistance

1
0
-1

Bonjour,

comment puis-je travailler avec la persistance de mon application-web externe et faire appel a cette persistance au sein de Bonita ? Quelqu'un a une idée svp.

Merci

Comments

Submitted by k27 on Tue, 06/17/2014 - 11:53

Quelqu'un peut m'aider ? je suis toujours bloquée :(

Submitted by renaud.pichot on Wed, 06/18/2014 - 16:23

Comment est réalisée la persistence de votre application web ? cookie, fichier, bdd ? En la matière je pense qu'un connecteur custom avec implémentation des méthodes connect() et disconnect() est la piste à suivre...

Submitted by k27 on Wed, 06/18/2014 - 16:43

C'est ce que j'ai fait j'ai essayé un exemple simple qui rentre pas dans mon projet juste pour voir si ça va marcher voila mon exemple ici : http://community.bonitasoft.com/answers/script-groovy-connecteur

Mais je suis toujours bloquée dans mon script groovy si vous pouvez m'aider ?

Merci.

Submitted by renaud.pichot on Wed, 06/18/2014 - 17:20

Problème de sérialisation ? Pouvez vous essayer en implémentant l'interface serializable ?

Submitted by k27 on Wed, 06/18/2014 - 17:32

J'ai essayé toujours même problème :(

Submitted by renaud.pichot on Wed, 06/18/2014 - 17:45

Si je comprends bien, vous voulez utiliser votre propre classe java dans votre processus ?

Avez-vous créé une donnée au niveau du pool de type Java référençant votre objet ? Avez-vous pour cette donnée configuré la valeur initiale avec un code type "return new Personne()" ? Est ce que votre classe Personne fait bien parti des dépendances dans la configuration du pool ? Avez-vous implémenter la méthode toString() de l'interface serializable ? Quel est le message d'erreur que vous avez au niveau du moteur ?

Submitted by k27 on Wed, 06/18/2014 - 18:02

Oui c'est ça :) Oui j'ai créé une donnée personne je l'ai fait référencé a mon objet java , son type de retour c'est test.Personne. Qu'est ce que vous voulez dire par dépendances ( si j'ai compris faut ajouter des fichiers "mes jars" dans ressources c'est fait) ? par contre j'ai pas implémenté la méthode toString() de l'interface serializable comment je dois le faire ?

Submitted by renaud.pichot on Thu, 06/19/2014 - 11:52

Concernant les dépendances: - au niveau du studio on importe le jar (menu développement / gérer les jars) - au niveau du processus / du diagramme, dans la partie configuration (bouton clé à molette), on ajoute le jar en tant que dépendance du processus (dans la vue hiérarchique, allez à "autres" et vérifiez que votre jar est bien référencé)

Au niveau du pool, dans la partie données, j'ajoute une donnée "mypersonne" de type objet java (org.bonitasoft.personne.Personne). Valeur par défaut: expression groovy = return new Personne();

Au niveau des formulaires, lorsque j'ai un champ "nom", pour mémoriser la saisie dans l'objet, dans la partie donnée du champs du formulaire: opération de sortie = mypersonne (opérateur = setNom) = field_nom

Au niveau des formulaires, lorsque j'ai un champ qui affiche la valeur courante de l'objet (le champs est en lecture seule), dans la partie donnée du champs du formulaire: valeur initiale = (java) mypersonne.getNom (dans la zone de texte il devrait y avoir mypersonne - org.bonitasoft.personne.Personne#getNom avec une icone java à droite)

Voici en exemple ma classe Personne:

package org.bonitasoft.personne;

import java.io.Serializable;

public class Personne implements Serializable {
       
        /**
         *
         */

        private static final long serialVersionUID = 1L;
        protected Integer id ;
        protected String nom;
        protected String prenom;
       
        public Integer getId() {
                return this.id;
        }
        public String getNom() {
                return this.nom;
        }
        public String getPrenom(){
                return this.prenom;
        }
        public void setId(Integer id) {
                this.id = id;
        }
        public void setNom(String nom) {
                this.nom = nom;
        }
        public void setPrenom(String prenom){
                this.prenom=prenom;
        }

        public Personne() {

        }

        public void listPersonne() {
                System.out.print("listPersonne done");
        }

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                Personne p= new Personne();
                p.listPersonne();
        }
    public String toString() {
        return "[Personne: id=" + id.toString() + " nom=" + nom + " prenom=" + prenom +"]";
    }
}
Submitted by k27 on Thu, 06/19/2014 - 12:02

Je vais essayer ça et je vous fais un retour. Merci pour votre aide.

Submitted by k27 on Thu, 06/19/2014 - 14:06

Au niveau des formulaires, j'ai mis un champ "nom", dans l'opération de sortie "mypersonne" mais il prend quoi comme valeur ? j'ai mis expression groovy=" return String.parseString(field_nom); "

Par contre ça : " Au niveau des formulaires, lorsque j'ai un champ qui affiche la valeur courante de l'objet (le champs est en lecture seule), dans la partie donnée du champs du formulaire: valeur initiale = (java) mypersonne.getNom (dans la zone de texte il devrait y avoir mypersonne - org.bonitasoft.personne.Personne#getNom avec une icone java à droite)"

je l'ai pas bien compris, désolée pour ces question je suis débutante dans Bonita.

Submitted by renaud.pichot on Thu, 06/19/2014 - 14:40

1) => field_nom par défaut doit déjà vous retourner un String, donc il ne doit pas être nécessaire de mettre ce script groovy. Par contre vérifiez bien que l'opérateur (entre l'opération de sortie et la valeur) utilise le setter et non pas la valeur par défaut ("prend la valeur de")

2) Ma première activité humaine contient un formulaire permettant à l'utilisateur de saisir la valeur. J'ai ajouté une autre activité humaine avec un autre formulaire où cette fois on affiche la valeur saise précédemment, pour vérifier que l'enregistrement dans l'objet mypersonne s'est bien déroulée. Dans ce formulaire, j'ai le champ "nom", de type "champ texte non éditable", dans la partie donnée / valeur initiale on clique sur le stylo à droite, on sélectionne "Java" et l'objet mypersonne, puis le getter associé: getNom(). Le type de retour doit être un String et devrait s'afficher à droite du libellé "valeur initiale" la valeur "mypersonne - org.bonitasoft.personne.Personne#getNom"

Submitted by k27 on Thu, 06/19/2014 - 16:13

oui pour l’opération de sortie c'est "mypersonne" et il prend comme valeur " field_nom" par défaut mais il m'affiche une erreur "Type incompatibles entre field_nom et son expression dans la tache "

et quand je mets aussi au niveau du pool, dans la partie données, la valeur par défaut "return new Personne();" ça me retourne une erreur

Submitted by k27 on Thu, 06/19/2014 - 17:36

Besoin d'aide svp :( c'est urgent

Submitted by renaud.pichot on Thu, 06/19/2014 - 17:39

entre le mypersonne et le field_nom vous avez sélectionné le setter (setNom) ? dans le script juste avant le return new Personne(), vous avez mis un import de votre classe ?

Submitted by k27 on Thu, 06/19/2014 - 17:53

oui biensur j'ai mis :

import test.Personne; return new Personne();

et pour le setter je vois pas de quoi vous parlez ce que j'ai dans "Données" c'est l'operation de sortie je l'ai remplis pas "mypersonne" prend la valeur de "field_nom"

1 answer

1
+1
-1

J'ai réglé le problème. Merci Renaud. Voici une vidéo qui peut aider quelques uns: https://www.youtube.com/watch?v=xJ5lVljCu3k

Comments

Submitted by renaud.pichot on Fri, 06/20/2014 - 15:57

Super ! grazie per il video !

Submitted by k27 on Fri, 06/20/2014 - 16:32

Je vous en prie :) En fait je voulais créer un connecteur pour exécuter ma méthode "listePersonne" et j'ai suivi cet exemple " http://blog.telsen.fr/ " J'ai mis mon script groovy :

import Personne; Personne personne= new Personne(); personne.listPersonne();

Quand je teste le connecteur j'ai ce message : " l’exécution du connecteur a réussie mais n'a aucune sortie " même la personne que j'ajoute ne s'affiche pas dans ma base Mysql.

Notifications