Comment créer un objet (appeler le constructeur) à partir d'un membre de la BOM sur une colonne d'action de la table de décision?

StackOverflow https://stackoverflow.com//questions/25034462

  •  21-12-2019
  •  | 
  •  

Question

J'ai 2 arraylist de type type1 (disons-le) en tant que paramètres de règles sur mon projet de règle. Un pour dans un autre pour sortir. Sur mon rythmeFlow, j'ai une tâche d'action initiale qui initialise le paramètre de règles d'exercice. Depuis que nous avons une arrayliste comme entrée, je devrai "itérer" sur celui-ci que je sais comment le faire.

Mon problème vient après. Dans la tâche suivante de mon rythmeFlow, j'ai une tâche de règle où j'ai ajouté toutes mes tables de décision qui ont des conditions préalables. Sur la plupart des tables de décision, plus d'une règle peut être virée. Ce que je veux réaliser, c'est pour chaque règle tirée, je souhaite ajouter un nouvel objet de type type1 à la flambée de sortie. Le problème vient ici. Si j'ai 3 règles, vous avez en fait 3 objets de type type1 étant ajouté à la flamme de sortie, mais tous les 3 sont livrés avec les mêmes valeurs. On dirait que tous sont "pointant" sur le même objet.

Ma question est de créer une colonne d'action pour créer un nouvel objet (appeler le constructeur) de type type1 afin d'exécuter le reste des actions de la règle qu'il écrit sur ce nouvel objet de type1? Je sais que je peux y parvenir si je crée autant de variables de type de règles de type type1 que de nombreuses règles que j'ai et utilisez chacune pour chaque règle, mais de cette façon, ma table devient énorme (latéralement) et ce n'est pas comme nous le voulons.

Type1 et les arraylistes sont des membres de la BOM.

Edit: Vous avez oublié de mentionner que j'utilise l'algorithme Reteplus, avec "Aucun" comme critère de sortie et commande et BAL dynamique pour la sélection de la règle d'exécution.

J'espère que je me suis expliqué assez bien pour que quelqu'un puisse m'aider. Merci d'avance.

Était-ce utile?

La solution

Voici la technique pour réaliser ce que vous voulez, en 3 étapes:

Dans l'éditeur de nomenclature, créez une méthode dans la classe de type1 (ou toute autre classe en fait).Définissez son type de retour sur TYPE1.Appelez cela CreateType1, par exemple.Ajoutez autant d'arguments de méthodes que vous devez initialiser votre objet.Rendre statique.

le verbaliser d'une manière qui a du sens pour l'auteur de la règle.Quelque chose comme : Un nouveau type1, avec nom défini sur {0}, valeur définie sur {1} // Voici un exemple, adaptez-le à la liste des arguments que vous souhaitez avoir.

Implémentez la méthode comme pièce de script B2X:

// calling the appropriate constructor from the XOM class.
return new mypackage.TYPE1(arg1, arg2); 

sauvegarder la naissance.

Utilisez cette nouvelle phrase, dans les constructions comme: Ajoutez un nouveau type1, avec nom défini sur "Joe", valeur définie sur 12 à la liste de sortie;

Typiquement, vous pouvez l'utiliser dans une colonne d'action d'une table de décision.L'éditeur fera mapper chaque espace réservé de la phrase à une sous-colonne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top