Numéroter un formulaire

1
0
-1

Bonjour, j'aimerais numéroter (dans les formulaire)chaque process effectué afin qu'il y ait un suivi. Auriez-vous une idée?

3 answers

1
+1
-1
This one is the BEST answer!

Bonjour,

  • chaque instance de processus a un identifiant unique (processInstanceId)
  • chaque définition de processus a également un identifiant unique (processDefinitionId)
  • chaque formulaire a un nom technique et un titre. Ce dernier est affiché tandis que le précédent est utilisé par Bonita BPM en interne. Le nom technique du formulaire doit pouvoir utiliser une convention de nommage, par exemple pour numéroter le formulaire ?

Autrement, il est possible au niveau du modèle de définir un libéllé dynamique et une description dynamique pour chaque tâche qui sera affichée dans le portail (Aller sur une tâche, dans l'onglet général, dans la section Portail, modifier les champs nom affiché, description dynamique,etc.)

Comments

Submitted by m.alcan on Thu, 04/03/2014 - 10:51

(on parle bien de la version Community?) J'aimerais que le numéro de "process" s'affiche sur chaque formulaire de celui-ci(comme une variable champs texte non-modifiable), de façon à ce qu'il soit récupérable à l'aide d'un connecteur d'email (par exemple).

Submitted by renaud.pichot on Thu, 04/03/2014 - 11:41

Oui oui, version communautaire.

Ajoutez un widget texte sur vos formulaires en lecture seule, et utilisez un groovy script retournant "processInstanceId" au niveau de la valeur initiale Dans votre connecteur email, vous pourrez utiliser de nouveau dans le contenu la variable interne processInstanceId, qui n'aura pas changé...

Par contre la valeur de cette variable étant un entier long, si vous avez besoin d'une autre valeur (une chaine de caractère particulière), vous devez créer une variable de processus, par exemple "monNomDeProcess", et vous pouvez gérer cette valeur par des "opérations" ou des connecteurs, par exemple pour appliquer une convention de nommage basée sur un calcul ou un concaténation...

1
0
-1

juste au niveau du widget d'un formulaire concernant le "processInstanceId"

Comments

Submitted by renaud.pichot on Fri, 04/04/2014 - 16:03

Si il s'agit du premier formulaire (au niveau du pool), alors c'est un formulaire d'initialisation du processus. Auquel cas la valeur processInstanceId n'est pas encore connue puisque le processus n'a pas techniquement démarré. Est ce que vous parlez bien d'un formulaire sur une tâche ?

Submitted by m.alcan on Fri, 04/04/2014 - 17:01

C'est le formulaire de démarrage, donc pas sur une tâche. Du coup il me faut donc créer un numéro qui s'incrémentera pour chaque process démarré. Une idée ?

Submitted by renaud.pichot on Fri, 04/04/2014 - 17:26

Vous pouvez garder le processInstanceId: bien que vous ne pouvez pas l'afficher à l'utilisateur tant que la saisie du premier formulaire n'a pas été effectuée, il doit y avoir un moyen pour l'afficher une fois que l'utilisateur a envoyé le formulaire, par exemple dans le message de confirmation (le message qui s'affiche après avoir appuyé sur le bouton soumettre du formulaire).

Submitted by m.alcan on Fri, 04/04/2014 - 17:59

Voici le script du corps de mon mail de mon connecteur, et il ne fonctionne pas. Vous avez une idée du souci ?

def date_demande =new Date() def formattedDate = date_demande.format('dd/MM/yyyy') def str=String.format(" Bonjour, vous avez la demande d'achat n° % faite le %s par %s %s à analyser.",processInstanceId, formattedDate, prenom_demandeur, nom_demandeur);

Submitted by renaud.pichot on Mon, 04/07/2014 - 10:04

Essayez avec soit

def str=String.format(" Bonjour, vous avez la demande d'achat n° %d faite le %s par %s %s à analyser.", processInstanceId, formattedDate, prenom_demandeur, nom_demandeur);

soit

def str=String.format(" Bonjour, vous avez la demande d'achat n° %s faite le %s par %s %s à analyser.", processInstanceId.toString(), formattedDate, prenom_demandeur, nom_demandeur);
Submitted by m.alcan on Mon, 04/07/2014 - 11:00

Merci pour toutes ces réponses, la 1ère méthode fonctionne.

1
0
-1

Je n'arrive pas à faire apparaître le "processInstanceId" sur mon formulaire : Dans mon widget champ texte en question, voici mon script :

return processInstanceId

mais ça ne fonctionne pas. Pouvez-vous m'aidez?

Comments

Submitted by renaud.pichot on Thu, 04/03/2014 - 14:31

processInstanceId étant un entier long, essayez avec l'expression return processInstanceId.toString();

Submitted by m.alcan on Fri, 04/04/2014 - 11:18

ça ne fonctionne pas. Est-ce que c'est le faite d'être en localhost ? J'ai une erreur de chargement de mon formulaire.

Submitted by renaud.pichot on Fri, 04/04/2014 - 13:52

Non le fait d'être en localhost ne devrait pas affecter cette expression groovy.

Qu'avez vous dans les logs du moteur (menu Aide) ?

Submitted by m.alcan on Fri, 04/04/2014 - 14:04

quand je commente mon code, la ça fonctionne. C'est vraiment lié à mon script qui recheche le "proccessInstanceId"

Submitted by renaud.pichot on Fri, 04/04/2014 - 14:17

Quelle version utilisez vous ? 6.2.x, 6.1.y ?

Submitted by m.alcan on Fri, 04/04/2014 - 14:20

6.2.5

Submitted by renaud.pichot on Fri, 04/04/2014 - 15:17

Votre code est-il placé sur un formulaire au niveau du pool ou d'une tâche ?

Notifications