Zum Inhalt springen
All articles
Setup

Enterprise-ERP: SAP und NetSuite

Schritt-für-Schritt-Anleitung, um Sellio zweiseitig mit Ihrem SAP (OData) oder NetSuite (REST) zu verbinden: Senden Sie Konten, Aufträge und Rechnungen an das ERP und empfangen Sie Ereignisse zurück (Rechnung bezahlt, Auftrag/Kunde aktualisiert). BYO-Modell: Das ERP und die Zugangsdaten gehören Ihnen.

Diese Integration verbindet Sellio zweiseitig mit Ihrem Enterprise-ERP, entweder SAP (via OData) oder NetSuite (via REST Record Service), mit tiefer Synchronisierung. Sie ergänzt den generischen Connector „ERP / Rechnungsstellung“ (der nur einen einfachen POST an einen Endpunkt sendet): Hier sprechen wir direkt mit der typisierten API jeder Plattform, mit der jeweils echten Authentifizierung. BYO-Modell: Konto und Zugangsdaten gehören Ihnen; es entstehen keine Kosten auf unserer Seite. Alles startet inaktiv: Es wird nichts gesendet oder empfangen, bis Sie konfigurieren und aktivieren. Die Geheimnisse werden verschlüsselt gespeichert und niemals wieder angezeigt.

Was in jeder Richtung passiert: Beim SENDEN (Sellio → ERP) baut das CRM, wenn Sie es auslösen (oder eine Automatisierung es auslöst), den Datensatz in der Sprache des ERP (OData EntitySet bei SAP; recordType bei NetSuite) und führt den authentifizierten POST aus. Beim EMPFANGEN (ERP → Sellio) ruft Ihr ERP bei jedem Ereignis (Rechnung bezahlt, Auftrag aktualisiert, Kunde aktualisiert) die Sellio-Webhook-URL auf; Sellio gleicht eine ausstehende Zahlung nach Betrag + Währung ab (wenn es sich um eine bezahlte Rechnung/einen bezahlten Auftrag handelt) oder protokolliert eine Aktivität beim entsprechenden Kontakt. Wiederholte Ereignisse werden anhand der externen ID dedupliziert.

💡 Wählen Sie den passenden Weg entsprechend Ihrer Plattform. Sie können SAP, NetSuite oder beides konfigurieren. Jedes hat seine eigene Karte unter Einstellungen → Integrationen und seine eigene Webhook-URL.

1. Voraussetzungen

SAP (S/4HANA Cloud, S/4HANA On-Premise via SAP Gateway oder SAP BTP): Sie benötigen einen veröffentlichten OData-Dienst für die zu synchronisierenden Entitäten (zum Beispiel den Standarddienst API_BUSINESS_PARTNER für Konten/Kontakte, API_SALES_ORDER_SRV für Aufträge, API_BILLING_DOCUMENT_SRV für Rechnungen) sowie eine Zugangsdaten für den Aufruf. Zwei Optionen für Zugangsdaten: (a) ein Kommunikationsbenutzer mit Basic Auth, oder (b) ein OAuth-2.0-Client (Client Credentials) auf SAP BTP. Berechtigungen: Der Benutzer/Client benötigt Erstellungsberechtigung (POST) für die gewählten OData-Entitäten.

NetSuite (SuiteTalk REST): Sie benötigen die auf Ihrem Konto aktivierten Funktionen „SuiteTalk (SOAP and REST Web Services)“ und „Token-Based Authentication“ sowie einen Benutzer mit einer Rolle, die über die Lists/Records-Berechtigungen für die zu synchronisierenden Objekte (Customers, Sales Orders, Invoices) und die Berechtigung „REST Web Services“ (unter Setup) verfügt. Sie erstellen einen Integration Record (Consumer Key/Secret) und einen Access Token (Token ID/Secret).

  • Sie müssen Sellio-Administrator sein (Berechtigung zur Verwaltung der Einstellungen), um den Connector zu speichern und zu aktivieren.
  • Halten Sie die URLs/IDs bereit: bei SAP die Basis-URL des OData-Dienstes; bei NetSuite Ihre Account ID (z. B. 1234567, oder 1234567_SB1 für die Sandbox).

