Stückliste mit Formeln
Die Stückliste mit Formel ermöglicht Ihnen die Errechnung der Menge anhand einer Formel. Die Idee hinter dieser Funktionalität ist, dass abhängig von verschiedenen Eingabeparametern, welche je Stückliste unterschiedlich sein können, entsprechende Berechnungen für die Ermittlung der Positionsdaten wie Menge, Abmessungen (B x H x T) und Artikel durchgeführt werden können. In weiterer Folge kann anhand der errechneten Daten eine echte Stückliste erzeugt werden, mit der die Produktion dann die entsprechenden Vorgaben bekommt.
Stücklisten mit Formel werden in der Übersicht blau dargestellt.
Parameter
Identifizieren Sie die Stücklisten, bei denen Sie die Formeln hinterlegen möchten. Haken Sie bei diesen Stücklisten mit Formeln an, damit der Reiter Parameter freigeschaltet wird.
Parameter definieren
Definieren Sie im Reiter Parameter nun die Eingabeparameter, die für diese Stückliste gelten sollten. Die Kennung ist dabei die Variable, die Sie im späteren Verlauf für die Berechnung verwenden. Die Bezeichnung ist die Bezeichnung für den Anwender. Ist Pflichtfeld angehakt, so muss zwingend ein Wert eingegeben werden. Sind Min bzw. Max-Wert definiert, so darf der erfasste Wert nur zwischen diesen Grenzen liegen. Zusätzlich steht bei der Texteingabe die Möglichkeit der Combobox zur Verfügung. Die auswählbaren Werte sind jeweils durch einen senkrechten Strich | (vertical Bar, Pipe) getrennt. Ist Pflichtfeld nicht angehakt, so kann auch leer ausgewählt werden, sonst wird der erste Wert aus Bereich vorgsechlagen.
Kopieren von Parametern
Die Parameter können von übergeordneten Stücklisten aus der Baumstruktur heraus übernommen werden. Klicken Sie dazu in der Parameterauswahlliste auf fehlende Parameter nachtragen. Sie erhalten nun eine Auswahlliste, in der die über dieser Stückliste liegenden Formelstücklisten aufgelistet sind.
Sollten Sie Ihre Stückliste einmal nicht von oben nach unten aufbauen, wählen Sie “alle Formelstücklisten” in der Auswahl.
Formeln
Auflösung von Variablen
Werte aus Variablen können erst verwendet werden, wenn sie initialisiert und errechnet sind. Wichtig bei der Verwendung von Variablen ist deren Einsatz in ihrer Reihenfolge und in der korrekten Ebene.
Die Berechnung der Stücklisten erfolgt von oben nach unten. Zuerst wird die obere Stückliste berechnet, danach erst ihre Unterstücklisten. Variable einer Unterstückliste stehen in der Stückliste nicht zur Verfügung. Sie stehen immer erst eine Ebene darunter zur Verfügung.
Variable KundeId
Als Parameter steht com.lp.server.util.KundeId (Kunde) zur Verfügung. In den Parametern kann in diesem Fall ein Kunde ausgewählt werden. Der ausgewählte Kunde wird bei der Überleitung in Produktstücklisten in alle Stücklisten, die Aufgrund der Formeln neu erzeugt werden, eingetragen.
Formelbeispiele
Division
Der Parameter LH wird durch 100 dividiert und das Ergebnis ist die Stücklistenmenge.
BigDecimal lh = $P{LH};
return (lh.divide(new BigDecimal(100)));
Tausendstel
Die Stücklistenmenge ist in Tausendstel des Parameters LL multipliziert mit 4 und 5 addiert.
BigDecimal ll = $P{LL};
BigDecimal tausendstel = ll.divide(new BigDecimal(1000.0));
return tausendstel.multiply(new BigDecimal(4.0)).add(new BigDecimal(5.0));
Ganzzahlige Ergebnisse
Der Parameter LL entspricht einer Länge in mm. Die Stücklistenposition ist LL in Meter und als ganze Zahl.
BigDecimal ll = $P{LL};
int anzahl;
anzahl = ll.intValue() / 1000;
return new BigDecimal(anzahl);
Bedingung
Wenn LL größer als 1000 ist, dann ist die Stücklistenmenge 1. Andernfalls ist die Stücklistenmenge 0,5.
BigDecimal ll = $P{LL};
if(ll.compareTo(new BigDecimal(1000))>0) {
return (new BigDecimal(1));
}
return(new BigDecimal(0.5));
Bedingung anhand von Texten
Wenn der Textparameter AF den Text ALU enthält, dann ist die Stücklistenmenge 1. Andernfalls ist die Stücklistenmenge 0.
String af = $P{AF};
BigDecimal m;
if (af.toUpperCase().contains("ALU")) {
m = new BigDecimal(1.00);
} else {
m = new BigDecimal(0.00); }
return m;
Dimensionen ändern
Bei einem eindimensionalen Artikel wird die Breite gesetzt und die Menge gleich belassen.
BigDecimal ll = $P{LL};
BigDecimal mng = getMenge();
Double d1 = new Double ((ll.doubleValue() - 175) / 1000);
setDimension1( d1 );
return (mng);
Fehlermeldung
Position kann nicht über die Zwischenablage hinzugefügt werden
Sollte die Position mit Formel nicht über die Zwischenablage eingefügt werden können, fehlen Parameter. Stellen Sie sicher, dass alle Parameter der Formeln in der neuen Stückliste, in die Sie einfügen möchten, enthalten sind.
Formel nicht gefunden
Die Meldung “Methode/Formel nicht gefunden” bedeutet, dass in einer Stückliste auf einer Position eine fehlerhafte Formel gespeichert wurde. Da bei der Speicherung bereits ein Fehler gemeldet wurde, wurde das erforderliche Class-File nicht erzeugt. Um die richtige Stücklistenposition zu finden, klicken Sie einfach auf den GoTo Button bei Stücklistenposition und Sie stehen direkt auf der fehlerhaften Formel. Bessern Sie bitte die falsche Formel entsprechend aus.
Fehler bei der Übersetzung
Die Meldung “Fehler bei der Übersetzung” kann beim Speichern der Formel auftreten. Die Meldung bedeutet, dass eine entsprechende Methode nicht gefunden wurde.
Klasse nicht erzeugbar wrong return type
Die Meldung “Klasse nicht erzeugbar” kann zum Beispiel bei der Gesamtkalkulation angezeigt werden. Sie bedeutet, dass eine Formel hinterlegt wurde, deren Rückgabewert nicht den geforderten Werten entspricht. Für Stücklistenpositionen muss ein BigDecimal zurückgegeben werden. Für Positionen im Arbeitsplan kann kein Rückgabewert angegeben werden, es kann nur die Stück- und Rüstzeit gesetzt werden.
Klasse nicht erzeugbar expecting to find object/array on stack
Gegebenenfalls erhalten Sie eine Meldung beim Verwenden der Formelstückliste. Korrigieren Sie Ihre Formeln entsprechend.
Stücklisten anlegen
Angebotskalkulation
Sie können eine Formelstückliste im Angebotsmodul kalkulieren und ein Angebot erzeugen. Wählen Sie dafür in der Angebotsposition das Icon.
Produktstückliste im Modul Stückliste
Im Modul Stückliste können Sie aus dem Menü Bearbeiten → Konfigurieren eine Produktstückliste konfigurieren und anlegen. Es wird dazu die Formelstückliste mit allen formelbehafteten Unterstücklisten kopiert und anstelle der Formeln die errechneten Werte eingetragen.
Die Artikelnummer der Stücklisten werden aus den Formelstücklisten übernommen und um eine laufende 2+4 stellige Nummer ergänzt. Die ersten zwei Stellen sind das Geschäftsjahr der Anlage gefolgt von einer vierstelligen laufenden Nummer. Diese wird auf die angelegte maximale Länge der Artikelnummer rechtsbündig durch Ergänzung um _ (Underline / Unterstrich) aufgefüllt. Um eine Durchgängigkeit zu erreichen, werden die Produktstücklistennummern zentral verwaltet und über alle Arten von Formelstücklisten hochgezählt. Unterstücklisten für die Fertigung von Ersatzteilen kollidieren dadurch nicht mit anderen Formelstücklisten.
Bei der Erzeugung der Produktstücklisten werden außerdem, bei eingeschaltetem Parameter DIMENSIONEN_BESTELLEN, diejenigen Artikel angelegt, bei denen die Dimensionen für die stückgenaue Beschaffung der für Sie gefertigten Artikel benötigt werden.