Je možné propojit Excel s ERP systémem přes API?

Technicky to určitě možné je. Pokud ale řešíte tuhle otázku, nejspíš bude dobré když ještě jednou zvážíte návrh architektury celého systému …

Je možné propojit Excel s ERP systémem přes API?

Propojení Excelu s ERP systémem

Jestli se ptáme, zda jde Excel propojit s API ERP systému, můžeme nad odpovědí uvažovat ve dvou rovinách. Ta první je technická. Tedy odpovídáme na to, jestli je technicky možné Excel napojit na rozhraní ERP systému a ta druhá rovina je návrhová. Tedy uvažujeme nad tím, zda jsme správně navrhli architekturu celého systému, když chceme vůbec takové propojení realizovat. Na první otázku je odpověď jednoduchá, ta druhá hodně závisí na konkrétním řešení.

Technicky to možné je

Technicky je možné napojit makra v Excelu na HTTP/JSON rozhraní (API) ERP systému. Připomeňme, že makra v Excelu se programují v jazyce VBA (Visual Basic for Application) nebo jeho nové generaci Visual Basic .NET. Tyto jazyky nabízí nástroje a možnosti pro komunikaci s API. Můžou využívat Windows API, případně funkce a výhody .NET frameworku a je v nich tak technicky možné implementovat HTTP komunikaci s rozhraním nebo parsování předávaných dat ve formátu JSON nebo XML. Takto vytvořená makra se pak budou spouštět například po tom, co v Excelu klikne uživatel na nějaké tlačítko.

Zdůrazněme však, že tato makra (kopie Excelovských souborů s makry) jsou distribuovány u uživatelů a spouští se a běží v prostředí PC uživatele (tedy podobně jako jakákoliv desktopová aplikace) a to může být problém.

Excel pouze jako tenký klient

Pokouším se najít nějaké praktické využití, kdy se může hodit nebo lépe může být výhodné z pohledu architektury systému napojit Excel na ERP systém přes API. Napadá mě, pouze jedno použití (nebo lépe typ použití) a to, když budeme v navrhované architektuře na Excel nahlížet pouze jako na velmi tenkého klienta. Tedy pouze na něco, co bude sloužit uživatelům pouze pro zadávání dat a odesílání těchto dat do ERP. V praxi by to znamenalo, že uživatel se nebude muset přihlásit do ERP a pracovat a zadávat data přímo v tomto systému, ale pouze na svém počítači otevře Excel, vyplní data a klikne na tlačítko odeslat a Excel (makro v Excelu) tato data případně maximálně lehce upraví a odešle do ERP.

Jaké může mít výhody toto řešení:

  • Nemusíme uživatele školit na ERP systém (zejména, když uživatel z pohledu ERP zadává pouze malé množství dat, může být výhodné nechat ho stran ERP systému).
  • Uživatelé nebudou muset rozumět logice ERP systému (makro v Excelu bude mapovat zadávaná data od uživatele na entity / tabulky ERP systému, uživatelé tak nebudou muset podrobně chápat jaké entity v kontextu ERP systému vlastně zadávají).
  • Pohled bezpečnosti - nemusíme uživatelům dávat přístup do ERP (je potřeba uvážit, že ho stejně budou mít - v podobě makra s přístupem k API ERP).

Toto řešení může být ale i problematické:

  • U tohoto řešení může být maintenance doslova noční můrou. Pokud by Excel používalo třeba 100 obchodních zástupců a potřebovali bychom v něm udělat nějakou úpravu, protože se třeba lehce změní API ERP systému, distribuce nových verzí Excelů s makry bude nejspíš hodně náročná.
  • Pokud budeme mít větší množství uživatelů, kteří pracují s Excel makry napojenými na ERP a začnou nám mezi nimi vznikat nějaké formy závislosti, dříve či později se stane tohle řešení absolutně nevhodným. Pokud bychom trvali na zachování Excelu i ERP, tak bychom mezi ně museli vložit další systém, který by řešil synchronizaci mezi uživateli / uživatelskými daty a uživatelský přístup (pak je ale jednodušší Excel zahodit a použít nějakou formu webové aplikace).
  • Pokud bude Excel obsahovat větší množství logiky i jiné než jenom mapování zadaných dat na ERP systém, již nebude pouze tenkým klientem a i s ohledem na složitou maitenance je lepší zvolit nějaké serverové (centralizované) řešení - například nějakou formu webové aplikace.

Pokud řešíte otázku jak napojit Excel makra na rozhraní Vašeho ERP systému, je velmi pravděpodobné, že ve své architektuře nenahlížíte na makra v Excelu pouze jako na tenkého klienta, ale obsahují více logiky a pracuje s nimi více uživatelů. Jak lze v takovém případě vylepšit architekturu systému?

Úprava ERP systému

Nejsnadnějším a nejjednodušším řešením je upravit ERP systém tak, aby s ním mohli lehce pracovat i zaměstnanci, kteří doteď používali makra v Excelu a tím Excel zcela nahradit. Prostě dodělat funkčnost Excelu přímo do ERP systému.

Toto řešení však často není lehké nebo je dokonce nemožné, obzvlášť když nemáme pod kontrolou vývoj ERP systému (například jsme pobočka nadnárodní firmy a nemáme možnost zasahovat do vývoje a provozu ERP). Také může být problematické nebo nemožné takto upravovat krabicové řešení ERP systémů.

Náhrada Excelu webovou aplikací

