Attribute/Sachmerkmale

  1. Warum Attribute?
  2. Beschreibung
    2.1 Voreingestellte Attribute
    2.2 Formelattribute
    2.3 Bedingte Attribute
  3. Anlegen/Benutzung von Attributen
    3.1 Voreingestellte Attribute
    3.2 Formelattribute
    3.3 Bedingte Attribute
    3.4 Merkmalstabellen
  4. Zuweisen von Attributen
  5. Benutzung von Vergleichsoperatoren
  6. Attribute mit Steuerfunktionen
Attribute

1. Warum Attribute?

Attribute haben in ClassiX® eine zentrale Bedeutung, da sie es ermöglichen, ein Objekt (Sachobjekt, Personenobjekte o.ä.) in allen seinen Merkmalen zu beschreiben, ohne dass Änderungen am Quellcode vorgenommen werden müssen.

Beispiel:  Ziel ist es, einen Verkaufsartikel durch seine Farbe zu beschreiben.

2. Beschreibung

2.1 Voreingestelltes Attribut

Ein Voreingestelltes Attribut ermöglicht es, einem dynamischen Datenfeld einen beschreibenden Namen, weitere erklärende Daten oder eine Voreinstellung mitzugeben.

Beispiel: Ein Teppichverkäufer mit einer ClassiX® Software möchte seine Teppiche durch verschiedene Merkmale beschreiben. Zum Beispiel sollen alle Teppiche durch ihren Preis beschrieben werden. Er fügt also in allen Stammdaten ein Sachmerkmal ein, in dem er anschließend den Preis angeben kann. Wenn jetzt einzelne Teppiche durch ihre Farbe (es soll keine freie Eingabe erfolgen, sondern nur Farben aus einer Farbtabelle zur Verfügung stehen) beschrieben werden sollen, kann er dies über ein Attribut tun, welches zum Beispiel ein Datenfeld vom Typ 'String' beschreibt. Dieses Attribut wird dann mit einer Tabelle mit den verschiedenen Farben versehen.

Achtung:
Attributwerte werden in den Formeln nur bis maximal 100 Zeichen unterstützt!

2.2 Formelattribute

Wie der Name schon sagt, dienen Formelattribute dem Füllen eines Datenfeldes durch ein Formel, beziehungsweise durch den Wert, den die Formel errechnet. Konstanten können hierbei direkt in die Formel mit eingegeben werden während die variablen Werte wiederum Slot-Attribute sind.

Beispiel: Der Teppichverkäufer will seine Teppiche nun auch durch die Größe beschreiben, wobei die Teppiche die Eigenschaft haben, dass alle Teppiche die gleiche Breite (4m) haben und sich nur durch die Länge unterscheiden. Hierbei kommen dem Teppichverkäufer die Formelattribute zu Gunsten. Er legt sich also ein Attribut mit der Formel '4m * Länge' an. Die Länge ist wiederum ein Voreingestelltes Attribute, wobei sich beim Ändern des Wertes automatisch auch der Wert bzw. das Ergebnis des Formelattributes ändert.

2.3 Bedingte Attribute

Bedingte Attribute können eine Tabelle enthalte welche ein "wenn - dann" Beziehung beschreibt.

Beispiel: Die Teppiche des Teppichverkäufer sollen je Farbe einen eigenen Preis bekommen. Wir legen nun ein Bedingtes Sachmerkmal an und füllen die Tabelle mit den Daten, die wir für die Preisberechnung brauchen. (z. B.: rot -> 10 € ; blau -> 20 € ; gelb -> 30€ ) Außerdem setzen wir unser gerade erzeugtes Sachmerkmal in Abhängigkeit des Sachmerkmales für die Farbe. (siehe Bsp. Voreingestelltes Attribut) Bei einer Änderung des Sachmerkmales für die Farbe, wird nun automatisch der zugehörige Wert der Bedingungstabelle zurückgegeben.

3. Anlegen/Benutzung von Attributen


