Show TOC

 Constraints: Objekte ansprechen

Alle Objekte, die in einem Constraint angesprochen werden, müssen im Teil OBJECTS: bekannt gegeben werden.

Achtung Achtung

Die im Teil OBJECTS: angegebenen Merkmale müssen alle bei den weiteren Abschnitten des Constraints (RESTRICTIONS, CONDITION) verwendet werden. Wenn Merkmale deklariert werden, die nicht im Constraint verwendet werden, wird das Constraint nicht ausgewertet.

Ende der Warnung.

Klasse und Klassenart

Objekte werden in Constraints normalerweise über Ihre Klasse und Klassenart angesprochen. Wenn Sie in einem Constraint über einen PC sprechen möchten, der in der Klasse PC der Klassenart 300 klassifiziert ist, geben Sie den PC wie folgt an:

(300) PC

Objektschlüssel

Wenn Sie ein konkretes Material ansprechen möchten, müssen Sie die Identifikation für den Objekttyp, die Klassenart und den Objektschlüssel angeben.

  • MATERIAL ist in diesem Beispiel die Objektidentifikation für Materialien. Die Objektidentifikation dient dazu, den Objekttyp in der Beziehungspflege zu identifizieren und wird unter dem Arbeitsschritt Objekttyp pflegen im Einführungsleitfaden Klassensystem angegeben.

  • Der Objektschlüssel für Materialien ist die Materialnummer. Der Objektschlüssel wird ebenfalls im Einführungsleitfaden Klassensystem definiert. Im Arbeitsschritt Objektschlüssel pflegen legen Sie fest, über welche Felder ein Objekt identifiziert wird. Sie geben dort auch an, über welche Identifikation die Felder angesprochen werden. Die Materialnummer wird über den Formalparameter NR angesprochen. Ein Objektschlüssel kann auch aus mehreren Teilschlüsseln bestehen, wie z. B. Dokumente:

(Document)(017)(TYPE = ‘DRW’, VERSION = ‘00’, PART = ‘000’, NR = ‘D4545’)

  • Als Klassenart geben Sie die Klassenart an, in der das Objekt klassifiziert ist. Wenn das Objekt nicht klassifiziert ist, wird keine Klassenart angegeben. Sie müssen allerdings die Klammern mit leerem Inhalt angeben.

(Material)()(NR = ‘MAT_A’)

Mehrere Objekte deklarieren

Wenn in dem Constraint noch weitere Objekte angesprochen werden, müssen auch diese Objekte dem Constraint bekannt gegeben werden. Die einzelnen Objektangaben werden mit einem Komma getrennt.

OBJECTS:

PC IS_A (300) PC,

DR IS_A (300) Drucker,

ZB IS_A (300) Zubehör.

In diesem Constraint werden die Objekte PC, Drucker und Zubehör angesprochen. Die Objekte werden über ihre Klasse und Klassenart angesprochen.

Variablen vereinbaren

  • Für Objekte, die über Ihre Klasse angesprochen werden, wird eine Variable über den Ausdruck IS_A vereinbart:

PC IS_A (300) PC

  • Für Objekte, die ohne Klassenangabe deklariert werden, werden Variablen über den Ausdruck IS_OBJECT vereinbart.

O IS_OBJECT (Material)(001)(NR=‘M4711’)

  • Wenn Objekte über den Objektschlüssel angegeben werden, muß eine Variable vereinbart werden. Bei Klassenangaben ist die Vereinbarung einer Variablen optional.

  • Variablen können mit einem ‘?’ gekennzeichnet werden und sind dadurch leichter zu erkennen:

?PC IS_A (300) PC

  • Die Variablen, die in einem Constraint angesprochen werden, müssen zum Zeitpunkt, zu dem das Constraint erstellt wird, bekannt sein.

Beispiel Beispiel

Das Gesamtgewicht einer Komponente, die sich aus der Summe der Gewichte der Einzelteile berechnet, kann normalerweise nur schwer durch ein Constraint berechnet werden, da alle beteiligten Objekte in dem Constraint angegeben werden müssen. Wenn dann in der Konfiguration ein Objekt nicht ausgewählt wird, kann das Constraint nicht ausgewertet werden, da ein Eingangsparameter fehlt. Ein solches Constraint läßt sich also nur schreiben, falls immer alle beteiligten Objekte ausgewählt werden müssen.

Ende des Beispiels.

Merkmale ansprechen

Merkmale werden immer in Zusammenhang mit dem Objekt angesprochen, zu dem Sie gehören. Merkmale werden über ihren sprachneutralen Merkmalnamen identifiziert. Wenn im Objektteil für die Objekte keine Variablen festgelegt wurden, muß der komplette Ausdruck aus Klasse und Klassenart vor dem Merkmal angegeben werden:

(300)PC.Festplatte = ‘1275’

Daraus geht hervor, daß das Merkmal zu einem Objekt der Klasse PC der Klassenart 300 gehört.

Wenn für ein Objekt eine Variable vereinbart wurde, steht statt dem Objekt die Variable:

PC.Festplatte = ‘1275’

Hinweis Hinweis

Bei Merkmalwerten wird Groß- und Kleinschreibung nur unterschieden, wenn das bei der Merkmalpflege festgelegt wurde.

Ende des Hinweises

Variablen vereinbaren

Im Deklarationsteil können auch Variablen für Merkmale definiert werden. Diese Variablen werden mit WHERE an das Objekt angeschlossen, zu dem sie gehören.

PC IS_A (300) PC WHERE FP = Festplatte

Da dadurch kenntlich gemacht wurde, daß das Merkmal zur Klasse PC gehört, wird das Merkmal danach nur noch mit der Variable FP bezeichnet:

FP = ‘1275’

Sie können auch Variablen für mehrere Merkmale definieren. Die Merkmale werden durch Semikolon voneinander abgetrennt:

PC IS_A (300) PC WHERE FP = Festplatte;GH = Gehaeuse;CPU = CPU

Mehrwertige Merkmale

Wenn man mehrere Werte eines mehrwertigen Merkmals in einem Constraint ansprechen will, muß man mehrere Variablen dafür deklarieren:

OBJECTS: (300) PC Where Var1 = Farbe_mehrw; Var2 = Farbe_mehrw

CONDITION:

Var1 = ‘rot’ and Var2 = ‘gelb’

RESTRICTIONS:

false

In diesem Constraint möchte man über zwei Werte des mehrwertigen Merkmals FARBE_MEHRW sprechen. Dazu ist es notwendig, zwei Variablen zu deklarieren, um unterschiedliche Werte zu bezeichnen.

Wenn für FARBE_MEHRW die Werte ‘rot’ und ‘gelb’ ausgewählt werden, soll das Constraint eine Inkonsistenzmeldung ausgeben.