Makra v Excelu běží v prostředí PC uživatele. Každý uživatel tak má vlastní kopii programu se kterou pracuje. I když pomineme velmi komplikovanou správu takového řešení, je toto značná nevýhoda obzvlášť, když začneme řešit potřebu synchronizace dat mezi více uživateli. Data by se musela synchronizovat přes ERP (v případě, že máte větší množství logiky v makrech, která navíc nesouvisí s logikou ERP, nejspíš to nebude možné), nebo by se musel vložit další systém jak je popsáno na konci článku.

Všechny tyto nevýhody lze ale eliminovat použitím webové aplikace, která se k tomuto účelu vysloveně nabízí. Webové aplikace (z pohledu architektury bychom mohli říci také cloudová aplikace, nebo provozována v cloudu) je centralizovaným řešením. Je pouze jedna kopie aplikace, která je provozována na jednom místě - serveru (v cloudu). S webovou aplikací pracují uživatelé prostřednictvím webového prohlížeče tak, jako s jakýmikoliv webovými stránkami. V aplikaci pak můžeme řídit přístup uživatelů k jednotlivým akcím a datům a můžeme také lehce synchronizovat data mezi uživateli (neboli z pohledu architektury synchronizace spíše přestane být potřeba, protože uživatelé oproti řešení s Excelem pracují pouze s jednou a tou samou kopií systému).

Maitenance webové aplikace je také oproti Excelu nesrovnatelně jednodušší, což také souvisí s centralizovanou architekturou celého systému a pouze jednou jeho kopií. Například výše zmíněná distribuce nových verzí systému u webové aplikace může probíhat tak, že se na serveru pouze spustí (deploy) skript, který provede všechny potřebné úkony k nasazení nové verze systému. Během pár sekund nebo minut můžou již všichni uživatelé pracovat s novou verzí systému.

Také není problém webovou aplikaci rozšířit o komunikaci s API ERP systému. Je zde navíc oproti řešení s Excelem výhoda, že s API komunikuje pouze jedno místo - webová aplikace a ne větší počet klientů (maker v kopiích Excelu u uživatelů). Toto řešení je také bezpečnější s ohledem na bezpečnost ERP systému. Přístup k API ERP systému má pouze webová aplikace a není potřeba jej dávat samotným uživatelům a to ani ve formě programu, který obsahuje tento přístup (jak tomu bylo u maker v Excelu na uživatelských PC komunikujících s API ERP).

Přidat mezi ERP a Excel další systém

Dalším řešením by mohlo být doplnit mezi makra v Excelu u uživatelů a API ERP systému další prvek (informační systém / program / skript / aplikaci), který by komunikoval jak s makry tak s API ERP a navíc by obsahoval logiku potřebnou pro práci s více uživateli a synchronizaci dat. Systém by musel být provozován podobně jako webová aplikace v předchozím bodu někde na serveru, centralizovaně, v jedné kopií a byl by prostředníkem mezi ERP a Excelem uživatelů.

Toto řešení ale nedoporučuji a použil bych ho pouze v krajním případě. Oproti výhodám použití webové aplikace toto řešení naopak komplikuje celou architekturu a zavádí další zbytečný a potencionálně problematický prvek.

Přemýšlíte nad řešením s webovou aplikací?

Pokud jste dospěli k závěru, že pro Vaše řešení bude vhodnější využít webovou aplikaci, kontaktujte mě a zeptejte se, jak Vám mohu pomoci s její realizací …

Michal Strelec, 19. února 2021

Další podobné články

Kdy se vyplatí investice do vývoje vlastního ERP systému na míru?

Kdy se vyplatí investice do vývoje vlastního ERP systému na míru?

Pokud jste jako ERP systém ve firmě zavedli nějaké dostupné krabicové nebo SaaS řešení, může se časem stát, že narazíte na jeho limity. Zjistěte, jak poznáte, kdy už se vyplatí investovat do vývoje ERP systému na míru …

Jak vybrat ERP systém pro firmu

Jak vybrat ERP systém pro firmu

O tom, jak vybrat správný ERP systém do firmy by se dala napsat kniha a stejně bychom nepřinesli univerzální návod, jak to udělat. Pokusme se proto pouze naznačit několik myšlenek, které nás mohou navést tím správným směrem …

Provoz ERP systému

Provoz ERP systému

Při výběru ERP systému do firmy bychom měli jako důležité kritérium zvážit také provoz posuzovaného řešení ERP systému. Ostatně ERP systém pořizujeme proto, aby byl někde provozován a sloužil nám a určitě se jedná o jednu z nejzásadnějších částí životního cyklu ERP systému …

Přizpůsobení ERP systému na míru

Přizpůsobení ERP systému na míru

Na trhu si můžeme vybrat z mnoha univerzálních hotových ERP řešení, každá firma může ale mít jiné požadavky na ERP systém. Je možné přizpůsobení ERP systému přímo na míru konkrétní firmě a má to vůbec smysl dělat?

Podpora ERP systému

Podpora ERP systému

Provoz softwaru v cloudu se těší stále větší oblibě. Nemusí to ale znamenat, že jeho součástí bude také podpora. Ať už svůj ERP systém provozujeme v cloudu nebo ne, měli bychom si k němu zajistit alespoň základní úroveň podpory …

Vývoj softwaru na míru

Vývoj softwaru na míru

Jmenuji se Michal Strelec, jsem zkušený softwarový inženýr na volné noze a věnuji se vývoji softwaru na míru, jeho provozu a podpoře. Zjistěte, jak Vám pomůžu s Vaším projektem …

Informační systém Elektronická objednávková kniha

Informační systém Elektronická objednávková kniha

Pro firmu PRAGUE BOATS jsem vyvinul na míru a provozuji rozsáhlý informační systém pro plánování a objednávání lodní dopravy, který ulehčuje nebo zcela nahrazuje práci dispečerů a obchodního oddělení firmy …