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: Wien203U Wien206U Wien207U In vielen Programmen fixcodiert!
4 REGELWERK Regel Wenn LD = ? UND SPARTE = ? DANN USERID = ? Werte: LD WienWienWien SPARTE USERID U000022U000023U 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] = U Regelname: Schulung
5 REGELSYNTAX () UND/ODER Bedingung: Ergebnis: 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 TTT TT 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 Tupel DATENHALTUNG* Regelstamm A A Laufzeitkomponente Version Wert *) DB2 für Online-Abfragen, XML für Offline-Abfragen D16T900 D16T905 D16T903 Regelbedingungen D16T904 D16T901 D16T904 Regelergebnisse D16T902
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 U BEST BST* BESTBRIEF U U U REWE SLSQC SLSFED PROGSWITCH SLSFED03 QC-LD00 BST* USERGRUPPEREGELN 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 FreigegebenWerte angelegt Werte angelegt
12 REWE-FRONTEND REGELFILTER LOGIN ÜBERSICHT VARIABLENREGELWERTETABELLETESTEN DETAILSREGELWERTE 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
17 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 APIs zur Regelverwaltung erstellen *Geringfügiger Anpassungsaufwand erforderlich <= 1PT