ZusammensetzungKonzept, um Zusammensetzungen von Spezifikationen aus Einzelkomponenten im EH&S Expert abzubilden.
Viele Spezifikationen im EH&S sind Zusammensetzungen und bestehen aus mehreren Komponenten. Häufig können dabei Daten dieser Spezifikationen aus den Daten ihrer Komponenten abgeleitet werden. Um derartige Sachverhalte im EH&S Expert abbilden zu können, gibt es das Konzept der Zusammensetzung
.
Die Zusammensetzungen befinden sich in der Fakt-Sektion und werden mit COMPOSITION <Zusammensetzungsname> eingeleitet und mit END beendet.
Beispiel
Für eine Spezifikations-Zusammensetzung soll die Dichte berechnet werden. Diese berechnete Dichte soll der Mittelwert der Dichten der Komponenten sein, gewichtet nach deren prozentualen Anteilen in der Spezifikations-Zusammensetzung. Die Fakt-Sektion könnte folgendermaßen aussehen:
FACTS | |||
DICHTE, | |||
COMPOSITION GENAUE_STOFFZUSAMMENSETZUNG | |||
PROZENT, | |||
DICHTE | |||
END | |||
Die Zusammensetzung Genaue_Stoffzusammensetzung
wird über eine Mapping-Tabelle mit einer Bewertungsart vom Typ Zusammensetzung
aus dem EH&S verbunden. Für jede Komponente dieser Spezifikations-Zusammensetzung wird eine Instanz der Zusammensetzung im EH&S Expert angelegt.
Wenn Sie ein Regelwerk mit Hilfe des Regeleditors erstellen, dann erzeugt dieser automatisch eine Regeldatei mit der korrekten Syntax.
Die Fakten einer Zusammensetzung werden über <Zusammensetzungsname>.<Faktname> angesprochen.
Eine Regel, die einen Fakt aus einer Zusammensetzung enthält, wird für jede Instanz der Zusammensetzung, d.h. für jede Komponente ausgeführt. Wenn Sie wollen, daß eine Regel nur für bestimmte Komponenten ausgeführt wird, dann müssen Sie die IF-Bedingung entsprechend angeben.
Achtung
Wenn eine Regel Fakten mehrerer Zusammensetzungen enthält, dann wird sie für alle Kombinationen der Instanzen der Zusammensetzungen ausgeführt. Bei unbedachter Anwendung auf große Datenmengen erfolgen dann möglicherweise sehr viele Regelanwendungen.
Eine Überprüfung auf 100% in einer Spezifikations-Zusammensetzung könnte folgendermaßen aussehen:
FACTS | ||||
SUMPROZENT := 0, | ||||
COMPOSITION COMP | ||||
PROZENT | ||||
END | ||||
RULES | ||||
RULE SummiereProzent | ||||
IF COMP.PROZENT > 0 | ||||
THEN | ||||
SUMPROZENT := SUMPROZENT + COMP.PROZENT | ||||
END | ||||
RULE AbortIfNot100 | ||||
IF SUMPROZENT <> 100 | ||||
THEN | ||||
ERROR("EC$137", "&&&&", "Die Summe der Prozentzahlen ist fehlerhaft!"), | ||||
ABORT() | ||||
END | ||||
END | ||||
In diesem Beispiel wird die Regel SummiereProzent
für jede Instanz der Zusammensetzung COMP
, also für jeden Inhaltsstoff, genau einmal ausgeführt. Dadurch wird in dem Fakt SUMPROZENT
die Prozentzahl aufsummiert. In einer zweiten Regel wird bei Prozentzahlen ungleich 100 eine Fehlermeldung generiert.
Hinweis
Wenn für eine Zusammensetzung keine Instanz vorhanden ist, wird eine entsprechende Regel nicht ausgeführt. Bei einer Regel die mehrere Zusammensetzungen betrifft, genügt es, wenn eine Zusammensetzung keine Instanz enthält, damit die Regel nicht ausgeführt wird.