Der erste Schritt beim Anlegen eines Attributes ist erst einmal sehr allgemein, das heißt egal ob ich ein Voreingestelltes, ein Bedingtes oder ein Formelattribute anlegen möchte, werde ich immer als erstes ein Datenfeld auswählen müssen. Spätestens an dieser Stelle sollte man sich überlegen wofür man das Attribut benutzen möchte, da verschiedene Datenfelder mit verschiedenen Typen existieren. Diese verschiedenen Typen haben eine großen Einfluss darauf, wie später z.B. mit Vergleichsoperatoren gearbeitet werden kann. Möchte ich zum Beispiel das Attribut nutzen, um ein Objekt durch einen Text zu beschreiben (z.B.: Kommentare o.ä.), dann sollte man ein Datenfeld vom Typ CX_STRING aus wählen. Möchte ich einen Wert angeben, wird man sich normalerweise für ein CX_VALUE Datenfeld entscheiden u.s.w. Anschließend kann man einen Bearbeiter und das Datum angeben, an dem das Attribut angelegt oder zum letzten mal bearbeitet wurde. Die Datenfelder 'Beschreibung' und 'Text intern' können genutzt werden, um zu einem späteren Zeitpunkt noch zu wissen, welchem Zweck das Attribute dient.
Über die Checkbox 'Wertprüfung' ist es möglich Bedingungen für den Attributwert zu aktivieren und im erscheinenden Feld festzulegen. Im Beispielbild wurde festgelegt, dass der Wert unseres Attributes (technical.A_SPALT) nicht kleiner als 10 mm sein darf. Erfüllt der eingegebene Wert nicht die in der Wertprüfung festgelegten Beschränkungen, so erscheint ein entsprechendes Dialogfenster, welches den Anwender über seinen Eingabefehler informiert.

3.1 Voreingestelltes Attribut

Bei Voreingestellten Attributen kann man den Wert jetzt in das Feld Voreinstellung eintragen, oder man legt über [Bearbeiten - Voreinstellung - Eigene Tabelle erzeugen] eine Tabelle an, welche man durch den Editier-Button bearbeiten kann. Fügt man das Attribut jetzt in einem Objekt ein, so übernimmt es den Voreingestellten Wert oder man kann gegebenenfalls einen Wert aus der Tabelle auswählen. Setzt man die Checkbox 'Ausschließlich', so kann man später ausschließlich die Werte der Tabelle übernehmen.

3.2 Formelattribute

Beim Anlegen von Formelattributen beginnt man wie bisher, bis man zum Eingabefenster von Formeln kommt.

Die festen Werte der Formel können direkt angegeben werden, während man bei den variablen Werten die Bezeichnung eines Slotattributes angibt, welches den gewünschten Wert enthält.
Folgende Operanden stehen dem Benutzer zur Verfügung:

Arithmetische Operatoren: *    /    +    -
Vergleichsoperatoren: <    >    <=   >=    !=
Logische Operatoren: &    |
Zuweisung: := 
Separator: ;
Bedingter Ausdruck: if ... else

Über den Menüpunkt Bearbeiten kann man zwischen den Formeltypen 'Individuell' und 'Allgemein' wählen. Mit 'Individuell' (Standardeinstellung) wird im errechneten Sachmerkmal eine eigene Formel hinterlegt, mit 'Allgemein' wird auf eine bereits im System hinterlegte Berechnungsformel Bezug genommen. Der letztere Fall kann dann sinnvoll sein, wenn einige errechnete Sachmerkmale z.B. andere Namen, Steuerungen oder Gültigkeiten aufweisen sollen, die Formel aber immer die selbe sein soll.

3.3 Bedingte Attribute

Beim Anlegen von bedingten Attributen beginnt man wie bisher,  unter 'Wertprüfung' stehen neue Optionen und eine bedingte Tabelle zur Verfügung.

Ergebnis vorgeschrieben Die bedingte Tabelle muss ein Ergebnis liefern
Abbruch, wenn kein Ergebnis gefunden Sollte keine der Bedingungen der Tabelle zutreffen, wird eine Fehlermeldung ausgegeben. Ein Setzen dieser Auswahl setzt automatisch auch das Feld "Ergebnis vorgeschrieben"
Nicht ermittelbare/berechenbare Bedingung übergehen Werden Variablen in einer Bedingungen im System automatisch nicht gefunden, so wird keine Meldung ausgegeben, sondern diese Bedingung wird übergangen. Dieses bedeutet ebenfalls, dass nach solchen Variablen auch nicht interaktiv abgefragt wird.

Mittels der Knöpfe ('Einfügen', 'Duplizieren', 'Löschen') oberhalb der Tabelle können die einzelnen Zeilen bearbeitet werden.
Das Bearbeiten der Spalten erfolgt über das Kontextmenü (Rechtsklick) innerhalb der Tabelle. Um bestimmende Größen (Variablen) in den Bedingungen der Einträge der Tabelle nicht immer aufs Neue schreiben zu müssen,  können diese als eigenständige Spalten der Tabelle herausgezogen werden. Bei "Einfügen Spalten" erhält man ein Selektionsfenster voreingestellter Sachmerkmale, mit "Bearbeiten Spalten" kann man direkt die Namen der Variablen der gewünschten Spalten angeben.

