Constraints: Bedingungen angeben

Im Bedingungsteil eines Constraints, der durch das Schlüsselwort CONDITION: gekennzeichnet ist, legen Sie fest, wann ein Constraint gültig sein soll. Die Bedingung hat die Funktion eines Filters, der die relevanten Fälle filtert. Bei RESTRICTIONS hingegen wird angegeben, welche Konsistenzprüfungen ein Constraint durchführen soll.

Sie können z. B. angeben, daß ein Constraint nur ausgewertet werden soll, wenn das Merkmal CPU des Materials ‘PC’ den Wert ‘586’ hat:

OBJECTS: PC IS_A (300) PC

CONDITION:

PC. CPU = ‘586’

Hinweis Hinweis

Wenn Sie mehrere Bedingungen angeben möchten, werden diese über den Operator AND verbunden:

CONDITION: PC.CPU = ‘586’ and PC.Festplatte = ‘1620’

Ende des Hinweises

Bedingungen im Restriktionsteil

Bei einigen einfachen Bedingungen ist es auch möglich, die Bedingung direkt im Restriktionsteil anzugeben:

OBJECTS: PC IS_A (300) PC

RESTRICTIONS:

PC.Festplatte = ‘1620’ if PC.Gehaeuse = ‘Tower’,

PC.Festplatte = ‘850’ if PC.Gehaeuse = ‘Minitower’

Bei einem Tower kann die Festplatte nur mit dem Wert 1620 bewertet werden, bei einem Minitower nur mit 850.

PART_OF/SUBPART_OF

Wenn in einem Constraint mehrere Objekte angesprochen werden, die Teil einer Stückliste sind, können Sie im Teil CONDITION angeben, daß das Constraint nur gültig ist, wenn die Objekte zur Stückliste des übergeordneten Materials gehören.

Um zum Beispiel deutlich zu machen, daß ein Constraint nur ausgewertet wird, wenn das Gehäuse in der Stückliste des PC enthalten ist, muß dies unter CONDITION: mit dem Ausdruck PART_OF bekannt gegeben werden:

OBJECTS: PC IS_A (300)PC, GH IS_A (300)Gehäuse

CONDITION:

PART_OF (GH, PC)

Das Constraint ist nur gültig, wenn das Gehäuse zu einem PC gehört.

Die Constraintbedingung ist in diesem Fall sehr wichtig, da sich ansonsten das Constraint auf alle Kombinationen mit einem PC und einem Gehäuse beziehen würde, auch wenn das Gehäuse gar nicht in der Stückliste des PC enthalten ist.

Wenn man in einem Constraint die Komponenten von Unterbaugruppen ansprechen möchte, werden diese mit SUBPART_OF bezeichnet.

OBJECTS: P IS_A (300) Paket GH IS_A (300) Gehäuse

CONDITION:

SUBPART_OF (GH, P).

Die Bedingung PART_OF (GH, P) ist in diesem Fall falsch, da das Gehäuse nicht direkt in der Stückliste des Pakets steht.

Angabe von Stücklistenpositionen

Außerdem ist es möglich, sich im Bedingungsteil auf eine bestimmte Stücklistenposition zu beziehen. Wenn das Gehäuse z. B. an einer bestimmten Stücklistenposition stehen muß, geben Sie diese an:

OBJECTS: PC IS_A (300)PC, GH IS_A (300)Gehäuse

CONDITION:

PART_OF (GH, PC, ‘0050’)

Das Constraint prüft, ob das Gehäuse in der Stückliste des PC an Position 50 steht.