Home › Forum › Nuclos Bedienung › Automatisieren › Stückliste
- Dieses Thema hat 29 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 6 Jahre, 4 Monaten von
K. Struckmeier.
-
AutorBeiträge
-
16 Januar 2017 um 11:50 Uhr #9375
Frank Pavlic
TeilnehmerHallo,
richtig, die Mengenangabe muss entweder direkt im Artikelstamm hinterlegt sein, bspw. „Bauteile-Menge“ oder in einem eigenen BusinessObject, bspw. „Stückliste“, wie der Titel es bereits erwähnt 🙂Gruß
Frank16 Januar 2017 um 12:15 Uhr #9376K. Struckmeier
TeilnehmerJa, die Mengenangabe eines Artikels ist im Artikelstamm hinterlegt.
Ok gehen wir mal davon aus, dass ich für jeden Artikel, das eine Stückliste benötigt ein BO anlege, indem die Bauteile und die Menge der Bauteile drin stehen. Nun muss ich aber bei etwa jeder zweiten Bestellung, die Stückliste ändern, was ja ok ist, nur wie mache ich dass dann in der Regel, dass alle Artikel in der Stückliste angesrochen werden, damit ich die Menge dann von den Verfügbaren Artikeln im Artikelstamm abziehen kann?
16 Januar 2017 um 12:19 Uhr #9377Nick Röder
Teilnehmer[quote=“Elvis“ post=9115]Sie könnten eine Regel schreiben, die alle Artikel der Stückliste hinter dem ausgewählten Artikel in die Bestellung kopiert. Dann müssten Sie später nur noch die Menge ändern bzw. die Artikel löschen die Sie nicht verwenden. Wenn diese Artikel nicht auf einem Lieferschein erscheinen sollen, müsste Sie sie noch als intern markieren.
Alternativ kopieren Sie diese internen Artikel in ein separates Subform in der Bestellung.[/quote]
16 Januar 2017 um 12:32 Uhr #9378K. Struckmeier
TeilnehmerAh ok, jetzt habe ich das erst verstanden :). Und wie schreibe ich eine Regel die die Bauteile in ein anderes BO kopiert?
16 Januar 2017 um 12:44 Uhr #9379K. Struckmeier
TeilnehmerIst es möglich, dass ich die ganzen Stücklisten alle in ein BO speichern kann.
Zb. habe ich es so gemacht, dass ich ein BO Adressen angelegt habe und ich dann von jedem Kunden jeweils eine Adresse eingespeichert habe. Wenn ich dann auf einen Kunde klicke, sieht man in einem Subform die angegeben Adresse. Funktioniert das dann auch mit der Stückliste bzw. mit dem Kopieren, von den Artikeln?
Weil es sollen ja dann nicht alle Artikel aus einem BO kopiert werden, sondern nur die aus dem einem Subform.16 Januar 2017 um 16:25 Uhr #9381Frank Pavlic
TeilnehmerHallo,
wie sieht denn nun dein Datenbank-Design bzgl. Bauteile/Stücklisten aus? Ich habe mir den Thread durchgelesen und komme immer mehr zu dem Ergebnis, dass wir dir ein Design für die Stückliste vorkauen sollen, die genau zu deinem Fall passt. Oder ist meine Glasskugel verschmutzt?
Sag doch endlich mal, wie deine Stückliste aufgebaut ist, dann kann dir sicher hier mit der Regelprogrammierung geholfen werden.
Zum Beispiel die Frage, ob alle Stücklisten in einer Tabelle gespeichert werden können. Ja sicher, ob es aber die beste Lösung für _deine_ Geschäftsprozesse ist, kannst nur du entscheiden.Gruß
Frank16 Januar 2017 um 16:34 Uhr #9382K. Struckmeier
TeilnehmerIch entschuldige mich für die ungenaue Beschreibung.
Ich habe das BO Artikel und das BO Stückliste. Wenn man einen Artikel anlegt ist in dem Layout ein Subform: BO Stückliste. Da kann ich dann die Artikel eintragen aus dem der Hauptartikel besteht. Die Artikel hole ich mir aus dem BO Artikel und in ein anderes Feld schreibe ich die benötigte Menge rein.
In dem BO Artikel steht neben jedem Artikel in einem Feld die Verfügbare Menge.Wenn ich jetzt einen Warenausgang mache und ich dann den Artikel mit der hinterlegten Stückliste auswähle, soll die Menge aller Artikel aus der Stückliste von den Verfügbaren Artikeln abgezogen werden.
16 Januar 2017 um 17:16 Uhr #9383Frank Pavlic
Teilnehmerna also, los geht’s:
Angenommen, dein Warenausgang besteht aus Tabelle „Warenausgang“ und „Warenausgang-Positionen“ dann wären folgende Zeilen ein Weg. Ich habe bewusst diesen gewählt, um die einzelnen Schritte besser aufzeigen zu können. Sicher kannst Du auch alles gleich mit einer SQL-Anweisung mundgerecht in die Regel holen.
Also hier ein wenig Pseudocode, musst Du halt an deine BOs und Attribute anpassen:
—>
Warenausgang waus = context.getBusinessObject(Warenausgang.class);
List wposlist = waus.getWarenausgangpositionen();
for (Warenausgangpositionen wp : wposlist) {
Long artikelId = wp.getArtikelId();
Integer liefermenge = wp.getLiefermenge();
Query qparm = QueryProvider.create(Stueckliste.class);
qparm.where(Stueckliste.Hauptartikel.eq(artikelId);
List bauteile = QueryProvider.execute(qparm);
for (Stueckliste bt : bauteile) {
Integer bauteilbuchungsmenge = bt.getMenge() * liefermenge;
funktion_lagerbuchung_aufrufen(bt.getArtikel(), bauteilbuchungsmenge);
}
}
<—-Gruß
FrankPs: Ich würde es gerne als Code markieren, aber der BBCode-Editor lädt bei mir nicht.
16 Januar 2017 um 17:37 Uhr #9384K. Struckmeier
TeilnehmerOk werde ich dann man ausprobieren. Vielen vielen Dank. 🙂
17 Januar 2017 um 11:49 Uhr #9387K. Struckmeier
Teilnehmeralso Warenausgangpositionen ist ein Attribut im BO Warenausgang?
17 Januar 2017 um 19:28 Uhr #9388Frank Pavlic
TeilnehmerHallo,
ich gehe mal davon aus, dass du mit einem Warenausgang mehrere Artikel gleichzeitig versenden kannst. Also sind
Warenausgangspositionen nicht ein Attribut sondern eine Subform. Und mit getWarenausgangpositionen() holst du dir die Datensätze aus der Subform.Gruß
Frank18 Januar 2017 um 11:18 Uhr #9390K. Struckmeier
Teilnehmerah ja ok danke
23 Januar 2017 um 11:35 Uhr #9403K. Struckmeier
TeilnehmerOk habe jetzt die Regel kopiert. Jetzt kommt aber die Fehlermeldung, dass der Klassenname nicht gelesen werden kann.
[EDIT]
Muss ich irgendeine Klasse importieren?
23 Januar 2017 um 16:23 Uhr #9415Frank Pavlic
TeilnehmerHallo,
ich sehe leider keine Regel, die ich analysieren könnte.
Bitte posten und bitte den Fehler-Stacktrace nicht vergessen.Gruß
Frank24 Januar 2017 um 12:26 Uhr #9425K. Struckmeier
TeilnehmerHat sich jetzt erledigt, aber trotzdem vielen vielen Dank :).
-
AutorBeiträge