Exécuter un connecteur avant le formulaire d'instanciation

Bonjour,

J'ai un processus (sous Bonita 7.11.2) qui utilise un connecteur (maison) pour initialiser les données métiers qui seront exposées dans le formulaire d'instanciation. Je positionne ce connecteur dans la section "connecteurs en entrée" du pool, mais il semble que le formulaire d'instanciation soit déjà activé lorsque ce connecteur s'exécute. Les données métiers ne sont alimentées que pour la première tâche humaine suivante, ce qui me laisse à penser que le connecteur s'exécute après le formulaire d'instanciation.

Existe t-il un moyen (autre qu'une API externe à invoquer dans le formulaire) pour pouvoir renseigner des données métiers AVANT d'accéder au formulaire d'instanciation ?

Une solution consistant à ne pas mettre de formulaire d'instanciation, et à rediriger automatiquement l'initiateur du process vers la 1ere tâche humaine (et à lui attribuer) est-elle envisageable ? Si oui, comment fait-on ?

Merci pour vos éclaircissements..

 

Bonjour,

Il n'est pas possible (et pas recommandé) d'exécuter un connecteur (ou tout autre type de code custom) avant l'affichage du formulaire d'instanciation. Ceci pour la raison que le processus n'est pas encore instancié, et que donc tout code qui créerait pour modifierait des données se ferait en dehors du processus, même si le processus n'est jamais instancié.

Si ce que vous chercher à faire est d'aller récupérer des données pré-existantes pour les affichées, les Rest API extensions existent pour ça dans Bonita, et il vous suffit d'implementer l'appel à la récupération de ces données, et de les exploiter dans votre formulaire d'instanciation.

Sinon, les données metier Bonita vous permettent également d'arriver au même résultat: En effet, celles-ci ont un cycle de vie qui dépasse celui du processus. Si ces données sont dans le BDM Bonita, il est simple de les afficher dans votre formulaire d'instanciation.

Enfin, si vous devez absolument exécuter un connecteur pour récupérer les données, la solution que vous proposez est valide:

  • Vous stoquez le résultat du connecteur dans une variable de processus
  • Vous utilisez le Filtre d'Acteur process initiator pour auto-assigner la première tâche à l'initiateur du processus
  • Par contre, ce sera à l'utilisateur d'aller sur la tâche qui vient de lui être assignée pour l'exécuter (en effet, l'initialisation de la tâche se faisant en asynchrone, il se peut que la tâche ne soit pas encore disponible au moment où le formulaire par défaut d'instanciation du processus est soumis)

J'espère avoir pu vous aider au mieux.

Cordialement,

Emmanuel

Merci beaucoup pour votre réponse, elle est très claire. Elle confirme ce que j'avais imaginé, et en effet, je suis passé par des API bonita pour récupérer les données de l'utilisateur dans l'organisation. Par contre, je suis obligé d'alimenter cette organisation de manière asynchrone avec les données de mon SIRH, plutôt que d'aller directement les lire dedans (via un connecteur). Je vais étudier la possibilité d'une extension d'API pour remplacer ce connecteur....

Quand à la solution alternative, je ne l'ai pas employé, car l'utilisateur doit accéder directement au formulaire de demande, les pratiques BPM étant encore peu pratiquées dans notre établissement..