Show TOC

  Erklärungsregel

Definition

Ergänzende Regel innerhalb eines EH&S Expert Regelwerks, welche die Art und den Detaillierungsgrad der tabellarischen Erklärung zu den Ergebnissen des Regelwerklaufes festlegt.

Struktur

Der EH&S Expert ist um entsprechende Syntaxelemente erweitert, um es dem Regelwerkentwickler zu ermöglichen, Erklärungen zum Regelwerk zu formulieren. Um die Erklärungsregeln von den übrigen Regeln eines Regelwerkes zu trennen, werden sie mit demSchlüsselwort EXPLAIN eingeleitet. Die Erklärungsregeln werden erst am Ende des eigentlichen Regelwerkslaufs ausgeführt, wenn alle übrigen Regeln abgearbeitet sind und sämtliche End- und Zwischenergebnisse vorliegen.

Eine Erklärungsregel bewirkt, dass Regelwerksdaten in Form einer Tabelle ausgegeben werden. Die Datensätze der Tabelle ergeben sich aus den Instanzen der in der Erklärungsregel verwendeten Records und Zusammensetzungen. Daraus können sich auch verschachtelte Untergruppen innerhalb der Tabelle ergeben, wenn mehrere Records und Zusammensetzungen in einer Erklärungsregel ausgegeben werden.

Durch mehrere Erklärungsregeln können mehrere Tabellen zu einer Gesamterklärung zusammengestellt werden. Die Tabellen werden in einer Baumstruktur angezeigt.

Auch Erklärungsregeln haben eine Bedingung, mit der die Auswahl der Daten eingeschränkt werden kann.

Mit den folgenden Befehlen können Sie die Tabellen zur Erklärung gestalten.

Funktion

Bedeutung

HEADLINE

Überschrift für die Tabelle. Die Überschrift liegt bei der Anzeige in der Baumstruktur eine Ebene höher. Dadurch kann die Tabelle auf- und zugeklappt werden.

HEADER

Kopfzeile der Tabelle, die am Anfang der Tabelle einmalig ausgegeben wird.

GROUPHEADER

Kopfzeile einer Untergruppe (Record innerhalb einer Zusammensetzung, ANY innerhalb eines Records oder einer Zusammensetzung.)

LINE

Tabellenzeile

GROUPFOOTER

Fußzeile einer Untergruppe

FOOTER

Fußzeile, die am Ende der Tabelle einmalig ausgegeben wird.

INDENT(n)

Einrückung der Tabelle in einer Baumstruktur

Beachten Sie hierbei das folgende:

  • Die Funktionen außer INDENT können eine variable Anzahl von Parametern haben, die die jeweiligen Spalten der Tabelle befüllen. Als Parameter können Textkonstanten, Faktnamen, Ausdrücke inklusive aller Funktionen des EH&S Expert, sowie Sonderfunktionen genutzt werden.

  • Enthält die Erklärungsregel lediglich Fakten ohne Record- oder Zusammensetzungsbezug, dann besteht die erzeugte Tabelle nur aus einer einzelne Zeile, zuzüglich der optionalen Kopf- und Fußzeile.

  • Enthält die Erklärungsregel Fakten einer einzelnen Zusammensetzung oder eines einzelnen Records, dann wird pro Instanz eine Datenzeile ausgegeben, sofern nicht über die Bedingung eingeschränkt wird. Das gleiche gilt, wenn die Erklärungsregel die ANY-Funktion auf einen einselnen Fakt anwendet. GROUPHEADER und GROUPFOOTER machen in diesem Fall keinen Sinn.Sie erscheinen ebenso wie HEADER und FOOTER einmalig am Anfang und Ende der Tabelle.

  • In HEADER und FOOTER sind Fakten mit Bezug auf Zusammensetzungen oder Records nicht erlaubt.

  • Enthält die Erklärungsregel eines der folgenden Elemente, dann bildet die Tabelle eine zweifach oder dreifach verschachtelte Schleife über die jeweiligen Instanzen ab:

    • Fakten eines Records innerhalb einer Zusammensetzung oder

    • Einzelne ANY-Funktion auf einen Fakt mit Bezug auf

      • einen Record oder

      • eine Zusammensetzung oder

      • einen Record innerhalb einer Zusammensetzung

  • Hier können GROUPHEADER und GROUPFOOTER eingesetzt werden, um die inneren Schleifen jeweils mit einer Kopf- und Fußzeile zu versehen.

  • Enthält die Erklärungsregel Fakten zweier verschiedenen Zusammensetzungen, Records, ANY-Funktionen oder beliebige Mischungen, dann bildet die Tabelle das Kreuzprodukt der Instanzen ab, das üblicherweise durch eine Bedingung eingeschränkt wird. Hier kommt es darauf an, welche Zusammensetzung, welcher Record oder welche ANY-Funktion in der Erklärungsregel zuerst genannt wird. Das zuerst genannte Element bestimmt die äußere Schleife, usw.. Auch hier können wieder GROUPHEADER und GROUPFOOTER zum Einsatz kommen, die jedoch nicht auf die Elemente der jeweils äußeren Schleife referenzieren dürfen.

  • Daten, die in aufeinanderfolgenden Datenzeilen identisch sind, werden nicht wiederholt.

  • Sie können auch mehrere HEADER, FOOTER, GROUPHEADER, GROUPFOOTER und LINE Kommandos hintereinander schreiben, um eine mehrzeilige Ausgabe zu erreichen.

