Kundenauftragsautomatisierung für Hersteller: Was generische Tools übersehen – turian

Kundenauftragsautomatisierung für
Hersteller: Was generische Tools übersehen

Die meisten Tools zur Kundenauftragsautomatisierung basieren auf einer einfachen Annahme: Ein Kundenauftrag geht ein, Positionen werden extrahiert, SKUs werden zugeordnet, der Auftrag wird bestätigt. Saubere Eingabe rein, sauberes Ergebnis raus.

Für einen Distributor mit festem Katalog standardisierter Produkte funktioniert diese Annahme einigermaßen gut. In einer Fertigungsumgebung bricht sie fast sofort zusammen.

Hersteller versenden nicht einfach nur, was im Regal liegt. Sie fertigen auf Bestellung, konfigurieren nach Spezifikation, verwalten Revisionsstände und pflegen kundenspezifische Artikelnummernsysteme, die oft keinerlei Ähnlichkeit mit ihren internen Produktcodes haben. Kundenaufträge kommen mit Zeichnungsreferenzen, Materialzeugnissen, Oberflächenspezifikationen und Lieferplananforderungen, die sich über mehrere Positionen, mehrere Werke und manchmal sogar über mehrere Produktionsläufe erstrecken.

Ein Tool, das Felder aus einer PDF extrahiert und das dann „Kundenauftragsautomatisierung“ nennt, löst nicht das Intake-Problem eines Herstellers. Es löst den einfachen Teil und überlässt den Rest einem Menschen.

Die zentrale Lücke

Generische Tools automatisieren den einfachen Teil des Intake von Kundenaufträgen in der Fertigung und überlassen die Komplexität einem Menschen. Das ist keine Automatisierung. Das ist Dokumentenlesen mit zusätzlichen Schritten.

Die spezifischen Probleme

Die Probleme im Intake von Kundenaufträgen,
die spezifisch für Hersteller sind

Dieser Leitfaden zeigt die konkreten Herausforderungen im Intake von Kundenaufträgen, mit denen Hersteller konfrontiert sind, warum generische Tools daran scheitern und was ein System tatsächlich leisten muss, um diese Prozesse wirklich abzubilden.

01

Problem

Configure-to-Order-Komplexität

Die Herausforderung

Eine Position in einem Kundenauftrag bei einem Distributor enthält typischerweise: Produktcode, Menge, Preis. Eine Position in einem Kundenauftrag in der Fertigung kann dagegen so aussehen:

Beispiel aus einer realen Auftragsposition Edelstahl Güte 304, Dicke 2 mm, Blech 1500 x 3000 mm, Oberfläche 2B, Kantenbearbeitung Walzkante, Liefertoleranz +/- 0,1 mm, Kundenzeichnung CAB-2024-0117 Rev. C

Nichts davon lässt sich direkt einer SKU zuordnen. Der Intake-Agent muss die Spezifikation interpretieren, die passende interne Produktkonfiguration identifizieren, prüfen, ob Toleranzen und Oberflächenanforderungen innerhalb der Standardfertigung liegen oder eine Abweichung erfordern, und alles markieren, was eine Rückfrage an Engineering notwendig macht.

Warum generische Tools scheitern

Generische Tools zur Kundenauftragsautomatisierung leisten genau das nicht. Sie suchen nach einem Feld für den Produktcode, finden keines und leiten die gesamte Position an einen Menschen weiter.

Das Ergebnis

Die Automatisierung hat exakt null Prozent der eigentlichen Komplexität übernommen. Sie hat das Dokument gelesen und beim ersten Interpretationsbedarf aufgehört.
02

Problem

Revisionsstände und Zeichnungsreferenzen

Die Herausforderung

