EXPOS Produktkonfigurator
- lk
- Markus Braun
Einleitung
Über den Konfigurator können komplexe Produkte beschrieben werden, die in mehreren Varianten existieren können. (Produktfamilie z. B. Autos) Allen Varianten einer Produktfamilie (Produktklasse) wird ein Variantenprodukt zugrunde gelegt, d.h. für dieses Variantenprodukt existieren eine Maximalstückliste, die alle denkbaren Komponenten enthält, und ein Maximalarbeitsplan, der alle denkbaren Arbeitsgänge enthält. Dem Variantenprodukt werden durch die Zuordnung zu einer Produktklasse Merkmale zugewiesen, deren Inhalt eine bestimmte Variante beschreibt. Ein Regelwerk steuert mittels Beziehungswissen (Wissensbasis) die Auswahl der richtigen Komponenten und Vorgänge aus der Maximalstückliste und dem Maximalarbeitsplan.
Aufbau
Das EXPOS-Modul gliedert sich in folgende Systembereiche:
- Pflege und Dokumentation der Wissensbasis
- Übersetzungsmechanismen für die Wissensbasis
- Pflege und Dokumentation der Funktionsbibliothek
- Prozesshandling (Konfigurationsprozess)
Wissensbasis
Zur Pflege der Wissensbasis stehen Dialogfunktionen zur Verfügung, die in einem fixen Format
- die Merkmale (Produktbeschreibungselemente, Ergebnisse, etc.),
- die Merkmalsgruppierung zu Merkmalsklassen,
- die Konfigurationsregeln, inklusive der Funktionseinbindung,
- das Maskenlayout des Konfigurationsprozesses
beschreiben und in einer relationalen Datenbank verwalten.
Übersetzungsmechanismen
Die in der Datenbank abgelegten Regeln können auf zweierlei Arten weiterverarbeitet werden:
- Direkt aus der Datenbank: Diese Methode verarbeitet die aktuellsten Änderungen des Regelwerkes, kann allerdings je nach Anzahl der Regeln relativ langsam werden. Bei der Verwendung des EXPOS-Debuggers werden die Regeln ebenfalls direkt aus der Datenbank verarbeitet.
- Über ein Hilfsprogramm können die in der Datenbank gespeicherten Regeln zu einer "REGEL".DLL kompiliert werden. Hierdurch wird die Verarbeitungsgeschwindigkeit wesentlich erhöht.
Funktionsbibliothek
In einer Funktionsbibliothek stehen die Konfigurationsfunktionen, die im Konfigurationsprozess gerufen werden, zur Verfügung.
Sie gliedern sich in folgende Aufgabenfunktionen:
- Standardfunktionen:(Maskenwechsel, Parametereingabe, Popup-Menu, etc.)
- Bewertungs- und Auswahlfunktionen:(Individuelle Programmteile zur Kapazitätsrechnung und Kalkulation, etc.)
- Transaktionsfunktionen:(Zuweisung von Datenbankelementen, Generierung von Stammdaten, etc.)
Prozesshandling
Nach dem Start des neutralen Konfigurationsmanagers sucht sich dieser die Startmaske der gewählten Produktklasse und bereitet diese wie in der Wissensbasis definiert auf. Nach der Dateneingabe-/ Änderung und Freigabe startet der Konfigurationsmanager die Abarbeitung des Regelwerkes für die gewählte Produktklasse. Sind gemäß der im Regelwerk definierten Bedingungen logische Fehler festzustellen, werden diese in eine Konfigurationsfehlertabelle eingetragen und führen zur Sperre des Konfigurationsabschlusses (siehe auch Regelaufbau).
Stammdaten
Das Datenmodell des Konfigurators gliedert sich in folgende Bereiche:
- Produktbeschreibungsdaten (Dialoge):
- Maskenbeschreibungsdaten (Dialoge):
- Fehlerkodierungsdaten (Dialog):
- Parametertabelle (Dialog):
- EXSTD10 Standard-Parameter
- Texte:
- EXSTT10 Standard-Text
Merkmale
Jedes Merkmalselement wird produktneutral in der Merkmalstabelle "xmetab" beschrieben. Die einzelnen Merkmale können zur besseren Überschaubarkeit durch einen Merkmalsgruppenschlüssel ergänzt werden. (Siehe Dialog EXME11). Eine Besonderheit stellen die neutralen Workfelder(Hilfsfelder) dar, die keiner Produktklasse direkt zugeordnet werden, sondern innerhalb der Maskendefinition als Zwischenergebnis, oder Funktionsfelder eingebaut werden. Die Merkmalsbeschreibung beinhaltet neben den Datenstrukturelementen auch eine Labelzuweisung für die Darstellung des Merkmals auf den Konfigurationsmasken. Hinweismerkmale sind Sondermerkmale und können auch einer Merkmals-, oder Produktklasse zugeordnet werden. Sie weisen auf einen Textbearbeitungsdialog, der die Hinweistexte des Produktes, oder der Chargen-/Seriennummer bearbeitet. Für einen Konfigurationsprozess werden folgende Merkmalsarten zu einer Produktklasse zusammengefasst:
- produktspezifische Merkmale (diese beschreiben und identifizieren das Produkt)
- Systemmerkmale (diese Merkmale können durch den Konfigurationsprozess angesprochen werden.
- Beispiel: Artikelbezeichnung 1-6, Verkaufspreis...)
- Hilfsmerkmale (Hilfsfelder wie Variablen, die für den Konfigurationsprozess gebraucht werden)
- Beispiel: Ein Auto hat ein Fahrwerk, Räder, ein Motor, ein Getriebe, eine Karosserie, eine Farbe, eine Anhängerkupplung, ein Radio usw.
- Siehe auch: Beispiel Fahrzeughersteller
Diese Merkmale tauchen in der Maximalstückliste des Variantenprodukts "Auto" wieder auf.
Dialog EXME11 Merkmalsdefinition /Feldbeschreibung exmetab
Feld | Beschreibung |
---|---|
merkid | Merkmal-Ident Merkmal-Name |
gruppe | Merkmalgruppe (Suchkriterium) |
mkname | Kurzbezeichnung des Merkmals |
name | Benennung |
label | Maskenbezeichnung |
listbez | Listenbezeichnung |
dklasse | Datenklasse |
dtyp | Datentyp |
dlang | Datenstringlänge |
dtab | Datentabelle für PopUp und Parameter |
feld | Tabellenfeld für PopUp und Parameter |
Merkmal-Ident
Eindeutiger Name für das Merkmal. Maximal 20 Stellen lang, Groß-/Kleinschreibung erlaubt. Es können keine mathematischen Zeichen benutzt werden, da diese im Regelwerk als solche interpretiert werden. Gesperrte Zeichen sind: +, -, *, /, ¦, ^,&, (,),=,², ³, ä, Ä, ö, Ö, ü, Ü, ß
(Siehe auch Systemmerkmale)
Merkmalgruppe
Die Merkmalgruppe ist ein Ordnungsbegriff der als Suchkriterium benutzt werden kann.
Kurzbezeichnung
Die Kurzbezeichnung hat keine funktionelle Bedeutung, sie dient lediglich als Dokumentationsfeld auf Listen und bei der Merkmalsauswahl.
Name
Der Name hat keine funktionelle Bedeutung, er dient lediglich als Dokumentationsfeld auf Listen und bei der Merkmalsauswahl.
Maskentext
Der Maskentext wird als Label in der Konfigurationsmaske eingesetzt (Feldname) und sollte aus diesem Grund eine kurze, aber prägnante Beschreibung des Merkmals darstellen. Sind in der Maske Labels ohne direkter Merkmalszuordnung notwendig, sollten diese als Hilfsfelder deklariert werden. (Siehe Datenklasse)
Listenbezeichnung
Die Listenbezeichnung dient als Überschrift für die Merkmalsinhalte bei der Merkmalsabfrage und auf Merkmalslisten. Sie sollte der Feldlänge des Merkmals angepaßt sein.
Datenklasse
Als Datenklasse wird die Darstellungsform und die Feldfunktion bezeichnet.
Foldende Datenklassen sind definiert:
Datenklasse | Beschreibung |
---|---|
Feld | Ein-/Augsbefeld ohne Selektionsunterstützung |
Parameter | Ein-/Ausgabefeld mit der Selektionsmöglichkeit über Standardparameter, die am Merkmalnamen verknüpfte Ausprägungen (Varianten) des Merkmals beinhalten. Die möglichen Werte können in einer besonderen Tabelle abgelegt werden. Die Datenbanktabelle und der Feldname wird in unten beschriebenen Feldern gepflegt. Wenn diese zwei Felder leer sind, dann werden die möglichen Werte in der Standardparameter-Tabelle mit dem Merkmal-Ident als Suchbegriff gesucht (siehe Beispiele zur Parameterauswahl) |
Text1 bis 10, Langtext | Textmerkmale sind 60-stellige Textzeilen, die je nach Klasse aus 1 bis 10 Zeilen, oder als ein beliebig langer Textblock bestehen. Standardtexte können in der Standardtexttabelle vordefiniert und wie Parameter aus dieser Tabelle übernommen werden. |
Poptext(Popup) | Wird als Dropdown-Liste in der Maske dargestellt. Werte müssen im EXSTD10 hinterlegt werden (siehe auch EXPOS Objekte). |
Checkbox | Liefert den Wert 0, oder 1 an das Merkmal (Ja/Nein) und stellt eine Auswahl per Anhaken bereit |
Button | Das Merkmal wird als Pushbutton in die Masken dargestellt. Es ist ein Aktionsfeld. Die Funktion wird als Programmfunktion im Masken-Pflegedialog beschrieben. Folgende Programmfunktionen sind standardisiert:
|
Radiobutton | Stellt Auswahlmöglichkeiten bereit aus denen genau eine ausgewählt werden kann. (siehe auch EXPOS Objekte). |
Hilfsfeld | Merkmal, das nicht in der Merkmalsleiste gespeichert werden soll, aber als Zwischenergebnis, oder als Labelfeld verwendet werden soll. |
Notebook/Notepage/Groupbox | Containerobjekte welche für einen logischen und zusammengehörigen Dialogaufbau verwendet werden. (siehe auch EXPOS-Handbuch Abschnitt Containerobjekte). |
Editorfeld | Direkte Anzeige und Pflege von mehrzeiligen Texten im EXPOS-Dialog. (siehe auch EXPOS Objekte). |
Auswahlliste | Informationen können mithilfe dieser Datenklasse in Tabellenform dargestellt werden. (siehe auch EXPOS Objekte). |
Bild | Anzeige eines individuellen Bildes. (siehe auch EXPOS Objekte). |
Grafik-Button | Wie der Button, aber mit individuellem Bild, das zur Laufzeit mit SetzeBild (bzw in Lua mit EX_SetzeBild) gesetzt werden muss. |
Drucker-PT | Drucker-Auswahl - Poptext gefüllt mit den auf dem Rechner verfügbaren Druckern. |
Datentyp
Deklaration des Datentyps das in der Merkmalsausprägung verwendet werden soll. Grundsätzlich wird zwischen Ziffern (Zahlen) und Zeichen unterschieden. Zeichen werden linksbündig in das Merkmalsergebnis eingetragen, Zahlen werden am Komma ausgerichtet rechtsbündig eingetragen.
Die Wahl des geeigneten Datentyps ist besonders wichtig, wenn mit dem Merkmalsinhalt gerechnet werden soll, bzw. wenn die richtige Sortierung bei der Merkmalsabfrage eine wichtige Rolle spielt.
Folgende Datentypen sind zulässig:
Zeichenkette | Beispiel |
---|---|
Integer. | 73.(Ganzzahl) |
DM_Wert. | 12.356.770,56 |
Menge. | 123.456.789,00 |
Prozent. | 258,95 |
Datum. | 28.07.97 |
Dezimahlzahl. | 1.234.567.891,12345 |
99,9 | |
9,99 | |
999,9 | |
9,9999 | |
9999,99 | |
999,99 | |
99,999 | |
999,999 | |
99999,99 | |
99999999 |
Länge
Feldlänge der Merkmalsausprägung. Maximale Speicherlänge ist 30 Zeichen. In der Maske können mehr als 30 Zeichen verwendet werden, beim Speichern wird der Wert auf 30 Stellen abgeschnitten.
Datenbanktabelle
Ist die Datenklasse auf Parameter eingestellt kann hier die Datenbanktabelle in der die Auswahlparameter gespeichert sind angegeben werden. Wird hier nichts eingetragen werden die Auswahlparameter in der Standard-Parametertabelle (Dialog EXSTD10) über den Merkmal-Ident gesucht.
Sonderfunktion: Wird hier der Ausdruck SQL eingegeben (Datenklasse Text), wird die in der Regel unter Formel eingegebene SQL-Anweisung ausgeführt.
Datenbankfeld
Feldname des Datenbankfeldes, in dem die Auswahlparameter stehen.
Merkmalsklasse
Die Merkmalsklasse steht über der Produktklasse und dient als Ordnungsschema für die darunter liegenden Produktklassen. Beispiel
Die Merkmalsklasse fasst Beschreibungselemente (Merkmale) zu Sachmerkmalsleisten zusammen. Die Sachmerkmalsleiste wird in der Tabelle exkltab beschrieben. Dabei bestimmt die laufende Nummer ob es sich um ein Identifizierendes Merkmal (laufende Nummer <100) oder ein Zusatzmerkmal handelt.
Hinweis:
Identifizierende Merkmale beschreiben ein Produkt eindeutig! Produkte die identische Ausprägungen in den identifizierenden Merkmalen ausweisen werden unter einer Artikelnummer zusammengefasst. In den Zusatzmerkmalen werden beschreibende Informationen abgelegt, die keinen identifizierenden Charakter aufweisen. Zusatzmerkmale werden bei der Artikelnummernzuordnung nicht berücksichtigt, und im Regelfall im Konfigurationslauf neu definiert.
Produktklasse
In der Produktklasse (Produktfamilie) wird der Konfigurationsprozess über das Variantenprodukt gestartet. Die Einzelmerkmale werden der Grundklasse einmal zugeordnet und dann der jeweiligen Produktklasse durch kopieren vererbt. Innerhalb der Produktklasse werden die überzähligen Merkmale mittels eines Statusschlüssels deaktiviert. Jede Merkmalsklasse und jede Produktgruppenklasse sind getrennt als eindeutige Merkmalsgruppierungen gespeichert.
Beispiel: Fahrzeughersteller
Merkmale | Merkmalskl.1 LKW | Merkmalskl.2 PKW | Produktkl.1 Mittelklasse | Produktkl.2 Oberklasse |
---|---|---|---|---|
Rad | a | a | a | a |
Anhängerkupplung | a | a | a | a |
Radio | a | a | a | a |
Schiebedach | a | a | ||
Karosserie | a | a | a | a |
Hebebühne | a | |||
Motor | a | a | a | a |
Farbe | a | a | a | a |
Sportpaket | a | a | ||
Systemmerkmal1 | a | a | a | |
Systemmerkmal2 | a | a | ||
Hilfsmerkmal1 | a | a | a | a |
Hilfsmerkmal2 | a |
Feldbeschreibung Tabelle exkktab Klassenkopf
Feldname | Beschreibung |
---|---|
finr | Mandantennummer |
prklasse | Produktklasse |
klasse | Klassenname |
prodsl | Sparte/Produktfamilie |
bez30 | Klassenbenennung |
sbaen | Sachbearbeiter/Datum letzte Änderung |
Feldbeschreibung Tabelle exkltab Klassenmerkmal
Feldname | Beschreibung |
---|---|
finr | Mandantennummer |
prklasse | Produktklasse |
merkid | Merkmalident |
lfdnr | laufende Nummer (Merkmalposition) |
merkst | Merkmalstatus |
sbaen | Sachbearb./Datum letzte Änderung |
Maskenbeschreibungsdaten
Die Maskendaten beschreiben die Anordnung der Felder in den Produktkonfigurationsmasken. Als Suchbegriff (eindeutiger Ident) dient der Produktklassenname der Merkmalklassenbeschreibung. Je Produktklasse können max. 99 Masken definiert werden. Die einzelnen Merkmale werden den nummerierten Masken durch die Angabe einer xy-Koordinate zugeordnet, wobei nur die in der Produktklasse genannte Merkmale verwendet werden können. Die xy-Koordinaten sind als Spalten-/ Zeilenkoordinaten zu verstehen. Mit der Zieladresse auf der Maske wird der Merkmalsname getrennt vom Merkmalsinhalt platziert. Jedem Merkmal kann auf der Maske eine individuelle Programmfunktion zugeordnet werden.
Funktionsbeispiele:
- Zuweisung von individuellen Datenbankelementen
- Objektaktion (Abbruch, OK, ENDE, Maskenwechsel, etc)
- Programmaufruf/Funktionsaufruf eines Konfigurationsneutralen Prozesses.
Ferner wird die Feldfunktion beschrieben.
- O = Ausgabefeld
- I = Eingabefeld
- A = Aktionsfeld (Nur in Verbindung mit einer Funktion)
Feldbeschreibung Maskendaten exmstab
Feldname | Beschreibung |
---|---|
finr | Mandantennummer |
prklasse | Produktklasse |
masknr | Maskennummer |
merkid | Merkmal |
lfdnr | laufende Nummer |
labelidx | Labelkoordinate x |
labelidy | Labelkoordinate y |
merkidx | Merkmalkoordinate x |
merkidy | Merkmalkoordinate y |
feldfunc | Feldfunktion |
progfunc | Programmfunktion |
berkz | Berechtigungskennzeichen |
berklas | Berechtigungsklasse |
nextfeld | Nächstes Feld |
toolhelp | Tooltip |
sbaen | Sachbearb./Datum letzte Änderung |
Regelwerk
Im Regelwerk werden Formeln und Funktionen mit Bedingungen verknüpft. Generell wird zwischen Produktklassenregeln und neutralen Regeln unterschieden. Für jede Produktklasse muß eine Produktklassenregel angelegt werden. Diese Produktklassenregel wird durch den Produktklassennamen identifiziert und automatisch aus dem Konfigurationsprozeß durch die Aktion "BERECHNEN" gestartet. Neutrale Regeln werden durch einen Regelnamen identifiziert der nicht einem Produktklassennamen entsprechen darf.
Innerhalb eines Regelwerkes können Regeln geschachtelt werden, wobei die Schachtelungstiefe auf 10 Aufrufe begrenzt ist. Innerhalb eines Regelwerkes wird die einzelne Regel durch eine laufende Nummer identifiziert. Bedingungen können über mehrere Regelzeilen verknüpft werden. Zur besseren Pflegeübersicht können Regelzeilen durch die Angabe von Regelgruppen zusammengefaßt werden. Jede Regel kann, alternativ zur Formel, eine Funktion (C-Funktion) aufrufen. Nach dem Funktionsaufruf wird das Regelwerk in der nächsten Zeile weiterbearbeitet.
In jeder Regelzeile kann ein Fehlercode eingetragen werden, der beim Zutreffen der Bedingung innerhalb des Konfigurationsprozesses zum Eintrag in die Fehlertabelle und damit zur Sperre der Konfiguration führt.