Partager via


Comment analyser plusieurs objets du même type dans une règle d’entreprise

Dans plusieurs scénarios, vous rédigerez une règle d'entreprise en fonction d'un type et chaque instance de ce type déclarée dans le moteur devra être analysée et traitée séparément par la règle. Dans certains scénarios, cependant, vous souhaiterez analyser simultanément plusieurs instances d'un certain type dans une règle.

Prenons l’exemple d’une règle qui utilise des instances de la classe FamilyMember .

IF FamilyMember.Role == Father  
AND FamilyMember.Role == Son  
AND FamilyMember.Surname == FamilyMember.Surname  
THEN FamilyMember.AddChild(FamilyMember)  

La règle identifie un membre de famille instance qui est un Père et un autre instance qui est un Fils. Si les instances sont liées par le nom de famille, le Fils instance est ajouté à une collection d’enfants sur le Père instance. Si chaque instance FamilyMember était analysé séparément dans la règle, la règle ne serait jamais déclenchée, car dans ce scénario, le Membre de famille n’a qu’un seul rôle : Père ou Fils.

De ce fait, vous devez indiquer au moteur que plusieurs instances doivent être analysées ensemble dans une règle. En outre, vous devez définir un moyen de différencier l'identité de chaque instance dans la règle. La propriété ID d’instance est utilisée pour fournir cette fonctionnalité. Ce champ est disponible dans la fenêtre Propriétés lors de la sélection d'un fait dans l'Explorateur de faits. Vous devez modifier la valeur du champ avant de déplacer un fait ou un membre dans une règle.

À l’aide de la propriété ID d’instance , la règle est reconstruite. Pour les arguments de règle qui utilisent le instance son de FamilyMember, le champ ID d’instance passe de 0 à 1 par défaut. Lorsque l’ID d’instance est remplacé de 0 et que le fait ou le membre est déplacé dans l’éditeur de règle, la valeur ID d’instance s’affiche dans la règle après la classe .

IF FamilyMember.Role == Father  
AND FamilyMember(1).Role== Son  
AND FamilyMember.Surname == FamilyMember(1).Surname  
THEN FamilyMember.AddChild(FamilyMember(1))  

Supposons maintenant qu’un Père instance et un Fils instance soient déclarés dans le moteur. Le moteur évalue la règle par rapport aux diverses combinaisons d'instances. En supposant que le Père et le Fils instance avoir le même nom de famille, le Fils instance sera ajouté au Père instance comme prévu.

Notes

L’ID d’instance est utilisé uniquement dans le contexte d’une évaluation de règle donnée. Elle n'est pas ajoutée à une instance d'objet au cours de l'exécution de la stratégie et elle n'a pas de lien avec l'ordre dans lequel les objets sont déclarés. Chaque instance d'objet est évaluée dans tous les arguments de règle associés à ce type.