1 regelwerk system zur plattformunabhängigen definition und abfrage von regeln m.arikan
TRANSCRIPT
1
REGELWERK
System zur plattformunabhängigen Definition und
Abfrage von Regeln
M.ARIKAN
2
REWE„Business Rules Engine“
Ohne REWE
Appl1
Appl3Appl2Appl1
Appl3Appl2
Regel1
Regel3
Regel2
Regel1
Regel3Regel2
AnwenderTechniker
.....
.....
„Reduziert die Programmwartung drastisch“
„Vermindert die EDV-Aufwände weitgehend (keine unnötigen Programmeingriffe!)“
„Ermöglicht externe Einflussnahme in die Abläufe“
Mit REWE
3
REGELWERK
Entscheidungstabelle
LD: SPARTE: USERID:
Wien 203 U000022
Wien 206 U000023
Wien 207 U000025
In vielen Programmen fixcodiert!
4
REGELWERK
Regel
Wenn LD = ? UND SPARTE = ? DANN USERID = ?
Werte:
LD Wien Wien Wien
SPARTE 203 206 207
USERID U000022 U000023 U000025
Abfrage:
EINGABE.VARIABLE[1] = ‚LD‘;
EINGABE.WERT[1] = ‚WIEN‘
EINGABE.VARIABLE[2] = ‚SPARTE‘;
EINGABE.WERT[2] = ‚203‘
AUSGABE[ ] = REWE („SCHULUNG“, EINGABE[ ] )
AUSGABE.VARIABLE[1] = ‚USERID‘;
AUSGABE.WERT[1] = ‚U000022‘
Regelname: Schulung
5
REGELSYNTAX
( )<Variable> <Wert>
UND/ODER
Bedingung:
Ergebnis:
<Variable> <Wert>
UND
=
WENN
DANN*
>= >
<= <
<>=
*
6
AUSWERTUNGSTECHNIK
Die Regeln werden für die Laufzeitauswertung in die Postfixnotation umgewandelt. Dadurch ist die Auswertung mit einmaligem Abarbeiten des Regelstrings möglich.
Regel in herkömmlicher Notation:
WENN A>2 UND B<3 DANN C = 5
Werte zur Laufzeit: A=3, B=1
Postfix:
A2 > B3< UND C5 =
I II III IV
STACK I II III IV
T T T
T T
T
Antwort:
C = 5
7
REGELWERK
REWE Verfügbarkeit
Webserver
REWE
EDITOR
rewe.regel.auswerten
JDBC
P16T8000
HOST
DB2
FAT-CLIENT Appl.
Lotus Notes usw...
ESP
(P16U8000)
ONLINE
*Geringfügiger Anpassungsaufwand erforderlich <= 1PT
OFFLINE
VB C++
JINTEGRA
REWE (*)
JAVA
8
TupelTupel
Tupel
DATENHALTUNG*
Regelstamm
AA
Laufzeitkomponente
Version
Wert
Wert
Wert
Wert
*) DB2 für Online-Abfragen, XML für Offline-Abfragen
D16T900
D16T905
D16T903
Regelbedingungen
D16T904
D16T901
D16T904
RegelergebnisseD16T902
9
EXEC SQL DECLARE D16T903 TABLE ( REGELKURZBEZ CHAR(10) NOT NULL, GRUPPENNR DECIMAL(6, 0) NOT NULL, ART CHAR(1) NOT NULL, LAUFNR_IREGLWRT DECIMAL(6, 0) NOT NULL, WERT CHAR(30) NOT NULL ) END-EXEC.
DATENHALTUNG*
EXEC SQL DECLARE D16T900 TABLE ( REGELKURZBEZ CHAR(10) NOT NULL, REGEL_USERID CHAR(8) NOT NULL, AENDERUNGSDATUM DATE NOT NULL, LETZTEVERSION DECIMAL(6, 0) NOT NULL, REGELBESCHREIBUNG VARCHAR(250) ) END-EXEC.
EXEC SQL DECLARE D16T905 TABLE ( REGELKURZBEZ CHAR(10) NOT NULL, VERSION DECIMAL(6, 0) NOT NULL, LAUFNR_IREGLFRG DECIMAL(6, 0) NOT NULL, FREIGEBER_USERID CHAR(8) NOT NULL, AENDERUNGSDATUM DATE NOT NULL, REGELSTRING VARCHAR(3950) NOT NULL ) END-EXEC.
EXEC SQL DECLARE D16T901 TABLE ( REGELKURZBEZ CHAR(10) NOT NULL, LAUFNR_IRGBEDNG DECIMAL(6, 0) NOT NULL, KLAMMERA CHAR(1), OPERAND_IRGBEDNG CHAR(20), OPERATOR CHAR(2), KLAMMERZ CHAR(3), VERBINDUNGSELEMENT CHAR(4) ) END-EXEC.
EXEC SQL DECLARE D16T902 TABLE ( REGELKURZBEZ CHAR(10) NOT NULL, LAUFNR_IREGLERG DECIMAL(6, 0) NOT NULL, OPERAND_IREGLERG CHAR(20) ) END-EXEC.
EXEC SQL DECLARE D16T904 TABLE ( OPERAND CHAR(20) NOT NULL, OPERANDTYP CHAR(1) NOT NULL, LAENGE CHAR(10) NOT NULL, BESCHREIBUNG VARCHAR(250) NOT NULL ) END-EXEC.
*) Die SQL-Darstellung der Tabellen
10
BERECHTIGUNGSKONZEPT
U000022
BEST
BST*
BESTBRIEF
U000023
U000024
U000025
REWE
SLSQC
SLSFED
PROGSWITCH
SLSFED03
QC-LD00
BST*
BST*
BST*
USER GRUPPE REGELN
ADMINISTRATOR
BST* ) Berechtigungsstufe:
Regelbetreuer (Modifikationsberechtiung für Regeldefinitionen und Wertebereiche),
Wertebetreuer (Modifikationsberechtigung für Wertebereiche),
Anwender (keine Modifikationsberechtigung),
Alle können die Regeln und Wertebereiche ihrer Gruppe anschauen und online testen.
SLSIBMIN
..... .....
11
REGELSTATI
OFFEN
UNVOLLSTÄNDIG
ENTWURF
FREIGEGEBEN
FENTWURF
Regel angelegt
Freigegeben
Regel kopieren
Freigegeben Werte angelegt
Werteangelegt
12
REWE-FRONTEND
REGELFILTER
LOGIN
ÜBERSICHT
VARIABLEN REGEL WERTETABELLE TESTEN
DETAILS REGELWERTE
VERSIONIEREN
SYSTEMADMIN
REGEL-BETREUER
REGELWERT-BETREUER
ANWENDER
REWE- MASKENHIERARCHIE
13
ZUR ZEIT IN REWE
BEST BRIEFBAUSTEINE
SLS DIVERSE REGELN
REWE STEUERUNG
14
15
16
REWE IN /var/cvs/applications
17Mitarbeiter
userid : String_10
BlattKnoten
2
+blaetter
2
+subknoten
+2
FreigeberVersion
nummer : Ganzzahldatum : Datumbemerkung : String_256 10..n
+freigeber
1
+version
0..n
ErstellerBedingung
result : Boolean
Ergebnis
Regel
kurzBez : String_10beschreibung : String_256datum_aend : Datum
1..n+version
1..n
10..n
+ersteller
1
+regel
0..n1
+bedingung
1
0..n+ergebnisse 0..n
Konstante
fixValue : String_Unlimited
KonstanteTupel
0..n
+konstanteTupel
0..n
1..n+konstanten 1..n
Variable
value : String_40beschreibung : String_256
Numerisch
vorzeichen : String_1vorKomma : GanzzahlnachKomma : GanzzahlAlphaNumerisch
laenge : Ganzzahl
DatenTyp
name : String_40
Operand
name : String_40
1+datenTyp 1
Operator
name : String_40value : String_10
Ausdruck
2+operanden
21
+operator1
Verknuepfer
linkeseite : Booleanrechteseite : Boolean
Vergleicher
linkeseite : String_Unlimitedrechtseite : String_Unlimited
Kleiner
Kleingleich
Groesser
Groessergleich
Gleich
Ungleich
And Or
REWE MODELL
18
Beliebig lange Regeln ermöglichen
Beim Einstieg nur die Regeln des Anwenders laden
Filter & Suchfunktion & Auswahl der Reihenfolge für Variablen
Filter & Suchfunktion & Auswahl der Reihenfolge für Regeln
Filter & Suchfunktion & Auswahl der Reihenfolge für Werte
Offline Fähigkeit (*)
Verbesserungsvorschläge
HOST UPRO Verbessern
Suchlogik beschleunigen & Regel- Variablenoptionen einbauen
JAVA & COBOL API‘s zur Regelverwaltung erstellen
*Geringfügiger Anpassungsaufwand erforderlich <= 1PT