Communication entre business process

4.0
Communication entre business process
0.0 0
Tags: #<Tag:0x00007f683911a0f0>

#1

Bonjour,

j’ai deux problèmes:

  1. J’ai créé un business process qui effectue un certains nombre d’opérations, j’aimerai à la fin faire un récapitulatif des différents éléments qui ont intervenu dans toutes mes activités.

Illustration:

Activity 1 : Un formulaire de création

Activity2: Un autre formulaire de création

Activity3 : Une condition

Activity4 : Une liste de choix

Activity5 : Le récapitulatif de tous les éléments utilisés dans les activités précédentes

Cela ne fonctionne pas, comme vous pouvez le voir ma page récapitulatif contient des tableaux vides, pourtant j’aimerai qu’ils contiennent les éléments crées et sélectionnés dans les activités antérieurs.

Comment puis-je résoudre ce problème ?

  1. J’aimerai faire communiquer deux business process. En effet, j’aimerai créer un autre processus qui prendra le résultat du processus précédent et commencera ses traitements sur la base de ce dit processus.

Le processus devra commencer avec cette page (mais pleine de données biensur)

Comment puis je mis prendre?

Je vous remercie d’avance pour l’aide que vous pourriez m’apporter pour résoudre ces deux problèmes.

Cordialement


#2
  1. Votre dernière activité de fin doit posséder un forward vers le row_id de l’objet que vous avez créé en début de processus. Si le formulaire est vide c’est que vous ne routez pas vers le bon row_id.
    Comment est paramétré votre activité de fin ?

Voir le training qui explique comment faire :
https://training.simplicite.io/training/business-workflows-configuration/w040-redirection-to-specific-page/

  1. Que doit faire votre second processus ?

S’il s’agit de modifier l’objet, je ne pense pas que ce soit le bon design.
Un screenflow est un assistant de saisie plutôt dédié à la création.

Votre second processus devra commencer par choisir l’objet à modifier puis l’ouvrir via une activité Update…
Bref c’est ce que fait la navigation en standard via menu / liste / formulaire / onglets…


#3

Je ne suis pas sûr d’avoir bien compris vos explications, mais pour ma part

  1. C’est en faisant une redirection que j’obtiens un formulaire et des tableaux vides (pas moyen de récupérer les données saisies dans les activités tout au long de notre process).

Vous n’auriez pas par hasard un exemple dans lequel vous traiter un cas semblable?

  1. Le deuxième processus a besoin des données de sortie du premier processus pour bien fonctionner. Je n’ai pas trouvé de solution dans les training.

Pourriez vous m’éclairer sur la marche à suivre?

Merci d’avance


#4
  1. Le training est un exemple qui fonctionne sur un redirect (forward) vers l’objet créé à une certaine étape du processus.

Exemple :
Le processus de création d’un user CreateUser redirige vers l’utilisateur créé à la fin.
Regardez les données de l’activité CUSER-END.
La paramètre 1 est le chemin du row_id de l’utilisateur créé à l’étape CUSER-F.

A défaut de nous donner votre paramétrage, on ne peut pas plus vous aider.

  1. Vous pouvez stocker toutes sortes d’information dans la session et les récupérer plus tard dans tous les hooks de la plateforme (processus ou objet métier) :
  • via getGrant().set/getParameter : on peut stocker des informations dans la session
  • dans les hooks d’activité pour récupérer/forcer un champ

https://www.simplicite.io/resources/documentation/01-core/businessworkflow-code-hooks.md
https://training.simplicite.io/training/business-workflows-configuration/w020-process-scripting/

Exemple :

  • récupérer un champ du process 1 quand l’activité XXX est validée
  • et valoriser un champ du processus 2 avant d’afficher l’activité YYY
MyProcess1.postValidate = function(context) {  
    var step = context.getActivity().getStep();  
    if (step=="XXX") {
        var val = context.getDataValue("Field", "someFieldName");  
        this.getGrant().setParameter("MY_VALUE", val);
    }
}
MyProcess2.postLock = function(context) {  
    if (context.getActivity().getStep()=="YYY") {
        var val = this.getGrant().getParameter("MY_VALUE");
        if (val) context.setDataFile("Field", "someOtherField", val);
    }
};

Dans tous les cas vous pensez solution alors qu’on ne connait pas votre besoin et qu’il ne faut pas nécessairement faire comme cela. Avez vous suivi la formation de base ?


#5

J’ai suivi les training de A à Z. Je ne sais pas si c’est de cette formation dont vous parlez


#6

Il serait intéressant de suivre la formation avancée avec un formateur pour répondre à ce genre d’interrogation, car vous arrivez aux limites d’une auto-formation qui traite que de cas généraux.

Il faut passer à une pratique sur des cas métier réels pour comprendre les bons design-patterns.


#7

Et quelle est la procédure à suivre pour bénéficier de cette formation?