21.11.2002
(Částečně předěláno podle vzoru MZ)
Moduly
- vstupy (import), správce formulářů
- kontroly a doplňování
- řízení systému
- export
- databáze, interface k databázi
K dalšímu řešení
- jak bude zajištěna vzájemná komunikace modulů (ale to už je spíš záležitost
implementační specifikace)
Poznámky
-
Rozhodl jsem se rozdělovat vstupy (požadavky uživatele/ostatních modulů)
a vlastní data modulu (konfigurovatelné bez zásahu do kódu, ale (relativně)
nezávislé na existenci ostatních modulů).
- vyvolává požadavky: v průběhu vlastního zpracování
- výstup: po ukončení činnosti (jednomu vstupu by měl odpovídat
(nejvýše/právě?) jeden výstup
Import
Vstupy:
-
od uživatele (částečně) vyplňené formuláře (v různých formách,
np. "strukturovaný" mail, upload souboru, skutečný HTML
formulář dříve vygenerovaný správcem formulářů, ...)
-
Od řízení systému požadavek na vytvoření formuláře (typ, parametry,
předvyplněné údaje, ...), který bude předán uživateli (a zřejmě
vyplněn a odevzdán zpět jako vstup importu).
Vlastní data:
Vyvolává požadavky:
-
Požadavek na archivaci (pokud to nebude dělat řízení systému).
Výstup: (v obou případech)
-
Formulář ve standardní podobě (XML) k odevzdání
kontrole (obsahuje odkaz na popis/typ formuláře?).
Kontroly
Vstup:
- Vyplněný (nějak) formulář s odkazem na typ/popisem/...
(z toho musí kontrola umět odvodit, které kontrolní
"pluginy" se mají použít na které položky).
Vyvolává požadavky:
- Na databázi autorit a pomocných dat, očekává odpovědi; možné
příklady:
- Rozbal tyhle zkratky titulů.
- Dej mi seznam jmen podobných X.
- Na jakém pracovišti byl veden pan Y data toho a toho.
- (?) Není tohle duplicitní záznam?
- ...
To by se mělo dát zobecnit na požadavek tvaru (doplň (seznam vyplňených
položek) na (seznam nezn položek)).
Vlastní data:
- Kontrolní moduly (kód)
- Případně mezivrstva "převeď požadavek na kontrolu polí A
modulem B s parametry C na požadavek na kontrolu polí
A2 modulem B2 s parametry C2.
Výstup (odpověď):
- Indikace správnosti a správně vyplňený formulář, nebo
- indikace nesprávnosti a vstupní formulář s návrhy změn
(ke každé položce: tohle je v pořádku/nevyhovuje/seznam možností
k předání uživateli/jediná nalezená odpovídající možnost/nevyhovuje
a nebyla nalezena žádná možná oprava/...).
Řízení
Vstup:
- (Od importu) požadavek uživatele ("chci zadat novou publikaci!", ...).
Vyvolává požadavky:
- Všechno co umějí ostatní moduly zpracovat, možná kromě přímých požadavků uživatele.
Vlastní data:
- Jednotlivé workflow, podle kterých bude rozesílat požadavky ostatním modulům.
-
(Externí) konfigurace (zda se má logovat veškerá komunikace, zda je povoleno
vůbec něco dělat, ...
-
Seznam aktivních jobů (právě rozpracované workflow + kde se v něm nacházíme +
identifikace; každý požadavek putující systémem by pak měl obsahovat identifikaci
jobu, jemuž náleží).
Výstupy:
- Finální požadavek na zápis do databáze.
Export
Vstup:
-
Označení dat z DB, která mají být exportována + typ exportu + případně
požadované umístění exportovaných dat.
Vyvolává požadavky:
Výstup:
- Status (podařilo se/nastala chyba (jaká))
- Exportovaná data typicky do souboru, pokud je chce vidět uživatel přímo,
má na to mít zvláštní formulář (asi "vyhledej/uprav").
Databáze
Vstup:
- 1: Formulář/data k uložení (a kam patří) (s verzí?; sem pak patří požadavek na archivaci)
- 2: Vyhledávání (podle různých kritérií, př. viz modul Kontrola)
- 3: Požadavky na zamykání/odemykání záznamů/ročníku
- 4: SQL konzole
Vlastní data:
Výstup:
- 1: status
- 2: nalezené záznamy (pokud je jich víc, tak jenom nějaká jednoznačná, lidsky uchopitelná identifikace?)
- 3: status
- 4: výstup SQL příkazu, případně nějak hezky formátovaný