In der technischen Fertigung etwa bei mechanischen Komponenten, Präzisionsteilen oder Blechbearbeitung, beziehen sich Kundenaufträge häufig auf technische Zeichnungen mit Zeichnungsnummer und Revisionsstand. „Gemäß Zeichnung 88-4421-C“ bedeutet, dass der Kunde nach einer ganz bestimmten Revision einer bestimmten Zeichnung bestellt. Der Hersteller muss prüfen, ob genau diese Revision vorliegt, ob sie inzwischen ersetzt wurde und ob das aktuelle Produktionssetup dafür geeignet ist.

Wenn der Revisionsstand im Kundenauftrag nicht mit dem Stand im System übereinstimmt, ist das eine harte Ausnahme und eine mit potenziell gravierenden Folgen. Die Fertigung nach der falschen Revision führt zu Qualitätsproblemen, Nacharbeit und möglicherweise auch Haftungsrisiken.

Warum generische Tools scheitern

Nicht im Intake erkannt

Regelbasierte Tools erkennen Revisionsabweichungen nicht, weil dafür ein Abgleich des Kundenauftrags mit dem Zeichnungsregister erforderlich ist, nicht bloß das Extrahieren eines Feldwerts. ML-basierte Extraktionstools erkennen das ebenfalls nicht, weil sie nicht darauf trainiert wurden, Zeichnungsreferenzen als Datentyp mit Validierungsbedarf zu behandeln.

Dieser Fehler muss im Intake des Kundenauftrags erkannt werden, nicht erst in der Qualitätsprüfung. Wenn eine Revisionsabweichung erst dort auffällt, kann der gesamte Produktionslauf bereits abgeschlossen sein.

03

Problem

Kundenspezifische Artikelnummern

Die Herausforderung

Große Industriekunden wie Automotive-OEMs, Engineering-Unternehmen oder zentral gesteuerte Einkaufsorganisationen vergeben eigene Artikelnummern für jedes Produkt, das sie einkaufen. Sie senden Kundenaufträge mit diesen Nummern, nicht mit den internen Codes des Herstellers.

Der Hersteller pflegt dafür Cross-Reference-Tabellen, die kundenspezifische Artikelnummern internen SKUs zuordnen. In der Praxis sind diese Tabellen jedoch oft unvollständig, veraltet oder inkonsistent gepflegt. Auf Kundenseite wird eine neue Produktvariante eingeführt, die Zuordnung beim Hersteller wird nie aktualisiert.

Warum generische Tools scheitern

Generische Kundenauftragsautomatisierung stößt auf eine nicht zugeordnete Kundenartikelnummer und gibt die Position an einen Menschen weiter. In einer Fertigungsumgebung mit Hunderten aktiven Kunden und Tausenden von Mapping-Beziehungen sind ungemappte Positionen nicht die Ausnahme, sondern ein wiederkehrender Normalfall.

Was stattdessen nötig ist

Ein leistungsfähiges Intake-System muss Teiltreffer verarbeiten, die wahrscheinlichste interne SKU auf Basis von Auftragshistorie und Produktbeschreibung vorschlagen und das Mapping zur menschlichen Bestätigung markieren, statt die Position hart scheitern zu lassen.
04

Problem

Routing über mehrere Werke und Standorte

Die Herausforderung

Hersteller mit mehreren Produktionsstandorten oder Lagern müssen Positionen eines Kundenauftrags dem richtigen Standort zuordnen, abhängig von Produkttyp, Kapazität, Verfügbarkeit und Lieferanforderungen des Kunden. Ein Kundenauftrag mit zehn Positionen kann auf zwei Werke mit unterschiedlichen Lieferzeiten aufgeteilt werden, inklusive zweier separater Produktionsaufträge und zweier Lieferpläne.

Warum generische Tools scheitern

Generische Kundenauftragsautomatisierung legt einen einzelnen Auftragssatz an. Routing-Logik, Splitten in Produktionsaufträge oder Lieferzeitberechnung über mehrere Standorte hinweg werden nicht abgebildet.

Was übersehen wird

Damit der Kundenauftrag in der richtigen Form im ERP landet, bereits gesplittet, bereits geroutet, bereits dem richtigen Werk zugewiesen, muss die Intake-Schicht die Routing-Regeln verstehen, nicht nur die Auftragsfelder.
05