Bei der Anzeige der Erklärung liegen die verschiedenen Elemente der Erklärung auf unterschiedlichen Ebenen einer Baumstruktur:

Funktion

Ebene

HEADLINE

1

HEADER

2 mit HEADLINE, 1 ohne HEADLINE

GROUPHEADER

2 mit HEADLINE, 1 ohne HEADLINE.(tiefer wenn verschachtelt)

2 mit HEADLINE, 1 ohne HEADLINE (Ebene GROUPHEADER + 1, wenn in GROUPHEADER verschachtelt)

GROUPFOOTER

Ebene GROUPHEADER + 1

FOOTER

2 mit HEADLINE, 1 ohne HEADLINE

Mit dem Kommando INDENT können Sie alle Elemente der Tabelle um eine oder mehrere Ebenen nach rechts verschieben. Sie können mehrere Tabellen unter einem Hauptknoten gruppieren.

Beispiel: Dichte-Regelwerk (DEMO2)

Im folgenden ist eine Erklärung zu dem mit EH&S Expert ausgelieferten Demo-Regelwerk zur Berechnung der Dichte gezeigt. Die Erklärung erscheint in Form einer einfachen Tabelle ohne Schachtelungen. Die Erweiterungen gegenüber der gegenwärtigen Version ohne Erklärung sind fett dargestellt:

Hinweis Hinweis

Erklärungen können Sie im Regeleditor des EH&S Expert nur im Multiline-Modus anzeigen und bearbeiten. Wählen Sie hierzu Anfang des Navigationspfads Tools Navigationsschritt Optionen Ende des Navigationspfads und setzen Sie auf der Registerkarte Edit das Kennzeichen Use Multiline Editbox.

Ende des Hinweises

FACTS

TmpDensity := 0,

Density(OUT),

COMPOSITION COMP

Percent(IN),

PercentUP(IN),

PercentLOW(IN),

Density(IN),

Ident(IN) // gemappt auf z.B. I:NAM,PROD

END

RULES

RULE SUM_Density

If TRUE()

THEN

TmpDensity := TmpDensity + (comp.percent/100)*comp.density

END

RULE SET_Density

If TmpDensity > 0 THEN

Density := TmpDensity

END

// Berechne prozentualen Anteil aus Ober- und Untergrenze falls

//Durchschnittswert null ist

RULE COMPUTE_PERCENTAGE_AVERAGE If Comp.Percent = 0

THEN

COMP.Percent := ( COMP.Percentlow + COMP.Percentup ) / 2

END

EXPLAIN Density

IF TRUE()

THEN

     HEADLINE("Density Calculation")

     HEADER("Component"   , "Percent"    , "Density"    , "weighted density"/right)

     LINE   (Comp.Ident    , Comp.Percent, Comp.Density,

                                              (Comp.Percent/100)*Comp.Density)

     FOOTER("average density", ""           , ""           , Density)

END

END

Die auf diese Weise generierte Erklärung sieht dann wie folgt aus:

