Numéroter un formulaire

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

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.)

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?

juste au niveau du widget d’un formulaire concernant le “processInstanceId”

(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).

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…

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

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

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

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

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

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

6.2.5

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

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 ?

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 ?

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).

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);

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);

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