1 REGELWERK System zur plattformunabhängigen Definition und Abfrage von Regeln M.ARIKAN.

Post on 06-Apr-2015

115 views 0 download

Transcript of 1 REGELWERK System zur plattformunabhängigen Definition und Abfrage von Regeln M.ARIKAN.

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