Ako integrovať SAP S/4HANA so Salesforce pomocou n8n

Praktická príručka pre integráciu SAP S/4HANA so Salesforce pomocou n8n: nastavenie OData, autentifikácia, vzory workflow a najčastejšie prípady použitia pre podniky v strednej a východnej Európe.

Share

Zhrnutie

SAP S/4HANA a Salesforce sú dva najrozšírenejšie podnikové systémy v stredne veľkých a veľkých organizáciách. Ich prepojenie tradične znamenalo MuleSoft, vlastný ABAP alebo drahý middleware. n8n to mení. Táto príručka prechádza presnými krokmi na vytvorenie funkčnej SAP-Salesforce integrácie pomocou n8n: nastavenie OData služby na strane SAP, autentifikácia REST API na strane Salesforce a praktické vzory workflow pre najbežnejšie scenáre synchronizácie.

Obsah

Prečo je táto integrácia dôležitá

SAP S/4HANA uchováva prevádzkové jadro: sklad, nákup, financie, výrobné príkazy, pohyby tovaru. Salesforce uchováva zákaznícke jadro: účty, príležitosti, ponuky, servisné prípady. Keď tieto dva systémy nehovoria navzájom, obchodné tímy ponúkajú na základe zastaraných skladových dát, finančné tímy manuálne zosúlaďujú objednávky a zástupcovia zákazníckeho servisu nemôžu vidieť stav dodávky bez prepínania systémov.

Toto nie je okrajový problém. Väčšina podnikových nasadení Salesforce existuje popri systéme SAP. Integračná medzera medzi nimi je jednou z najčastejších problémových oblastí v podnikovom IT.

Obchodný dopad uzavretia tejto medzery je priamy: rýchlejšie cykly quote-to-cash, menej manuálnych chýb pri zosúlaďovaní a zákaznícky servis, ktorý vidí celý životný cyklus objednávky na jednom mieste.

Tradičný prístup a jeho cena

Štandardnou podnikovou odpoveďou na integráciu SAP-Salesforce bol middleware: MuleSoft, Dell Boomi, SAP Integration Suite alebo vlastné ABAP Remote Function Calls (RFC). Každý z týchto prístupov funguje, ale prichádza s reálnymi nákladmi.

Licencovanie MuleSoft sa pohybuje od 50 000 do viac ako 200 000 EUR ročne v závislosti od objemu transakcií a počtu konektorov. SAP Integration Suite má podobnú cenu a predpokladá hlboké znalosti SAP na konfiguráciu. Vlastný ABAP je lacnejší na licencovanie, ale drahý na vývoj a takmer nemožné udržiavať bez dedikovaného SAP vývojára.

Pre stredne veľké spoločnosti tieto náklady stavajú správnu integráciu mimo dosah. Výsledok je manuálne zadávanie dát medzi systémami, CSV exporty plánované niekoho Outlook pripomienkou alebo junior analytik, ktorý „udržiava oba v súlade" ako neoficiálna časť jeho práce.

n8n ponúka odlišný model: open source, hostovateľný vlastnými silami, s cenou za spustenia workflow namiesto licencií na konektory. Stredne veľká spoločnosť spúšťajúca niekoľko stotisíc spustení workflow mesačne zaplatí niekoľko stoviek eur. Rovnaký objem v MuleSoft by stál o rád viac.

Čo prináša n8n do integrácie SAP-Salesforce

n8n sa pripája k SAP cez jeho OData služby (štandardná API vrstva, ktorú SAP vystavuje pre externú spotrebu) a k Salesforce cez natívny Salesforce uzol, ktorý obaľuje Salesforce REST API. Obe pripojenia sú vizuálne, verzionované v JSON workflow n8n a testovateľné bez nasadenia kódu.

Čo robí n8n praktickým pre tento prípad použitia: natívne spracúva stránkovanie, opakované pokusy pri chybách, podmienkovú logiku a transformáciu dát v editore workflow. Nepotrebujete samostatný ETL nástroj. Workflow je integrácia.

n8n môže bežať ako plánovaná úloha (polluje SAP alebo Salesforce na zmeny v intervale), ako workflow riadený udalosťami (spustený webhookom Salesforce alebo SAP udalosťou) alebo ako API endpoint, ktorý môžu volať iné systémy. Všetky tri vzory sú užitočné pre rôzne časti synchronizácie SAP-Salesforce.

Krok 1: Vystavenie SAP dát cez OData

SAP S/4HANA vystavuje dáta prostredníctvom OData v2 a v4 služieb. Toto je štandardná API vrstva pre externú integráciu. Pred tým, ako n8n môže čítať z alebo zapisovať do SAP, musí byť príslušná OData služba aktívna a prístupná.