Problem

Materialzeugnisse und Qualitätsnachweise

Die Herausforderung

Viele Kunden in der Fertigung verlangen Materialzeugnisse, Prüfberichte oder Konformitätserklärungen mit der Lieferung. In Aerospace und Automotive können bestimmte Zertifikatsformate vorgeschrieben sein, etwa EN 10204 3.1 oder 3.2, teilweise auch verknüpft mit konkreten Chargen- oder Heat-Nummern.

Diese Anforderungen tauchen an völlig unterschiedlichen Stellen im Kundenauftrag auf: in einer Position, in einer Kopfnotiz oder in einer Klausel der Einkaufsbedingungen. Werden sie übersehen, entstehen Lieferprobleme: Die Ware kommt an, der Kunde weist sie zurück, weil das Zertifikat fehlt.

Warum generische Tools scheitern

Zertifikatsanforderungen stehen selten in einem sauber beschrifteten Feld. Sie tauchen genau dort auf, wo der Kunde sie im Kundenauftrag platziert hat: versteckt in einer Klausel, als Anmerkung oder als Referenz auf einen Standard, den das Tool nie gelernt hat.

Was stattdessen nötig ist

Ein Intake-System für Kundenaufträge in der Fertigung muss Zertifikatsanforderungen überall dort erkennen, wo sie auftauchen, prüfen, ob der geforderte Nachweis für das bestellte Material überhaupt erzeugt werden kann, und frühzeitig auf einen möglichen Widerspruch hinweisen, nicht erst beim Versand.
06

Problem

Rahmenaufträge und Abrufpläne

Die Herausforderung

Viele Kundenbeziehungen in der Fertigung basieren auf Rahmenbestellungen: Der Kunde erstellt einen Master-PO für den Jahresbedarf und sendet dann Abrufe dagegen, kleinere Bestellungen, die auf den Rahmenauftrag verweisen und Menge sowie Liefertermin für jeden Abruf definieren.

Damit das funktioniert, muss das Intake-System erkennen, dass ein Abruf auf einen Rahmenauftrag verweist, prüfen, ob die angeforderte Menge den verbleibenden Rahmen noch nicht überschreitet, und den Abruf im ERP dem richtigen Parent-PO zuordnen.

Warum generische Tools scheitern

Tools, die das Modell des Rahmenauftrags nicht verstehen, erzeugen Doppelaufträge, übersehen Mengenvalidierungen und beschädigen das Supply-Chain-Reporting des Kunden.

Häufiger Fehlerfall

Wird ein Abruf wie ein neuer Einzelauftrag verarbeitet, entsteht im ERP ein doppelter Datensatz, die falsche Bestandszuordnung wird ausgelöst und der Kunde erhält eine Auftragsbestätigung mit falschem PO-Bezug. Der Aufwand für die Korrektur ist erheblich.
ERP-Integration für Sales-Order-Automatisierung: SAP & Dynamics – turian

SAP-Integration

SAP-Integration:
Wie sie in der Praxis aussieht

SAP ist im europäischen Mid-Market für Manufacturing und Distribution das am häufigsten eingesetzte ERP. Der Integrationsansatz unterscheidet sich je nachdem, welche SAP-Variante verwendet wird.

SAP

SAP-Variante

SAP S/4HANA

OData REST APIs

S/4HANA stellt eine Reihe standardisierter OData-APIs bereit, die die meisten für den Order Intake relevanten Datenobjekte abdecken: Sales-Order-Erstellung (A_SalesOrder und A_SalesOrderItem), Customer-Master-Abfragen (A_BusinessPartner), Material-Master-Abfragen (A_Product) sowie Pricing-Condition-Abfragen (A_SlsPrcgCndnRecdValidity).

