Zum Hauptinhalt springen

Wie kann ich bestimmen, welche Produktmerkmale zueinander passen?

Im K3 werden Gültigkeiten von Merkmals-Kombinationen in Tabellen definiert.

GriffDekorSerie
LangBirkeSmart
BogenBirkeSmart
DruckBirkeSmart
LangAlle WerteSmart
BogenAlle WerteSmart
Alle WerteAlle WerteModern

Diese Regel für ein Schranksystem sagt aus, dass

  • bei der Serie "Smart" bei "Birke" jeder Griff, bei allen anderen Dekoren nur "Lang" und "Bogen" funktioniert
  • während bei der Serie "Modern" jede Kombination gültig ist.

Es kann beliebig viele solche Tabellen geben, was beliebig komplexe Gültigkeitsregeln erlaubt.

Voraussetzungen​

  • Sie haben einen Konfigurator angelegt.
  • Alle notwendigen Merkmale und Ihre Werte sind angelegt.

Regel anlegen​

Der Regel-Editor bietet eine intuitive Benutzeroberfläche:

Drei zentrale Buttons:

  • Regel bearbeiten: Für Name, Beschreibung, Key, Status (Aktiv/Inaktiv) und erweiterte Einstellungen
  • Merkmal hinzufügen: Split-Button für Merkmale oder Schritte
  • Aktion hinzufügen: Zugriff auf alle verfügbaren Aktionen, gruppiert nach:
    • Produktstruktur: Merkmale/Schritte/Werte ausblenden, Konfigurator-Abschluss
    • Produktdarstellung: Komponentenmerkmale, Bilder, Farben, Materialien, 3D-Modelle, Informationen
    • Preise & Artikel: Artikel zur Stückliste hinzufügen

Schritt-für-Schritt Anleitung:​

1. Regel erstellen:

  • Klicken Sie im Editor in der Seitenleiste auf
    Loading...
  • Klicken Sie auf
    Loading...
  • Geben Sie einen Namen und optional eine Beschreibung ein
  • Aktivieren Sie "Gültigkeit prüfen" falls gewünscht
  • Klicken Sie auf
    Loading...

2. Regel-Grundeinstellungen bearbeiten:

  • Klicken Sie auf
    Loading...
    um in einem Dialog folgende Einstellungen zu ändern:
    • Name und Beschreibung
    • Key (eindeutige Kennung)
    • Status (Aktiv/Inaktiv)
    • Gültigkeitsprüfung aktivieren/deaktivieren

3. Merkmal- und Schritt-Spalten hinzufügen:

  • Nutzen Sie
    Loading...
    um:
    • Merkmale hinzuzufügen: Wählen Sie alle Merkmale aus, die als Spalten in der Tabelle erscheinen sollen
    • Schritte hinzuzufügen: Für schrittweise Gültigkeitsregeln

4. Aktionsspalten hinzufügen: Klicken Sie auf

Loading...
und wählen Sie aus folgenden Kategorien:

Produktstruktur:

  • Merkmale ausblenden
  • Schritt ausblenden
  • Werte ausblenden
  • Konfigurator-Abschluss festlegen

Produktdarstellung:

  • Befüllen von Komponentenmerkmalen (benötigt Auswahl der Komponenten)
  • Bilder auf Oberflächen drucken (3D - benötigt Material-Slots)
  • Anzeige von Bildern (2D)
  • Ändern der Farbe (3D - benötigt Material-Slots)
  • Austauschen von Oberflächen (3D - benötigt Material-Konfiguration)
  • Anzeige von Informationen
  • Anzeige von Fehlermeldungen
  • Anzeige von 3D-Modellen

Preise & Artikel:

  • Artikel zur Stückliste hinzufügen (benötigt Zuordnung zu Merkmalen)

5. Gültigkeitsregeln erfassen:

  • Füllen Sie die Tabelle mit gültigen Kombinationen
  • Nutzen Sie "Alle Werte" für nicht-spezifische Spalten
  • Probleme mit Ihrem Regelsystem werden rechts oben angezeigt

Hinweis: Aktionen mit zusätzlichen Einstellungen öffnen automatisch einen Konfigurationsdialog zur weiteren Spezifikation.

Mehrere Regelzeilen gleichzeitig bearbeiten​

Gerade in großen Regeln müssen oft viele Zeilen gleich behandelt werden. Dafür können Sie mehrere Zeilen auswählen:

  • Wählen Sie die Zeilen über die Kästchen in der ersten Spalte aus. Oben erscheint ein Hinweis, wie viele Zeilen ausgewählt sind.
  • Führen Sie die Aktion nun an einer der ausgewählten Zeilen aus – sie wirkt dann auf die ganze Auswahl: löschen, kopieren, aktivieren/deaktivieren, verschieben oder eine Zelle ändern.
  • Eine Aktion an einer Zeile außerhalb der Auswahl wirkt wie gewohnt nur auf diese Zeile.

