Generelles Refactoring der Ordnerstruktur + Anpassung der CLAUDE.md

This commit is contained in:
2026-04-20 13:39:45 +02:00
parent 45be328788
commit 5d856971cd
10 changed files with 81 additions and 31 deletions

View File

@@ -0,0 +1,32 @@
# Info
Hier sind die Antworten auf die Auflagen der IHK von meinem Ausbilder aufgelistet.
# 1. Hintergrund Ihrer Arbeit
Es geht um einen Materialflussrechner. Die Aufgabe befasst sich mit der Auflösung einer Race Condition zwischen zwei Prozessen beim Starten von Transporten im System.
# 2. Welche Prozesse sind beteiligt? Beschreiben Sie diese kurz.
Beteiligt sind die Prozesse ConveyorDispo und HostBooking.
Der ConveyorDispo disponiert Transporte, prüft Zielressourcen und deren Verfügbarkeit und startet Transporte. Außerdem übernimmt er das Scheduling mehrerer Transporte für denselben Ladungsträger.
Der HostBooking verarbeitet Nachrichten eines übergeordneten Host-Systems. Dabei legt er Transporte an und startet in bestimmten Fällen auch direkt Aufträge, zum Beispiel beim Rücktransport eines Behälters vom Arbeitsplatz ins Lager.
# 3. Was ist das Ziel der Prozesse?
Die Prozesse sollen Transporte bzw. Aufträge automatisch starten, damit kein manueller Eingriff erforderlich ist. Zusätzlich sollen sie die Anlage möglichst effizient auslasten und auf Vorgaben des übergeordneten Host-Systems reagieren.
# 4. Wer startet die Prozesse?
Beide Prozesse laufen permanent als Services im Hintergrund.
Der ConveyorDispo wird zyklisch ausgeführt und prüft in Echtzeit die aktuellen Transportmöglichkeiten der Anlage.
Der HostBooking wird durch eingehende Host-Nachrichten ausgelöst, die ebenfalls zyklisch aus der Datenbank gelesen werden.
# 5. Über welche Schnittstellen werden die Prozesse angesprochen?
Die Anbindung an das Host-System erfolgt über verschiedene Schnittstellen, zum Beispiel SAP IDoc, TCP/IP, Dateischnittstellen oder Webservices. Die eingehenden Daten werden in einer Datenbank bereitgestellt.
Der HostBooking liest diese Daten zyklisch aus der Datenbank und legt daraus Auftragsdatensätze an. Der ConveyorDispo greift ebenfalls auf diese Datenbanktabellen zu und startet Transporte, sobald die Bedingungen erfüllt sind.
# 6. Welches Problem tritt auf?
Wenn ein Behälter einen Arbeitsplatz verlässt und kein Transport in der Datenbank vorhanden ist, legt der HostBooking einen Transport an und startet diesen direkt.
Gleichzeitig kann durch Multithreading ein neuer Host-Auftrag eintreffen, der vom ConveyorDispo verarbeitet und ebenfalls gestartet wird.
Dadurch entstehen zwei aktive Transporte für denselben Ladungsträger.
# 7. Wie soll das Problem gelöst werden?
Die Lösung besteht darin, alle Auftragsstarts zentral im ConveyorDispo zu bearbeiten. Dadurch können Überschneidungen an einer Stelle erkannt und aufgelöst werden.

View File

@@ -0,0 +1,10 @@
# Informationen
## Auflagen der IHK nach Abgabe des Projektantrags
Bitte beschreiben Sie den Hintergrund Ihrer Arbeit und die genannten Prozesse etwas genauer. - Was ist ein ConveyorDispo bzw. Orders Host Prozess? - Was ist das Ziel der Prozesse? - Wer startet die Prozesse? - Über welche Schnittstellen werden die Prozesse angesprochen?
## Ausbildung
Fachinformatiker/Fachinformatikerin Fachrichtung: Anwendungsentwicklung
## Termin
Sommer 2026

View File

@@ -0,0 +1,55 @@
# Prüfung: Sommer 2026
### Ausbildungsberuf
### Fachinformatiker/Fachinformatikerin Fachrichtung: Anwendungsentwicklung
### Kai Kröger
### Ausbildungsbetrieb: Gebhardt Fördertechnik GmbH
### Betrieblicher Betreuer / Ausbilder: Sebastian Badour
### Thema der Projektarbeit
### Optimierung der Auȅragsverarbeitung eines Warehouse Control Systems mittels Prozesssteuerung in C#
# 1 Thema der Projektarbeit
Optimierung der Auȅragsverarbeitung eines Warehouse Control Systems mittels Prozesssteuerung in C#
# 2 Geplanter Bearbeitungszeitraum
Beginn: 4.5.2026
Ende: 25.5.2026
# 3 Ausgangssituation
Die Gebhardt Fördertechnik GmbH ist ein führendes Unternehmen im Bereich der Intralogistik. In den Förderanlagen kommt ein Warehouse Control
System (WCS) aus eigenem Haus zum Einsatz, das die Transportgüter auf der Anlage verwaltet und kontrolliert. Das WCS kommuniziert mit der
Fördertechnik mittels Telegrammen, die innerhalb des WCS durch unterschiedliche Prozesse, die parallel ablaufen, verarbeitet werden. Die Prozesse
des WCS sind mit dem .NET Framework von Microsoȅ realisiert und in der Programmiersprache C# programmiert. Einer dieser Prozesse ist
ConveyorDispo. Dieser ist dafür zuständig, OrdersHost-Auȅräge, die vom Warehouse Management System kommen, zu verarbeiten und zu starten.
Aktuell gibt es jedoch auch andere Prozesse, die in der Lage sind, unter bestimmten Bedingungen einen OrdersHost-Auȅrag zu starten. Aufgrund der
parallelen Abläufe kann es bei unglücklichem Timing dazu kommen, dass zwei OrdersHost-Auȅräge simultan gestartet werden. Da es für die
Auȅräge nur ein physisches Transportgut auf der Förderanlage gibt, bleibt ein OrdersHost-Auȅrag offen, der nicht abgeschlossen werden kann.
# 4 Projektziel
Die OrdersHost-Auȅräge sollen zukünȅig ausschließlich über den Prozess ConveyorDispo gestartet werden. Dafür müssen die Prozesse und ihr Code
analysiert und entsprechend angepasst werden.
# 5 Zeitplanung
Planung (22h)
Einarbeitung in das bestehende Projekt (6h)
Einarbeitung in die WCS Dokumentation (3h)
Identifizierung der betroffenen Prozesse (8h)
Konzeptionierung der Änderungen an den Prozessen (3h)
Planung der Umsetung (2h)
Implementierung (26h)
Anpassung der Prozesse (23h)
Anpassung der Auȅragstatus (3h)
Testing (12h)
Testfälle für alle Szenarien erstellen (4h)
Fehler beheben (6h)
Optimieren (2h)
Dokumentation (20h)
Projektdokumentation (16h)
Entwicklungsdokumentation (4h)
# 6 Präsentationsmittel
Laptop, USB-Stick, Powerpoint Präsentation