Aleš VintrlíkKontakt

Výrobní firma se servisním oddělením a techniky v terénu

Obousměrná synchronizace servisních výjezdů mezi ERP a mobilní aplikací techniků

Dispečer v Heliosu a technik v mobilní aplikaci si přepisovali data. Stavová logika určuje, kdo smí měnit co a kdy.

Systém: HELIOS iNuvio, SQL Server 2022Výstup: Synchronizační procedury, orchestrace, jobyRežim: Návrh, diagnostika, nasazeníRole: Architektura a vývoj

Výchozí stav

  • Expediční příkazy se měly propisovat do servisní aplikace a zpět, ale po nasazení se změny položek nepřenášely ani jedním směrem.
  • Hrozilo, že synchronizace z mobilní aplikace vynuluje ceny v ERP.
  • Chyběla jasná pravidla, kdo je pro která data rozhodující, dispečer nebo technik.

Co jsem udělal

  • Navrhl jsem stavový model výjezdu (nový, připraveno, uvolněno k výjezdu, ukončeno) a pravidlo datové autority: v jednom stavu rozhoduje ERP, ve druhém technik.
  • Ceny určuje výhradně ERP, z aplikace se přenáší jen množství, položky, poznámky, technik a vyjádření.
  • Diagnostikou jsem našel skutečnou příčinu nefunkčnosti (nenastavený příznak při importu) a nespolehlivou vazbu doklad-aktivita nahradil vlastní vazební tabulkou.
  • Každou změnu jsem nejdřív otestoval v transakci s ROLLBACK, včetně validace kurzů u valutových dokladů.
  • Doplnil jsem log hlavní i detailní (atribut, stará a nová hodnota), orchestraci s applockem proti souběhu a ruční akci pro dispečera přímo v Heliosu.
Výsledek: Nasazeno na produkci: synchronizace každé 2 a 5 minut, detailní log změn atributů, ověřený přenos množství s přepočtem cen standardní procedurou Heliosu.

Synchronizace běží v produkci, přenos změny množství včetně přepočtu cen je ověřený end-to-end a každá změna je dohledatelná v logu. Dispečer i technik pracují ve svém nástroji a nepřepisují si práci.

Řešené problémy

Technologie

HELIOS iNuvio (externí akce a atributy) · SQL Server 2022 · T-SQL · SQL Server Agent · applock, transakční testy