EXPOS Produktkonfigurator

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):
  • Texte:

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

FeldBeschreibung
merkidMerkmal-Ident Merkmal-Name
gruppeMerkmalgruppe (Suchkriterium)
mknameKurzbezeichnung des Merkmals
nameBenennung
labelMaskenbezeichnung
listbezListenbezeichnung
dklasseDatenklasse
dtypDatentyp
dlangDatenstringlänge
dtabDatentabelle für PopUp und Parameter
feldTabellenfeld 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:

DatenklasseBeschreibung
FeldEin-/Augsbefeld ohne Selektionsunterstützung
ParameterEin-/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, LangtextTextmerkmale 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).
CheckboxLiefert den Wert 0, oder 1 an das Merkmal (Ja/Nein) und stellt eine Auswahl per Anhaken bereit
ButtonDas 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:
  • RECHNEN: um die Regeln aufzurufen.
  • SPEICHERN: um die Ergebnisse zu speichern.
  • MASKE "n": um auf eine bestimmte Maskennummer zu springen.--Zum Beispiel MASKE 2.
  • DEBUGGER: Prüffunktion zur Regelabarbeitung
  • ABBRUCH: setzt Kennzeichen kaufm. Abbruch in der Auftragsposition (d.h. Auftragsposition wird noch nicht disponiert, durch den kaufm. Sachbearbeiter müssen noch Daten ergänzt werden)
  • TECHABBRUCH: setzt kennzeichen techn. Abbruch in der Auftragsposition (d.h. Auftragsposition wird noch nicht disponiert, durch den techn. Sachbearbeiter müssen noch Daten ergänzt werden)
RadiobuttonStellt Auswahlmöglichkeiten bereit aus denen genau eine ausgewählt werden kann. (siehe auch EXPOS Objekte).
HilfsfeldMerkmal, das nicht in der Merkmalsleiste gespeichert werden soll, aber als Zwischenergebnis, oder als Labelfeld verwendet werden soll.
Notebook/Notepage/GroupboxContainerobjekte welche für einen logischen und zusammengehörigen Dialogaufbau verwendet werden. (siehe auch EXPOS-Handbuch Abschnitt Containerobjekte).
EditorfeldDirekte Anzeige und Pflege von mehrzeiligen Texten im EXPOS-Dialog. (siehe auch EXPOS Objekte).
AuswahllisteInformationen können mithilfe dieser Datenklasse in Tabellenform dargestellt werden. (siehe auch EXPOS Objekte).


BildAnzeige eines individuellen Bildes. (siehe auch EXPOS Objekte).
Grafik-ButtonWie der Button, aber mit individuellem Bild, das zur Laufzeit mit SetzeBild (bzw in Lua mit EX_SetzeBild) gesetzt werden muss.
Drucker-PTDrucker-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:

ZeichenketteBeispiel
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

MerkmaleMerkmalskl.1 LKWMerkmalskl.2 PKWProduktkl.1 MittelklasseProduktkl.2 Oberklasse
Radaaaa
Anhängerkupplungaaaa
Radioaaaa
Schiebedach
a
a
Karosserieaaaa
Hebebühnea

Motoraaaa
Farbeaaaa
Sportpaket
a
a
Systemmerkmal1aaa
Systemmerkmal2
a
a
Hilfsmerkmal1aaaa
Hilfsmerkmal2a



Feldbeschreibung Tabelle exkktab Klassenkopf

FeldnameBeschreibung
finrMandantennummer
prklasseProduktklasse
klasseKlassenname
prodslSparte/Produktfamilie
bez30Klassenbenennung
sbaenSachbearbeiter/Datum letzte Änderung

Feldbeschreibung Tabelle exkltab Klassenmerkmal

FeldnameBeschreibung
finrMandantennummer
prklasseProduktklasse
merkidMerkmalident
lfdnrlaufende Nummer (Merkmalposition)
merkstMerkmalstatus
sbaenSachbearb./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

FeldnameBeschreibung
finrMandantennummer
prklasseProduktklasse
masknrMaskennummer
merkidMerkmal
lfdnrlaufende Nummer
labelidxLabelkoordinate x
labelidyLabelkoordinate y
merkidxMerkmalkoordinate x
merkidyMerkmalkoordinate y
feldfuncFeldfunktion
progfuncProgrammfunktion
berkzBerechtigungskennzeichen
berklasBerechtigungsklasse
nextfeldNächstes Feld
toolhelpTooltip
sbaenSachbearb./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.