Zum Inhalt springen

Digitale Stücklisten und Ersatzteilverwaltung programmieren

Aus MOOCsWiki Staging
aiMOOC-Siegel aiMOOC

Digitale Stücklisten und Ersatzteilverwaltung programmieren

QR-Code

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

Ergänze die Fachbegriffe aus dem Lerntext.
Die Beziehung zwischen einer Baugruppe und ihren Positionen dokumentiert eine

.
Der eindeutige Änderungsstand eines Teils heißt

.
Ein wiederholter Knoten auf dem aktiven Suchpfad kennzeichnet einen

.
Die konkret ausgewählte Produktkonfiguration ist die

.
Der im Modell aktuell vorhandene Vorrat heißt

.
Für drei VL-A werden insgesamt zwölf

der Revision R1 benötigt.
Ein älterer dokumentierter Teilstand bekommt den Status

.
Eine Beziehung auf einen vorhandenen Datensatz sichert ein

.
Fehlende Daten müssen einen nachvollziehbaren

auslösen.
Bei mehrfach verschachtelten Bedarfen werden Mengen entlang des Pfads

.



Offene Aufgaben


Leicht

  1. Stückliste: Beschreibe am Modellfall den Unterschied zwischen Bauteilkatalog, Stücklistenposition und Bestandszeile mit je einem eigenen Beispiel.
  2. Variantenmanagement: Markiere für VL-A und VL-B die gemeinsamen und die unterschiedlichen Bauteile. Nenne jeweils die korrekte Revision.
  3. Lagerhaltung: Berechne auf Papier den Bedarf und die Fehlmenge für zwei VL-A ohne Änderung des Ausgangsbestands. Zeige alle Zwischenschritte.
  4. 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

  1. Datenmodellierung: Zeichne ein Tabellenbeziehungsmodell mit Bauteil, Revision, Stücklistenposition, Variante und Lager. Markiere Primär- und Fremdschlüssel.
  2. 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.
  3. Softwaretest: Erstelle mindestens sechs automatische oder manuelle Testfälle mit Eingabe, Erwartung, Ist-Ergebnis und kurzer Begründung.
  4. Versionsverwaltung: Vergleiche BOM_R1 mit BOM_R2 als nachvollziehbare Änderungsnotiz und speichere den alten Stand unverändert.


Schwer

  1. Graphentheorie: Entwickle einen Algorithmus zur Zykluserkennung in verschachtelten Stücklisten. Erläutere, wie sich ein mehrfach verwendetes Teil ohne Zyklus unterscheidet.
  2. Datenintegrität: Erweitere die App um revisionsgenaue Reservierungen in einer Transaktion und teste Rollback bei Fehlbestand und Datenfehler.
  3. Konfigurationsmanagement: Entwerfe VL-C mit neuer Komponente und BOM_R3. Begründe bei einer unklaren Austauschregel die Entscheidung "nicht entscheidbar" statt einer automatischen Teileempfehlung.
  4. Qualitätssicherung: Untersuche den Fehlerfall, in dem alte und aktuelle Schrauben addiert wurden. Schreibe Fehlerbericht, Ursachenhypothese, korrigierte Regel und Regressionsprüfung.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. 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.
  2. Bedarfsermittlung: Berechne und begründe die drei Fehlmengen für drei VL-A und überprüfe das Ergebnis getrennt nach Teilrevisionen.
  3. Ersatzteil: Beurteile den Vorschlag, SCH-02 R0 wegen ausreichender Menge anstelle von R1 einzusetzen. Welche Nachweise fehlen und was zeigt die App stattdessen?
  4. Relationale Datenbank: Entscheide, welche Validierung in Anwendungscode und welche in Datenbankbedingungen sinnvoll ist; begründe mindestens zwei Kontrollstellen.
  5. Variantenstückliste: Vergleiche VL-A und VL-B und begründe, warum bei gleicher Kernkomponente die Bestandsaussage unterschiedlich ausfällt.
  6. 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.

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-Hauptseite

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...