Nicht sicher, dass ich Ihre Frage verstanden habe.
Ich habe Sie eine Regel, die besagt:
"dann myObj.count MyObj.count + 1 setzen;" dann werden Sie so viele Zählvariablen wie myObj-Objekt haben.
Wenn Sie also in den Arbeitsspeicher ONE myObj einfügen, dann haben Sie am Ende und während der Ausführung nur EINEN myObj.
Jede Regel wird so oft ausgelöst, wie Sie "Matching" im Arbeitsspeicher haben.
Wenn Sie also 5 myObj in der Engine übergeben, haben Sie 5 myObj.count, die jeweils einen Endwert von '5' haben.
Wenn Sie statische verwenden, wird es das gleiche sein.
Außer, wenn Sie den Motor in einem Stateful-Modus verwenden (was eigentlich ziemlich selten ist).
Das BRMS soll ein Decision Service sein und damit eine Entscheidung über die übergebenen Parameter (und natürlich die Regeln) treffen.
Ich sage nicht, dass Sie es nicht in einem Stateful-Modus verwenden können, aber diese Verwendung ist selten.
Wenn Sie dies tun, dann ist ja die vorherige Antwort korrekt und Sie werden mit einem unendlich steigenden Wert enden. Bei jedem Lauf um fünf erhöht.
BTW: ich dies nie versucht, weil es eine ganze Reihe von Attributen ist die Anzahl der Regeln zu erhalten, die nicht und Zeit der Ausführung gebrannt oder und so weiter ...
Um es zusammenzufassen, haben Sie, was Sie haben in das Arbeitsgedächtnis. Das heißt, wenn Sie eine Instanz eines Objekts haben, erzeugt die Engine zur Laufzeit nie mehr Instanzen. Das würde aufgrund des RETEPlus-Algorithmus zu Wahnsinn (::) führen. (die auch nicht häufig verwendet wird)
Die einzige Möglichkeit, mehr Instanzen von Objekten zu erstellen, besteht darin, es selbst zu tun, direkt über die Regeln. Zum Beispiel: Fügen Sie den Meldungen des Berichts eine Nachricht "Hallo Welt" hinzu. "
Ich hoffe, es hilft