Integrace / ERP / SAP Business One
Průvodce integrací SAP Business One se SkyPlanner APS pro rozvrhování výroby
Tento průvodce ukazuje partnerům SAP Business One a IT týmům, jak propojit B1 se SkyPlanner APS. Vysvětluje, která API použít, kam se jednotlivé objekty přenášejí a na čem projekty s B1 ztroskotávají. SkyPlanner se SAP Business One komunikuje obousměrně prostřednictvím Service Layer:
- Do SkyPlanner se přenášejí výrobní zakázky, etapy technologických postupů, výrobní zdroje, položky a nákupní objednávky.
- Plánovaná data zahájení a termíny dokončení se zapisují zpět do výrobních zakázek.
- Časové záznamy operátorů se účtují jako Receipt and Issue for Production.
- Webhooky SkyPlanner odesílají změny rozvrhu ihned, jakmile nastanou.
Položky, kusovníky, výrobní zakázky, zásoby a finance zůstávají v SAP Business One a váš výrobní modul se nemění. Tým SkyPlanner při zavádění nastaví integraci se standardními objekty B1 a po spuštění ostrého provozu zajišťuje podporu. Každá firemní databáze má jiné etapy technologických postupů, skupiny výrobních zdrojů, uživatelsky definovaná pole a doplňky. Právě tyto rozdíly se při konfiguraci mapují.
Společnost Laboratory & Allied používá SkyPlanner se SAP Business One na HANA. Obchodní přínosy najdete na stránce o rozvrhování výroby pro SAP Business One.
Možnosti integrace SAP Business One
SAP Business One nabízí tři integrační rozhraní. Pro cloudové rozvrhování je výchozí volbou Service Layer.
| Možnost | Popis | Vhodnost pro integraci s APS |
|---|---|---|
| Service Layer | REST/OData API. /b1s/v1 používá OData v3, /b1s/v2 používá OData v4. Funguje v SAP Business One ve verzi pro SAP HANA a od verze 10.0 PL01 také na Microsoft SQL Server. | Hlavní způsob integrace. HTTP, JSON, přístup z cloudové služby. |
| DI API | Knihovna COM pro Windows. Výrobní příkazy představuje objekt ProductionOrders, uložený v tabulce OWOR (typ objektu 202). | Pro starší nebo lokálně provozovaný middleware. Vyžaduje hostitelský systém s Windows. |
| Integration Framework (B1if) | Middleware od SAP pro scénáře na úrovni dokladů. | Vhodné, pokud partner již provozuje scénáře B1if. |
Autentizace
Service Layer používá autentizaci založenou na relacích. Odešlete POST /b1s/v1/Login s údaji CompanyDB, UserName a Password a obdržíte cookie B1SESSION (a případně ROUTEID pro prostředí s rozkládáním zátěže). Výchozí hodnota SessionTimeout je 30 minut nečinnosti. Po dokončení synchronizace výslovně zavolejte Logout. Vytvořte v B1 samostatného integračního uživatele, aby bylo možné každou změnu zapsanou ze SkyPlanner dohledat v protokolu změn.
Entity Service Layer pro rozvrhování výroby
| Data | Entita Service Layer |
|---|---|
| Položky a plánovací data | Items |
| Kusovníky a etapy technologického postupu | ProductTrees (Lines, Stages) |
| Stroje, pracovní síly a další výrobní zdroje | Resources, ResourceGroups |
| Výrobní příkazy | ProductionOrders (Lines, Stages) |
| Zásoby podle skladů | Údaje o zásobách v Items, Warehouses |
| Otevřené nákupní objednávky a termíny dodání | PurchaseOrders (DocumentLines: nedodané množství, ShipDate) |
| Příjem zboží k nákupním objednávkám | PurchaseDeliveryNotes (Goods Receipt PO, typ objektu 20) |
| Výdej do výroby | InventoryGenExits |
| Příjem z výroby | InventoryGenEntries |
| Nastavení webhooků | EventSubscriptions, EventNotifications |
Výchozí velikost stránky je 20 záznamů. Zvyšte ji pomocí hlavičky Prefer: odata.maxpagesize (nebo nastavení PageSize v b1s.conf) a pokračujte podle odata.nextLink. Pomocí $expand načtěte řádky a etapy výrobního příkazu v jediném volání. Pro hromadný zpětný zápis používejte dávkové požadavky.
Události a webhooky
Od SAP Business One 10.0 FP 2602 podporuje Service Layer webhooky. Ve výchozím nastavení jsou vypnuté. Zapínají se pro každou společnost zvlášť pomocí CompanyService_UpdateAdminInfo (EnableWebhook = tYES). Poté odešlete POST EventSubscriptions se třemi částmi:
WebhookURLAuthenticationType: None, Basic, HMAC nebo OAuth; výchozí je HMACEventCollections podnikovými objekty a typy transakcí
WebhookURL musí používat HTTPS s certifikátem odpovídajícím hostiteli. EventSubscriptionsService_GetEventCatalog vypíše události, k jejichž odběru se můžete přihlásit. Služba Webhook Messenger Service musí být spuštěná.
Ve starších verzích používejte pravidelné dotazování (viz níže upozornění k UpdateDate). SBO_SP_TransactionNotification slouží k validaci na úrovni databáze, nikoli k doručování událostí.
Mapování dat ze SAP Business One do SkyPlanner
| SAP Business One (Service Layer) | Objekt ve SkyPlanner | Směr | Četnost |
|---|---|---|---|
Items (vyráběné položky, Procurement Method) | Produkty | B1 → SkyPlanner | Úvodní načtení, poté v nastavených intervalech |
Lines v ProductTrees (řádky položek) | Materiály produktu | B1 → SkyPlanner | Úvodní načtení, poté při změně |
Stages a řádky výrobních zdrojů v ProductTrees | Operace a časy zpracování | B1 → SkyPlanner | Úvodní načtení, poté při změně |
Resources (Machine, Labor, Other) | Pracoviště a pracovníci | B1 → SkyPlanner | Úvodní načtení, změny jen zřídka |
ResourceGroups | Skupiny pracovišť | B1 → SkyPlanner | Úvodní načtení |
ProductionOrders (Planned, Released) | Zakázky a operace | B1 → SkyPlanner | Webhook (FP 2602+) nebo dotazování každých několik minut |
Stages v ProductionOrders | Kroky operací včetně pořadí | B1 → SkyPlanner | Spolu s příkazem |
Zásoby Items podle Warehouses | Zásoby materiálu | B1 → SkyPlanner | V nastavených intervalech, např. každou hodinu |
Otevřené řádky PurchaseOrders (typ objektu 22) s termínem dodání | Nákupní objednávky / očekávaný materiál s předpokládaným termínem dodání | B1 → SkyPlanner | V nastavených intervalech, např. každou hodinu |
Řádky PurchaseDeliveryNotes (Goods Receipt PO) s BaseType 22 | Přijaté množství na řádku nákupní objednávky, aktualizované zásoby | B1 → SkyPlanner | V nastavených intervalech, např. každou hodinu |
| Naplánovaný začátek a konec | PATCH ProductionOrders({DocEntry}): StartDate, DueDate, na řádku výrobního zdroje StartDate a EndDate | SkyPlanner → B1 | Webhook ze SkyPlanner při změně rozvrhu |
| Vykázaná množství | InventoryGenEntries (příjem z výroby) | SkyPlanner → B1 | Při potvrzení nebo dávkově |
| Vykázané hodiny a spotřeba materiálu | InventoryGenExits (výdej do výroby) | SkyPlanner → B1 | Při potvrzení nebo dávkově |
Směnové kalendáře, personál a absence se spravují ve SkyPlanner. Údaje o denní kapacitě z B1 se nepřenášejí (viz první úskalí níže).
Integrační scénáře
1. Úvodní načtení kmenových dat. Načtěte Resources, ResourceGroups, Items s hodnotou Make v poli Procurement Method a jejich ProductTrees včetně etap. Každý stroj přiřaďte k pracovišti ve SkyPlanner. Před první synchronizací příkazů seznam projděte s plánovači.
2. Synchronizace příkazů. Načtěte ProductionOrders ve stavech Planned a Released a pomocí $expand zahrňte řádky a etapy. Výrobní příkazy v B1 obsahují etapy technologického postupu převzaté z kusovníku. Plánovači však mohou příkaz po jeho vytvoření upravit. Používejte proto etapy příkazu, nikoli kusovníku. Jeden výrobní příkaz vyrábí jeden produkt, takže u víceúrovňového produktu připadá na každou úroveň jeden výrobní příkaz. Propojte je tak, aby SkyPlanner naplánoval polotovary před nadřazeným produktem.
Do endpointů SkyPlanner pro nákupní objednávky synchronizujte také otevřené řádky PurchaseOrders s nedodaným množstvím a termínem dodání. SkyPlanner považuje objednaný materiál za dostupný k termínu dodání nákupní objednávky. V B1 dojde ke skladovému pohybu při zaúčtování příjmu zboží k objednávce, tedy Goods Receipt PO (PurchaseDeliveryNotes). Integrace tyto příjemky načte, přijaté množství označí ve SkyPlanner jako dodané a zbytek ponechá otevřený. Dílčí příjmy se započítají pouze jednou a kontrola materiálu zahrnuje skladové zásoby i očekávané dodávky.
3. Zpětný zápis rozvrhu. Při změně rozvrhu se spustí webhooky SkyPlanner. Integrace odešle PATCH /b1s/v1/ProductionOrders({DocEntry}) s novými hodnotami StartDate a DueDate a také s hodnotami StartDate a EndDate na řádcích výrobních zdrojů příkazu (ProductionOrderLines). Každá etapa tak má svůj naplánovaný časový interval. Tělo požadavku obsahuje pouze pole, která spravuje SkyPlanner, a několik příkazů se odešle v jednom požadavku $batch. Uživatelé B1 pak vidí naplánované termíny na výrobním příkazu i v okně Resource Capacity. V instalacích bez Service Layer se stejná aktualizace provádí z lokální služby přes objekt ProductionOrders v DI API (GetByKey, nastavení termínů, Update).
4. Odvádění výroby. Obsluha zaznamenává práci ve SkyPlanner pomocí Mobile Confirmations nebo Production Timer. Z každého časového záznamu vznikne POST /b1s/v1/InventoryGenEntries pro dokončené množství (příjem z výroby) a POST /b1s/v1/InventoryGenExits pro komponenty a čas výrobních zdrojů (výdej do výroby).
Každý řádek dokladu obsahuje BaseType 202 a BaseEntry nastavené na DocEntry výrobního příkazu. Řádky výdeje navíc obsahují BaseLine řádku komponenty nebo výrobního zdroje. Dílčí množství se účtují průběžně při vykazování. U položek se správou šarží nebo sériových čísel se tato čísla doplní a příkaz musí být ve stavu Released.
ID časového záznamu ze SkyPlanner se ukládá do dokladu v B1, takže opakované zpracování události nikdy nezpůsobí dvojí zaúčtování. Pokud zaúčtování selže, systém ho zopakuje a chybu nahlásí, místo aby záznam zahodil.
5. Pravidla odpovědnosti za data a řešení konfliktů. Dohodněte je před zahájením vývoje:
- B1 je určující pro položky, kusovníky, množství, sklady a vytváření zakázek.
- SkyPlanner je určující pro pořadí operací, časy zahájení a dokončení a přiřazení pracovišť.
- Pokud se termíny zakázky změní v obou systémech, při dalším přepočtu mají přednost termíny ze SkyPlanner, pokud plánovači operaci ve SkyPlanner nezamkli.
- Uzavření nebo zrušení zakázky v B1 odstraní operaci z rozvrhu.
Co projekt zahrnuje
Implementace bývá dokončena během několika týdnů od začátku zavádění. Ještě předtím si můžete systém 30 dní zdarma vyzkoušet na vlastních datech. Exportujte z B1 položky, výrobní zdroje a otevřené výrobní zakázky do CSV nebo Excelu a načtěte je pomocí importu dat ve SkyPlanner. Plánovači uvidí skutečný rozvrh dřív, než někdo začne psát integrační kód.
Typický projekt se SAP Business One zahrnuje:
- Mapování kmenových dat. Výrobní zdroje a jejich skupiny z B1 na pracoviště, etapy technologických postupů na kroky procesu a položky typu Make na produkty.
- Počáteční načtení dat. Položky, Product Trees s etapami a řádky položek, výrobní zdroje a zásoby podle skladů.
- Synchronizaci výrobních zakázek a nákupních objednávek. Otevřené výrobní zakázky včetně řádků a etap a otevřené nákupní objednávky s termíny dodání.
- Zpětný zápis rozvrhu. Naplánované termíny zahájení a dokončení do
ProductionOrders. - Odvádění výroby. Účtování dokladů Receipt and Issue for Production na základě časových záznamů ze SkyPlanner.
- Testování souběžně se stávajícím plánem. Plánovači porovnávají rozvrh ze SkyPlanner s dosavadním způsobem plánování.
- Spuštění ostrého provozu. Rozvrh ve SkyPlanner se stává závazným plánem.
Dobře udržované výrobní zdroje a etapy technologických postupů v B1 zjednodušují mapování. Ve společnosti Laboratory & Allied patřila integrace k nejméně náročným částem projektu. Interní IT tým zvládl integraci se SAP Business One na HANA z velké části sám. Tým SkyPlanner pomohl s nejsložitějšími případy, například s produkty, které se spojují v průběhu vícekrokových procesů.
Úskalí SAP Business One
Denní kapacita nenahrazuje model směn.
B1 eviduje Daily Internal Capacity a Single Run Capacity pro každý výrobní zdroj na každý den. Podle SAP Learning: „These capacities are defined on a daily basis,“ (tyto kapacity se stanovují pro každý den). Příručka SAP uvádí, že výpočet Required Days předpokládá, že „a single production order can be produced on a single machine“ (jednu výrobní zakázku lze vyrobit na jediném stroji) (praktická příručka SAP). Nepřebírejte tyto hodnoty jako kapacity pro plánování výroby, které respektuje skutečnou kapacitu strojů a personálu. Směny, personál a efektivitu pracovišť nastavte ve SkyPlanner.
Technologický postup je součástí kusovníku.
Samostatná kmenová data technologických postupů zde nejsou. Pořadí určují řádky Route Stage v Product Tree a hodnoty Waiting Days se zadávají ručně. Načítejte Stages z ProductTrees i ProductionOrders a zkontrolujte, zda každý řádek výrobního zdroje patří k některé etapě. U příkazů bez etap nemá plánovací systém k dispozici pořadí operací.
Množství na řádcích výrobních zdrojů je nutné přepočítat.
Pole Quantity na řádku kusovníku udává množství potřebné pro výrobu množství uvedeného v hlavičce kusovníku, nikoli pro jeden kus. Additional Quantity se přičítá k plánovanému času „regardless of the quantity of the parent item produced“ (bez ohledu na vyrobené množství nadřazené položky) (praktická příručka SAP). Berte ho jako pevný čas na zakázku, podobně jako čas seřízení. Než odvodíte výrobní čas na kus, vydělte příslušnou hodnotu množstvím z hlavičky. Jinak bude doba každé operace chybná o tento násobek.
Kmenová data výrobních zdrojů bývají málokdy v pořádku.
Výrobní zdroje mají typ Machine, Labor nebo Other. Stroje lze propojit s dlouhodobým majetkem a pracovní sílu se zaměstnanci. Ke zdroji lze také přiřadit neskladovou položku pro jeho nákup nebo prodej. Nic z toho ale neříká, které zdroje jsou skutečné stroje, na nichž lze rozvrhovat výrobu. Než ze zdrojů vytvoříte seznam pracovišť, upravte jejich skupiny a odstraňte duplicity.
Odvádění výroby může selhat kvůli skladovým pravidlům.
Příjmy a výdeje jsou skladové doklady. Mezi běžné chyby patří záměna InventoryGenEntries a InventoryGenExits, chybějící čísla šarží nebo sériová čísla u položek, které je vyžadují, a účtování k příkazu ve stavu Planned.
Relace a stránkování.
Po vypršení relace se vrátí chyba „Invalid session or session already timeout.“ (Neplatná relace nebo relaci již vypršel časový limit.) Při této chybě se znovu přihlaste. Pokud synchronizace ignoruje odata.nextLink, kvůli výchozímu stránkování po 20 záznamech načte bez upozornění jen část dat.
UpdateDate neobsahuje čas.
V tabulce OWOR je UpdateDate pole s datem. Čas aktualizace je uložen samostatně v UpdateTS. Dotazování, které filtruje pouze podle UpdateDate, při každém spuštění načte všechny příkazy změněné v daný den. Kombinujte obě pole nebo na své straně odstraňujte duplicity.
Webhooky se doručují alespoň jednou.
Webhook Messenger opakuje neúspěšné doručení až pětkrát (po 2, 4, 8, 16 a 32 sekundách), poté ho označí za neúspěšné. Opakované pokusy mohou vytvářet duplicity a pořadí je zaručeno pouze v rámci jedné společnosti. Zajistěte idempotentní zpracování podle ID události a zachovejte noční kontrolu konzistence dat pomocí dotazování.
Kdo nastavuje integraci se SAP Business One
Práce zahrnuje mapování vašich etap technologických postupů, výrobních zdrojů a nastavení B1. Dále zahrnuje omezení, která B1 při rozvrhování nezohledňuje: matici časů seřízení, nástroje, počty operátorů a alternativní výrobní zdroje.
- Tým SkyPlanner integraci nastaví při zavádění a po spuštění ostrého provozu zajišťuje podporu. Každá firma používá B1 jinak a právě zde se uplatní znalost konkrétního prostředí. Toto je výchozí postup.
- Zapojit se může i váš partner pro SAP Business One. Partneři, kteří znají vaši firemní databázi, doplňky a uživatelsky definovaná pole, mohou integraci vytvořit pomocí Service Layer a REST API systému SkyPlanner (referenční dokumentace API).
- Integraci mohou vytvořit i vaši vlastní vývojáři. REST API systému SkyPlanner umožňuje číst a zapisovat zakázky, produkty, materiály, kroky procesu, nákupní objednávky a časové záznamy. K autentizaci používá JWT bearer token a je zdokumentováno ve Swagger/OpenAPI. Veřejnou dokumentaci najdete v dokumentaci SkyPlanner. Webhooky odesílají změny rozvrhu a stavů v reálném čase. K zahájení vývoje potřebujete pouze API klíč SkyPlanner (návod k integraci) a tým SkyPlanner vám v případě potřeby pomůže. Tento postup zvolil interní IT tým společnosti Laboratory & Allied.
Nejprve si rozvrh ověřte během 30denního bezplatného zkušebního období. Integrace pak bude vycházet z rozvrhu, který už odpovídá potřebám závodu.
Proč technické týmy volí SkyPlanner pro B1
- Zvolte SkyPlanner, pokud chcete integraci s omezeným a jasně vymezeným rozsahem. Do SkyPlanner se přenášejí standardní objekty B1 (výrobní zakázky, Product Trees, Resources, Items), zpět termíny a doklady Issue and Receipt from Production. Bez změn výrobního modulu B1 a bez migrace dat.
- Zvolte SkyPlanner, pokud musí projekt brzy prokázat svůj přínos. Při 30denním bezplatném vyzkoušení pracujete s exportem CSV až pro 20 pracovišť, bez platební karty. Firma uvidí vlastní rozvrh ještě před zahájením integrace.
- Zvolte SkyPlanner, pokud musí rozvrh respektovat skutečná omezení. Časy přetypování, sdílené nástroje, operace s více operátory, alternativní výrobní zdroje, zásoby i otevřené nákupní objednávky se modelují ve SkyPlanner. Integrace pouze dodává data z B1.
- Zvolte SkyPlanner, pokud chcete jeden systém pro plánovače i operátory. Výpočetní jádro Arcturus sestaví rozvrh během několika sekund a Autopilot ho při změnách ve výrobě automaticky přeplánuje. Operátoři zaznamenávají práci na telefonu nebo tabletu a integrace tyto záznamy o odvedené výrobě zapisuje zpět do B1.
- Zvolte SkyPlanner, pokud potřebujete předvídatelné náklady. Cena začíná na 199 € měsíčně a zahrnuje 5 pracovišť. Fakturace je měsíční a službu můžete kdykoli zrušit. Cenovou nabídku integrace dostanete předem spolu s tarifem podle vašich procesů a potřeb, takže celkové náklady znáte ještě před zahájením.
Co ve stávajícím plánování chybí, vysvětluje článek o plánování výroby v SAP Business One. Tématem je zde plánování, při kterém rozvrh respektuje skutečně dostupné kapacity strojů i pracovníků. Další systémy ERP najdete v přehledu integrací s ERP.
Jak SkyPlanner hodnotí výrobní firmy
+90%efektivita výroby
„Efektivita výroby vzrostla o 90 %.“
Abdul Rucyinga, vedoucí IT
Laboratory & Allied · Farmaceutická výroba
Efektivita výroby vzrostla o 90 % a sestavení optimalizovaného plánu na tři měsíce pro všechna pracoviště trvá méně než 30 minut.
2 húspory každý týden
„Díky SkyPlanner jsme v plánování výroby přešli od excelových tabulek k optimalizaci výroby v reálném čase.“
Kalle Kalliomäki, specialista dodavatelského řetězce
UTU · Elektrické rozváděče a spínací zařízení
Při plánování výroby se každý týden ušetří 2 hodiny práce a nová fronta operací se na linku dostane během několika sekund.
6 měsícůdopředu vidí obchodníci volné kapacity
„SkyPlanner poskytuje spolehlivý základ pro veškeré plánování výroby.“
Anu Järvinen, vedoucí výroby
Fredman Operations · Balicí papíry vhodné pro styk s potravinami
Obchodníci vidí volné kapacity na šest měsíců dopředu a na požadavky na změnu rozvrhu dostávají odpověď během několika sekund, zatímco dříve čekali hodinu i déle.
99,2 %včasnost dodávek
„Díky SkyPlanner máme přehled o úzkých místech a řízení výroby je přehlednější.“
Toni Tuori, vedoucí výroby
Piristeel · Střešní bezpečnostní prvky a okapové systémy
Včasnost dodávek letos dosáhla 99,2 % a rozvrhování výroby šetří až čtyři hodiny práce denně.
Časté dotazy
Kdo zajistí integraci se SAP Business One?
Tým SkyPlanner nastaví obousměrnou integraci během zavádění a zajišťuje její podporu i po spuštění do ostrého provozu. Do SkyPlanner se přenášejí výrobní příkazy, fáze technologických postupů, výrobní zdroje, nákupní objednávky a příjmy zboží. Zpět se předávají naplánované termíny a Issue and Receipt from Production. Integraci může vytvořit také váš partner pro B1 nebo vaši vlastní vývojáři pomocí Service Layer a REST API systému SkyPlanner. Pro začátek stačí klíč API.
Jak dlouho trvá implementace SkyPlanner se SAP Business One?
Implementace bývá dokončena během několika týdnů od zahájení zavádění. Tým namapuje výrobní zdroje a fáze technologických postupů, propojí výrobní příkazy a nákupní objednávky a před spuštěním do ostrého provozu porovná výsledný rozvrh s vaším stávajícím plánem.
Service Layer, nebo DI API?
Pro nové integrace zvolte Service Layer. Využívá HTTP, funguje na HANA i SQL Server a hodí se pro cloudové rozvrhování výroby. DI API použijte pouze tam, kde na něm již závisí stávající middleware.
Potřebuji SAP Business One 10.0 FP 2602?
Pouze pro webhooky. Starší verze 10.0 se integrují pomocí pravidelného dotazování.
Jak se naplánované termíny zapisují zpět do SAP Business One?
Pomocí PATCH /b1s/v1/ProductionOrders({DocEntry}), který nastaví StartDate a DueDate na příkazu a StartDate a EndDate na jeho řádcích výrobních zdrojů. Zápis spouští webhook SkyPlanner při změně rozvrhu. Vyrobené množství a čas se zapisují zpět jako InventoryGenEntries a InventoryGenExits, propojené s příkazem pomocí BaseType 202 a BaseEntry.
Potřebujeme v B1 doplněk pro výrobu?
Ne. Integrace pracuje pouze se standardními objekty B1: výrobními příkazy, Product Trees, Resources, Items, nákupními objednávkami a skladovými doklady. Žádná data se nemigrují do nového datového modelu výroby.
Můžeme SkyPlanner před integrací otestovat na našich datech z B1?
Ano. Zkušební verze na 30 dní zahrnuje až 20 pracovišť a import z CSV nebo Excelu, bez nutnosti zadávat platební kartu. Vyzkoušejte zdarma nebo kontaktujte obchodní tým a proberte s ním své prostředí B1.