Ein gut gebauter Intake-Agent nutzt diese APIs direkt sowohl für Lese- als auch für Schreibzugriffe. Der Order-Creation-Call schreibt Header und Line Items in einer einzigen Transaktion. Wenn der Schreibvorgang fehlschlägt etwa wegen eines fehlenden Pflichtfelds, eines Konflikts bei der Verfügbarkeit oder eines Credit Blocks, liefert die API einen strukturierten Fehler zurück. Der Agent kann diesen entweder automatisch behandeln (wenn der Fehlertyp entsprechend konfiguriert ist) oder in die Exception Queue routen und den Fehlerkontext direkt sichtbar machen.

Drei Punkte, die in der Integrationsspezifikation sauber geklärt sein müssen

  • Berechtigungsumfang Das Servicekonto für die Integration benötigt Lesezugriff auf Customer Master, Material Master und Pricing Conditions sowie Schreibzugriff für die Sales-Order-Erstellung. Das ist ein klar definierter, begrenzter Scope, kein breiter ERP-Zugriff. Er sollte präzise festgelegt und vor Start der Implementierung von der IT freigegeben werden.
  • Pricing Procedure SAP-Pricing-Procedures können komplex sein, mit mehreren Condition Types, kundenspezifischen Vereinbarungen und manuellen Preis-Overrides. Der Intake-Agent muss wissen, welche Pricing Condition zur Validierung gelesen werden soll und ab welchem Schwellenwert eine Preisabweichung als Ausnahme markiert statt akzeptiert wird. Das wird pro Implementierung konfiguriert.
  • Output Types Wenn die Auftragsbestätigung in SAP erzeugt wird: Löst das automatisch einen Output aus, etwa eine gedruckte Bestätigung, eine EDI-Nachricht oder eine E-Mail? Falls ja, muss dieser Output unterdrückt oder mit dem Outbound-Kommunikationsschritt des Agents abgestimmt werden, damit keine doppelten Bestätigungen beim Kunden ankommen.
SAP

SAP-Variante

SAP Business One

Service Layer API / DI API

SAP Business One verwendet eine andere Integrationsarchitektur, primär die Service Layer API (eine REST-Schnittstelle) und in manchen Setups die DI API (eine COM-basierte Schnittstelle, die On-Premise-Integrationsmiddleware voraussetzt).

Der Service Layer deckt die zentralen Objekte für den Order Intake ab: Sales Orders (Orders-Endpoint), Business Partners (BusinessPartners) und Items (Items). Für standardisierte Auftragserstellung und Master-Data-Reads ist das in der Regel ausreichend.

Die DI API ist älter und deutlich komplexer in der Nutzung, wird aber teils noch für spezielle Customizations oder für On-Premise-Business-One-Deployments benötigt, in denen der Service Layer nicht aktiviert ist. Deshalb sollte jede Business-One-Integration damit beginnen, sauber zu klären, welche API-Oberfläche in der konkreten Kundenumgebung überhaupt verfügbar und unterstützt ist.

Unterschied im Pricing-Modell

Business One hat ein weniger komplexes Pricing-Condition-Modell als S/4HANA. Kundenspezifische Preise werden eher über spezielle Preislisten und Zahlungskonditionen als über Condition Records abgebildet. Die Preisvalidierungslogik des Intake-Agents muss deshalb so konfiguriert sein, dass für jeden Kunden die richtige Preisliste gelesen wird.
SAP

SAP-Variante: Legacy

SAP ECC

RFC/BAPI · IDocs · Middleware

SAP ECC läuft noch immer bei einem erheblichen Teil der europäischen Mid-Market-Unternehmen, die bislang nicht auf S/4HANA migriert haben. ECC stellt von Haus aus keine modernen REST-APIs bereit. Die Integration erfolgt typischerweise über RFC/BAPI-Aufrufe (SAPs Remote-Function-Call-Layer), IDocs (SAPs Dokumentenaustauschformat, vor allem für EDI-ähnliche Batch-Prozesse) oder über eine Middleware-Schicht, die zwischen dem Integrationsagenten und SAPs internen Schnittstellen übersetzt.

