Baugruppe Auflösen – Verhalten und Ablauf der Stücklistenauflösung

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/DisassembleAssemblyItem mit { "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:

  1. Die ganze Baugruppe wird in eine temporäre Tabelle, STK_AUFLOESEN, aufgelöst.

  2. Übernommen werden alle Zeilen der Ebenen 1 und 2, die keine Unterbaugruppe sind, sowie die Unterbaugruppen auf Ebene 2.

  3. 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 (ALTERNATIVE_ZU, z. B. Alternativmaschine)

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. REFERENZ, LEISTUNGSKATALOG)

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