- 15 Oct 2024
- 2 Minutes to read
- Print
- DarkLight
- PDF
Positionsübergreifende Konfiguration
- Updated on 15 Oct 2024
- 2 Minutes to read
- Print
- DarkLight
- PDF
Mit der Positionsübergreifenden Konfiguration ist es möglich in einer Konfiguration zu prüfen welche Positionen schon im Beleg enthalten sind. Von den Positionen können auch bestimmte Inhalte zur Verfügung gestellt werden damit man auch auf Merkmale in einem Beleg reagieren kann.
Beispiel für eine Positionsübergreifende Konfiguration:
Konfigurationsmodell für Transportkostenberechnung. Wenn dieses Modell erfasst wird dann soll der Konfigurator prüfen welche Modelle bereits im Beleg enthalten sind und wie sich diese auf die Transportkosten auswirken.
Aktivierung im Warensystem
Wenn eine Position erfasst wird welche auf bestehende Positionen prüfen soll dann muss dies in den Eigenschaften im Warensystem im Bereich 'Merkmale' aktiviert werden.
Es ist sehr wichtig, dass dies nur bei den benötigten Positionen aktiviert wird da sich dies ansonsten negativ auf die Performance auswirken kann.
Feld für Warenstamm CSV Export und Import: „PosOverlappingConfig“
Daten der bestehenden Positionen lesen
Wenn ein Modell konfiguriert wird welches die Einstellung im Warenstamm markiert hat dann steht in der Konfiguration ab dem Initmakro folgende Variable zur Verfügung:
LPOSITIONLIST = {}
Diese Variable ist eine Liste mit Attributen in welchen Daten der bestehenden Positionen enthalten sind. D.h. je Position gibt es einen Listeneintrag mit den jeweiligen Informationen als Attribut.
Beispiel siehe Screenshot:
Folgende Attribute werden von moveIT ISS+ automatisch zur Verfügung gestellt:
Sichtbare Positionsnummer
Laufende Positionsnummer
Interne Positionsnummer
Parametersystemversion
Eignernummer
Positionstyp
Menge
Einheit
Wert 1
Wert 2
Warenstammmodell
Warenversion
Als Zusätzliches Attribut wird noch „LGlobalVar“ angegeben. Dieses Attribut ist grundsätzlich leer kann jedoch vom Stammdatenentwickler selbst gefüllt werden. D.h. ich kann bei meiner Positionsübergreifenden Konfiguration auch Informationen darüber erhalten welche Farben, Griffe, Gläser, … in meinem Beleg bereits erfasst wurden. Wie diese Daten zur Verfügung gestellt werden siehe nachfolgender Punkt.
Daten der aktuellen Position speichern
Damit die Positionsübergreifende Konfiguration (Bsp.: Transportkostenberechnung) Informationen aus den Konfigurationen bekommt müssen diese Informationen im Makro gespeichert werden.
Dafür wird folgende Variable verwendet:
GLOBALCONFIGVARLIST = ""
Diese Variable ist eine Charaktervariable welche mit dem Trennzeichen „;“ (Semicolon) gefüllt werden muss.
Beispiel:
GLOBALCONFIGVARLIST = FpFarbe + ";" + FpEinbau + ";" + FpGriff
Das Ergebnis kann dann wie folgt aussehen: GLOBALCONFIGVARLIST = "RAL3003;G07;Std"
Diese Einträge werden dann später in der positionsübergreifenden Konfiguration als Listeneinträge zur Verfügung gestellt.
Organisatorisches
Eine positionsübergreifende Konfiguration ist von den bestehenden Positionen im Beleg abhängig. Dies hat zur Folge, dass es vorkommen kann, dass diese nicht mehr korrekt ist wenn sich bei den anderen Positionen etwas verändert.
Beispiel: Die Transportkosten errechnen sich aufgrund der bestehenden 10 Positionen. Wird bei einer Position die Größe verändert so kann dies bedeuten, dass die Transportkosten höher werden.
Um die technische Korrektheit sicherzustellen wird bei einer Änderung die Position auf „technisch nicht frei“ gestellt
Dies trifft grundsätzlich dann zu:
Es wird eine Position hinzugefügt
Es wird eine Position gelöscht
Erweiterte Überprüfung auf Änderung
Wenn sich innerhalb der Konfiguration etwas ändert dann muss die positionsübergreifende Konfiguration nicht immer auf „technisch nicht frei“ gesetzt werden. Beispiel: bei 2 Positionen werden die Sprossen anders angeordnet. Dies hat jedoch auf die Transportkosten keine Auswirkung.
D.h. grundsätzlich haben Änderungen innerhalb der Konfiguration keine Auswirkung auf den Status der positionsübergreifenden Konfiguration. Der Stammdatenentwickler kann jedoch Ausnahmen dafür angeben. Dies wird in folgender Variable gefüllt:
POSOVERLAPPINGDATAFIELDS = ""
Dies ist eine Charaktervariable welche mit den Attributen der Variable LPOSITIONLIST gefüllt werden muss wo der Stammdatenentwickler möchte, dass sich bei einer Änderung der Status auf „technisch nicht frei“ umstellt.
Beispiel:
POSOVERLAPPINGDATAFIELDS = "VALUE1, VALUE2, QUANTITY, lGlobalVar"
Bei diesem Beispiel wird die positionsübergreifende Konfiguration auf “technisch nicht frei” gesetzt sobald sich bei Wert 1, Wert 2, Menge oder bei den Konfigurationsdaten der Variable LGlobalVar etwas verändert.
Sonstiges:
Wird der Beleg überrechnet so werden die positionsübergreifenden Konfigurationen zum Schluss überrechnet.
Positionsübergreifende Konfigurationen können nicht abhängig von anderen positionsübergreifenden Konfigurationen sein. Dies wäre eine Endlosschleife und ist deshalb programmtechnisch unterbunden.