2. Beim Anbieter (SAP): OData veröffentlichen und Zugangsdaten erstellen

  1. Veröffentlichen/aktivieren Sie den OData-Dienst der gewünschten Entität. Verwenden Sie in S/4HANA On-Premise die Transaktion /IWFND/MAINT_SERVICE, um den Dienst hinzuzufügen und zu aktivieren (z. B. API_BUSINESS_PARTNER); notieren Sie die resultierende Basis-URL (etwa https://yourhost:44300/sap/opu/odata/sap/API_BUSINESS_PARTNER). In S/4HANA Cloud ist der Dienst bereits veröffentlicht, kopieren Sie also die Service URL aus der entsprechenden Communication Arrangement.
  2. Erstellen Sie die Kommunikationszugangsdaten. Für Basic Auth: Erstellen Sie unter Communication Management → Maintain Communication Users einen Kommunikationsbenutzer mit Benutzername und Passwort; verknüpfen Sie diesen Benutzer dann in Communication Arrangements mit dem Communication Scenario, das den OData-Dienst bereitstellt. Für OAuth 2.0 (BTP): Erstellen Sie eine Service-Instanz und notieren Sie Client ID, Client Secret und Token URL (Endpunkt /oauth/token).
  3. Stellen Sie sicher, dass der Benutzer/Client die POST-Berechtigung (Erstellen) für die Entitäten hat. Testen Sie schnell das GET der Collection im Browser/Postman mit denselben Zugangsdaten, um den Zugriff zu bestätigen.

2. Beim Anbieter, NetSuite (Integration Record + Access Token TBA)

  1. Aktivieren Sie die Funktionen: Setup → Company → Enable Features → Registerkarte SuiteCloud → aktivieren Sie „SOAP Web Services“ und/oder „REST Web Services“ sowie „Token-Based Authentication“. Speichern Sie.
  2. Erstellen Sie den Integration Record: Setup → Integration → Manage Integrations → New. Geben Sie einen Namen an (z. B. „Sellio CRM“), lassen Sie „Token-Based Authentication“ aktiviert, deaktivieren Sie „TBA: Authorization Flow“ und „OAuth 2.0“, falls Sie nur TBA verwenden, und speichern Sie. NetSuite zeigt Consumer Key und Consumer Secret EINMALIG an, kopieren Sie also beide jetzt (sie werden nicht erneut angezeigt).
  3. Erstellen Sie den Access Token: Setup → Users/Roles → Access Tokens → New. Wählen Sie den Application Name (den von Ihnen erstellten Integration Record), den User und die Role (eine Rolle mit den Records-Berechtigungen + „REST Web Services“). Speichern Sie. NetSuite zeigt Token ID und Token Secret EINMALIG an, kopieren Sie also beide jetzt.
  4. Notieren Sie Ihre Account ID: Setup → Company → Company Information (Feld „Account ID“), z. B. 1234567 (Produktion) oder 1234567_SB1 (Sandbox).
💡 Bewahren Sie Consumer Key/Secret und Token ID/Secret sicher auf: NetSuite zeigt sie kein zweites Mal an. Gehen sie verloren, müssen Sie sie erneut erzeugen.

3. In Sellio: Zugangsdaten einfügen und aktivieren

  1. Öffnen Sie Einstellungen → Integrationen und suchen Sie die Karte „SAP (Enterprise-ERP)“ oder „NetSuite (Enterprise-ERP)“.
  2. SAP: Fügen Sie unter „OData-Dienst-URL“ die Basis-URL des Dienstes ein (ohne abschließenden Schrägstrich und ohne den EntitySet-Namen, da Sellio das korrekte EntitySet anhängt). Wählen Sie unter „Authentifizierungstyp“ Basic (und fügen Sie Benutzername + Passwort ein) oder OAuth 2.0 (und fügen Sie Token-URL + Client ID + Client Secret ein).
  3. NetSuite: Fügen Sie unter „Account ID“ Ihre ID ein (z. B. 1234567 oder 1234567_SB1). Wählen Sie unter „Authentifizierungstyp“ Token-Based Authentication (TBA) und fügen Sie Consumer Key, Consumer Secret, Token ID und Token Secret ein. (Falls Sie OAuth 2.0 bevorzugen, wählen Sie diese Option und fügen Sie das Access Token ein.)
  4. Füllen Sie das „Webhook-Secret“ aus, wenn Sie ERP-Ereignisse zurück an Sellio senden möchten. Es ist ERFORDERLICH für den Empfang: Aus Sicherheitsgründen (Ereignisse können eine Zahlung abschließen) akzeptiert Sellio nur Webhooks, die dieses Secret/diese Signatur mitführen. Ohne es wird der Empfang abgelehnt (siehe Schritt 4). Wird verschlüsselt gespeichert.
  5. Klicken Sie auf „Connector speichern“. Die Zugangsdaten werden verschlüsselt gespeichert. Klicken Sie anschließend auf „Aktivieren“. Senden und Empfangen funktionieren erst, wenn der Connector AKTIVIERT ist.

So empfangen Sie ERP-Ereignisse: Verwenden Sie nach dem Speichern „Webhook-URL erzeugen“ und kopieren Sie die URL (Format https://app.../api/inbound/erp/YOUR_TOKEN). Fügen Sie diese URL in das Webhook-Ziel Ihres ERP ein: bei SAP in eine Automatisierung/Middleware (Event Mesh, SAP BTP oder ein Job, der POSTet); bei NetSuite in ein User Event Script/RESTlet oder ein Automatisierungstool (SuiteFlow + Script), das das Ereignis POSTet. Der Anbieter (SAP oder NetSuite) wird anhand des Tokens selbst identifiziert, es gibt also in der URL nichts auszuwählen.

4. So testen Sie es

  1. Klicken Sie bei aktiviertem Connector auf der Karte auf „Testdatensatz senden“. Sellio erstellt ein fiktives Konto (ein „Sellio CRM“-Verbindungstest) und sendet es an Ihr ERP.
  2. Prüfen Sie im ERP: Suchen Sie bei SAP nach dem neu erstellten Business Partner in der entsprechenden Entität; suchen Sie bei NetSuite nach dem neuen Customer unter Lists → Relationships → Customers.
  3. Erscheint „Testdatensatz an ERP gesendet“, sind Authentifizierung und Endpunkt korrekt. Um einen ECHTEN Datensatz zu senden, lösen Sie das Senden anschließend aus dem CRM-Datensatz aus (Konto, Kontakt, Auftrag, Vertriebschance oder Rechnung), und Sellio nutzt denselben Weg.
  4. Um den EMPFANG zu testen: Erzeugen (oder simulieren) Sie ein Ereignis im ERP (markieren Sie zum Beispiel eine Rechnung als bezahlt) und prüfen Sie in Sellio, ob eine ausstehende Zahlung desselben Betrags abgeglichen wurde, oder ob beim entsprechenden Kontakt eine Aktivität erschienen ist.
💡 Der Testversand schreibt NICHTS in Ihr CRM. Es handelt sich lediglich um einen Aufruf an das ERP, um die Verbindung zu validieren. Das Senden echter Datensätze ruft den Datensatz anhand der ID ab und beachtet Ihre Berechtigungen.

5. Fehlerbehebung

  • 401 (unauthorized): falsche oder abgelaufene Zugangsdaten. SAP Basic → prüfen Sie Benutzername/Passwort des Kommunikationsbenutzers; SAP OAuth → prüfen Sie Client ID/Secret und die Token-URL; NetSuite TBA → prüfen Sie Consumer Key/Secret und Token ID/Secret (ein zusätzliches/fehlendes Zeichen macht die Signatur ungültig). Fügen Sie die Geheimnisse erneut ein (sie kommen aus Sicherheitsgründen nicht vom Server zurück).
  • Ungültige TBA-Signatur (NetSuite): Token-Based Authentication verwendet OAuth 1.0a mit HMAC-SHA256; die Signatur hängt von der Methode, der exakten URL (einschließlich Query-Parameter) und der Account ID (Realm) ab. Bestätigen Sie, dass die Account ID korrekt ist (mit dem Suffix _SB1 in der Sandbox) und dass die vier Werte (Consumer Key/Secret, Token ID/Secret) ohne Leerzeichen eingefügt wurden. Falls Sie das Token in NetSuite neu erzeugt haben, aktualisieren Sie es in Sellio.
  • 403 (forbidden): Die Zugangsdaten authentifizieren sich zwar, aber Rolle/Benutzer haben keine Berechtigung, diesen Datensatz zu erstellen. Überprüfen Sie in NetSuite die Rollenberechtigungen (Lists/Records + „REST Web Services“); überprüfen Sie in SAP die POST-Berechtigung auf der OData-Entität / das Communication Scenario.
  • Entity/recordType nicht gefunden (404): Bei SAP ist die OData-Dienst-URL falsch, oder der Dienst ist nicht aktiviert. Bestätigen Sie die Basis-URL (ohne das EntitySet) und aktivieren Sie den Dienst in /IWFND/MAINT_SERVICE. Bei NetSuite passt der Standard-recordType möglicherweise nicht zu Ihrem, und benutzerdefinierte Konten/Aufträge/Rechnungen können einen anderen recordType erfordern (kontaktieren Sie den Support, um die Zuordnung anzupassen).
  • Abgelehnte Felder: SAP und NetSuite sind streng bei Property-Namen. Sellio sendet eine konservative Auswahl gängiger Felder (name, email, phone, company, amount, currency, reference). Wenn Ihr ERP zusätzliche Pflichtfelder erfordert (z. B. BP Category in SAP, subsidiary in NetSuite), müssen diese zugeordnet werden; passen Sie also die Zuordnung in der Konfiguration an oder kontaktieren Sie den Support.
  • Der Webhook kommt nicht an (Empfang): Bestätigen Sie, dass der Connector AKTIVIERT ist (ein deaktivierter Connector-Webhook antwortet mit 404), dass die in das ERP eingefügte URL vollständig ist (mit dem Token) und, falls Sie ein „Webhook-Secret“ festgelegt haben, dass das ERP das Secret im Header X-Sellio-Secret sendet oder den HMAC-SHA256 des Bodys im Signaturheader. Andernfalls lautet die Antwort 401.

Open this article inside the system

Read it and want to see it working?

The account is free and the whole manual is available inside the system, with an assistant that answers from this very content.

Kostenloses Konto erstellen
Enterprise-ERP: SAP und NetSuite · Sellio