Jméno BALP je akronymem
pro jméno tvůrce původního systému pro MS-DOS a jména firmy. Název jsem po převzetí
projektu ponechal, už kvůli dokumentaci
ISO a také proto, ať uživatelům evokuje něco známého.
Jde o systém modulů pro okruhy uživatelů na společné databázi, společným frameworkem
a propojený na druhou část informačního systému firmy ESO 9 pomocí uložených procedur.
Jeho součástí je i webová aplikace ASP.NET, která má řídící a ověřovací funkce a
obsahuje sestavy a náhledy, které se jinak nevyplatí dělat.
Původně šlo o projekt ve FoxPro 2.00 (+ nějaká rozšíření ve VFP 6.00 a PHP) a zdaleka
ne v takovém rozsahu, neexistovala skutečná provázaná komunikace s ESO 9. Po jeho
převzetí od původního autora byl přepracován a podstatně rozšířen na platformě Visual
FoxPro 7.00. S nástupem koncernu a jeho striktní politiky v IT byl systém opět přepracován
na Visual FoxPro 9 SP-2.
Jako další stadium jsem předpokládal přepracování do webové aplikace ASP.NET a přepracování
databáze na těsnější integraci s ESO 9. Objevily se totiž nástupem .NET 2.00 použitelné
technologie pro data - LINQ a přepracované ADO.NET + možnost využití AJAX a Silverlight
pro GUI. Kromě specialit pro modelování dat - ty by zůstaly na desktopových aplikacích
ve VFP. Ale k tomu již nedojde. Detailnější popis historie je
zde.
Funkce
Po spuštění zástupce modulu se odpálí několik událostí. Spustí se speciální soubor,
který vykoná přípravné operace - provede kontrolu přístupnosti sítě, zkontroluje
aplikační adresáře v Dokumentech uživatele a případně je vytvoří, stáhne podpůrné
soubory pokud neexistují. Pokud ano, zkontroluje jejich verzi a případně provede
aktualizaci. Mj. každý modul má takový spouštěč.
Pokud je vše v pořádku, je zkontrolován vlastní pracovní modul. Pokud není k dispozici
v aplikačním adresáři, je stažen a spuštěn, pokud je, je zkontrolována verse a pokud
je na síti novější, je stažen a spuštěn.
Pracovní modul víceméně zopakuje totéž, co spouštěcí. Jde jen o pojistku. Pak kontaktuje
webovou aplikaci BALPu pomocí XMLHttp a vyžádá si konfigurační údaje ke spojení
k databázím. Tyto údaje poskytuje specializovaný HttpHandler předávající údaje z
web.config, který také ověří uživatele - webová aplikace běží ve Windows autentifikaci.
Pokud uživatel není ověřen, nedostane údaje pro spojení s databází a modul se ukončí.
(Původně bylo ověřování pomocí ADO dotazu na Active Directory přímo, ale bylo to
dost pomalé).
Pokud projdou předchozí kroky a modul běží, jako následný krok provede programové
vytvoření databáze VFP, kde uloží spojení na databáze, vytvoří příslušné vzdálené
pohledy, pracovní tabulky a další objety. V podstatě se jedná o formu jakéhosi middleware
nebo datasetu z ADO.NET. (Aplikace samozřejmě využívají také
PST a ADO přímo, ale základem jsou
programově vytvářené vzdálené pohledy.)
Pak je načten profil uživatele a jeho oprávnění k danému modulu z databáze. Pokud
žádná práva nemá, aplikace se s přílušným hlášením ukončí. Pokud nějaká má, pokračuje
modul tvorbou uživatelského rozhraní a načtení potřebných dat. Po tvorbě
UI jsou zpřístupněny volby v uživatelském rozhraní. A může se pracovat.
Během provozu je v provozu automatická kontrola timerem, zda na síti není novější
modul. Pokud ano, je uživatel upozorněn, ale jeho práci to nepřeruší.
Pro účely testů a výuky uživatelů se může aplikace přepnout na zkušební databáze
jen prostým přepínačem.
Po ukončení práce je adresář přílušného modulu v Documents and Settings smazán.
BALP pokrývá tyto činnosti firmy:
- Hlavní spouštěcí modul a web
- Číselníky a katalogy surovin, polotovarů, receptur a zboží
- Klasifikaci komodit vzhledem k nebezpečným látkám
- Sledování zásob hotového zboží a analýzu jeho pohybů
- Plánování výroby
- Tvorbu a oběh příkazů k výrobě, sledování realizace výroby
- Tvorbu a kalkulování receptur výrobků a polotovarů
- Správa firemní metrologie
- Evidence a správa počítačů, SW, HW a uživatelů, administrace BALPu
- Rozhraní pro zpracovávání dat z telefonní ústředny
- Utility pro různé činnosti, jako je část komunikace EDI, remapování účtů v účetnictví
pro komunikaci s centrálou, knihovnu technických norem, rozhraní pro SQL dotazy.
Podmínky
Na cílovém počítači musí být nainstalován runtime
Visual FoxPro 9.00 SP-2, SQLNative
Client, MS XMLParser 6.00,
Windows
Scripting Host. Dále je potřeba mít připojen síťový disk, kde jsou uloženy
moduly, podpůrné soubory a zástupci ke spuštění. Nic více. No, samozřejmě to musí
být stroj, na kterém běží WindowsXP nebo vyšší, BALP funguje i pod Windows 2003,
Windows Vista nebo Windows7 a rozlišení obrazovky musí být alespoň 1024x768, doporučeno
je ale vyšší - okna většiny částí se podmíněně renderují dle velikosti obrazovky
a pak je vidět více informací.
Samotné aplikace/moduly se neinstalují a jejich distribuce je výhradně síťová a
bezobslužná, včetně aktualizací. Je tedy možné hned od provopočátku v rámci instalačního
média pro dané PC zahrnout vše potřebné a již se k tomu nevracet.
Systém pracuje výhradně v uživatelském profilu, tzn. k počítači nemusejí být žádná
zvláštní práva pro uživatele. Přesněji v UserProfile/Documents and Settings. Je
jedno, o jakou jazykovou mutaci Windows jde - zda o českou nebo anglickou s MUI. Uživatel má na ploše
zástupce pro spuštění hlavního modulu BALPu - zástupce je na síti. De facto se dá
říci, že pokud je na cílovém stroji runtime VFP a SQLNative Client, administrátor
jen připojí disk s aktualizacemi a zástupce hlavního modulu (to může vynutit login
skriptem) a o víc se nemusí starat.
Každý modul má svou tabulku práv uživatelů na SQL Serveru.Uživatele není nutno zakládat,
tabulky práv k modulům jsou kaskádově plněny uloženou procedurou vázanou na první
použití kteréhokoliv modulu uživatelem v síti. Je tak možno profilovat práva specificky
pro konrétní modul a uživatele buď přímo, nebo prostřednictvím
administračního modulu.
Projektová dokumentace
Projekty modulů BALPu jsou dokumentovány pomocí software PDM
Martiny Jindrů, což je profesionální freeware nástroj ke generování projektové
dokumentace projektů ve Visual FoxPro.
Vygenerované soubory dokumentace obsahují kompletní popis a zdrojové kody objektů
projektu. Jsou pak následně zpracovávány wrapperem v .NET pro zobrazení na stránkách
webové intranetové presentace BALPu.
Databáze
Databáze BALPu je na MS SQL2005 a je propojena s databázemi ostatních částí IS.
Samozřejmě nelze zveřejnit vše, ale několik screenshotů
a ukázek uložených procedur ano.
Bohužel nelze zveřejnit komlexní rozsah modulů, protože by byla zobrazena i citlivá
data. Nicméně si lze zajisté učinit představu o tom, jak vypadají.
Jejich počet a rozsah se také průběžně měnil s časem, dle potřeby firmy. Protože
základ je společný framework, vytvoření nového prázdného modulu je otázkou velice
krátké doby - asi tak půl hodiny. Samozřejmě osazení skutečným aplikačním kodem
pak trvá různou dobu dle rozsahu.