V SAP S/4HANA prejdite na transakciu /IWFND/MAINT_SERVICE (pre OData v2), aby ste videli, ktoré služby sú aktívne. Pre bežné integračné objekty SAP dodáva predpripravené OData služby:

  • API_BUSINESS_PARTNER pre zákazníkov a dodávateľov
  • API_SALES_ORDER_SRV pre obchodné objednávky
  • API_MATERIAL_DOCUMENT_SRV pre pohyby tovaru
  • API_PRODUCT_SRV pre dáta materiálového kmeňa

Ak služba, ktorú potrebujete, nie je aktívna, aktivujte ju cez /IWFND/MAINT_SERVICE vyhľadaním názvu služby a výberom „Add Selected Services." Váš SAP BASIS tím to bude musieť vybaviť, ak nemáte administrátorský prístup.

Pre autentifikáciu OData služby SAP podporujú Basic Auth (meno a heslo), OAuth 2.0 a SAP-špecifickú tokenovú autentifikáciu. Basic Auth je najjednoduchší štartovací bod pre kontrolované prostredie. Pre produkciu použite dedikovaného technického používateľa s minimálnymi oprávneniami potrebnými pre objekty, ktoré synchronizujete.

Otestujte pripojenie priamo pred prechodom na n8n:

GET https://vas-sap-host:443/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner?$top=5
Authorization: Basic [base64-zakodovane-prihlasovacie-udaje]

Ak dostanete JSON alebo XML odpoveď so záznamami obchodného partnera, služba funguje.

Krok 2: Pripojenie n8n k SAP

n8n nemá dedikovaný SAP uzol, ale uzol HTTP Request spracúva OData služby čisto. Vytvorte nové prihlásenie v n8n typu „Header Auth" alebo „Basic Auth" s prihlasovacími údajmi vášho SAP technického používateľa.

Vo vašom workflow pridajte uzol HTTP Request s nasledujúcou konfiguráciou:

  • Metóda: GET (pre čítanie dát) alebo POST/PATCH (pre zápis)
  • URL: váš OData servisný endpoint
  • Autentifikácia: prihlásenie, ktoré ste vytvorili
  • Hlavičky: pridajte Accept: application/json pre získanie JSON namiesto XML
  • Query parametre: použite $filter, $select a $top na kontrolu vrátených dát

Pre čítanie zákazníkov upravených za posledných 24 hodín vyzerá filter takto:

$filter=LastChangeDateTime gt datetime'2026-07-07T00:00:00'&$select=BusinessPartner,BusinessPartnerFullName,EmailAddress

OData odpovede ukladajú skutočné záznamy do poľa d.results. Pridajte uzol Code n8n za HTTP Request na extrakciu poľa:

return items[0].json.d.results.map(record => ({ json: record }));

Tým získate jeden n8n item na každý SAP záznam, ktorý môže zvyšok workflow spracovávať individuálne.

Pre stránkované výsledky (SAP predvolene vracia maximálne 1 000 záznamov na požiadavku) použite uzol Loop Over Items n8n v kombinácii s parametrom OData $skiptoken alebo $skip na načítanie všetkých záznamov naprieč viacerými požiadavkami.

Krok 3: Pripojenie n8n k Salesforce

n8n má natívny uzol Salesforce, ktorý automaticky spracúva autentifikáciu OAuth 2.0. V n8n prihláseniach vytvorte nové prihlásenie Salesforce a vyberte buď „OAuth2" (odporúčané pre produkciu) alebo „Username/Password" (jednoduchšie na testovanie).

Pre OAuth2 potrebujete Connected App v Salesforce:

  1. V Salesforce Setup prejdite do App Manager a vytvorte novú Connected App
  2. Povoľte OAuth nastavenia a pridajte callback URL n8n (nájdete ju na obrazovke nastavenia prihlásenia Salesforce v n8n)
  3. Vyberte scopes: „Manage user data via APIs (api)" a „Perform requests at any time (refresh_token, offline_access)"
  4. Uložte a počkajte niekoľko minút, kým sa Connected App nerozšíri
  5. Skopírujte Consumer Key a Consumer Secret do n8n

Pre upsert operácie nastavte pole External ID na Salesforce objekte, ktoré sa mapuje na primárny kľúč SAP záznamu. Napríklad na objekte Account vytvorte vlastné pole SAP_Business_Partner__c a označte ho ako External ID. To vám umožní upsertovať záznamy Account zo SAP bez predchádzajúcej kontroly, či záznam v Salesforce už existuje.

Krok 4: Zostavenie sync workflow

Praktická jednosmerná synchronizácia zo SAP do Salesforce beží každých 15 alebo 30 minút. Tu je štruktúra workflow:

  1. Schedule Trigger: spúšťa sa každých 15 minút
  2. HTTP Request (SAP): načíta obchodných partnerov upravených od posledného behu, pomocou časovej pečiatky uloženej v statických dátach n8n alebo externom úložisku
  3. Uzol Code: extrahuje a transformuje pole d.results, mapuje názvy polí SAP na názvy polí Salesforce
  4. Uzol Salesforce (upsert): upsertuje záznamy Account pomocou SAP_Business_Partner__c ako externého ID
  5. Spracovanie chýb: vetva catch, ktorá zaznamenáva neúspešné záznamy do tabuľky Postgres alebo odosiela Slack upozornenie
  6. Uzol Code: aktualizuje časovú pečiatku posledného behu pre ďalšie spustenie

