Objet java pour la persistance

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

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

Quelqu’un peut m’aider ? je suis toujours bloquée :frowning:

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…

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.

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

J’ai essayé toujours même problème :frowning:

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 ?

Oui c’est ça :slight_smile:
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 ?

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 +"]"; 
}

}

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

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.

  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”

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

Besoin d’aide svp :frowning: c’est urgent

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 ?

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”

Super ! grazie per il video !

Je vous en prie :slight_smile:
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.