CZ EN

Telefon:

+420 257 288 211

Modelování procesů a služeb pro Generální ředitelství cel ČR

Na první pohled jsou číselníky celkem jednoduše vypadající tabulky se seznamem kódů, popisem jejich významu, intervalem platnosti a případně i dalšími atributy. Opak je ale pravdou. Tyto relativně jednoduše vypadající tabulky jsou velmi důležitou součástí celého organismu informačního systému. I jednoduchá aplikace, pokud jsou chybné číselníky, pracuje špatně a dodává špatné informace či zpracování dat je nekorektní.

Klient:

Generální ředitelství cel

Poskytnutá řešení:

Vývoj software na zakázku

Výchozí situace zákazníka

Celní správa ČR je orgánem, který dlouhodobě a úspěšně buduje svůj informační systém pro podporu procesů v oblasti kontroly a výběru cla a daní. A právě číselníky jsou jednou z klíčových komponent celého systému, bez kterých by bylo velmi složité tyto procesy řídit a zpracovávat data. V mnoha případech už ani nejde o jednoduché tabulky s pouhým výčtem kódů a jejich významů, ale o celý provázaný systém, kde jsou hodnoty tabulek/číselníků vzájemně velmi úzce provázány.

Pro správu číselníků byl využíván systém, který byl postaven na již zastaralé technologii (Visual FoxPro 9) s lokálním umístněním soborů. Takto postavený systém už nevyhovoval provozním potřebám a nebyl ani dostatečně řešen z pohledu bezpečnosti dat a provozu vůbec. Na základě těchto skutečnosti padlo rozhodnutí o zahájení projektu s cílem připravit nový systém, který bude v souladu s novými bezpečnostními standardy a postaven na nových technologiích.

Koncept a technologie

Pro systém, který zpracovává 500 číselníků, data pocházejí z různých zdrojů a jsou v různých formátech a denním intervalem změn, bylo nutné navrhnout architekturu tak, aby se data po transformacích bez delšího prodlení dostala k odběrateli. Průběh požadovaného procesu tedy odpovídá standardnímu ETL (Extract, Transform, Load) procesu, který bylo potřeba podpořit modelovacím nástrojem. Po krátkém váhání jsme zvolili technologii WF (Windows Workflow Foundation) z rodiny Microsoft.

Pro práci se systémem a tvorbu komplexních příkazů byl vytvořen grafický návrhář založený na Windows Forms a Windos Workflow Foundation. Díky tomuto rozhraní lze jednoduchým způsobem tvořit vlastní proces zpracování dat. Takto vytvořený proces lze spouštět automaticky nebo ručně přímo z aplikace, což umožňuje princip zachycení procesu v jednotném formátu XAML. Tento formát je vhodným nejenom pro opětovnou grafickou úpravu. Samotné modelování příkazů se provádí skládáním grafických prvků do základních programovacích konstrukcí, jako jsou sekvence, podmínka a cyklus. Chování samotného příkazu se upravuje nastavením hodnot parametrů prvku použitím literálů nebo výrazů a funkcí.

Grafický náhled pro prohlížení modelovaných příkazů není jediným náhledem, který uživatel vidí, ale pro zpřehlednění je také k dispozici jeho textová reprezentace. To uživateli pomáhá v orientaci ve vytvořeném toku zpracování s možností přímé vazby mezi grafickým návrhem a právě touto textovou reprezentací.

Vlastní řešení

Grafické rozhraní tvoří jenom jednu část celkového řešení a má ještě následující části:

  • Vstupní rozhraní – část systému, která zpracovává příchozí data v jednotném formátu XML, přístupné přes webové služby;
  • Centrální systém – hlavní část systému, která zodpovídá za samotnou realizaci;
  • Výstupní rozhraní – část systému, která zodpovídá za vystavení dat pro odběratele a zasílání vyžádaných informací.    

Zpracování dat v takto navrženém systému je tedy průtokové bez zbytečných prostojů, pokud uživatel nedefinuje jinak. Na data, která se vyskytnou na vstupním rozhraní, se aplikuje pravidlo zpracování, dle kterého se v systému spustí přiřazený tok k provedení specifikované operace. Před vlastním publikováním toku jej lze otestovat.

Uživatel může nad vstupními údaji nastavit různé kombinace podmínek, po jejichž splnění řídicí blok provede následující úkony:

  • Přenos a konverze vstupních dat z datové fronty do SQL tabulek na SQL server aplikace.
  • Spuštění zadaných workflow, která zpracovávají vstupní údaje.

V rámci definice pravidel je nutno definovat samotné úlohy (úloha je činnost, při které se spustí jedno nebo více workflow za sebou), které mají definovány atributy řídící tyto úlohy.

Pro podporu práce s daty bylo zapotřebí integrovat funkčnosti, jako jsou například import, export, modifikace, práce s proměnnými, porovnání tabulek, odeslání e-mailu a další, které vytvářejí společně se základními funkcemi, jako jsou cyklus, seskupení, podmínka, komplexní nástroj pro podporu modelování. Tyto aktivity jsou však jenom dílčí části celého systému, které v rámci modelování mohou využít předdefinovaných funkcí:

  • Textové funkce – pracují s textovými řetězci.
  • Konverzní funkce – převádí datové typy hodnot.
  • Matematické funkce – pracují s čísly.
  • Funkce data a času – pracují s kalendářními daty a časem.
  • Ostatní – poskytují doplňkové operace s hodnotami nebo proměnnými.  

Formát funkcí vychází z jazyka T-SQL a ty, které nebylo možné pomocí tohoto standardu naplnit, jsme vytvořili ve formátu PowerShell.

Jedna z nejsložitějších oblastí pro řešení v tomto systému, bylo spojování číselníků, kde stejné kódy v různých zdrojích mají rozdílné intervaly platnosti. Systém umí také udržovat číselníky v několika verzích, které je možné zveřejnit. Ne všichni odběratelé dokážou nebo potřebují upravit systémy pro aktuální verzi číselníku, může jim dostačovat současná verze.

Hodnocení a přínosy

To, co uživatel v rámci vytváření toku dat určitě ocení, je nejenom možnost si celý tok zpracování vstupních dat graficky připravit, ale také to, že každá z částí, kterou do tohoto toku vkládá, má v sobě integrované validace, které uživatele upozorní na chybu v  zápisu výrazu nebo parametrů. Optimalizace při zápisu znovupoužitelných funkčních bloků sestavených z jednotlivých aktivit, případně celých kompozic, které se vzájemně mezi sebou dají volat pomocí předávaných parametrů, dávají řešení bonus navíc, který uživatelé ocenili již z počátku práce se systémem.