BAPI_SALESORDER_CREATEFROMDAT2 ist die Standard-BAPI zur Sales-Order-Erstellung in ECC. Sie funktioniert, verlangt aber eine sehr sorgfältige Behandlung der Input-Struktur, das Field Mapping ist starr und die Fehlerbehandlung ist weniger sauber als bei den OData-APIs in S/4HANA.

Migrationsrisiko

Wenn der Kunde auf ECC läuft, sollten die Migrationspläne vor dem Design der Integration geklärt werden. Ein System, das für ECC-BAPI-Calls ausgelegt ist, muss für eine spätere S/4HANA-OData-Migration erneut angepasst werden.

Microsoft Dynamics 365

Microsoft Dynamics 365
Integration

Dynamics 365: insbesondere Business Central und die CRM-orientierte Sales-Variante — ist bei europäischen Mid-Market-Distributoren weit verbreitet und stellt seine Daten über Microsofts OData-v4-API-Schicht bereit.

D365

Dynamics-365-Variante

Business Central

OData v4 APIs

Für Business Central decken die relevanten APIs Sales Orders (salesOrders und salesOrderLines), Customers (customers) und Items (items) ab. Das Integrationsmodell ähnelt SAP S/4HANA: Kundendaten und Item Master werden zur Validierung gelesen, bestätigte Auftragsdaten werden als Sales-Order-Record geschrieben, und Fehler werden über die API-Response behandelt.

Im Vergleich zu SAP ECC

Business Central bietet eine sauberere und konsistentere API-Oberfläche als SAP ECC. Für Mid-Market-Unternehmen auf Business Central ist die Integrationsschicht deshalb meist schneller aufgebaut und stabiler im Betrieb.

Drei Dynamics-spezifische Punkte für die Spezifikation

  • Environments Dynamics 365 arbeitet mit Sandbox- und Produktionsumgebungen. Die Integration sollte zuerst in der Sandbox gebaut und getestet werden, bevor Produktionszugänge freigegeben werden. Das muss in die Implementierungszeit eingeplant werden.
  • API-Throttling Die Dynamics-APIs von Microsoft unterliegen Service-Protection-Limits, die Anfragen oberhalb definierter Schwellenwerte drosseln. Bei hohem Auftragsvolumen muss die Integration diese Limits berücksichtigen, etwa durch Request-Batching oder Rate-Limiting-Logik.
  • Custom Fields Viele Dynamics-Implementierungen enthalten kundenspezifische Felder auf Order Records. Die Integrationsspezifikation muss klar unterscheiden, welche Custom Fields für die Auftragserstellung zwingend erforderlich sind und welche erst nachgelagert von anderen Prozessen befüllt werden.
D365

Dynamics-365-Variante

Dynamics 365 Sales

OData v4 · CRM data model

Dynamics 365 Sales (die CRM-orientierte Variante) ist seltener das primäre Order-Management-System für B2B-Distributoren, kommt aber in einigen Unternehmen dennoch dafür zum Einsatz. In diesen Fällen werden Auftragsdatensätze als Opportunity- oder Order-Entities innerhalb des Dynamics-Datenmodells angelegt.

Die Integration muss dabei berücksichtigen, wie Contact-/Account-Records mit dem Auftrag verknüpft sind, das funktioniert anders als in einem ERP-nativen Modell. Durch die Datenobjekt-Hierarchie aus Account, Contact, Opportunity und Order muss die Integrationsschicht zuerst den richtigen Account auflösen, bevor der Order Record geschrieben werden kann.

CRM- vs. ERP-Datenmodell

Im Gegensatz zu Business Central wurde Dynamics 365 Sales nicht als Order-Management-System entwickelt. Wenn ein Unternehmen es dennoch dafür nutzt, sollte vor Beginn der Integrationsspezifikation geprüft werden, ob alle erforderlichen Order-Management-Felder und Workflows sauber konfiguriert sind.