Digitale Stücklisten und Ersatzteilverwaltung programmieren
Zielgruppe: Auszubildende im empfohlenen 3. Ausbildungsjahr mit Grundlagen aus A1 und A2 sowie fachlichen Grundkenntnissen des Modellfalls. Lernzeit: etwa 6–9 Unterrichtsstunden zuzüglich eigenständiger Projektarbeit. Werkzeuge: Papier oder Tabellenkalkulation und optional Python 3 mit dem eingebauten Modul sqlite3. Alle Aufgaben sind lokal, offline und ohne kostenpflichtiges KI-Konto möglich.
Einleitung
Du entwickelst eine lokale Ersatzteil-App für ein frei erfundenes Prüf- und Wartungslabor. Die App verwaltet Bauteilkatalog, Stücklisten, Varianten, Lagerbestände und Revisionen. Statt ein vermeintlich ähnliches Teil ungeprüft zu tauschen, soll sie eine konfigurationsbezogene, nachvollziehbare Entscheidung ausgeben.
Lernziele: Du erklärst den Stücklistenzyklus und verhinderst zyklische Baugruppenverweise; du berechnest Mengen korrekt über Baugruppenebenen und je Revision; du markierst veraltete Revisionen; du leitest eine passende Ersatzteilentscheidung aus Variante, Stückliste und Bestand ab und begründest Ablehnungen. Ein solches Ergebnis ist nur eine Simulation und keine reale Maschinensteuerung, technische Freigabe oder Ersatzteilzulassung.
Vorwissen aktivieren: Bearbeite zunächst die vorhandene Grundlage Kursgrundlage und notiere in drei Sätzen, was du über Bauteilkennungen, Tabellen und lokale Programme aus A1/A2 bereits weißt. Der verlinkte Seiteninhalt war bei der Erstellung nicht abrufbar; dieser Kurs behauptet deshalb keine unbekannten Einzelinhalte der Grundlage. Danach entsteht ein neues, weiterführendes Lernprodukt.
Arbeitsweg: Begriff und Struktur verstehen → angeleitetes Modell prüfen → Datenmodell und lokale Abfrage programmieren → Fehlerfälle testen → eigene Variante übertragen. Nutze bei Bedarf die Hilfsspalten und die ausgeschriebenen Prüfschritte, bevor du selbstständig arbeitest.
Bauteilkataloge, Stücklisten und Lebenszyklus
Teile, Baugruppen und Varianten unterscheiden
Eine Stückliste oder Bill of Materials (BOM) beschreibt, aus welchen Bauteilen und Unterbaugruppen eine Baugruppe besteht und welche Mengen je Einheit benötigt werden. Eine Ersatzteilstückliste ist eine zweckgebundene Sicht auf austauschbare, dokumentierte Positionen. Eine Variante ist eine konkrete Konfiguration mit genau festgelegten Komponenten. Der Bauteilkatalog enthält Stammdaten wie Kennung, Bezeichnung, Einheit und bekannte Revisionen. Eine Stücklistenposition verbindet dagegen die Elternbaugruppe mit einem Kindteil, einer Menge und einer zulässigen Revision. Bestand bedeutet physisch im Modell verfügbares Lagergut; Bedarf bedeutet, was eine Auswahl benötigt.
Ein Stücklistenzyklus liegt vor, wenn sich eine Baugruppe über ihre Unterpositionen wieder selbst enthält, zum Beispiel LAB-100 → MOD-200 → LAB-100. Das ist keine zulässige endliche Auflösung. Prüfe den gerichteten Graphen vor einer Bedarfsermittlung mit einer Tiefensuche und einem Pfadstapel. Ein bloßes Duplikat desselben Teils in verschiedenen Zweigen ist dagegen kein Zyklus.

Bild und Alternativtext: Zusammengebaute Ansicht neben einer Explosionsansicht. Vergleiche Bauteilpositionen und deren Zusammengehörigkeit, ohne aus der Zeichnung ungeprüft eine Stückliste abzuleiten. Quelle: Wikimedia Commons, USPTO, gemeinfrei als US-Regierungswerk.
Vom Katalog zur versionierten Stückliste
Bei jeder Position gehören mindestens die übergeordnete Kennung, die Kindkennung, die benötigte Menge pro Eltern-Einheit, die Einheit und eine Gültigkeit dazu. Für nachvollziehbare Änderungen bekommt ein freigegebener Datensatz eine Revision (beispielsweise R2), einen Status und ein Änderungsdatum. Eine neue Revision ersetzt nicht automatisch alte Lagerbestände; alte Datensätze bleiben für einen Änderungsnachweis auffindbar und werden als nicht aktuell markiert.
Vereinfachter Dokumentenzyklus im Lernlabor: Entwurf → Plausibilitätsprüfung → dokumentierte Musterfreigabe → gültige Revision → Änderungsvorschlag → neue Revision → Archiv der vorherigen Revision. Die hier genannte Musterfreigabe ist nur ein Testzustand im Lernprogramm, niemals eine industrielle Sicherheitsfreigabe. Verknüpfe Dateiname und Version wie LAB100_BOM_R2_2026-10-22.csv. Ein unveränderliches Änderungsprotokoll hält fest, wer im synthetischen Beispiel welche Position warum angepasst hat.