Die Auswahl steht im vollständigen Regel-Editor zur Verfügung, nicht in den eingebetteten Ansichten einzelner Merkmale.

Dasselbe funktioniert auch in der Wertetabelle eines Merkmals.

Wie verwende ich zahlenwertige Merkmale?​

Wenn Sie eine Zahleneingabe haben, beispielsweise eine "Länge", dann können Sie die Gültigkeit ebenfalls angeben, indem Sie einfach Intervalle aufschreiben.

LängeAnzahl Säulen
1-102
10-203
20-1004

Diese Regel bestimmt die Anzahl von Säulen in Abhängigkeit der Länge.

Hierbei taucht folgendes Problem auf: Was, wenn der Nutzer den Wert "10" eingibt. In diesem Fall wäre als "Anzahl Säulen" sowohl 2 als auch 3 gültig. Möchte man dies genauer formulieren, kann man exklusive Intervallgrenzen definieren:

LängeAnzahl Säulen
[1;10)2
[10;20]3
(20;100]4

Hier würde bei 10 und bei 20 nur der Wert 3 für die Anzahl Säulen gültig sein.

Wird ein zahlenwertiges Merkmal in einer Regel verwendet, so wird dadurch auch der Gültigkeitsbereich der Eingabe überhaupt begrenzt, in obigem Beispiel auf 1 bis 100. Das ist eine Alternative zur Angabe von Minimum un Maximum im Tab

Loading...
den Merkmales.

Möchte man das nicht, so kann man eine Seite eines Intervalles ganz offen lassen:

LängeAnzahl Säulen
;10)2
[10;20]3
(20;4

Was sind "Fehlermeldungen" aka Blacklisting?​

Die Regeln zählen im Normalfall alle gültigen Kombinationen von Merkmalswerten auf. Das nennt man auch Whitelisting. Wenn ungültige Werte nicht ausgeblendet und dann angeklickt werden, wird eine Standard-Meldung gezeigt, die dem Nutzer erklärt, welche anderen Merkmale geändert werden müssen, um diesen Wert gültig zu machen.

Es gibt aber Situationen, in denen man die Wahl eines Wertes komplett verhindern und den Nutzer darüber auch individuell informieren möchte.

Wenn beispielsweise bei einem Modulmöbelsystem maximal 5 Module übereinander stehen können und man ein berechnetes Merkmal hat, dass die Module zählt. Dann kann man eine "Fehlermeldung" anzeigen. Man erfasst dafür in einer Tabelle das Merkmal und den ungültigen Wertebereich:

Module
(5-

Dann klickt man auf

Loading...
und wählt Anzeige von Fehlermeldungen an. Es erscheint eine Aktions-Spalte:

ModuleFehlermeldung
(5-Meldung hinzufügen

Nun kann man auf

Loading...
klicken und die für diese Situation individuelle Meldung angeben. Das geht auch in mehreren Sprachen, wechseln Sie einfach die Content-Sprache und geben Sie die Übersetzung ein.

Auf diese Weise unterstützt der K3 ausser dem Whitelisting von Gültigkeitsregeln auch das Blacklisting bestimmter Wert-Kombinationen.

Konflikte und ihre Auflösung​

Der K3-Konfigurator befindet sich zu jeder Zeit in einem gültigen Zustand. Das gilt vom ersten Laden an und bleibt während der gesamten Konfiguration erhalten. Wenn ein Benutzer eine Änderung vornimmt, die einen Konflikt erzeugen würde, greift das automatische Konfliktlösungssystem ein.

Wann treten Konflikte auf?​

Ein Konflikt entsteht, wenn ein Benutzer einen Wert für ein Merkmal auswählt, der nicht mit den aktuell gesetzten Werten anderer Merkmale kompatibel ist – also wenn keine Regel die neue Kombination abdeckt.

Beispiel:

Angenommen, Sie haben folgende Regel für ein Fenster:

SerieMaterialFarbe
ModernHolzNatur
ModernHolzWeiß
ClassicKunststoffWeiß

Der Benutzer hat "Serie: Modern" und "Material: Holz" ausgewählt. Nun versucht er, "Farbe: Schwarz" zu wählen. Das würde einen Konflikt erzeugen, weil keine Regel die Kombination "Modern + Holz + Schwarz" erlaubt.

Wie reagiert der Konfigurator auf einen Konflikt?​

Der Konfigurator unterscheidet zwei Situationen:

1. Automatische Anpassung (kein Dialog)​

Wenn die konfliktverursachenden Merkmale noch nicht vom Benutzer bewusst gesetzt wurden, passt die Engine diese automatisch an eine gültige Kombination an. Der Benutzer sieht keinen Dialog – die Konfiguration bleibt einfach gültig.

Beispiel: Der Benutzer startet eine neue Konfiguration und wählt sofort "Farbe: Weiß". Die Engine setzt automatisch "Serie: Modern" und "Material: Holz", ohne nachzufragen.

2. Konflikt-Dialog (mit Lösungsvorschlag)​

Wenn der Benutzer Werte ändern möchte, die er bereits bewusst gesetzt hat, zeigt der Konfigurator einen Dialog mit einem Lösungsvorschlag.

Wann gilt ein Merkmal als "bewusst gesetzt"?

Ein Merkmal gilt als touched (bewusst gesetzt), wenn:

  • Der Benutzer es manuell verändert hat, ODER
  • Ein Konfigurationsschritt abgeschlossen wurde (dann gelten alle Merkmale dieses Schritts als touched)

Im Dialog sieht der Benutzer:

  • Welches Merkmal er ändern möchte
  • Welche anderen Merkmale ebenfalls geändert werden müssten
  • Die konkret vorgeschlagenen neuen Werte

Der Benutzer kann dann entscheiden:

  • ✅ Lösung annehmen: Die vorgeschlagenen Änderungen werden übernommen
  • ❌ Ablehnen: Die ursprüngliche Konfiguration bleibt bestehen

Wie wird die Lösung berechnet?​

Die Engine verwendet ein intelligentes Suchverfahren (Depth-First Search mit Backtracking), um die bestmögliche Lösung zu finden:

Grundprinzip: So wenig wie möglich ändern​

Das Ziel ist immer, die Konfiguration des Benutzers so weit wie möglich zu erhalten und nur die minimal notwendigen Änderungen vorzuschlagen.

Priorisierung bei der Lösungssuche

Die RuleEngine bevorzugt bei der Suche immer zuerst Merkmale, die der Benutzer noch nicht aktiv verändert hat. Diese sogenannten untouched Merkmale werden zuerst angepasst. Nur wenn dadurch keine gültige Lösung gefunden werden kann, werden auch Merkmale geändert, die der Benutzer bewusst gesetzt hat – und erst dann wird ein Konflikt-Dialog angezeigt.

Ablauf der Lösungsfindung​

  1. Das geänderte Merkmal wird festgesetzt – es ist der Ausgangspunkt und wird als fixer Wert behandelt.

  2. Die Engine bestimmt alle betroffenen Merkmale – also alle Merkmale, die in gemeinsamen Regeln mit dem geänderten Merkmal vorkommen.

  3. Merkmale werden in optimaler Reihenfolge geprüft:

    • Merkmale, von denen andere abhängen, werden zuerst bearbeitet
    • Eltern-Instanzen kommen vor ihren Kind-Instanzen
    • Bei gleicher Ebene: nach der im Backend konfigurierten Anzeigereihenfolge
  4. Für jedes Merkmal werden Werte ausprobiert:

    • Zuerst wird immer der bisherige Wert probiert
    • Nur wenn dieser nicht passt, werden Alternativen getestet
    • Wenn ein Wert zu einem gültigen Zustand führt, geht es weiter zum nächsten Merkmal
  5. Backtracking bei Sackgassen:

    • Wenn für ein Merkmal kein gültiger Wert gefunden wird, geht die Engine einen Schritt zurück
    • Sie probiert beim vorherigen Merkmal den nächsten alternativen Wert
    • Dieser Prozess wird fortgesetzt, bis eine vollständige Lösung gefunden wird

Schrittweiser Suchbereich​

Die Engine beginnt die Suche im engsten sinnvollen Bereich (z.B. innerhalb einer Produkt-Instanz und ihrer direkten Kinder). Nur wenn dort keine Lösung möglich ist, wird der Suchbereich schrittweise erweitert. Merkmale außerhalb des aktuellen Bereichs bleiben unverändert.

Beispiel der Lösungsfindung:

Ausgangssituation:
- Serie: Modern (vom Benutzer gesetzt)
- Material: Holz (vom Benutzer gesetzt)
- Farbe: Natur (automatisch gesetzt)

Benutzer wählt: Material → Kunststoff

Lösungssuche:
1. Material = Kunststoff (gewählt, wird fixiert)
2. Serie = Modern probieren
→ Regel prüfen: Modern + Kunststoff + Natur? ❌ Nicht gültig
3. Farbe umstellen:
→ Farbe = Weiß probieren
→ Regel prüfen: Modern + Kunststoff + Weiß? ❌ Nicht gültig
4. Backtrack: Serie ändern
→ Serie = Classic probieren
→ Regel prüfen: Classic + Kunststoff + Weiß? ✅ Gültig!

Vorgeschlagene Lösung:
- Material: Kunststoff (wie gewünscht)
- Serie: Classic (geändert von Modern)
- Farbe: Weiß (geändert von Natur)

Sicherheitsnetz bei Komplexität​

Wenn die Abhängigkeiten so komplex sind, dass nach 200.000 Iterationen keine Lösung gefunden wurde, bricht die Engine ab und zeigt eine entsprechende Meldung. Dies schützt vor endlosen Berechnungen bei sehr komplexen oder widersprüchlichen Regelsystemen.