Workflow Bonita

Bonjour,

Je suis sur Bonita depuis un moment et je cherche à suspendre mon processus.
Si il me manque une pièce justificative par exemple, le processus se suspend.

J'ai vu que sur la User XP, il y avait un bouton qui permettait de suspendre un processus mais je souhaiterais l'automatiser (tout comme la reprise par la suite).

C'est une utilisation un peu particulière de Bonita...

Quelqu'un peut m'aider ?
Merci d'avance

3 réponses

  1. Modifier le comportement de la user XP est possible mais il faut pour cela le changer dans le code de l'application ce qui n'est pas une mince affaire

    Je te propose avant de te lancer dans une telle aventure deux autres solutions qui pourraient te satisfaire:

    - tu rends le champs de ta piece justificative obligatoire
    https://documentation.bonitasoft.com/
    - c'est la manière la plus propre de réaliser ce que tu veux
    inconvénient: l'utilisateur remplit le formulaire qu'une seule fois et dois disposer de toute les informations nécessaires
    (cela n'est peut-être pas un problème pour toi)

    - tu boucles sur la task remplissage du formulaire,
    tu utilises un boolean que tu mettras à true
    uniquemenent si tout tes champs requis sont complétés.
    Tu sors de la task lorsque l'utilisateur clique sur submit et que ton boolean est a true sinon tu relances la task et l'utilisateur doit à nouveau remplir son formulaire
    > avantage: les champs que l'utilisateur aura déja rempli seront pré-remplis au rechargement de ton formulaire.
    1. pour l'instant je crois que c'est l'équivalent de ta deuxième solution qui est en place.

      Le problème c'est que pièce justificative manquante peut mettre du temps à arriver. Je n'ai pas pu finir le processus et j'attends de recevoir les infos manquantes.

      Que fait le processus pendant ce temps ? Je le laisse tourner ?
      1. de plus, le client voudrait que le processus se relance "tout seul" quand la pièce arrive (je passe par un autre processus retour de PJ qui enverrai les infos pour relancer le processus)

        Je crois que je n'ai pas le choix que de passer par la modification du comportement de la UserXP
      2. est ce que par hasard tu saurais comment récupérer le code des connecteurs ?
      3. pour les connecteurs que tu crées toi même, il y a le menu connecteur>editer un connecteur
        mais pour les ceux in-built à bonita, tu vas devoir les chercher dans les librairies de bonita.
      4. tu pourrais m'aider pour la suspension ? Je vois même pas par où commencer...
      5. Cela dépends, si tu tiens à modifier la user xp, je ne saurais pas t'aider car je ne sais pas comment elle est implémenté. Par contre, il n'y pas souci, s'il s'agit d'adapter ton process bonita.

        si c'est le cas, peux-tu préciser ce que tu veux dire par:
        (je passe par un autre processus retour de PJ qui enverrai les infos pour relancer le processus)
    2. j'ai un premier processus qui au cours de son exécution en appelle un autre et quand il a fini on revient au premier. Je fais la suspension dans le deuxième, est-ce que ça peut poser problème ?
      1. cela ne pose pas de problème, si c'est l'unique chemin possible (pas de branchement, exception qui fait sauter l'étape,...)

        Je dois t'avouer que je n'ai encore jamais utilisé suspendTask et resumeTask
        car quand jai commencé bonita j'ai utilisé un autre procédé pour faire la même chose que toi:
        jai mis une tâche humaine dont personne n'est censé intervenir et qui donc bloque le processus. Lorsqu'une action externe arrivait (retour de PJ pour ton cas)
        je fais un skip task sur la tache humaine bloquante, le processus peut donc reprendre avec les nouvelles infos (PJ pour ton cas).
        Cela n'est pas très propre, mais comme cela fonctionnait, j'ai pas cherché à le modifier par la suite.

        je vais tester suspendTask et resumeTask
      2. merci beaucoup pour ton aide, je vais voir de mon coté si cette solution pourrait convenir au client
      3. J'ai remarqué que le code que je t'avais était erronée, mais après correction,
        la méthode suspentTask semble ne pas produire l'effet escompté
        le status est bien mis à SUSPENDED mais la tache semble poursuivre en ignorant l'état de son statut.

        si ton client veut absolument un code sans "manip", tu peux aller faire un tour sur le forum de bonita pour demander l'aide d'une personne qui saurait comment fonctionne suspendTask et resumeTask.
      4. Merci beaucoup de ton aide :)
        j'ai posé ma question sur le forum Bonita, j'attends de voir.