2016-07-28 12 views
-2

Angenommen, ich habe 1000 Regeln in Sabol und 20 Kunden. Ich möchte jene Regeln auslösen, die für einen Kunden spezifisch sind. Es ist möglich, dass eine Regel für mehr gilt als für den Kunden. Ich weiß, welcher Kunde die Anwendung so verwendet, dass ich eine Liste der für den Kunden geltenden Regeln und eine Liste der Fakten, die ich aus der Datenbank abrufen muss, um diese Regeln auszulösen, erhalten möchte. Nachdem ich beide Listen zuerst bekommen habe, bekomme ich die Werte von db und feuere dann alle Regeln für diesen bestimmten Kunden.Get Liste der Fakten von Regel

+0

Zeigen Sie Ihren Code. –

+0

@JeroenHeier Ich habe es noch nicht geschrieben .... das ist die Anforderung, die mir gegeben wird ... Im Moment überprüfe ich, ob es durch sabbern oder nicht gemacht werden kann ... – pratik2392

+0

Ok. Also, was hält dich davon ab, ich meine, was ist das Problem, wo bist du stecken – Maverick

Antwort

0

Der beste Weg nach vorne ist hier, eine intelligente Verpackung zu verwenden. Legen Sie Regeln exklusiv für einen Kunden in seinem eigenen Paket fest. Verschiedene Sätze von gemeinsamen Regeln können in anderen Paketen platziert werden.

Sie würden zum Beispiel die kbases wie folgt definieren:

<?xml version="1.0" encoding="UTF-8"?> 
<kmodule 
     xmlns="http://jboss.org/kie/6.0.0/kmodule"> 
    <kbase name="acme" 
      packages="com.dunder.rules.acme, com.dunder.rules.paper"> 
     <ksession name="acmeSession" type="stateless"/> 
    </kbase> 
    <kbase name="pipepiper" 
      packages="com.dunder.rules.pipepiper, com.dunder.rules.paper"> 
     <ksession name="piedpiperSession"type="stateless" /> 
    </kbase> 
</kmodule> 

Die oben genannten Regeln für „Acme“ haben würde und „Rattenfänger“, während beide „Papier“ Regeln.

+0

ok ... aber ich sehe nicht, wie es mein Problem löst .... Hier haben Sie ein Beispiel von 2 Kunden genommen ... Nehmen wir ein Szenario, in dem wir 3 Kunden A, B und C haben 10 Regeln, in denen 5 Regeln für A sind, 4 Regeln für B und 6 Regeln für C. ABC haben alle Regeln, die nur für sie gelten. Ich weiß nicht, welche Regeln es sind, einige Regeln sind üblich alle und einige sind gemeinsam für AB und BC. Ich weiß, welcher Kunde sich beim Start der App angemeldet hat. Daher möchte ich die Liste der Regeln abrufen, die von drl ausgegeben werden müssen, und die Liste der Fakten, die benötigt werden, um sie auszulösen. – pratik2392