Bild und Alternativtext: Explosionszeichnung einer Zahnradpumpe mit räumlich getrennten Einzelteilen. Die Darstellung hilft beim Begriff Baugruppe; sie ist kein Einbau- oder Austauschplan. Quelle: Wikimedia Commons, Д.Ильин, Duk und cmglee, CC BY-SA 4.0, deutschsprachige Beschriftung als Dateiversion vorhanden.
Merkhilfe und Vertiefung
Merke: Katalog = welches Teil; Stückliste = wo und wie oft das Teil benötigt wird; Revision = welcher dokumentierte Stand; Bestand = wie viel dieses exakt gekennzeichneten Standes vorhanden ist. Vertiefung: Entwicklungssicht, Fertigungssicht und Servicesicht können unterschiedliche Positionen zeigen; gemeinsame Kennungen und explizite Transformationsregeln verhindern widersprüchliche Kopien. Prüfe bei Fremdteilen auch Einheit, Schnittstelle, Ausführung und dokumentierte Austauschregel – niemals allein den ähnlichen Namen.
Modellfall: Lokales Prüf- und Wartungslabor
Synthetische Dokumente und Varianten
Alle folgenden Kennungen, Zahlen und Bestände sind erfunden. LAB-100 ist ein reiner Übungsaufbau, der keinerlei reale Anlage repräsentiert. Eine Baugruppe benötigt je konfigurierter Variante die folgenden Positionen. Beide Varianten benutzen DIC-20 R2, aber unterscheiden sich bei Schraubenanzahl und Variantenmodul.
| Variante | Position | Revision | Bedarf je LAB-100 | Einheit |
|---|---|---|---|---|
| VL-A | DIC-20 | R2 | 1 | Stück |
| VL-A | SCH-02 | R1 | 4 | Stück |
| VL-A | DIC-30 | R1 | 1 | Stück |
| VL-B | DIC-20 | R2 | 1 | Stück |
| VL-B | SCH-02 | R1 | 6 | Stück |
| VL-B | DIC-40 | R1 | 1 | Stück |
Aktuelle Bestandsdatei lager_R2.csv:
| Teil | Revision | Vorrat | Status |
|---|---|---|---|
| DIC-20 | R2 | 2 | aktuell |
| SCH-02 | R1 | 9 | aktuell |
| SCH-02 | R0 | 5 | alt |
| DIC-30 | R1 | 2 | aktuell |
| DIC-40 | R1 | 0 | aktuell |
Angeleitetes Beispiel: Für ein LAB-100 der Variante VL-A benötigst du einmal DIC-20 R2, viermal SCH-02 R1 und einmal DIC-30 R1. Der Bestand reicht für zwei vollständige VL-A-Baugruppen, denn min(2 geteilt durch 1, 9 geteilt durch 4, 2 geteilt durch 1) abgerundet = 2. Nach einer simulierten Reservierung für eine VL-A verbleiben DIC-20 R2: 1, SCH-02 R1: 5 und DIC-30 R1: 1; damit ist noch eine weitere VL-A möglich. VL-B ist wegen DIC-40 R1 mit Bestand 0 nicht verfügbar. Die fünf alten Schrauben SCH-02 R0 dürfen den Mangel einer aktuellen Revision nicht verdecken.
Prüfauftrag 1 – Zyklus: Eine zusätzliche Testdatei enthält LAB-100 → MOD-50 und MOD-50 → LAB-100. Markiere den gesamten Pfad als Zyklus und verhindere, dass eine Berechnung endlos rekursiert. Prüfauftrag 2 – Menge: Rechne dieselbe Aussage für drei gewünschte VL-A nach: erforderlich sind drei DIC-20, zwölf SCH-02 R1 und drei DIC-30. Nenne alle Fehlmengen vor jeder Reservierung. Prüfauftrag 3 – alte Revision: SCH-02 R0 bleibt im Katalog sichtbar, trägt aber das Label ALT / NICHT FÜR R1 ERSATZWEISE VERWENDEN.