3.4 Merkmalstabellen

Merkmalstabellen erleichtern die Arbeit mit Attributen, wenn man immer wieder gleiche 'Gruppen' von Attributen einem Attribute Set zuweisen muss. So lassen sich in einer Merkmalstabelle beliebige Attribute auflisten, so dass man nur noch die Merkmalstabelle einfügen brauch.

Über den Menüpunkt [Bearbeiten - Sachmerkmale] bzw. über das Kontextmenü lassen sich die einzelnen Attribute einfügen, anlegen, bearbeiten und löschen.

 

4. Zuweisen von Attributen

Sie können globale Attribute einfügen, ändern oder löschen. Zusätzlich haben Sie die Möglichkeit neue lokale Attribute anzulegen, die dann nur in diesem Objekt gültig sind.

Die Attributdaten können per Doppelklick bearbeitet werden.
Ein Rechtsklick auf ein lokal angelegtes Attribut ruft die Eingabemaske auf.

 

5. Benutzung von Vergleichsoperatoren

Schon vor dem Anlegen eines neuen Sachmerkmals mit einer anhängenden Tabelle muss man sich im Klaren darüber sein, wie damit später gearbeitet werden soll und kann. Dazu muss man wissen, dass intern die Sachmerkmale verschiedene Typen haben können, z.B. STRING, ENUMCHAR, etc.

Bei den Sachmerkmalen die als Typ STRING bzw. mit einem Datenfeld des Typs STRING angelegt werden, wird intern direkt der vom Benutzer eingegebene Wert (Text) gehalten und deshalb auch für Vergleiche herangezogen.

Legt man aber zum Beispiel ein Sachmerkmal mit dem Typ ENUMCHAR an, so ist der interne Aufbau der anhängenden Tabelle ein anderer. Dort steht nicht mehr direkt der Wert (z.B. Text im Fall des Typs STRING), sondern in der internen Tabelle gibt es eine vom Anleger vorgegebene Durchnummerierung und für jeden der Einträge den nach außen hin zu zeigenden Wert, z.B. 1 -> Äpfel, 2 -> Birnen und 3 -> Bananen.

Bei Vergleichsoperationen wird in allen Fällen von z.B. ENUMCHAR immer der interne Wert herangezogen, da man ja sozusagen nicht Äpfel mit Birnen über "größer" oder "kleiner" vergleichen kann. Auf "gleich" kann man aber natürlich ohne Probleme testen, nur eben bei nicht-"gleich" Vergleichen muss man sehr vorsichtig sein.

Das gilt besonders für die Fälle, in denen man z.B. folgende Tabelle angelegt hat: 1 -> "100", 2 -> "200" und 3 -> "150". Dort kann man nicht einfach den Vergleich machen "kleiner oder gleich 200", da die "200" erst in den internen Wert 2 umgewandelt wird, und bei den internen Werten sind nur 1 und 2 "kleiner oder gleich 2", so dass der Eintrag 3 -> "150" nicht ausgegeben wird.

6.Attribute mit Steuerfunktionen

Die folgenden Attribute werden im ClassiX System intern interpretiert und steuern gewisse Funktionalitäten im System

Attribut Funktion in ClassiX
suppliedID Ist in einem Auftrag das Sachmerkmal suppliedID mit einer gültigen Lieferantennummer gefüllt und hat das Bestellteil keinen A-Lieferanten, so wird auf der Bedarfsanforderung und auf der Bestellung ein Lieferant mit dieser Nummer gezogen. In diesem Fall wird ebenfalls der auf der Auftragsposition eingegebene Einstandspreis als Bestellpreis benutzt
wages.primeOverheadRate GMK für Lohn in Prozent
material.primeOverheadRate GMK für Material in Prozent
lockForLink Teil ist für neu zu erstellende Bewegungsdaten gesperrt (Stücklistenauflösung bricht ab, wenn es auf ein Teil mit einem Status stößt, der dieses Attribut mit dem Wert 1 hat)
suppressInList Dieses Attribut wird zum Verstecken von Objekten benutzt. Teile, die einem Status mit diesem Attribut und dem Wert 1 zugeorndet sind, werden in der Teilestammliste nicht gezeigt. 
lockForSiblings Teil kann nicht mehr als Austauschobjekt benutzt werden
lockEditing Bearbeitung des Teils ist gesperrt
length Länge (Berechnung bei Verpackungen)
width Breite (Berechnung bei Verpackungen)
height Höhe (Berechnung bei Verpackungen)
weight Gewicht