Hi, ich bin Max. Seit über acht Jahren baue und integriere ich Lösungen rund um Dynamics 365 Business Central – zuerst in einem produzierenden Unternehmen, später beim BC-Partner. In diesem Beitrag erzähle ich, was wir wirklich gebaut haben, wie wir Datenmigrationen stabil hinbekommen haben und welche Muster sich in Projekten bewährt haben.
Ausgangslage im produzierenden Unternehmen
Mein letztes Unternehmen ist mit klassischen Schmerzpunkten gestartet: zu viel Excel, manuelle Belegarbeit, Schatten-Prozesse, Medienbrüche zwischen Einkauf, Fertigung und Versand. Zielbild: durchgängige Prozesse von Einkauf bis Auslieferung, saubere Stammdaten, weniger Klicks – und messbar schnellere Durchlaufzeiten.
Was ich gebaut habe
Einkauf → Wareneingang → Qualität
- Lieferantensteuerung mit Rahmenbestellungen & Abrufen, Freigabe-Workflows.
- Wareneingangs-Prüfung (Prüfmerkmale, Sperrlager, Freigabe), Automatisierung via Job Queues.
- DMS-Anbindung: Eingangsrechnungen & Lieferscheine nach SharePoint, OCR mit Azure AI Document Intelligence.
Stammdaten & Kalkulation
- Stücklisten & Arbeitspläne (Varianten, Rüst-/Laufzeiten, Zuschläge), Vorkalkulation und Nachkalkulation mit Ursachenanalyse.
- Artikelvarianten & Konfiguration (Farb-/Längenvarianten), konsistente Dimensionslogik (Kostenstellen, Projekte).
Fertigung & Shopfloor
- Produktionsaufträge (Freigabe, Materialbereitstellung, Rückmeldung per Scan).
- Zeit- & Materialbuchung über mobile Geräte (Scanner, Browser-Clients), Labeldruck (SSCC, GS1-128).
- Kapazitätsplanung: Belastung/Belegung, Engpasssteuerung, Planungsarbeitsblatt.
Lager & Versand
- WMS-Prozesse (Einlagerung, Umlagerung, Kommissionierung, Konsolidierung).
- Picken/Packen/Ship mit NVE/SSCC, Fracht-API (Transportlabel, Tracking).
- EDI (ORDERS, DESADV, INVOIC) via Azure Logic Apps / API-Management.
Vertrieb & Service
- CTP/ATP-Prüfungen, Preis-/Rabattlogik, automatische Dokumentengenerierung (Angebote/Lieferscheine/Rechnungen).
- Servicefälle mit Rücknahmen, Gutschriften, Ersatzteilen.
Reporting & Monitoring
- Power BI für Durchlaufzeit, Ausschuss, OEE-nahe Kennzahlen.
- Telemetry (App Insights) für Job Queue-Fehler, lange SQL-Queries, AL-Performance.
Leitlinie: Standard vor Customizing. Erst Konfiguration, dann Events/Extensions – Objektmodifikationen vermeiden.
Datenmigrationen – ohne Drama zum Cut-Over
Vorgehen, das sich bewährt hat:
- Scope & Mapping fixieren: Kunden, Lieferanten, Artikel, Varianten, Stücklisten, Arbeitspläne, Preise/Rabatte, Offene Bestellungen, Lagerbestände, Offene Posten, Salden, Dimensionen.
- Datenqualität: Pflichtfelder, Dubletten, Codesets (Länder, Zahlungsbedingungen), IBAN/Steuer-IDs, E-Mail-Pattern.
- Werkzeugkette:
- Configuration Packages (RapidStart) für einfache Stammdaten.
- BC-APIs (v2.0) für strukturierte Entitäten (z. B.
vendors,customers,items,boms,routes). - SSIS/KingswaySoft oder .NET-Loader für Massen & inkrementelle Deltas.
- Mehrstufige Testläufe: T0 (Mini-Set), T1 (repräsentativ), T2 (Volllast), Delta-Migration kurz vor Go-Live.
- Cut-Over-Plan: Freeze, Reihenfolge (Stammdaten → Offene Belege → Bestände → OPs), Checklisten, Rollback-Option.
Learnings: 80 % der Migrationsprobleme sind Stammdaten (Codes, Pflichtfelder, Dubletten). Saubere Vorbereitung spart ein Vielfaches an Implementierungszeit.
Wechsel zum Partner – Muster, die in vielen Projekten tragen
Beim Partner habe ich die Perspektive gewechselt: viele Branchen, viele Setups, noch mehr Best Practices.
- AL-Entwicklung: saubere Event Subscriber, Table/Page Extensions, API Pages, Report Extensions.
- CI/CD: BcContainerHelper, Azure DevOps Pipelines, automatische Tests (AL Test Tool), Signierung & Artefakte.
- Architektur: Entkopplung (Webhooks/Queues), Retry/Idempotenz, Versionierung der Schnittstellen.
- SaaS-Governance: Feature Management, Tenant-Isolierung, Telemetry/Alerting, Security (App Registrations, Delegations).
Mini-Beispiel (AL): Versand blocken, wenn QC nicht „Freigegeben“
alCopyEditcodeunit 50110 "QC Shipment Guard"
{
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Release Sales Document", 'OnBeforeRun', '', false, false)]
local procedure OnBeforeReleaseSalesDoc(var SalesHeader: Record "Sales Header")
var
QC: Record "QC Header";
begin
if QC.GetForOrder(SalesHeader."No.") then
if QC.Status <> QC.Status::Released then
Error('Auftrag %1 kann nicht freigegeben werden: Qualitätsprüfung nicht abgeschlossen.', SalesHeader."No.");
end;
}
Kleiner Eingriff, große Wirkung: Business-Regel greift, ohne Standardcode zu verändern.
Logic-Apps & Azure – wo Integration Spaß macht
Viele Integrationen laufen heute serverlos:
- Azure Logic Apps für EDI, WordPress/Shop-Schnittstellen, DMS-Ablage.
- Azure Functions (.NET) für Validierung, PDF-Aufbereitung, Labelerzeugung.
- Azure AI Document Intelligence (Form Recognizer) für Beleg-OCR.
- API Management / Event Grid / Service Bus für sauberes, skalierbares Routing.
Ergebnis: weniger manuelle Arbeit, durchgängige Daten und transparente Fehlerbilder.
Was ich heute jedem BC-Projekt mitgebe
- Standard first. Konfiguration ausreizen, Extensibility via Events.
- Datenqualität ist König. Früh prüfen, hart validieren, sauber migrieren.
- Belegflüsse denken. Einkauf → Wareneingang → Qualität → Fertigung → Versand – End-to-End testen.
- Beobachtbarkeit. Telemetry, Alerts, klare Logs; keine „stillen“ Fehler.
- Schrittweise liefern. Kleine Inkremente, echte Nutzerfeedbacks, messbare Effekte.
Fazit
Ob im eigenen Fertigungsbetrieb oder auf Partnerseite: Business Central liefert, wenn Architektur, Daten und Prozesse zusammenspielen. Ich entwickle lösungsorientiert, integriere sauber – und automatisiere da, wo es zählt: weniger Reibung, mehr Wirkung. Wenn du deine Fertigung, Belegverarbeitung oder Migration an den Start bringen willst, helfe ich gern – vom ersten Workshop bis zum Go-Live.
Schreibe einen Kommentar