Density Calculation

Component percent density weighted density

sub1 50 10 5

sub2 20 20 4

sub3 30 30 9

average density 18

Sonderfunktionen

Die untenstehenden Sonderfunktionen stehen Ihnen zur Verfügung. Sie werden im gespeicherten Freitext der Erklärung in einer eigenen Syntax markiert, so dass sie zur Anzeige der Erklärung in der Anmeldesprache aufgelöst werden.

Funktion

Bedeutung

"[#<Phrasenschlüssel>#]“

Die Syntax für interne Phrasenschlüssel dient als Verweis auf eine Phrase im EH&S. Dies kann für Spaltenüberschriften aber auch für Kommentare, wie z.B. Gesetzeshintergründe genutzt werden. Der Wert wird standardmäßig dem Phrasenmapping entnommen. Wird dort kein Eintrag gefunden, dann wird er ohne Warnung direkt als EH&S-Phrasenschlüssel interpretiert.

DESC( <Faktname>)

Verweis auf einen Faktnamen, der im Mapping auf ein EH&S-Datenelement abgebildet sein muss. Es wird dann die mehrsprachige Beschreibung des Datenelements aus dem ABAP Dictionary angezeigt.

PHRCODE( <Faktname>)

In der Erklärung wird der Phrasencode statt der Phrasentext angezeigt, sofern der Fakt Phrasenschlüssel enthält.

Die Erklärungsregel für das Beispielregelwerk DEMO1 könnte damit so aussehen:

  EXPLAIN

IF TRUE()

  THEN

HEADER( DESC( FlashPoint), " ", DESC( RPhrase)),

     LINE(   FlashPoint,   "->", RPhrase)

  END

Phrasen

In der Erklärung enthaltene verphraste Werte sind ebenfalls in einer eigenen Syntax markiert, so dass nicht der interne Phrasenschlüssel angezeigt wird, sondern der Phrasencode und der Phrasentext in der Anmeldesprache. Zur Identifizierung von Phrasen gelten folgende Kriterien:

  • Der entsprechende Fakt unterliegt dem Phrasenmapping

  • Die interne Phrasen-ID entspricht der Syntax [#...#]

  • Die externe Phrasen-ID enthält einen Bindestrich als Trenner zwischen Katalog und Schlüssel

    Temporärfakten

Im Regelwerk genutzte Temporärfakten, die für die Erklärung notwendige Zwischenergebnisse speichern, sollten vom Regelwerkentwickler zusätzlich ins Mapping aufgenommen werden und auf eine externe ID gemappt werden, um daraus eine korrekte mehrsprachige Bezeichnung ableiten und Phrasen identifizieren zu können.

Identifikation von Komponenten

Oft greifen Regelwerke auf Daten der Komponenten einer Spezifikation zu. Für eine sprechende Erklärung ist es notwendig, die Komponenten sprechend zu identifizieren. Hierzu sollten Sie zusätzliche IN-Fakten ins Regelwerk aufnehmen, die aussagekräftige Identifikatoren für die Komponenten darstellen.

Formatierung

Um Formatierungen für die Spalten oder Zeilen zu ermöglichen, stehen Ihnen die folgenden Optionen zur Verfügung. Sie werden an den jeweiligen Spaltenparameter oder für Zeilenformate an den letzten Spaltenparameter angehängt.

Option

Bezug

Bedeutung

/RIGHT

Spalte

Rechtsbündige Ausgabe des Spaltenwerts

/LEFT

Spalte

Linksbündige Ausgabe des Spaltenwerts (Voreinstellung)

/MID

Spalte

Zentrierte Ausgabe des Spaltenwerts

/WIDTH=n

Spalte

Maximale Spaltenbreite (n = Anzahl Zeichen)

/NL

Zeile

Zusätzliche Leerzeile nach der Zeile

/NLBEFORE

Zeile

Zusätzliche Leerzeile vor der Zeile

/LINE

Zeile

Linie nach der Zeile

/LINEBEFORE

Zeile

Linie vor der Zeile

Optionen, die sich auf Spalten beziehen, werden vom HEADER und GROUPHEADER an die darunter liegenden Datenzeilen und Fußzeilen weitergegeben.