Pre opačný smer (Salesforce do SAP) je najčistejší trigger odchádzajúca správa Salesforce alebo Platform Event, ktorá sa spustí pri zmene záznamu. n8n to môže prijať cez uzol Webhook, transformovať payload a zavolať SAP OData službu s PATCH alebo POST žiadosťou.

Bežné prípady použitia

Synchronizácia zákazníckych kmeňových dát: SAP uchováva autoritatívny záznam zákazníka (fakturačná adresa, platobné podmienky, kreditný limit). Salesforce uchováva relačné dáta (kontakty, aktivity, príležitosti). Synchronizácia SAP obchodného partnera do Salesforce Account udržiava obchodné tímy pracujúce s aktuálnymi fakturačnými informáciami bez opustenia Salesforce.

Synchronizácia stavu objednávok: Keď sa príležitosť Salesforce uzavrie a stane sa objednávkou v SAP, stav dodávky a faktúry zo SAP by mal byť viditeľný v Salesforce. To umožňuje zákazníckemu servisu odpovedať na otázky o stave objednávky bez prepínania do SAP. Workflow, ktorý polluje SAP na zmeny stavu objednávok a aktualizuje vlastné pole na Salesforce Opportunity alebo súvisiaci objekt Order, toto rieši čisto.

Synchronizácia produktového katalógu: SAP uchováva dáta materiálového kmeňa vrátane cien, dostupnosti a merných jednotiek. Zobrazovanie týchto dát v Salesforce CPQ alebo vlastnom objekte pre ponuky zabezpečuje, že obchodní zástupcovia ponúkajú z aktuálnych katalógových dát, nie z tabuľky, ktorú niekto exportoval minulý štvrťrok.

Synchronizácia faktúr a platieb: SAP Finance generuje faktúry a sleduje platby. Synchronizácia stavu faktúr do Salesforce dáva account manažérom prehľad o nezaplatených zostatkoch bez potreby prístupu do SAP.

Spracovanie chýb a monitorovanie

Každá integrácia bežiaca bez dozoru potrebuje spracovanie chýb, ktoré nezlyhania neskrýva. V n8n pridajte workflow Error Trigger, ktorý zachytí zlyhania z vašich sync workflowov a odošle notifikáciu s podrobnosťami o neúspešnom zázname a chybovej správe.

Pre záznamy, ktoré opakovane zlyhávajú (neplatné dáta, pole prekračujúce limit znakov Salesforce, SAP záznam s chýbajúcim povinným poľom), zaznamenávajte ich do dead-letter tabuľky v Postgres namiesto nekonečného opakovania. Pravidelne ich kontrolujte a opravujte manuálne.

Monitorujte časy spustenia, keď objem dát rastie. Ak váš 15-minútový sync začne trvať 14 minút, musíte buď zvýšiť interval, pridať paralelizmus s uzlom Split In Batches n8n alebo prehodnotiť stratégiu detekcie zmien (delta podľa časovej pečiatky je rýchla; skenovanie celej tabuľky nie je).

Kedy n8n nestačí

n8n dobre zvláda väčšinu integračných potrieb SAP-Salesforce pre stredne veľké spoločnosti. Existujú scenáre, kde má zmysel špecializovanejší nástroj.

Ak vaša integrácia zahŕňa vysokofrekvenčné, objemné transakčné dáta (státisíce záznamov za hodinu), streamingová platforma ako Kafka alebo SAP Event Mesh spracúva túto priepustnosť efektívnejšie ako model spúšťania workflow n8n.

Ak potrebujete komplexnú ABAP obchodnú logiku na strane SAP (vlastné validácie, viacstupňové transakčné procesy zahŕňajúce viacero SAP modulov), ľahší middleware volajúci SAP BAPI alebo RFC priamo môže byť vhodnejší ako čisté OData.

Ak vaša organizácia má SAP Integration Suite licencovaný a obsadený, jeho používanie pre integrácie pochádzajúce zo SAP a n8n pre ľahšie orchestračné úlohy je rozumné rozdelenie.

Vo Forest Digital navrhujeme integračné architektúry SAP-Salesforce pre stredne veľkých a veľkých klientov v celej strednej Európe, pričom volíme správny nástroj pre každú vrstvu integrácie. Ak hodnotíte možnosti pre váš stack, kontaktujte nás pre konzultáciu.


Forest Digital je poradenská spoločnosť pre digitálnu transformáciu so sídlom v Košiciach na Slovensku, špecializujúca sa na SAP, Salesforce, vývoj riadený AI a podnikové dátové platformy.