Zweck und Aufruf
Ersetzt in der Stückliste einer Baugruppe die Unterbaugruppen Ebene für Ebene durch ihre Komponenten. Die Stücklisten der Unterbaugruppen selbst bleiben unverändert.
-
WebAPI:
POST ERP/v5.59/ItemImportApi/DisassembleAssemblyItemmit{ "Data": { "AssemblyItemNumber": "...", "Level": null } } -
Level:-
null: alle Ebenen auflösen. -
n: die ersten n Ebenen auflösen. -
0: nichts wird geändert, aber trotzdem ein Logbucheintrag geschrieben. -
Ein Wert größer als die Tiefe ergibt dasselbe wie
null.
-
-
Berechtigung: Der Benutzer braucht „Baugruppe komplett auflösen“ (
USERRECHTE.DISASSEMBLE_AI). Ohne sie bricht der Aufruf mit Fehler 5260 ab, und nichts wird geändert. -
Transaktion: Alles läuft in einer Transaktion. Bei Erfolg wird ein Logbucheintrag geschrieben (
ARTIKELSTAMM/BGR_AUFLÖSUNG, Text „bis zur Ebene n“ bzw. „bis zur untersten Ebene“). Danach werden die temporären Auflösungszeilen gelöscht.
Ablauf
Jede Ebene ist ein Durchlauf:
-
Die ganze Baugruppe wird in eine temporäre Tabelle,
STK_AUFLOESEN, aufgelöst. -
Übernommen werden alle Zeilen der Ebenen 1 und 2, die keine Unterbaugruppe sind, sowie die Unterbaugruppen auf Ebene 2.
-
Alle bisherigen Zeilen der Stückliste werden gelöscht, und die neuen Zeilen werden ab 1 nummeriert eingefügt.
Was aufgelöst und übernommen wird
|
Zeilenart |
Verhalten |
|---|---|
|
Artikel (ART leer/0) |
Bleibt; Menge × Menge der Unterbaugruppe |
|
Unterbaugruppe (Artikel mit BG=1) |
Wird durch ihre Komponenten ersetzt |
|
Maschine (ART 1) |
Bleibt; Menge wird multipliziert |
|
Gruppen-/Textzeile (ART 4) |
Bleibt, samt Langtext |
|
Arbeitsgang (ART 2), Zeilen mit ART 3 |
Bleiben |
In die neuen Zeilen übernommene Spalten:
-
Artikel- bzw. Maschinennummer
-
Zeilenart (
ART) -
Menge
-
FIX -
OHNE_PRODUMB(ohne Produktionslagerbuchung) -
AUTO_VERBRAUCH(automatischer Verbrauch) -
VERBRAUCHSLAGER(Verbrauchslager) -
VARIANTEN(Varianten) -
LANGTEXT(Langtext)
Mengen:
-
Die Menge einer Komponente wird mit der Menge jeder darüberliegenden Unterbaugruppe multipliziert. Beispiel: K4 = 1 + 5 × 3 × 3 = 46.
-
Eine Komponentenzeile mit FIX=1 behält ihre eigene Menge und wird nicht multipliziert (K2 bleibt 4).
-
FIX=1 auf der Zeile einer Unterbaugruppe wirkt sich nicht auf deren Komponenten aus. UBG3 wird trotzdem 3 × 3 = 9.
Zusammenfassen:
-
Zeilen werden zu einer Zeile mit summierter Menge zusammengefasst, wenn Artikelnummer, Zeilenart, FIX, die Verbrauchseinstellungen, Varianten und Langtext alle gleich sind.
-
Unterscheidet sich einer dieser Werte, bleiben die Zeilen getrennt.
-
Gruppenzeilen mit gleicher Bezeichnung aus verschiedenen Unterbaugruppen werden ebenfalls zusammengefasst.
Was verloren geht oder sich ändert
|
Was |
Auswirkung |
|---|---|
|
Alternativzeilen ( |
Gehen verloren, auf jeder Ebene, auch auf der obersten Ebene der aufgelösten Baugruppe |
|
Zeilenreihenfolge |
Geht verloren. Die Zeilen werden ohne feste Reihenfolge neu ab 1 nummeriert; Gruppenüberschriften stehen daher nicht mehr direkt über ihren Komponenten |
|
Menge von Gruppenzeilen |
Wird aus der summierten Gesamtmenge berechnet; ursprünglich hat die Zeile keine. |
|
Weitere Zeilenspalten (z. B. |
Werden nicht übernommen |
|
Zeilen ohne Stammdaten (Artikel oder Maschine existiert nicht) |
Gehen bei der Auflösung verloren |
|
Stücklisten der Unterbaugruppen |
Bleiben unverändert |
Sonderfälle
-
Artikel ohne Stückliste: keine Änderung. Laut Code wird trotzdem ein Logbucheintrag geschrieben; die Tests prüfen das nicht.
-
Nicht existierende Artikelnummer: nicht geprüft.
-
Baugruppe (BG=1) ohne Stückliste: lässt sich in TaskCenter nicht anlegen und ist daher nicht abgedeckt.
-
Tiefere Ebenen: Die Auflösung multipliziert mit der eigenen Menge der übergeordneten Zeile statt mit deren Gesamtmenge. Das wirkt sich hier nicht aus, weil jeder Durchlauf nur die Ebenen 1 und 2 verwendet.
Testabdeckung
MX.NUnitTests\MasterData\Items\DisassembleAssemblyItemTests.cs, 8 Tests, alle grün:
-
alle Ebenen, eine Ebene, Ebene für Ebene
-
summierte Mengen
-
Artikel ohne Stückliste
-
fehlende Berechtigung
-
die zwei Sonderfall-Tests mit
TST-DIS