Bild und Alternativtext: Beispiel eines EAN-13-Barcodes als Kennzeichnungsmotiv. Ein Barcode ist kein Nachweis der Kompatibilität; die App muss eine Kennung erst mit Revision und Variante abgleichen. Quelle: Wikimedia Commons, Fred the Oyster, Public Domain.
Dokumente nachvollziehbar verwalten
Eine Version enthält die Rohdaten, eine kurze Änderungsnotiz und einen Prüfnachweis. Beispiel: BOM_R1 hatte SCH-02 R0; in BOM_R2 wurde nach einer dokumentierten Modelländerung SCH-02 R1 verpflichtend, ohne die alten fünf Stück stillschweigend umzubuchen. Ein Vergleich zeigt alte und neue Positionen, Menge und Wirkung. Eine alte Revision zu markieren ist keine Aussage, dass sie physisch defekt ist; für die konkrete Konfiguration fehlt nur eine bestätigte Austauschbarkeit.
Hilfsschema: Speichere je Dokument Kennung, Revision, Datum, Status und Vorgängerrevision. Verknüpfe jede Stücklistenposition mit dieser Dokumentrevision. Verwechsle sie nicht mit der Revision eines einzelnen Bauteils. Diese zwei Versionsachsen ermöglichen nachvollziehbare Änderungslisten.
Datenmodell und lokale Ersatzteil-App programmieren
Tabellen, Beziehungen und Prüfregeln
Für eine solide lokale Lösung trennst du Stammdaten und Beziehungen. part speichert einmalige Teilkennungen und Namen; part_revision speichert je Teil einen eindeutigen Versionsstand und Status; bom speichert Elternbaugruppe, Variante und Dokumentrevision; bom_item speichert Kind, Teilrevision und Stückmenge; stock speichert Menge je Teil und Revision; change_log protokolliert simulierte Änderungen. Primärschlüssel identifizieren Zeilen, Fremdschlüssel sichern Verweise, CHECK verhindert negative Mengen und unzulässige Positionen. Bei SQLite musst du die Fremdschlüsselprüfung pro Verbindung aktivieren.
| Tabelle | Schlüssel und wichtige Felder | Prüfung |
|---|---|---|
| part | part_id, name, unit | Eindeutige Teilkennung |
| part_revision | part_id, rev, state | Schlüssel aus Kennung und Revision |
| bom | bom_id, variant, document_rev | Eindeutige gültige Konfiguration |
| bom_item | bom_id, item_no, part_id, rev, qty | Positive Stückzahl und vorhandene Revision |
| stock | part_id, rev, on_hand | Nichtnegativer Bestand je Revision |
| change_log | event_id, document_rev, reason | Begründete simulierte Änderung |
Ein normalisiertes Modell vermeidet mehrfach kopierte Namen. Varianten werden nicht per Freitext erraten: gültige Kombinationen müssen in einer eigenen Varianten-Stückliste oder durch überprüfbare Auswahlregeln beschrieben sein. Die Bestandsanzeige kann nach Teil und Revision gruppieren; für die Bedarfsermittlung bleiben die Versionen getrennt.
Geführte Programmierübung mit Python 3 und SQLite
Lege lokal eine Datei app.py an. Dieser kleine ausführbare Kern enthält die zwei Varianten, prüft Bestandsmengen revisionsgenau und listet alte Revisionen auf. Er steuert keine reale Technik. Für den ersten Lauf wird die Testdatenbank im Arbeitsspeicher angelegt, damit sie keine produktiven Dateien berührt.
import sqlite3
def demo():
db = sqlite3.connect(":memory:")
db.execute("PRAGMA foreign_keys=ON")
db.executescript("""
CREATE TABLE part(id TEXT PRIMARY KEY, name TEXT NOT NULL);
CREATE TABLE rev(part TEXT, code TEXT, state TEXT NOT NULL,
PRIMARY KEY(part,code), FOREIGN KEY(part) REFERENCES part(id));
CREATE TABLE stock(part TEXT, code TEXT, n INTEGER NOT NULL CHECK(n>=0),
PRIMARY KEY(part,code),
FOREIGN KEY(part,code) REFERENCES rev(part,code));
CREATE TABLE bom(variant TEXT, part TEXT, code TEXT,
qty INTEGER NOT NULL CHECK(qty>0),
PRIMARY KEY(variant,part,code),
FOREIGN KEY(part,code) REFERENCES rev(part,code));
""")
db.executemany("INSERT INTO part VALUES(?,?)", [
("DIC-20","Kernmodul"),("SCH-02","Schraube"),
("DIC-30","Adapter A"),("DIC-40","Adapter B")])
db.executemany("INSERT INTO rev VALUES(?,?,?)", [
("DIC-20","R2","aktuell"),("SCH-02","R1","aktuell"),
("SCH-02","R0","alt"),("DIC-30","R1","aktuell"),
("DIC-40","R1","aktuell")])
db.executemany("INSERT INTO stock VALUES(?,?,?)", [
("DIC-20","R2",2),("SCH-02","R1",9),
("SCH-02","R0",5),("DIC-30","R1",2),("DIC-40","R1",0)])
db.executemany("INSERT INTO bom VALUES(?,?,?,?)", [
("VL-A","DIC-20","R2",1),("VL-A","SCH-02","R1",4),
("VL-A","DIC-30","R1",1),("VL-B","DIC-20","R2",1),
("VL-B","SCH-02","R1",6),("VL-B","DIC-40","R1",1)])
for variant in ("VL-A","VL-B"):
rows = db.execute("""
SELECT b.part,b.code,b.qty,s.n,r.state
FROM bom b JOIN stock s
ON (b.part=s.part AND b.code=s.code)
JOIN rev r
ON (b.part=r.part AND b.code=r.code)
WHERE b.variant=? ORDER BY b.part
""", (variant,)).fetchall()
capacity = min((n // qty for _,_,qty,n,_ in rows), default=0)
print(variant, "vollständige Einheiten:", capacity)
for part,code,qty,n,state in rows:
print(" ", part,code, "Bedarf:",qty,"Lager:",n,"Status:",state)
print("Alte Revisionen:", db.execute(
"SELECT part,code FROM rev WHERE state='alt'").fetchall())
db.close()
if __name__ == "__main__":
demo()
Erwartetes Ergebnis: VL-A = 2 vollständig mögliche Einheiten, VL-B = 0; SCH-02 R0 wird als alt gelistet. Dieses Programm bildet einstufige Stücklisten ab. Die Erweiterung auf mehrstufige Stücklisten benötigt Eltern-Kind-Relationen, rekursive Mengenmultiplikation und vorherige Zyklenprüfung; die einfachen SQL-Abfragen allein leisten das noch nicht.
Hilfen: Führe zuerst jede INSERT-Gruppe als Papierkarte nach. Prüfe dann die drei Lagerzahlen der Variante VL-A. Falls dein Rechner kein Python installiert hat, kannst du die Tabellen in einer Offline-Tabellenkalkulation führen und die Regeln mit Formeln nachstellen. Ein bezahltes Konto, Internetzugang oder KI-Dienst ist nicht erforderlich.
Mehrstufige Auflösung und Stücklistenzyklus
Bei einer verschachtelten Stückliste werden Mengen entlang jedes Pfads multipliziert und für gleiche Teil-Revisions-Paare über verschiedene Pfade addiert. Beispiel: LAB-100 enthält 2 MOD-50; jedes MOD-50 enthält 3 SCH-02 R1; die gesamte Menge ist 2 × 3 = 6. Vor dem Auflösen prüfst du den gerichteten Baugruppengraphen. Ein Modellalgorithmus verwaltet die Mengen besucht und aktueller Pfad: Eine Kante zu einem Knoten im aktuellen Pfad ist ein Zyklus; ein bereits vollständig bearbeiteter Knoten ist nicht automatisch ein Fehler.
Pseudocode für die Erweiterung: Prüfe jede Baugruppe mit Tiefensuche und beende bei Pfadwiederholung mit einer gut lesbaren Fehlermeldung. Wenn kein Zyklus besteht, multipliziere die Bedarfsmengen rekursiv und summiere je (Teil, Revision). Prüfe anschließend, ob diese Schlüssel in den Bestandsdaten existieren; bei fehlendem Bestand nicht stillschweigend Nullbestand als gültigen Datensatz erzeugen, sondern einen Datenfehler melden.

Animation und Alternativtext: Schematische Bewegung einer Zahnradpumpe. Nutze die Animation nur als Anschauung für die Beziehung von Komponenten; aus Bewegungsähnlichkeit folgt keine zulässige Ersatzteilkombination. Quelle: Wikimedia Commons, Jahobr, CC0 1.0; ohne Animation genügt die statische Explosionszeichnung mit der Beschreibung.
Ton als optionale Bedienhilfe: Kurzes Mausklick-Geräusch anhören. Datei: Wikimedia Commons, Darklanlan, CC0 1.0. Ein Geräusch kann den simulierten Klick begleiten, ersetzt jedoch niemals Statusanzeige, Textmeldung oder barrierefreie Kennzeichnung. Offline genügt die Meldung "Prüfung abgeschlossen".
Qualitätssicherung und Fehlentscheidungen erklären
Drei Akzeptanzkriterien nachprüfbar testen
Kriterium A – Stücklistenzyklus erkennen: Testdatensatz LAB-100 → MOD-50 → LAB-100 muss die Diagnose "Zyklus im Pfad" ergeben; das Programm darf weder hängen noch einen fiktiven Bedarf berechnen. Kriterium B – Menge prüfen: Für 3 × VL-A ist der Bedarf 3 × DIC-20 R2, 12 × SCH-02 R1 und 3 × DIC-30 R1. Gegen Lager 2, 9 und 2 ergeben sich Fehlmengen 1, 3 und 1. Kriterium C – alte Revision markieren: SCH-02 R0: 5 bleibt als Archiv-/Lagerdatensatz auffindbar, wird als "alt" angezeigt und nicht mit SCH-02 R1 verrechnet.
| Test-ID | Eingabe | Erwartung | Erklärung der Entscheidung |
|---|---|---|---|
| T-ZYK | LAB-100 → MOD-50 → LAB-100 | Zyklusfehler, keine Berechnung | Aktiver Pfad wird erneut betreten |
| T-MEN | 3 × VL-A | Fehlmengen 1 / 3 / 1 | Mengen pro aktueller Revision multipliziert |
| T-REV | SCH-02 R0:5 und R1:9 | R0 als alt kennzeichnen | Keine unbelegte Austauschfreigabe |
| T-VAR | 1 × VL-B | Nicht verfügbar | DIC-40 R1 fehlt |
| T-NEG | Lagerzugang minus 2 | Eingabe ablehnen | Bestand darf nicht negativ werden |
| T-MISS | Nicht katalogisierte Teilkennung | Datenfehler melden | Kein stilles Weglassen fehlender Positionen |
Fehlerfall begründen: Ein Programm zählt R0 und R1 fälschlich zusammen und meldet 14 Schrauben als nutzbar. Erkläre, weshalb die resultierende Freigabe für drei VL-A irreführend wäre. Beschreibe einen korrigierten Test: Ergebnis 9 aktuelle R1-Schrauben, Bedarf 12, Fehlmenge 3. Die Software sagt ausschließlich, ob die Modellregel erfüllt ist, nicht ob ein reales Bauteil sicher passt.
Validierung, Nachvollziehbarkeit und Versionierung
Eine Validierung prüft Formate und Geschäftsregeln: Mengen > 0, dokumentierte Varianten, eindeutige Schlüssel, referenzierbare Revisionen, keine zyklischen Unterbaugruppen. Eine Testfalltabelle enthält Eingabe, Erwartung, Ist-Ergebnis und Begründung. Bei einer Korrektur erstellst du eine neue Testdateiversion, statt frühere Ergebnisse zu überschreiben. Bewahre den alten Stand zur Nachprüfung auf. Änderungen an Daten und Programmcode werden getrennt protokolliert.
Anspruchsvoll: Schreibe Tests für das gleichzeitige Reservieren von zwei Varianten, für fehlende Datensätze, für Sortierreihenfolge und für die Fälschung "doppelt vorhanden = doppelt verfügbar". Eine robuste lokale App würde eine Reservierung atomar in einer Datenbanktransaktion durchführen und bei unzureichendem Bestand zurückrollen. Der Kurs implementiert kein produktives Berechtigungssystem; reale Teilefreigaben erfordern zusätzliche Unternehmensprozesse, technische Dokumente und Verantwortlichkeiten.
Transfer: Konfiguration vor Teiletausch
Vom Einzelteil zur nachvollziehbaren Auswahl
Die Zukunftsperspektive heißt Konfiguration statt ungeprüftem Teiletausch. Eine gute Oberfläche fragt erst nach Modellfamilie, gewählter Variante, Dokumentrevision und Menge. Sie zeigt dann kompatible, in dieser Konfiguration ausdrücklich hinterlegte Teile. Unklare Austauschregeln führen zum Status nicht entscheidbar, nicht zu einer erfundenen Empfehlung. Eine Stückliste beschreibt zunächst Bedarf und Struktur; sie ersetzt keinen ingenieurtechnischen Eignungsnachweis.
Selbstständiger Transfer: Erfinde die Variante VL-C mit einem zusätzlichen Sensorhalter DIC-50 R1. Lege Bauteilkatalog, BOM_R3, Lager_R3 und Prüffälle an. Begründe, ob eine neue Revision erforderlich ist, wie du alte Dokumente kenntlich machst, wie du bei zwei Unterbaugruppen den Gesamtbedarf auflöst und warum eine Ähnlichkeit zwischen DIC-30 und DIC-50 keine dokumentierte Austauschbarkeit begründet.
Digitale Standards kritisch einordnen
Die Asset Administration Shell (AAS) ist ein Ansatz für standardisierte digitale Beschreibungen von Assets. Die IDTA führt unter anderem eine Spezifikation zu hierarchischen Strukturen und Stücklisten (IDTA 02011-1). Für unser kleines Offline-Programm verwenden wir bewusst ein vereinfachtes, eigenes relationales Modell; es ist nicht als normkonforme AAS-Implementierung ausgewiesen. Bei späterer Anbindung müsste ein gesondertes Datenmapping entwickelt und geprüft werden. Die scikit-learn-Dokumentation zu typischen ML-Fehlern eignet sich als methodischer Vergleich, etwa zu konsistenter Vorverarbeitung und Datenleckage; für das hier geplante deterministische Lagerprogramm wird keine KI benötigt, und scikit-learn ist keine Stücklistennorm.
Optionales englisches Video: Einführung in Material- und Fertigungsprozesse von Odoo (Produktdemo, keine normative Primärquelle).
Vorschau/Alternative: Video auf YouTube, Kanal Odoo; öffne es nur bei Bedarf. Ohne externe Medien bearbeite die Tabelle "Modellfall" und den Akzeptanztest T-MEN. Das Video ist englischsprachig; Verfügbarkeit und Nutzungsrechte können sich ändern, eine offene Videolizenz wird nicht behauptet.
Interaktive Aufgaben
Quiz: Prüfe dein Wissen
Bearbeite die Aufgaben, bevor du die Modelllösung aus eigenen Tests ableitest. Die Auswahl und das Rückmeldesystem werden über die Quizbausteine angezeigt; die richtigen Optionen stehen nicht als separater Lösungstext im Kurs.
Wofür steht eine Stücklistenposition fachlich? (Für die Beziehung zwischen Elternbaugruppe, benötigtem Teil und Menge) (!Für den aktuellen Kaufpreis aller Artikel im Lager) (!Für die bloße alphabetische Reihenfolge im Bauteilkatalog) (!Für einen automatisch genehmigten realen Teiletausch)
Was ist bei der Bedarfsermittlung ein Stücklistenzyklus? (Eine Baugruppe ist über einen Unterbaugruppenpfad wieder von sich selbst abhängig) (!Eine Teilkennung kommt in zwei getrennten Zweigen vor) (!Ein Bauteil wird in zwei Revisionen katalogisiert) (!Ein Lagerbestand fällt nach einer Reservierung)
Wie viele aktuelle Schrauben SCH-02 R1 benötigt dreimal VL-A? (12) (!9) (!14) (!4)
Wie viele komplette VL-B können bei dem dokumentierten Bestand gebildet werden? (0) (!1) (!2) (!3)
Wie wird SCH-02 R0 bei der Prüfung von BOM_R2 behandelt? (Als alte Revision sichtbar aber nicht automatisch austauschbar) (!Als sofort gleichwertig mit jeder neuen Schraube) (!Als ohne Dokumentation gelöschter Datensatz) (!Als Ersatz für den fehlenden Adapter DIC-40)
Warum wird Bestand nach Teil und Revision geführt? (Damit unterschiedliche Versionsstände nicht stillschweigend vermischt werden) (!Damit jede Variante zwangsläufig eine eigene Datenbank braucht) (!Damit Teilekennungen nie unverändert bleiben können) (!Damit Bedarf und Lagerbestand denselben Begriff bezeichnen)
Wie werden zwei Ebenen mit zwei Modulen und drei Schrauben pro Modul aufgelöst? (Mit sechs benötigten Schrauben nach Multiplikation entlang des Pfads) (!Mit fünf Schrauben durch Addieren der beiden Stufen) (!Mit drei Schrauben ohne Berücksichtigung der Modulanzahl) (!Mit einer Schraube als Stellvertreter des Moduls)
Welches Verhalten ist bei einer unbekannten Teilkennung fachlich korrekt? (Einen überprüfbaren Datenfehler melden und die Berechnung unterbrechen) (!Den Eintrag aus der Stückliste entfernen und weiterrechnen) (!Die Kennung stillschweigend einem ähnlichen Bauteil zuweisen) (!Den Lagerbestand des teuersten Teils übernehmen)
Welche Maßnahme sichert in SQLite tatsächlich Fremdschlüsselregeln pro Verbindung? (Das Aktivieren von PRAGMA foreign_keys) (!Das alphabetische Sortieren der Tabellen) (!Das Umbenennen aller Dateien in CSV) (!Das Löschen aller Tabellen vor jeder Abfrage)
Was bedeutet Konfiguration vor Teiletausch in diesem Lernmodell? (Variante, Dokumentrevision und dokumentierte Kompatibilität vor der Empfehlung abgleichen) (!Ein ähnlich aussehendes Teil ohne Prüfung einsetzen) (!Alle älteren Revisionen grundsätzlich als freigegeben ansehen) (!Jeden ausreichend großen Lagerbestand als Eignungsnachweis behandeln)
Memory
Finde fünf eigenständige Begriff-Erklärung-Paare aus dem Kurs.
| Bauteilkatalog | Stammdaten und Kennungen für Teile |
| Revision | Nachvollziehbarer dokumentierter Versionsstand |
| Stücklistenzyklus | Rückverweis einer Baugruppe auf sich selbst |
| Lagerbestand | Verfügbare Menge eines konkreten Teilstands |
| Konfiguration | Zusammenstellung gültiger Variantenmerkmale |
Drag-and-Drop
Ordne jedem Prüfziel die passende fachliche Entscheidung zu.
| Ordne den Prüfschritt zu. | Beobachtung im Lernlabor |
|---|---|
| Zyklus ablehnen | Rückkehr zur aktiven Elternbaugruppe im Pfad |
| Menge multiplizieren | Bedarf einer Unterbaugruppe mehrfach einsetzen |
| Revision markieren | Fünf Schrauben R0 trotz gültiger R1 dokumentieren |
| Variantenwahl prüfen | Adapter DIC-40 ausschließlich für VL-B auswählen |
| Fehlmenge ausweisen | Zwölf benötigt und neun aktuell vorrätig |
Kreuzworträtsel
Gesucht sind sechs einzelne Fachwörter, jeweils ohne Leerzeichen.
| Katalog | Sammlung der Stammdaten eindeutig bezeichneter Teile |
| Revision | Kennzeichnung eines dokumentierten Änderungsstandes |
| Variante | Bestimmte Ausführung innerhalb einer Produktfamilie |
| Lager | Ort beziehungsweise Bestandssicht für vorrätige Teile |
| Baugruppe | Aus mehreren Komponenten zusammengesetzte Einheit |
| Zyklus | Unerlaubter Rückweg im gerichteten Stücklistengraphen |
LearningApps
Zusätzliche Übung: Suche nach passenden Zuordnungen zu Stücklisten und Ersatzteilverwaltung. Externe Suchtreffer sind nicht geprüft; bearbeite bei Ausfall alternativ die oben stehenden Memory- und Drag-and-Drop-Aufgaben.
Lückentext
Offene Aufgaben
Leicht
- Stückliste: Beschreibe am Modellfall den Unterschied zwischen Bauteilkatalog, Stücklistenposition und Bestandszeile mit je einem eigenen Beispiel.
- Variantenmanagement: Markiere für VL-A und VL-B die gemeinsamen und die unterschiedlichen Bauteile. Nenne jeweils die korrekte Revision.
- Lagerhaltung: Berechne auf Papier den Bedarf und die Fehlmenge für zwei VL-A ohne Änderung des Ausgangsbestands. Zeige alle Zwischenschritte.
- Revision: Verfasse eine kurze Änderungskarte für SCH-02 R0 und R1. Erkläre, warum fünf alte Exemplare nicht einfach umgebucht werden dürfen.
Standard
- Datenmodellierung: Zeichne ein Tabellenbeziehungsmodell mit Bauteil, Revision, Stücklistenposition, Variante und Lager. Markiere Primär- und Fremdschlüssel.
- Python (Programmiersprache): Führe den gezeigten lokalen Beispielcode aus oder simuliere ihn in einer Tabelle. Ergänze eine Abfrage zur exakten Fehlmenge für eine frei eingegebene Stückzahl.
- Softwaretest: Erstelle mindestens sechs automatische oder manuelle Testfälle mit Eingabe, Erwartung, Ist-Ergebnis und kurzer Begründung.
- Versionsverwaltung: Vergleiche BOM_R1 mit BOM_R2 als nachvollziehbare Änderungsnotiz und speichere den alten Stand unverändert.
Schwer
- Graphentheorie: Entwickle einen Algorithmus zur Zykluserkennung in verschachtelten Stücklisten. Erläutere, wie sich ein mehrfach verwendetes Teil ohne Zyklus unterscheidet.
- Datenintegrität: Erweitere die App um revisionsgenaue Reservierungen in einer Transaktion und teste Rollback bei Fehlbestand und Datenfehler.
- Konfigurationsmanagement: Entwerfe VL-C mit neuer Komponente und BOM_R3. Begründe bei einer unklaren Austauschregel die Entscheidung "nicht entscheidbar" statt einer automatischen Teileempfehlung.
- Qualitätssicherung: Untersuche den Fehlerfall, in dem alte und aktuelle Schrauben addiert wurden. Schreibe Fehlerbericht, Ursachenhypothese, korrigierte Regel und Regressionsprüfung.


Lernkontrolle
- Stücklistenauflösung: Erläutere mit einem Pfadbeispiel, an welcher Stelle du einen Stücklistenzyklus erkennst und warum der Bedarf nicht weiter berechnet werden darf.
- Bedarfsermittlung: Berechne und begründe die drei Fehlmengen für drei VL-A und überprüfe das Ergebnis getrennt nach Teilrevisionen.
- Ersatzteil: Beurteile den Vorschlag, SCH-02 R0 wegen ausreichender Menge anstelle von R1 einzusetzen. Welche Nachweise fehlen und was zeigt die App stattdessen?
- Relationale Datenbank: Entscheide, welche Validierung in Anwendungscode und welche in Datenbankbedingungen sinnvoll ist; begründe mindestens zwei Kontrollstellen.
- Variantenstückliste: Vergleiche VL-A und VL-B und begründe, warum bei gleicher Kernkomponente die Bestandsaussage unterschiedlich ausfällt.
- Testfall: Formuliere einen Test, der fehlende Katalogdaten von tatsächlichem Nullbestand unterscheidet, und erläutere die unterschiedlichen Fehlermeldungen.
Lernnachweis
Abzugeben: Eine lokal ausführbare oder mit Tabellen vollständig nachvollziehbare Ersatzteil-App mit Variantenwahl sowie versionierte synthetische Beispieldokumente (Bauteilkatalog, BOM_R1/R2 und ergänzte Bestandsdatei). Enthalten sind ein einfaches Datenmodell, verständliche Bedienhinweise, die Übersicht benötigter und verfügbarer Mengen, sichtbare Revisionskennzeichen, ein Änderungsprotokoll und ein Testprotokoll.
Bewertungsraster (20 Punkte): Datenmodell und eindeutige Schlüssel 4; Berechnung revisionsgenauer Mengen 4; Zykluserkennung 4; alte Revision und Dokumentvergleich 3; Transferentscheidung samt begründetem Fehlerfall 3; Nachvollziehbarkeit und barrierefreie Offline-Bedienung 2. Ein Lernnachweis ist bestanden, wenn die drei Pflichtkriterien Zyklus, Menge und alte Revision je einen dokumentierten positiven und negativen Test besitzen und die Entscheidung erklärt ist. Das ist eine kursinterne Lernleistung ohne amtliches oder betriebliches Zertifikat.
Selbstkontrolle: Prüfe deine drei Testfälle gegen die Erwartung, kennzeichne ungeklärte Fragen und reflektiere, welche Grenzen das Simulationsprogramm hat. Keine realen Maschinenanschlüsse, keine Sicherheitsfreigaben und keinerlei personenbezogene Lernenden- oder vertrauliche Firmendaten.
OER und Wikipedia
Stand der Quellenprüfung: 22.10.2026; Dokumentation und Versionen können sich nach diesem Stand ändern. Der technische Lerntext ist eine eigene didaktische Zusammenstellung aus öffentlich zugänglichen Quellen und erfundenen Trainingsdaten, keine offizielle Liebherr- oder IHK-Zertifizierung.
- Vorhandene MOOCwiki-Grundlage, vom Lernenden heranzuziehen; Inhalt beim Abruf nicht verifizierbar, daher bewusst nicht paraphrasiert.
- Industrial Digital Twin Association: Downloadbereich, Rechercheeinstieg, unter anderem IDTA 02011-1 zu hierarchischen Strukturen für Stücklisten (auf der Seite aufgeführt), Stand 22.10.2026; vor produktiver Anwendung genaue Ausgabe und Geltung prüfen.
- scikit-learn: Common pitfalls and recommended practices, Webdokumentation 1.9.1 beim Abruf; nur methodische Ergänzung zu fehlerhafter Datenverarbeitung, keine Stücklistenspezifikation.
- Python-Dokumentation: sqlite3, zum lokalen Datenbankzugriff; Onlineversion beim Abruf 3.15.0, konkret verwendete Python-Version lokal prüfen.
- SQLite: Foreign Key Support, zu Aktivierung und Beziehungen, Stand 22.10.2026.
- Wikipedia: Stückliste, Überblick zu Stücklistentypen einschließlich Ersatzteil- und Variantenstücklisten. Wikipedia ist eine nachprüfbare Übersicht, keine alleinige Freigabequelle.
- Odoo: Product Kits, zusätzlicher produktgebundener Überblick zu Kit-Stücklisten; Herstellersicht, nicht als unabhängiger Standard dargestellt.
Mediennachweise mit echten Commons-Dateiseiten:
| Medium | Dateiseite / Vorschau | Urheberschaft | Lizenz / Hinweise |
|---|---|---|---|
| File:Fully assembled view and exploded view.jpg | Vorschau und Original | USPTO | Public Domain, US-Regierungswerk |
| File:Gear pump exploded.svg | Vorschau und Original | Д.Ильин, Duk, cmglee | CC BY-SA 4.0 |
| File:Example barcode.svg | Vorschau und Original | Fred the Oyster | Public Domain, PD-self |
| File:Gear pump animation.gif | Animation und Dateiseite | Jahobr | CC0 1.0 |
| File:Computer mouse right click.ogg | Hörprobe und Dateiseite | Darklanlan | CC0 1.0 |
| https://www.youtube.com/watch?v=W3AW6cfYVNk | YouTube-Vorschau | Odoo | Externe Einbettung, Nutzungsrechte auf Plattform, keine freie Wiederveröffentlichung angenommen |
Medienverfügbarkeit: Commons-Dateiseiten wurden geprüft; die Einbettung in MOOCwiki und das YouTube-Playback können durch lokale Einstellungen, Rechteänderungen oder externe Dienste eingeschränkt sein. Alle Aufgaben einschließlich Bilderklärung, Mengenprüfung und Projekt sind auch als Text und Tabelle offline bearbeitbar. Für Audio und Animation ist kein Verständnis ausschließlich aus Ton oder Bewegung notwendig.
Wikipedia-Lektüre direkt:
Verknüpfte Lernbereiche
Anschlussfähigkeit: Fachinformatik und industrielle IT, Mechatronik, Technik, Wirtschafts- und Lagerlogistik, Datenintegrität, Qualitätssicherung. Vertiefend können Modelle zu Stücklistenauflösung, Versionshistorie und digitalem Zwilling verglichen werden, ohne eine reale Anlagenanbindung vorzusehen.
aiMOOC-Projekte
Schulfach+


aiMOOCs


aiMOOC Projekte


MOOCwiki · Deutsch
Nach dem Lernen ist vor dem Lernen
Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.
Zur MOOCwiki-HauptseiteMediathek
Mediathek wird aus dem Wiki geladen ...
Keine passenden Inhalte gefunden. Bitte ändere Suche oder Filter.
NEWSLernweltNOAH fragenInhalt melden · Hinweise zu Fehlern, Quellen, Medienrechten oder Dubletten