PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY
BAKALÁŘSKÁ PRÁCE
Elektronická distribuce a správa dokumentů v rámci Policie České Republiky
2010
Jan Tonner
Anotace V této bakalářské práci je zpracován informační systém, sestávající z aplikací spravujících uživatelské informace, organizační strukturu, správu a distribuci dokumentů pro platformu Microsoft ASP, databáze Microsoft SQL Server 2008.
Děkuji Ing. Jiřímu Hronkovi za vedení a odborné rady při zpracování této bakalářské práce.
Obsah 1. Úvod 1.1. Zadání projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Zpracování projektu . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Cíle a použití projektu . . . . . . . . . . . . . . . . . . . . . . . .
8 8 9 9
2. Úvod do problematiky
10
3. Postup realizace 3.1. Vývoj SQL databáze . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Vývoj ASP aplikací webového rozhraní . . . . . . . . . . . . . . .
11 12 12
4. Testování jednotlivých aplikací
13
5. Instalace informačního systému eSIAŘ 5.1. Požadavky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Instalace ASP aplikací eSIAŘ . . . . . . . . . . . . . . . . . . . . 5.3. Instalace databáze . . . . . . . . . . . . . . . . . . . . . . . . . .
14 14 14 14
6. Uživatelská dokumentace 6.1. Organizační struktura . . . . . . . . . . . . . . . . . . . . . 6.1.1. Organizační struktura, obecný úvod . . . . . . . . . . 6.1.1.1. Vztahy mezi objekty struktury . . . . . . . 6.1.1.2. Typy objektů struktury . . . . . . . . . . . 6.1.2. Administrace dílčí části struktury . . . . . . . . . . . 6.1.2.1. Vytváření a rušení podřízených objektů . . 6.1.2.2. Transfery objektů . . . . . . . . . . . . . . . 6.1.2.3. Přiřazení uživatele na funkce, nový uživatel 6.1.2.4. Administrátor a údaje přiřazeného uživatele 6.1.2.5. Oprávnění administrátora . . . . . . . . . . 6.2. Databáze uživatelů . . . . . . . . . . . . . . . . . . . . . . . 6.2.1. Obecný úvod . . . . . . . . . . . . . . . . . . . . . . 6.2.2. Správa údajů vedených k uživateli . . . . . . . . . . . 6.3. Publikační prostředek . . . . . . . . . . . . . . . . . . . . . . 6.3.1. Obecný úvod . . . . . . . . . . . . . . . . . . . . . . 6.3.2. Varianty publikačních prostředků, status . . . . . . . 6.3.3. Řadový uživatel aplikace . . . . . . . . . . . . . . . . 6.3.3.1. Vstupní obrazovka do aplikace . . . . . . . 6.3.3.2. Seznam publikovaných dokumentů . . . . . 6.3.3.3. Publikovaný dokument . . . . . . . . . . . . 6.3.3.3.1. Záložka Hlavička . . . . . . . . . . 6.3.3.3.2. Záložka Dokument . . . . . . . . . 6.3.3.3.3. Záložka Seznámení . . . . . . . . .
15 15 15 15 16 16 16 17 17 17 17 18 18 19 19 19 20 20 20 21 22 22 22 22
4
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
6.3.3.3.4. Záložka Založit . . . . . . . . . . 6.3.3.3.5. Záložka Oblíbené . . . . . . . . . 6.3.3.3.6. Záložka Hledat . . . . . . . . . . 6.3.3.3.7. Záložka Seznamka . . . . . . . . 6.3.4. Uživatel aplikace – vedoucí pracovník . . . . . . . . 6.3.4.1. Záložka Delegování . . . . . . . . . . . . . 6.3.4.2. Záložka Podřízení . . . . . . . . . . . . . . 6.3.5. Vkladatel do aplikace Publikační prostředek . . . . 6.3.5.1. Oprávnění vkladatele . . . . . . . . . . . . 6.3.5.2. Publikování nového dokumentu . . . . . . 6.3.5.2.1. Záložka Hlavička . . . . . . . . . 6.3.5.2.2. Záložka Datum . . . . . . . . . . 6.3.5.2.3. Záložka Soubory . . . . . . . . . 6.3.5.2.4. Záložka Přílohy . . . . . . . . . . 6.3.5.2.5. Záložka Změny . . . . . . . . . . 6.3.5.2.6. Záložka Schválení . . . . . . . . . 6.3.5.3. Správa již publikovaných dokumentů . . . 6.3.5.3.1. Záložka Hlavička . . . . . . . . . 6.3.5.3.2. Záložka Datum . . . . . . . . . . 6.3.5.3.3. Záložka Soubory . . . . . . . . . 6.3.5.3.4. Záložka Přílohy . . . . . . . . . . 6.3.5.3.5. Záložka Změny . . . . . . . . . . 6.3.5.3.6. Záložka Platné znění . . . . . . . 6.3.6. Administrace aplikace Publikační prostředek . . . . 6.3.6.1. Vytvoření nového publikačního prostředku 6.3.6.1.1. Záložka Základní údaje . . . . . . 6.3.6.1.2. Záložka Struktura . . . . . . . . 6.3.6.1.3. Záložka Statut . . . . . . . . . . 6.3.6.1.4. Záložka Vkladatelé . . . . . . . . 6.3.6.1.5. Záložka Přesun . . . . . . . . . . 6.3.6.2. Správa publikačního prostředku . . . . . . 6.4. Moduly využívající soustředěná data a vazby . . . . . . . . 7. Programátorská dokumentace 7.1. Programátorský popis SQL databáze . . . . . . . . 7.1.1. Popis databáze - tabulky . . . . . . . . . . . 7.1.2. Popis databáze - ER diagramy . . . . . . . . 7.1.3. Popis databáze – uložené procedury a funkce 7.1.3.1. Vybrané uložené procedury . . . . 7.1.3.2. Vybrané uložené funkce . . . . . . 7.2. Programátorský popis webového rozhraní eSIAŘe . 7.2.1. Přehled souborů a adresářů . . . . . . . . . 7.2.2. Asp soubory a SQL . . . . . . . . . . . . . . 5
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (složky) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23 23 23 24 24 24 25 25 25 26 26 26 26 27 27 28 28 28 28 28 28 29 29 29 29 30 30 30 30 31 31 31
. . . . . . . . .
32 32 32 39 44 44 49 58 58 59
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
7.2.3. Omezení oproti provozní verzi nasazené u Policie České republiky . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
Závěr
63
Reference
64
A. Popis obsahu přiloženého CD
65
6
Seznam obrázků 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Aplikační rozcestník . . . . . . . . . . . . . . . . . . . . . . Organizační struktura . . . . . . . . . . . . . . . . . . . . . Správa údajů vedených k uživateli . . . . . . . . . . . . . . . eSIAŘ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eSIAŘ záložky . . . . . . . . . . . . . . . . . . . . . . . . . . eSIAŘ hledat . . . . . . . . . . . . . . . . . . . . . . . . . . ER diagram organizační struktury . . . . . . . . . . . . . . . ER diagram uživatele . . . . . . . . . . . . . . . . . . . . . . ER diagram propojení organizační struktury a uživatele . . . ER diagram eSIAŘe . . . . . . . . . . . . . . . . . . . . . . ER diagram přidělení dokumentu na funkci . . . . . . . . . . ER diagram potvrzení dokumentu . . . . . . . . . . . . . . . ER diagram přístup do neveřejného publikačního prostředku ER diagram oblíbených dokumentů uživatele . . . . . . . . . ER diagram delegování oprávnění na jiného uživatele . . . .
7
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
11 15 18 21 22 24 39 40 40 41 41 42 42 43 43
1.
Úvod
1.1.
Zadání projektu
Vytvoření jednotného informačního systému (dále jen eSIAŘ - sbírka interních aktů řízení), který umožní v rámci definované organizační struktury vedoucím pracovníkům různého stupně řízení publikovat dokumenty v dílčích elektronických knihovnách a tyto dokumenty řádně spravovat, novelizovat, rušit, apod. Dokumenty uložené v eSIAŘi budou zpřístupněny formou webového rozhraní a to buď přímým odkazem, výběrem ze seznamu nebo plným fulltextovým prohledáváním a vedoucí pracovníci je budou moci přidělovat svým podřízeným k prokazatelnému seznámení. Dokumenty uložené v eSIAŘi budou z důvodu seznamování nadále needitovatelné, bude je však v rámci systému možné novelizovat, rušit či doplňovat jejich platné znění. Informační systém bude obsahovat aplikace: • správu osobních údajů jednotlivých uživatelů přistupujících k celému systému • administraci organizační struktury nutnou ke správě přidělování dokumentů • administraci publikačních prostředků - virtuálních prostorů pro uložení dokumentů • administraci dokumentů uložených v informačním systému • informační systém umožňující přístup k uloženým dokumentům Dále bude informační systém obsahovat aplikace ne nutně nezbytné pro vlastní činnost eSIAŘe, ale umožňující mnohem komfortnější a uživatelsky příjemnější přístup k uloženým informacím, např. celoorganizační telefonní seznam, výpis informativní organizační struktury nebo vyhledávání uživatelů dle metodik a zaměření. Uživatelské prostředí všech aplikací by mělo být uživatelsky příjemné, intuitivní a mělo by zachovávat principy pro práci s obdobnými aplikacemi. Použité technologie pro vývoj informačního systému budou založeny pouze na produktech Microsoft a to Internetová informační služba 7 a Microsoft SQL 2008. Všechny aplikace eSIAŘe jsou koncipovány pouze pro Internet Explorer verze 6 a vyšší. Důvodem je zákaz používání alternativních webových prohlížečů v rámci Policie České republiky (dále jen PČR). ESIAŘ je vytvářen pro potřeby PČR, Krajského ředitelství policie Jihomoravského kraje (dále jen KŘP JmK).
8
1.2.
Zpracování projektu
Informační systém byl vyvíjen pro potřeby Policie ČR. Celý systém je přístupný pouze prostřednictvím doménového uživatelského jména a hesla. Uživatelské heslo sestává z prvního písmene jména bez diakritiky, prvního písmene příjmení bez diakritiky a celého šestimístného osobního evidenčního čísla - příklad: Štěpán Novák s osobním evidenčním číslem 123456 má v doméně vytvořen účet sn123456. Dalším specifikem PČR je výhradní používání prohlížeče Internet Explorer od verze 6 a vyšší - používání alternativních prohlížečů (FireFox, Opera, . . .) není v rámci rezortu přípustné. Z tohoto důvodu byl celý informační systém vyvíjen pouze pro Internet Explorer verze 6 a vyšší. Informační systém je zprovozněn na Microsoft IIS 7 a pro data byla použita databáze Microsoft SQL server 2008. Pro přístup do systému eSIAŘ je potřeba mít vytvořen účet v celopolicejní doméně pcr (active directory) s právem domain user. Práva přístupu do jednotlivých aplikací v rámci eSIAŘe je řízen a spravován samotnými aplikacemi, které si zjišťují dle přihlášeného uživatelského jména právo přístupu dotazem do databází.
1.3.
Cíle a použití projektu
Důvodem vytvoření informačního systému eSIAŘ byla potřeba elektronizovat vydávání dokumentů v rámci PČR, sjednotit a soustředit dokumenty vydávané v rámci činností do jediného celku s možností přístupu všech zaměstnanců tohoto rezortu. Umožnit uživatelům jednoduše najít hledaný dokument, přidělovat dokumenty k prokazatelnému seznámení a v neposlední řadě potřeba odstranit podepisování jednotlivých dokumentů formou papírové podpisové doložky a nahradit ji podepisováním elektronickým. Celý projekt je navržen pro platformu Microsoft Windows a lze jej provozovat na počítačích s operačním systémem Microsoft Windows XP SP2 a vyšší. Celý informační systém může být dále rozšiřován a přizpůsobován potřebám PČR a požadavkům uživatelů.
9
2.
Úvod do problematiky
V minulosti byly dokumenty vydávány jednotlivými útvary PČR nejednotnou formou a to většinou v papírové podobě. Toto řešení neumožňovalo přístup k dokumentům komukoliv. Existovali sice pokusy o elektronizaci, ale jednotlivá řešení nebyla vzájemně mezi sebou kompatibilní a dokumenty byly ukládány v rámci jednotlivých útvarů různými formami. Uživatelé měli potřebu dokumenty nejen prohlížet, ale i vyhledávat, což nebylo možné. Přidělování dokumentů k seznámení či vyřízení bylo prováděno kopírováním papírového dokumentu a jeho odeslání zainteresovanému pracovníku. Při vytvoření nového dokumentu byl tento většinou odeslán vnitřní emailovou poštou formou přílohy všem útvarům, což při velikostech v řádu mega bytů a několika desítek až stovek příjemců mnohdy vedlo k zahlcení emailových serverů. Seznamování s dokumenty bylo prováděno formou podpisové doložky k dokumentu byl přiložen seznam pracovníků s nutností tento dokument fyzicky parafovat. Informační systém eSIAŘ soustřeďuje všechny dokumenty do jediné aplikace, na jeden server, a přístup k dokumentům je řízen centrálně. Oznámení o vzniku dokumentu je stále prováděno formu emailu jednotlivým útvarům, ale nyní se již neposílá vlastní dokument v příloze. V emailu je pouze uveden http odkaz na patřičný dokument pro přímý přístup k tomuto dokumentu. Podepisování dokumentů je prováděno formou doménového přístupu, kdy zaměstnanec je při vstupu do eSIAŘe vyzván ke vložení uživatelského jména a hesla pro přístup do domény a jednotlivé dokumenty obsahují tlačítko pro zaznamenání data, času a doménového jména uživatele.
10
3.
Postup realizace
Vývoj projektu eSIAŘ byl zahájen v roce 2008. Po analýze potřeb a požadavků byl informační systém rozdělen do několika aplikací s různou možností přístupu jednotlivých uživatelů.
Obrázek 1. Aplikační rozcestník Všechny aplikace jsou rozděleny do dvou základních logických celků: • aplikace s omezeným přístupem • aplikace se všeobecným přístupem Aplikace se všeobecným přístupem umožňují přístup všem uživatelům v rámci PČR bez omezení, aplikace pokud je to potřebné jen přizpůsobují chování konkrétnímu přihlášenému uživateli. Například aplikace „Správa údajů vedených k uživateliÿ nabídne přihlášenému uživateli administraci jeho údajů jak osobních tak i služebních. Aplikace s omezeným přístupem nejsou přístupné všem uživatelům, pro práci s aplikací je potřeba mít přidělena nějaká přístupová oprávnění. Tyto aplikace
11
slouží k administraci určitých částí eSIAŘe, ať již vytváření a správa organizační struktury, administraci či vkládání dokumentů v rámci publikačních prostředků. Vývoj jednotlivých aplikací probíhal souběžně s celým celkem eSIAŘ tak, jak se vyskytovali požadavky jednotlivých zainteresovaných složek či požadavků a připomínek uživatelů pracujících se systémem eSIAŘ.
3.1.
Vývoj SQL databáze
Pro uložení a manipulaci s daty byl zvolen MS SQL server 2008 a pro vývoj uložených procedur a funkcí byl použit Microsoft SQL Server Management Studio, který je součástí instalace SQL serveru. Byly navrženy tabulky, určeny datové typy jejich prvků, jednotlivé tabulky byly vzájemně relačně svázány pomocí klíčů, jak vlastních tak cizích (viz níže). Všechny operace s daty jsou vykonávány prostřednictvím uložených procedur a funkcí. Uložené procedury jsou použity k manipulaci s daty, uložené funkce jsou použity k vytěžování uložených údajů. Použití uložených procedur a funkcí je bezpečným řešením pro aplikace s databází pracujícími, neboť se tímto způsobem eliminuje přímý přístup k uloženým datům a manipulace s daty je přesně definována vnitřními algoritmy procedur či funkcí. Jednotlivé uložené procedury a funkce byly postupně vyvíjeny tak, jak byl budován celý informační systém eSIAŘ.
3.2.
Vývoj ASP aplikací webového rozhraní
Všechny aplikace byly soustředěny do jednotlivých podadresářů tak, aby aplikace logicky spolu související byly soustředěny na jednom místě. Všechny aplikace využívají jak globální tak i lokální skripty. Typický příkladem globálního skriptu je definování konekt skriptu pro připojení k SQL databázi v jednom souboru či vyčlenění globálně používaných obrázků do adresáře img umístěného v základním adresáři. Lokální skripty jednotlivých aplikací jsou umístěny v příslušných (pod)adresářích těchto aplikací. Všechny ASP skripty byly napsány v programu PSPad (textový editor podporující barevnou konverzi skriptů pro lepší orientaci a manipulaci se skripty).
12
4.
Testování jednotlivých aplikací
Celý informační systém byl testován na Internet Exploreru verze 8 při rozlišení 1024 x 768 s přihlédnutím i k nižším rozlišením. Při testování byly vyřazeny ASP funkce pro zjištění uživatelského přihlášení. Tyto funkce vracejí jako výstupní hodnotu pevně nadefinované hodnoty. K tomuto omezení bylo přistoupeno z důvodu nemožnosti vytvoření testovacích uživatelských účtů na zkušební doméně. Po dokončení programování a přesunu skriptů na provozní policejní server v doméně pcr byly tyto vyřazené funkce doprogramovány. K testování jednotlivých aplikací byli použiti samotní uživatelé eSIAŘe. V případě chyb se uživatelé formou emailové komunikace obraceli na vývojové pracoviště s popisem jednotlivých chyb a podmínek za jakých chyba vznikla.
13
5. 5.1.
Instalace informačního systému eSIAŘ Požadavky
Informační systém eSIAŘ pracuje na platformě Microsoftu. Aplikace potřebuje pro svou činnost IIS server verze 7 a data jsou uložena na MS SQL server 2008. Optimální pro činnost aplikací jsou tři servery - jeden IIS pro ASP skripty, jeden SQL pro uložení a manipulaci s daty a jeden fileserver pro uložení dokumentů. Instalace SQL databáze vyžaduje nainstalovaný a nakonfigurovaný Microsoft SQL server 2008. Instalace ASP aplikací vyžaduje nainstalovaný a nakonfigurovaný Microsoft IIS 7 a vyšší. Pro zobrazování dokumentů formou webového prohlížeče je nutná instalace programu Adobe Reader (Acrobat Reader) verze 5.5 a vyšší.
5.2.
Instalace ASP aplikací eSIAŘ
Na přiloženém CD je adresář www. Celý tento adresář je potřeba překopírovat do webového prostoru (standardně „inetpub\wwrootÿ) a převést na aplikaci. Dále je potřeba v IIS nastavit ASP „povolit nadřazené cestyÿ na true a adresáři siar\dokumenty povolit práva pro zápis. V rootu adresáře najděte soubor init.asp, otevřte jej v libovolném textovém editoru a nastavte cesty a konekt string na SQL databázi (viz příklady v souboru). V adresáři „telefonniseznamÿ nalezněte soubor „init.aspÿ a obdobným způsobem jako v předchozím případě proveďte nastavení cest a konekt stringu (viz příklady v souboru).
5.3.
Instalace databáze
Na přiloženém CD je v adresáři sql soubor „general script esiar.sqlÿ. Tento soubor otevřte v aplikaci Microsoft SQL Server Management Studio a klikněte na Execute. Tím se vytvoří tabulky s indexy, fulltextový index, uložené procedury a funkce a veškeré číselníky.
14
6. 6.1.
Uživatelská dokumentace Organizační struktura
Obrázek 2. Organizační struktura
6.1.1. 6.1.1.1.
Organizační struktura, obecný úvod Vztahy mezi objekty struktury
Organizační struktura (dále jen „strukturaÿ) je datová struktura, která umožňuje (za využití předdefinovaných typů objektů a vytvořených vztahů podřízenosti a nadřízenosti mezi nimi) sestavit komunikační trasu odpovídající reálnému rozdělení kompetencí v rámci útvaru nebo jeho dílčí části. Na komunikační trase je následně možné „provozovatÿ aplikace, které využívají vytvořených vztahů podřízený – nadřízený (například: seznamování s dokumenty, úkolovník). Vytvoření vztahu podřízenosti a nadřízenosti vzniká tím, že pod výchozí bod struktury jsou postupně vkládány další a další podřízené a jim podřízené objekty. V důsledku takto vytvořených vztahů má každý objekt jednoznačně stanovené postavení ve struktuře a je mu určen jeden přímo nadřízený objekt (objekt sám ale může být současně nadřízeným více objektům). Vztah podřízenosti a nadřízenosti je důsledně dodržován a postavení objektu na struktuře odpovídá i množství podřízených objektů. Platí, že objekt výše postavený je nadřízený všem níže postaveným objektům v podřízených dílčích částech struktury. Uplatňování tohoto pravidla je dynamické, a tak se všechny změny (například v počtu organizačních článků) automaticky promítnou do struktury a do všech souvisejících výpisů a aplikací. Struktura je globální systém, jehož správu zabezpečují proškolení uživatelé, tzv. administrátoři, kterým je umožněn přístup do příslušných dílčích částí struktury.
15
6.1.1.2.
Typy objektů struktury
Předdefinovanými typy objektů jsou útvar, organizační článek, funkce a pracoviště. Jako objekt typu útvar vystupuje ve struktuře Prezidium a útvary, které ministr vnitra v příslušném interním aktu řízení označil za útvary s územní působností. Jako objekt typu organizační článek ve struktuře zpravidla vystupuje organizační článek, případně nižší organizační článek, útvaru. Jako objekt typu funkce ve struktuře zpravidla vystupuje funkce zařazení. Přes tento typ objektu se provazuje struktura s databází uživatelů. Objekt typu pracoviště není plnohodnotným objektem struktury a slouží zejména pro zaznamenání kolektivních kontaktních údajů (například: učebna, vrátnice). 6.1.2.
Administrace dílčí části struktury
Administrátor dílčí části struktury (uzlu) spravuje část struktury, která je podřízena objektu, ke kterému má administrátorské oprávnění. Seznam oprávněných uzlů se uživateli vypisuje na vstupní obrazovce do aplikace - jednotlivé položky seznamu jsou odkazy na příslušné uzly. Podřízenou strukturu k objektům lze zobrazit (rozbalit) kliknutím na tlačítko , zavření podřízené struktury (zabalení) se provede tlačítkem . Objekt označený (šedý čtvereček) nemá podřízené objekty. Zpřehlednění rozbalené struktury lze provést kliknutím na tlačítko u objektu, který chcete mít ve výpise zobrazený jako první. Návrat do plně rozbalené struktury se provede kliknutím na položku výčtu rozbalených objektů, který se vypisuje v horní části obrazovky (černý text, po najetí kurzorem položka zčervená). Oprávnění mu umožňuje přidávat nový podřízený objekt, měnit typ, název, zkratku a stav již přidaného objektu, přesunovat objekt, definovat pořadí objektů, vkládat kontaktní údaje, určit administrátora uzlu, mazat objekt, přiřadit uživatele na funkci a vložit nebo změnit údaje uživatele přiřazeného na podřízené funkci. Tlačítka na aktivaci nástrojů pro provedení těchto činností jsou administrátorovi dostupná v levé části základního výpisu ze struktury. 6.1.2.1.
Vytváření a rušení podřízených objektů
Vytvoření podřízeného objektu lze provést aktivací tlačítka (nový) nebo (duplikace). K novému objektu se následně přes vkládací pole vloží příslušné vlastnosti (například název, kontakty, stav, . . . ); duplikovaný objekt přebírá vlastnosti po své matce a jejich editace je možná přes vkládací pole.
16
Pro zrušení objektu, který sám nemá žádné podřízené objekty, se použije tlačítko . Pokud se maže funkce, na kterou je přiřazený uživatel, je současně zrušeno i provázání s databází uživatelů. 6.1.2.2.
Transfery objektů
S objekty struktury (s výjimkou „bodu 0ÿ) lze manipulovat a měnit tak jejich zařazení do dílčích částí struktury (uzlů), postavení ve struktuře nebo jejich pořadí. Při transferu objektů jsou současně s manipulovaným objektem přesunovány i všechny jemu podřízené. Obecně se pro přesunutí objektu do jiné části struktury používají tlačítka . Nejprve u objektu, který má být přesunut a poté u objektu, který má být přesunovanému nově nadřízený. Pro přesunutí objektu o jednu úroveň výše se použije tlačítka . Pro změnu pořadí objektů, které jsou na stejné úrovni, se použije tlačítka 6.1.2.3.
Přiřazení uživatele na funkce, nový uživatel
Tlačítko umožňuje přiřadit na volnou (neobsazenou) funkci uživatele. Do zobrazeného vkládacího pole se vloží osobní evidenční číslo nebo část příjmení uživatele, kterého chcete přiřadit na příslušnou funkci a tlačítkem „Hledatÿ si ze skupiny nepřiřazených uživatelů vyhledáte uživatele odpovídající podmínce. Kliknutím na příslušnou položku seznamu, přiřadíte uživatele na funkci. Pokud se tlačítko použije u obsazené funkce, dojde ke zrušení přiřazení na funkci a provázání s databází uživatelů. V rámci tohoto nástroje je možné i vytvořit nového uživatele (záložka „Nový uživatelÿ), pomocí vkládacích a výběrových polí zadat základní informace o něm (osobní evidenční číslo, jméno a příjmení, hodnostní označení a akademické tituly) a přiřadit ho na funkci. 6.1.2.4.
Administrátor a údaje přiřazeného uživatele
Administrátor může prostřednictvím vkládacích a výběrových polí vložit nebo změnit údaje uživatele přiřazeného na podřízené funkci. Může vložit veškeré údaje s výjimkou informací, jejichž vložení má vyhrazeno pouze uživatel. Aplikace administrátorovi umožní editování informací po kliknutí na jméno příslušného uživatele ve výpisu struktury. 6.1.2.5.
Oprávnění administrátora
Prvotní administrátorská oprávnění definuje administrátor „bodu 0ÿ (Sadministrátor). Následující administrátorská oprávnění na objekt nebo na jemu podřízené objekty, definují již administrátoři průběžně pomocí tlačítka . Vždy se používá tlačítko u objektu, na který se oprávnění má definovat. Výběr uživatele 17
= administrátora se provede vložením osobního evidenčního číslo do vkládacího pole na záložce „Novýÿ. Oprávnění na jeden objekt může mít více uživatelů, jeden uživatel může mít administrátorská oprávnění na více objektů. Má-li objekt již definován administrátora, je na tlačítku klíč zelené barvy Zrušení administrátorského oprávnění uživatele na objekt, se provede jeho odebráním ze seznamu administrátorů (tlačítko ), který se zobrazí po kliknutí na příslušné tlačítko .
6.2. 6.2.1.
Databáze uživatelů Obecný úvod
Obrázek 3. Správa údajů vedených k uživateli Uživatelé nejsou součástí struktury, mohou však na ní být navázáni prostřednictvím objektu typu funkce (jeden uživatel = jedna funkce). Přiřazení provádí administrátor na základě pokynu příslušného nadřízeného dle postupu uvedeného výše. Uživatel má vždy takové postavení jaké postavení má v organizační struktuře funkce, na kterou je přiřazen. Uživatelé jsou evidování v databázi uživatelů a člení se na uživatele na strukturu přiřazené a uživatele na struktuře nepřiřazené. Obě skupiny uživatelů mají 18
prostřednictvím aplikace „Správa údajů vedených k uživateliÿ povinnost vést ke své osobě vymezený okruh údajů. 6.2.2.
Správa údajů vedených k uživateli
Uživatel prostřednictvím vkládacích a výběrových polí udržuje aktuální podobu informací vedených ke své osobě. Informace jsou rozděleny do čtyř sekcí: osobní údaje (jméno a příjmení, hodnostní označení, tituly a kód zpracovatele), spojení (telefonní a faxový kontakt, email intranet a internet, www stránky), pracovní náplň a umístění (číslo kanceláře, číslo zásuvky, adresa). Vložené údaje (s výjimkou údajů vyhrazených pro vkládání uživatelem) se využívá pro sestavování seznamů a výpisů (veřejný výpis). Údaje s vyhrazeným vkládáním slouží pro sestavování výpisů s omezeným přístupem (například: plán vyrozumění).
6.3. 6.3.1.
Publikační prostředek Obecný úvod
Aplikace „Vkládání do eSIAŘÿ umožňuje vedoucím pracovníkům různého stupně řízení publikovat dokumenty v elektronické knihovně s dálkovým přístupem a následně tyto dokumenty řádně spravovat (tzn. zajišťování jejich novelizací a rušení, zveřejňování platných znění a komentářů, držení informace o jejich provázanosti s jinými dokumenty, . . . ). Vedoucí pracovník může mít více publikačních prostředků a z předvolených variant si vybere tu, která nejlépe odpovídá charakteru publikovaných dokumentů (viz níže). Publikované dokumenty jsou soustředěny na jednom místě (server) a prostřednictvím počítačové sítě intranet jsou dostupné všem uživatelům (policisté a zaměstnanci). Aplikace provazuje dokumenty vazbami (novelizace, rušení) a zobrazuje vložená úplná znění změněných dokumentů. Dokument je vždy publikován pouze v jednom publikačním prostředku. Vlastník tohoto publikačního prostředku je současně gestorem, který výhradně odpovídá za správnost a aktuálnost publikovaného dokumentu. Distribuce publikovaného dokumentu spočívá v rozeslání informace o jeho vydání s uvedením místa, kde je dostupný (aktivní odkaz). Tuto informaci aplikace rozesílá vybraným adresátům na adresy, které mají uvedeny ve struktuře. Dokument je trvale uložen tak, jak byl publikován. Aplikace jakékoli pozdější zásahy do jeho podoby neumožňuje provádět. Toto pravidlo zaručuje uživateli, že jeho prohlášení o řádném seznámení je uvedeno pod zněním, se kterým se seznámil. Aplikace umožňuje vedoucím pracovníkům přidělovat podřízeným uživatelům dokumenty k seznámení a kontrolovat průběh seznamování (selektivní seznamování), sestavovat pro konkrétní funkce sady dokumentů, které jsou ne-
19
zbytně nutné pro výkon jejich služby, vést ke každému uživateli historii obsahující přehled s jakými dokumenty a kdy se seznámil. V obsahu publikovaných dokumentů je možné plné fulltextové vyhledávání. 6.3.2.
Varianty publikačních prostředků, status
Variantu publikačního prostředku stanoví při jeho zakládání administrátor aplikace a později jí již nelze měnit. Při výběru varianty se zohledňuje charakter dokumentů, které se mají v publikačním prostředku publikovat. Varianta „Sbírkaÿ (sbírka interních aktů řízení) - publikační prostředek této varianty je členěn na ročníky, částky, části a čísla. Část I. slouží pro publikování interních aktů řízení vedoucích pracovníků, část II. slouží zpravidla pro publikování dokumentů informativního charakteru. Varianta „Knihovnaÿ - publikační prostředek této varianty není členěn na částky a části a jednotlivé položky mohou být evidovány v číselné řadě (například: zápisy z porady vedoucího, . . . ) nebo nečíslované (například: dohody, manuály k obsluze různých zařízení, informace pro účastníky semináře, pracovní náplně, . . .) členěné po ročnících nebo průběžně. Varianta „Nástěnkaÿ - publikační prostředek této varianty není členěn na částky, části ani čísla a slouží k publikování dokumentů informativního charakteru, pro které je charakteristická „krátká životnostÿ (přečti a zapomeň: například pozvánka na vánoční koncert, nabídka rekreací,. . . ). Pokud má mít do publikačního prostředku přístup pouze omezená skupina uživatelů, použije se neveřejný publikační prostředek (status neveřejný). Status přiděluje administrátor aplikace, množinu oprávněných uživatelů spravuje vkladatel. 6.3.3. 6.3.3.1.
Řadový uživatel aplikace Vstupní obrazovka do aplikace
Vstupní obrazovka do aplikace je rozdělena na tři části (viz obrázek 4.). V části A se zobrazuje osobní seznam publikačních prostředků (více část B). Odebrání položky ze seznamu se provede tlačítkem u příslušného odkazu. Část B obsahuje seznam všech veřejných publikačních prostředků, které jsou pro přehlednost soustředěné podle společného útvaru, služby nebo funkcionáře do složek (podsložek). Kliknutím na název (pod)složky se rozbalí její obsah (tj. soustředěné publikační prostředky nebo podsložky). Jednotlivé položky seznamu jsou současně odkazem na příslušný publikační prostředek a lze jej aktivovat kliknutím (po najetí kurzorem se položka modře podbarví). Z odkazů na nejčastěji používané publikační prostředky lze sestavit osobní seznam (tlačítko u příslušného odkazu).
20
Obrázek 4. eSIAŘ V části C jsou zobrazovány informace určené uživatelům (provozní aktuality, odkaz na uživatelský manuál, . . . ). 6.3.3.2.
Seznam publikovaných dokumentů
Vzhled seznamu dokumentů a zobrazovaných informací je u jednotlivých variant publikačních prostředků odlišný. Standardně se zobrazuje ID dokumentu, název a platnost. Jsou-li dokumenty publikované po ročnících, je přednastaveno zobrazování dokumentů z aktuálního kalendářního roku (změna ročníku se provádí prostřednictvím výběrového pole). Barevným podbarvením jsou rozlišeny dokumenty podle jejich platnosti a účinnosti: bílé podbarvení – platný a účinný dokument, žluté podbarvení – platný dokument, který ale není účinný v plném rozsahu (odchylná účinnost některé jeho části), zelené podbarvení – platný, ale neúčinný dokument, červené podbarvení – neplatný dokument. Dokument se vybírá kliknutím na položku v seznamu (položka se po najetí kurzorem modře podbarví).
21
6.3.3.3.
Publikovaný dokument
Obrázek 5. eSIAŘ záložky
6.3.3.3.1.
Záložka Hlavička
Záložka „Hlavičkaÿ poskytuje uživatelům základní informace o dokumentu. Zejména jsou to informace o platnosti a účinnosti dokumentu (případně o odchylné účinnosti některé jeho části), o novelizacích a opravách a o vztazích, které má k dalším dokumentům. Informace uváděné v položkách „Novelizace, opravy a rušení dokumentuÿ a „Provázanost dokumentuÿ jsou současně hypertextové odkazy na příslušné dokumenty. 6.3.3.3.2.
Záložka Dokument
Záložka „Dokumentyÿ zobrazuje výpis s uvedením hlavního dokumentu a případně i dokumentů, které jsou na něj navázané (zpravidla se jedná o přílohy). Ve výpise lze zjistit označení a název dokumentu, související originální soubory a PDF (sloupec download) a jejich úplná znění (jsou-li dokumenty novelizovány a vkladatel úplná znění již vložil). Jednotlivé položky výpisu jsou současně odkazy na příslušné dokumenty a aktivují se kliknutím (po najetí kurzorem se položka modře podbarví). Po kliknutí na odkaz se hlavní (navázaný) dokument zobrazí v PDF okně. Ovládací panel PDF okna je plně funkční a umožňuje standardně používat nabízené nástroje. Na konci výpisu je umístěna adresa pro přímý přístup na hlavičku dokumentu (zkopírovanou adresu lze použít pro vytvoření hypertextového odkazu na dokument v jiných aplikacích). 6.3.3.3.3.
Záložka Seznámení
Záložka „Seznámeníÿ umožňuje uživateli učinit prohlášení o řádném seznámení s dokumentem (tlačítko „ANOÿ). Pokud není v aplikaci výslovně uvedeno jinak, vztahuje se prohlášení o řádném seznámení na všechny dokumenty uvedené na záložce „Dokumentyÿ. Informace o učinění prohlášení (otisknutí časového razítka) jsou evidovány k příslušnému uživateli a objevují se v dolní části obrazovky.
22
6.3.3.3.4.
Záložka Založit
Záložka „Založitÿ umožňuje uživateli označit aktuální dokument příznakem „oblíbenýÿ a zařadit si jej do strukturovaného seznamu oblíbených dokumentů (adresářový strom), který si vytvořil nástrojem na záložce „Oblíbenéÿ. Zařazení do seznamu se provede kliknutím na tlačítko u názvu příslušné (pod)složky; dokument může být založen současně ve více (pod)složkách. Informace o založení se zobrazí ve výpisu. Vyřazení ze seznamu se provede tlačítkem u názvu příslušné (pod)složky. 6.3.3.3.5.
Záložka Oblíbené
Záložka „Oblíbenéÿ umožňuje uživateli vytvořit si strukturovaný seznam složek a podsložek, do kterých si může vkládat a spravovat rychlé odkazy na oblíbené dokumenty (viz záložka „Založitÿ ). V levém okně se zobrazuje aktuální podoba strukturovaného seznamu složek a podsložek a informace o počtu v nich založených dokumentů. Po kliknutí na (pod)složku se v pravém okně vypíše seznam dokumentů, které jsou v ní založeny. Jednotlivé položky jsou hypertextovými odkazy na tyto dokumenty (po najetí kurzorem se položka modře podbarví). Aktivní (pod)složka je zvýrazněna červeným písmem. Kliknutím na tlačítko lze příslušné (pod)složce vytvořit podřízenou složku, název nové podsložky se vkládá prostřednictvím vkládací pole. Název již existující podsložky lze editovat prostřednictvím vkládacího pole, které se zobrazí po kliknutí na tlačítko u příslušné (pod)složky. Zobrazované pořadí podsložek nebo odkazů na pravé obrazovce lze měnit prostřednictvím tlačítek . Po aktivaci tlačítka dojde k posunutí příslušné podsložky nebo odkazu o jeden řádek nahoru. Zrušení podsložky včetně jejího obsahu (tj. všech v ní zřízených podsložek a založených odkazů na oblíbené dokumenty) se provede po kliknutí na tlačítko . Pokud se použije toto tlačítko u odkazu na pravé obrazovce, zruší se pouze jeho založení do příslušné (pod)složky. 6.3.3.3.6.
Záložka Hledat
Tato záložka umožňuje uživateli vyhledat dokumenty obsahující znaky, které definoval ve vkládacím poli a potvrdil tlačítkem „Hledatÿ. Výsledek fulltextového hledání se zobrazí ve výpisu, jehož jednotlivé položky jsou hypertextovými odkazy na příslušné dokumenty (po najetí kurzorem se položka modře podbarví). Fulltextové hledání probíhá ve dvou režimech: buď jsou prohledávány všechny publikované dokumenty (v případě, že byla použita záložka „Hledatÿ na vstupní obrazovce do aplikace) nebo pouze dokumenty jednoho publikačního prostředku (v případě, že byla použita záložka „Hledatÿ v příslušném publikačním prostředku). 23
Obrázek 6. eSIAŘ hledat 6.3.3.3.7.
Záložka Seznamka
Tato záložka umožňuje uživateli zobrazit si seznam dokumentů, u kterých bylo stanoveno, že jejich znalost je nezbytná pro výkon uživatelem zastávané funkce. Ze seznamu lze prostřednictvím výběrového pole vyfiltrovat dokumenty, které jsou platné a uživatel se s nimi dosud neseznámil (položka „zbývá podepsatÿ), všechny platné dokumenty (položka „přidělenoÿ) a všechny přidělené dokumenty (položka „přiděleno všeÿ). Položka výběrového pole „historie podpisůÿ umožňuje uživateli zobrazit si seznam všech dokumentů, se kterými se prostřednictvím aplikace již seznámil bez ohledu na přidělení dokumentů k prokazatelnému seznámení. Jednotlivé položky seznamů jsou hypertextovými odkazy na příslušné dokumenty (po najetí kurzorem se položka modře podbarví). Ze záložky se může oprávněný uživatel (tj. vedoucí pracovník nebo uživatel, který má delegované oprávnění) vstoupit do Seznamek podřízených uživatelů a kontrolovat a hodnotit proces seznamování (záložka „Podřízeníÿ). 6.3.4.
Uživatel aplikace – vedoucí pracovník
Vedoucím pracovníkem je každý uživatel přiřazený na objektu typu funkce, která má v organizační struktuře podřízen alespoň jeden objekt. Některá oprávnění vedoucího pracovníka může mít i řadový pracovník, pokud je na něj vedoucí pracovník deleguje. 6.3.4.1.
Záložka Delegování
Na této záložce se vedoucímu pracovníkovi zobrazuje seznam uživatelů, na které delegoval svoje oprávnění přidělovat dokumenty, rozsah jejich oprávnění (příslušná části organizační struktury) a odkaz na nástroj, kterým lze nová oprávnění definovat (záložka „Novýÿ). Při definování nového oprávnění se nejprve vybere příslušný uživatel (vložení osobního evidenčního čísla uživatele do vkládacího pole a stisknutí tlačítka „Najítÿ), poté se v pravé části obrazovky rozbalí organizační struktura do po) a vybere se objekt (funkce, třebné podřízené části (kliknutím na tlačítko organizační část nebo útvar), který bude definovat rozsah oprávnění (je-li například vybrán objekt územní odbor, získá delegovaný oprávnění na tento objekt a všechny objekty mu podřízené). 24
Delegovaná oprávnění jsou využívána na záložce „Podřízeníÿ. 6.3.4.2.
Záložka Podřízení
Tato záložka umožňuje oprávněnému uživateli (tj. vedoucímu pracovníkovi nebo uživateli, který má delegované oprávnění) rozhodnout, že pro výkon příslušné funkce je nezbytná znalost konkrétního dokumentu. Odkaz na takový dokument se uloží do konta dokumentů, které je vedeno k příslušné funkci. Uživateli přiřazenému na příslušné funkci je tak fakticky stanovena povinnost seznámit se s konkrétním dokumentem (proběhlo tzv. přidělení) a o této povinnosti byl proveden záznam do „Seznamkyÿ. Při přidělování aktuálního dokumentu v rámci příslušné podřízené organizační struktury (výběr se provede prostřednictvím roletky) se nejprve rozbalí organizační struktura do potřebné podřízené části (kliknutím na tlačítka ). Aktivací barevně orámovaných polí (po najetí kurzorem se položka modře podbarví) se zobrazí formulářová pole pro definování funkcí, pro které se povinnost seznámit se s dokumentem stanovuje. Přidělování dokumentů lze provést hromadně (pro množinu funkcí) nebo individuálně (pro konkrétní funkci), oba způsoby lze provést samostatně nebo zkombinovat. Při hromadném přidělování se vždy vybere typ funkce (tj. policejní nebo/a - občanského zaměstnance) a okruh funkce (tj. pouze vedoucí pracovníci nebo všichni uživatelé ). Individuální přidělení pro konkrétní . funkce se provede prostřednictvím políčka 6.3.5.
Vkladatel do aplikace Publikační prostředek
Vkládání dokumentů do publikačních prostředků zabezpečují proškolení uživatelé s příslušným oprávněním – vkladatelé. Vstup do vkladatelské části je umístěný na aplikačním rozcestníku. Seznam publikačních prostředků, do kterých má vkladatel oprávnění publikovat se vypisuje na vstupní obrazovce - jednotlivé položky seznamu jsou odkazy na příslušné publikační prostředky. Kliknutím na odkaz se zobrazí výpis dokumentů příslušného publikačního prostředku (základní výpis) – již publikované dokumenty jsou bíle podbarvené, rozpracované dokumenty mají šedé podbarvení. Jednotlivé položky výpisu jsou odkazy na příslušné dokumenty. Setřídění položek v seznamu je chronologické nejnovější dokumenty jsou nahoře. Je-li publikační prostředek členěný po ročnících, je přednastavený výpis za aktuální kalendářní rok; změna se provádí prostřednictvím výběrového pole. 6.3.5.1.
Oprávnění vkladatele
Prvotní vkladatelské oprávnění pro publikační prostředek definuje administrá25
tor aplikace na základě požadavku příslušného vedoucího pracovníka. Následující oprávnění si vkladatelé pro publikační prostředek spravují již průběžně sami. Výběr uživatele = vkladatele se provede vložením osobního evidenčního číslo do vkládacího pole na záložce „Vkladateléÿ. Na jeden publikační prostředek může mít oprávnění vkladatele více uživatelů, jeden uživatel může mít vkladatelské oprávnění do více publikačních prostředků. Zrušení vkladatelského oprávnění uživatele na publikační prostředek, se provede jeho odebráním ze seznamu vkladatelů (tlačítko ), který se zobrazí po kliknutí na záložku „Vkladateléÿ. 6.3.5.2.
Publikování nového dokumentu
Vkládání nového dokumentu se zahajuje na obrazovce se základním výpisem. Po kliknutí na záložku „Nový dokumentÿ se zobrazí vkládací pole, do kterého se vloží název dokumentu (může být i provizorní) a uloží se tlačítkem „Vytvořitÿ. Současně se do výpisu dokumentů přidá nový záznam. Z výpisu dokumentů se vybere příslušný odkaz (po najetí kurzorem se odkaz modře podbarví). Aktivací odkazu se zobrazí nástroj pro vkládání souborů a informací souvisejících s publikovaným dokumentem. Nástroj je rozčleněný do samostatných tematických záložek, které obsahují vkládací a výběrová pole. Počet záložek závisí na variantě publikačního prostředku. 6.3.5.2.1.
Záložka Hlavička
Tato záložka slouží pro vkládání základních informací o publikovaném dokumentu; jednotlivá vkládací a výběrová pole jsou zobrazována podle varianty publikačního prostředku (úplný výčet polí: typ, částka, část, číslo, název, zkrácený název, stupeň utajení, interval). 6.3.5.2.2.
Záložka Datum
Tato záložka slouží pro vkládání informací o datu platnosti a účinnosti publikovaného dokumentu nebo jeho části. Pokud je účinnost některé části dokumentu odlišná, vkládá se i doplňující informace. 6.3.5.2.3.
Záložka Soubory
Tato záložka slouží pro vkládání zdrojových souborů souvisejících s publikovaným dokumentem. Aplikace vyžaduje vložení originálního souboru, zpravidla je to DOC, RTF nebo XLS, a souboru v podobě PDF. Z místa aktuálního uložení se soubory načtou (tlačítko „Procházet . . . ÿ ) a přenesou na server (tlačítko „Přenést originální soubor na serverÿ nebo „Přenést PDF soubor na serverÿ). Obsah originálního souboru, tj. souhrn všech použitých znaků, se vkládá do pole „Obsah souboruÿ a využívá se pro fulltextové vyhledávání. Pokud nelze 26
obsah originálního souboru vložit (protože se jedná například o obrázek nebo zvukový záznam), použije se tlačítko „PDF - infoÿ. Do aplikace bude uložen předdefinovaná informace a PDF soubor s upozorněním: „Aplikace eSIAŘ zobrazuje pouze soubory PDF. Vámi vybraný dokument tuto podmínku nesplňuje. K jeho zobrazení (otevření) lze využít příslušný odkaz na originální soubor uvedený na záložce Soubory.ÿ 6.3.5.2.4.
Záložka Přílohy
Přes tuto záložku se vkládají do aplikace dokumenty, které jsou navázány na publikovaný hlavní dokument (zpravidla to bývají jeho přílohy) a vypisuje se zde seznam těchto dokumentů. Zvlášť jsou vypisovány ty, které jsou uváděny před hlavním dokumentem a ty, které jsou uváděny za hlavním dokumentem. Uvádění příloh za hlavním dokumentem je přednastaveno, změnu lze provést při vkládání souvisejících souborů (formulářové pole „Umístěníÿ). Jednotlivé položky výpisu jsou odkazy na příslušné dokumenty. Vkládání nové přílohy se zahajuje na obrazovce s výpisem navázaných dokumentů. Po kliknutí na záložku „Nová přílohaÿ se zobrazí vkládací pole, do kterého se vloží číslo dokumentu a uloží se tlačítkem „Vytvořitÿ. Současně se do výpisu přidá nový záznam. Z výpisů se vybere příslušný odkaz (po najetí kurzorem se odkaz modře podbarví). Aktivací odkazu se zobrazí nástroj pro vkládání souborů souvisejících s přílohou. Při vkládání příloh se postupuje obdobně jako při vkládání hlavního dokumentu (viz výše záložka „Souboryÿ). Vkladatel má možnost pomocí tlačítek stanovit pořadí jednotlivých příloh. 6.3.5.2.5.
Záložka Změny
Přes tuto záložku se vkládají do aplikace vztahy (provázanosti) s jinými dokumenty, které byly publikované v příslušném publikačním prostředku a vypisuje se zde seznam těchto vztahů. Zvlášť jsou vypisovány ty, které zakládá publikovaný dokument (aktivní vztahy) a ty, které vyplývají z jiných dokumentů (pasivní vztahy). Vkládání nové změny se zahajuje na obrazovce s výpisem vazeb. Po kliknutí na záložku „Nová změnaÿ se zobrazí pole, ve kterých se vybere druh vazby (novelizace nebo rušení), ročník, datum účinnosti vztahu a označí se vztahový dokument. Kliknutím na tlačítko „Uložitÿ se vazba uloží a současně se do výpisu přidá nový záznam. u příslušné položky Zrušení nesprávně vložené vazby se provede tlačítkem výpisu.
27
6.3.5.2.6.
Záložka Schválení
Na této záložce se graficky zobrazuje stav vkládání dokumentů a souvisejících informací; vyplněné položky jsou označeny zeleně a nevyplněné položky červeně. Pokud jsou všechny povinné položky vyplněny, umožní aplikace vkladateli dokument publikovat. Hromadné smazání dokumentů (hlavního i navázaných), souvisejících souborů a informací před jejich publikací se provede kliknutím na tlačítko „Smazat celý dokumentÿ. Jeho aktivací dojde k ukončení vkládání aktuálního dokumentu a jeho vymazání z databáze. 6.3.5.3. 6.3.5.3.1.
Správa již publikovaných dokumentů Záložka Hlavička
Tato záložka slouží pro editaci (doplnění) již vložených základních informací o publikovaném dokumentu, případně jejich opravu; jednotlivá vkládací a výběrová pole jsou zobrazována podle varianty publikačního prostředku. Postup pro editaci údajů je shodný s jejich prvotním vkládáním. 6.3.5.3.2.
Záložka Datum
Tato záložka slouží pro editaci (doplnění) již vložených informací o datu platnosti a účinnosti publikovaného dokumentu nebo jeho části. Postup pro editaci údajů je shodný s jejich prvotním vkládáním. 6.3.5.3.3.
Záložka Soubory
Tato záložka slouží pro výměnu originálního souboru souvisejícího s publikovaným dokumentem a obsahu vkládacího pole určeného pro fulltextové vyhledávání. Postup pro výměnu údajů je shodný s jejich prvotním vkládáním. Soubor PDF nelze po publikování již měnit. 6.3.5.3.4.
Záložka Přílohy
Přes tuto záložku lze v aplikaci editovat (doplnit) již vložené informace (umístění před nebo za hlavním dokumentem, číslo a název přílohy) nebo vyměnit originální soubory související s přílohami hlavního dokumentu a obsah jejich vkládacích polí určených pro fulltextové vyhledávání. Postup pro výměnu údajů je shodný s jejich prvotním vkládáním. Soubor PDF nelze po publikování již měnit. nově stanovit pořadí jednotlivých Vkladatel má možnost pomocí tlačítek příloh.
28
6.3.5.3.5.
Záložka Změny
Přes tuto záložku lze do aplikace vložit nové aktivní vztahy k jiným dokumentům, které byly publikované v příslušném publikačním prostředku, nebo zrušit již vložené aktivní i pasivní vztahy. Postup pro vkládání (rušení) vazeb je shodný s jejich prvotním vkládáním. 6.3.5.3.6.
Záložka Platné znění
Přes tuto záložku lze do aplikace vložit úplná znění souborů souvisejících s již publikovaným hlavním dokumentem nebo s jeho přílohami, došlo-li u nich k novelizaci nebo opravě. Aplikace tak umožňuje paralelně poskytovat podobu tohoto dokumentu se zapracovanými změnami. Postup pro vkládání je shodný s postupem pro vkládání přes záložky „Souboryÿ nebo „Přílohyÿ. Z výpisu dokumentů se kliknutím vybere příslušná položka a zobrazí se vkládací pole. Z místa aktuálního uložení se načtou soubory a přenesou na server. 6.3.6.
Administrace aplikace Publikační prostředek
Na vstupní obrazovce do administrace se zobrazuje aktuální přehled publikačních prostředků a (pod)složek, do kterých jsou publikační prostředky pro přehlednost soustředěny podle společného útvaru, služby nebo funkcionáře (rozbalení do potřebné části se provede kliknutím na tlačítka ). V přehledu se vypisuje informace o ID publikačního prostředku, jeho variantě (sbírka, knihovna nebo nástěnka), názvu, statusu (veřejný nebo neveřejný), přiřazení na organizační strukturu, počet publikovaných dokumentů a počtu vkladatelů. Kliknutím na jednotlivé položky přehledu (po najetí kurzorem se položka modře podbarví) se aktivuje možnost spravovat informace k publikačním prostředkům a (pod)složkám (viz níže). Pomocí tlačítek lze stanovit pořadí publikačních prostředků v rámci (pod)složek nebo podsložek v rámci složek. 6.3.6.1.
Vytvoření nového publikačního prostředku (složky)
Nový publikační prostředek vytváří administrátor aplikace na základě požadavku vedoucích pracovníků a jeho varianta, typ a statut odpovídají charakteru publikovaných dokumentů. Vytvoření nového publikačního prostředku nebo (pod)složky se zahájí na u příslušné vstupní obrazovce do administrace kliknutím na tlačítko (pod)složky. Z výběrového pole se vybere příslušná varianta a vloží se název publikačního prostředku nebo (pod)složky.
29
Základní informace a vazby (ID, název, provázání se strukturou, status, . . . ) se do aplikace vkládají za pomocí příslušných polí, které jsou umístěné na jednotlivých záložkách. 6.3.6.1.1.
Záložka Základní údaje
Na této záložce se vypisuje ID publikačního prostředku, jeho varianta a status. Pomocí vkládacího pole je možné vložit (editovat) název publikačního prostředku a v poznámce i archivovat i historii jeho názvů. 6.3.6.1.2.
Záložka Struktura
Na této záložce se zobrazuje informace o provázání publikačního prostředku s organizační strukturou. U publikačního prostředku, který není provázaný, se provázání definuje tak, že se výpis organizační struktury rozbalí do potřebné podřízené části (kliknutím ) a vybere se objekt, na který se publikační prostředek naváže na tlačítka (položka se po najetí kurzorem modře podbarví). Editace provázání s organizační strukturou se provede výběrem nového objektu. Zrušení provázání se provede kliknutím na tlačítko . 6.3.6.1.3.
Záložka Statut
Tato záložka umožňuje rozhodnout, zda publikační prostředek bude mít status „veřejnýÿ nebo „neveřejnýÿ (ve vkladatelském režimu bude nutné definovat množinu uživatelů, kteří budou mít oprávnění do publikačního prostředku vstupovat). 6.3.6.1.4.
Záložka Vkladatelé
Prvotní vkladatelské oprávnění pro publikační prostředek definuje administrátor aplikace na základě požadavku příslušného vedoucího pracovníka. Následující oprávnění si vkladatelé pro publikační prostředek spravují již průběžně sami. Výběr uživatele = vkladatele se provede vložením osobního evidenčního číslo do vkládacího pole na záložce „Vkladateléÿ. Na jeden publikační prostředek může mít oprávnění vkladatele více uživatelů, jeden uživatel může mít vkladatelské oprávnění do více publikačních prostředků. Zrušení vkladatelského oprávnění uživatele na publikační prostředek, se pro), který se zobrazí po vede jeho odebráním ze seznamu vkladatelů (tlačítko kliknutí na záložku „Vkladateléÿ.
30
6.3.6.1.5.
Záložka Přesun
Nástroj na této záložce umožňuje administrátorovi přesunovat vytvořené publikační prostředky mezi složkami. Přesun se provede kliknutím na příslušnou položku výpisu složek (položka se po najetí kurzorem modře podbarví). 6.3.6.2.
Správa publikačního prostředku
Správa existujících publikačních prostředků odpovídá postupům, které jsou popsány již při vytváření nového publikačního prostředku. Z větší části je správa zajišťována administrátorem, pouze databáze vkladatelů je spolu spravována s vkladateli.
6.4.
Moduly využívající soustředěná data a vazby
Na databázi uživatelů a organizační strukturu lze průběžně navazovat další aplikace, které využívají již soustředěných dat (například: kontakty a oblasti zaměření pro telefonní seznam, kniha návštěv, správa ubytovaných) nebo definovaných vazeb nadřízený – podřízený mezi objekty (například: databáze úkolů, plánování služební přípravy, mapy procesů).
31
7. 7.1. 7.1.1.
Programátorská dokumentace Programátorský popis SQL databáze Popis databáze - tabulky
Číselník hodností TABLE [dbo].[hodnost]( [HODNOSTid] [int] IDENTITY(1,1) NOT NULL, [HODNOSTnazev] [varchar](20) NULL, [HODNOSTzkratka] [varchar](10) NULL, [HODNOSTporadi] [int] NULL) Základní tabulka pro uložení dokumentů TABLE [dbo].[siarclanek]( [CLANEKid] [int] IDENTITY(1,1) NOT NULL, [CLANEKrid] [varchar](20) NULL, [CLANEKpublikacniprostredek] [int] NULL, [CLANEKtyp] [int] NULL, [CLANEKpriloha] [int] NULL, [CLANEKporadi] [int] NULL, [CLANEKtitulek] [bit] NULL, [CLANEKrocnik] [varchar](4) NULL, [CLANEKcastka] [int] NULL, [CLANEKcast] [varchar](3) NULL, [CLANEKcislo] [varchar](30) NULL, [CLANEKnazev] [varchar](1000) NULL, [CLANEKzkracenynazev] [varchar](50) NULL, [CLANEKutajeni] [varchar](5) NULL, [CLANEKslozka] [varchar](20) NULL, [CLANEKpdf] [varchar](20) NULL, [CLANEKoriginal] [varchar](20) NULL, [CLANEKzruseno] [bit] NULL, [CLANEKschvaleno] [bit] NULL, [CLANEKschvalil] [varchar](200) NULL, [CLANEKschvalilden] [datetime] NULL, [CLANEKpristup] [int] NULL, [CLANEKplatnezneni] [varchar](1) NULL, [CLANEKopakovani] [int] NULL, [CLANEKplatido] [datetime] NULL, [CLANEKvytvoril] [varchar](10) NULL) 32
Tabulka pro uložení delegování práv TABLE [dbo].[siardelegace]( [DELEGACEid] [int] IDENTITY(1,1) NOT NULL, [DELEGACEfunkce] [int] NULL, [DELEGACEuzivatel] [int] NULL, [DELEGACEstruktura] [int] NULL, [DELEGACEprava] [varchar](20) NULL, [DELEGACEprovedl] [varchar](370) NULL, [DELEGACEdatum] [datetime] NULL)
Tabulka pro uložení přístupových oprávnění do neveřejného publikačního prostředku TABLE [dbo].[siarneverejny]( [NEVEREJNYid] [int] IDENTITY(1,1) NOT NULL, [NEVEREJNYprostredek] [int] NULL, [NEVEREJNYstruktura] [int] NULL, [NEVEREJNYuzivatel] [int] NULL, [NEVEREJNYs] [bit] NULL, [NEVEREJNYv] [bit] NULL, [NEVEREJNYn] [bit] NULL, [NEVEREJNYp] [bit] NULL, [NEVEREJNYo] [bit] NULL, [NEVEREJNYz] [bit] NULL, [NEVEREJNYpolicista] [smallint] NULL, [NEVEREJNYobcan] [smallint] NULL, [NEVEREJNYkdo] [varchar](10) NULL, [NEVEREJNYdatum] [datetime] NULL)
Tabulka pro uložení odkazů na oblíbené dokumenty TABLE [dbo].[siaroblibene]( [OBLIBENEid] [int] IDENTITY(1,1) NOT NULL, [OBLIBENEuzivatel] [int] NULL, [OBLIBENEnadrizeny] [int] NULL, [OBLIBENEnazev] [varchar](50) NULL, [OBLIBENEclanek] [int] NULL, [OBLIBENEporadi] [int] NULL)
33
Tabulka pro uložení obsahu dokumentu pro fulltextové prohledávání TABLE [dbo].[siarobsah]( [OBSAHclanek] [int] NOT NULL, [OBSAHobsah] [text] NULL, [OBSAHtimestamp] [timestamp] NULL)
Tabulka pro uložení přímého oprávněného přístupu uživatele do neveřejného publikačního prostředku TABLE [dbo].[siaroec]( [OECid] [int] IDENTITY(1,1) NOT NULL, [OECoec] [varchar](10) NULL, [OECprostredek] [int] NULL)
Tabulka pro uložení datumů platnosti dokumentu TABLE [dbo].[siarplatiod]( [PLATIODid] [int] IDENTITY(1,1) NOT NULL, [PLATIODclanek] [int] NULL, [PLATIODdatum] [datetime] NULL, [PLATIODplus15] [bit] NULL, [PLATIODtext] [varchar](200) NULL, [PLATIODprvni] [bit] NULL)
Tabulka pro uložení názvů souborů platného znění dokumentu TABLE [dbo].[siarplatne]( [PLATNEid] [int] IDENTITY(1,1) NOT NULL, [PLATNEclanek] [int] NULL, [PLATNEpdf] [varchar](20) NULL, [PLATNEoriginal] [varchar](20) NULL)
Tabulka pro uložení podpisů TABLE [dbo].[siarpotvrzeni]( [POTVRZENIid] [int] IDENTITY(1,1) NOT NULL, [POTVRZENIuzivateloec] [varchar](10) NULL, [POTVRZENIuzivatelid] [int] NULL, 34
[POTVRZENIclanek] [int] NULL, [POTVRZENIdatum] [datetime] NULL)
Tabulka pro uložení povinnosti pro seznámení se s dokumentem TABLE [dbo].[siarprideleni]( [PRIDELENIid] [int] IDENTITY(1,1) NOT NULL, [PRIDELENIclanek] [int] NULL, [PRIDELENIstruktura] [int] NULL, [PRIDELENIs] [bit] NULL, [PRIDELENIv] [bit] NULL, [PRIDELENIn] [bit] NULL, [PRIDELENIp] [bit] NULL, [PRIDELENIo] [bit] NULL, [PRIDELENIpolicista] [smallint] NULL, [PRIDELENIobcan] [smallint] NULL, [PRIDELENIkdo] [varchar](350) NULL, [PRIDELENIdatum] [datetime] NULL)
Tabulka pro uložení publikačních prostředků TABLE [dbo].[siarprostredek]( [PROSTREDEKid] [int] IDENTITY(1,1) NOT NULL, [PROSTREDEKnadrizeny] [int] NULL, [PROSTREDEKporadi] [int] NULL, [PROSTREDEKtyp] [int] NULL, [PROSTREDEKstruktura] [int] NULL, [PROSTREDEKneverejny] [bit] NULL, [PROSTREDEKnazev] [varchar](200) NULL, [PROSTREDEKnazevstary] [varchar](200) NULL)
Číselník typů publikačních prostředků TABLE [dbo].[siarprostredektyp]( [PROSTREDEKTYPid] [int] IDENTITY(1,1) NOT NULL, [PROSTREDEKTYPnazev] [varchar](100) NULL, [PROSTREDEKTYPcastka] [bit] NULL, [PROSTREDEKTYPcast] [bit] NULL, [PROSTREDEKTYPcislo] [bit] NULL, [PROSTREDEKTYProcnik] [bit] NULL)
35
Číselník typů dokumentů TABLE [dbo].[siartyp]( [TYPid] [int] IDENTITY(1,1) NOT NULL, [TYPnazev] [varchar](100) NULL, [TYPzkratka] [varchar](5) NULL, [TYPcast] [int] NULL)
Tabulka vzájemných vztahů mezi dokumenty TABLE [dbo].[siarzmena]( [ZMENAid] [int] IDENTITY(1,1) NOT NULL, [ZMENAtyp] [varchar](1) NULL, [ZMENAtypupresneni] [varchar](1) NULL, [ZMENAclanek] [int] NULL, [ZMENAzmena] [int] NULL, [ZMENAdatum] [datetime] NULL)
Tabulka pro uložení adres objektů v organizační struktuře TABLE [dbo].[strukturaadresa]( [ADRESAid] [int] IDENTITY(1,1) NOT NULL, [ADRESAstruktura] [int] NULL, [ADRESAulice] [varchar](50) NULL, [ADRESAcisloorientacni] [varchar](10) NULL, [ADRESAcislopopisne] [varchar](10) NULL, [ADRESAobec] [varchar](50) NULL, [ADRESAcastobce] [varchar](50) NULL, [ADRESApsc] [varchar](10) NULL)
Tabulka pro uložení údajů o spojení na objekt v organizační struktuře TABLE [dbo].[strukturaspojeni]( [SPOJENIid] [int] IDENTITY(1,1) NOT NULL, [SPOJENIstruktura] [int] NULL, [SPOJENItyp] [varchar](2) NULL, [SPOJENIudaj] [varchar](100) NULL)
36
Základní tabulka organizační struktury TABLE [dbo].[strukturastrom]( [STROMid] [int] IDENTITY(1,1) NOT NULL, [STROMnadrizeny] [int] NULL, [STROMtypobjektu] [int] NULL, [STROMkodobjektu] [varchar](20) NULL, [STROMnazev] [varchar](100) NULL, [STROMzkratka] [varchar](20) NULL, [STROMidentifikace] [varchar](10) NULL, [STROMporadi] [int] NULL, [STROMneviditelny] [bit] NULL, [STROMvyrozumeni] [int] NULL, [STROMciselnik] [int] NULL)
Tabulka pro uložení vzorů při vytváření organizační struktury TABLE [dbo].[strukturavzory]( [VZORYid] [int] IDENTITY(1,1) NOT NULL, [VZORYuzivatel] [int] NULL, [VZORYvzor] [int] NULL)
Tabulka pro uložení názvu JPG souboru - fotky uživatele TABLE [dbo].[uzivatelfoto]( [FOTOid] [int] IDENTITY(1,1) NOT NULL, [FOTOuzivatel] [int] NULL, [FOTOfoto] [varchar](20) NULL)
Tabulka pro uložení propojení mezi uživatelem a metodikou TABLE [dbo].[uzivatelmetodika]( [METODIKAid] [int] IDENTITY(1,1) NOT NULL, [METODIKAtyp] [int] NULL, [METODIKAnadrizeny] [int] NULL, [METODIKAudaj] [varchar](200) NULL)
37
Tabulka pro uložení pracovní náplně uživatele TABLE [dbo].[uzivatelnapln]( [NAPLNid] [int] IDENTITY(1,1) NOT NULL, [NAPLNuzivatel] [int] NULL, [NAPLNobsah] [varchar](500) NULL)
Základní tabulka uživatele TABLE [dbo].[uzivatelosobni]( [OSOBNIid] [int] IDENTITY(1,1) NOT NULL, [OSOBNIoec] [varchar](6) NULL, [OSOBNIlogin] [varchar](8) NULL, [OSOBNIjmeno] [varchar](100) NULL, [OSOBNIprijmeni] [varchar](100) NULL, [OSOBNItitulpred] [varchar](50) NULL, [OSOBNItitulza] [varchar](50) NULL, [OSOBNIzkratkacj] [varchar](10) NULL, [OSOBNIhodnost] [int] NULL, [OSOBNIsmazany] [bit] NULL, [OSOBNIneviditelny] [bit] NULL, [OSOBNIvyrozumeni] [int] NULL)
Tabulka pro uložení přístupových oprávnění uživatele do aplikací TABLE [dbo].[uzivatelprava]( [PRAVAid] [int] IDENTITY(1,1) NOT NULL, [PRAVAuzivatel] [int] NULL, [PRAVAaplikace] [varchar](10) NULL, [PRAVAprava] [varchar](255) NULL)
Tabulka pro uložení základních informací o smazaném uživateli TABLE [dbo].[uzivatelsmazany]( [SMAZANYid] [int] IDENTITY(1,1) NOT NULL, [SMAZANYpuvodniid] [int] NULL, [SMAZANYoec] [varchar](6) NULL, [SMAZANYlogin] [varchar](8) NULL, [SMAZANYjmeno] [varchar](100) NULL, [SMAZANYprijmeni] [varchar](100) NULL)
38
Tabulka pro uložení údajů o spojení na uživatele TABLE [dbo].[uzivatelspojeni]( [SPOJENIid] [int] IDENTITY(1,1) NOT NULL, [SPOJENIuzivatel] [int] NULL, [SPOJENItyp] [varchar](2) NULL, [SPOJENIudaj] [varchar](100) NULL)
Tabulka propojení organizační struktury s uživatelem TABLE [dbo].[uzivatelstruktura]( [FUNKCEid] [int] IDENTITY(1,1) NOT NULL, [FUNKCEstruktura] [int] NULL, [FUNKCEuzivatel] [int] NULL)
Tabulka propojení metodiky zaměření a uživatele TABLE [dbo].[uzivatelzamereni]( [ZAMERENIid] [int] IDENTITY(1,1) NOT NULL, [ZAMERENIuzivatel] [int] NULL, [ZAMERENImetodika] [int] NULL) 7.1.2.
Popis databáze - ER diagramy
Obrázek 7. ER diagram organizační struktury
39
Obrázek 8. ER diagram uživatele
Obrázek 9. ER diagram propojení organizační struktury a uživatele
40
Obrázek 10. ER diagram eSIAŘe
Obrázek 11. ER diagram přidělení dokumentu na funkci 41
Obrázek 12. ER diagram potvrzení dokumentu
Obrázek 13. ER diagram přístup do neveřejného publikačního prostředku 42
Obrázek 14. ER diagram oblíbených dokumentů uživatele
Obrázek 15. ER diagram delegování oprávnění na jiného uživatele
43
7.1.3.
Popis databáze – uložené procedury a funkce
Jednotlivé aplikace komunikují s databází formou uložených procedur a funkcí. Uložené procedury slouží k manipulaci s daty (insert, update, delete), uložené funkce slouží k vytěžování uložených dat (select). Každá z aplikací disponuje vlastní sadou procedur a funkcí. Detailnější informace o vstupních parametrech a výstupních hodnotách jsou vedeny v jednotlivých uložených procedurách a funkcích. Z důvodu velkého množství bude vypsán jen výběr ze všech procedur a funkcí. Seznam všech procedur a funkcí i s popisem je na přiloženém CD v souboru „sql\general script esiar.sqlÿ. 7.1.3.1.
Vybrané uložené procedury
Inkrementace fulltextu při uložení obsahu dokumentu v aplikaci aSIAŘ vklad. sp_PCR_siarvklad_ulozitDetailSchvaleniFulltextIncremental -- inkrement FULLtextu exec sp_fulltext_table @tabname=’dbo.siarobsah’, @action=’start_incremental’ -- kontrolní výstup select 1 as hotovo Vstupní parametr není potřeba, procedura inkrementuje fulltextovou položku pro vyhledávání. Výstupním parametrem je číslo 1 sloužící pouze k tomu, aby asp skript vyčkal na provedení procedury. Uložení nového uživatele do databáze uživatelů s kontrolou vložených dat. sp_PCR_uzivatel_ulozitNovehoUzivatele vstupní parametry: @oec varchar(10), -- osobní evidenční číslo uživatele - povinná položka @login varchar(10), -- login uživatele v doméně pcr - povinná položka @jmeno varchar(100), -- jméno uživatele - povinná položka @prijmeni varchar(100), -- příjmení uživatele - povinná položka @titulpred varchar(50), -- titul před jménem uživatele 44
- nepovinná položka @titulza varchar(50), -- titul za jménem uživatele - nepovinná položka @hodnost int -- ID hodnosti uživatele z číselníku hodností - povinná položka declare @uid int -- pomocná proměnná pro uložení ID nového uživ. set @uid=0 -- vynulování ID -- úprava vstupních dat set @oec=REPLACE(@oec,’ ’,’’) -- odstranění mezer set @login=REPLACE(@login,’ ’,’’) -- ostranění mezer set @jmeno=dbo.sf_PCR_upravitJmeno(@jmeno) -- úprava jména likvidace dvojitých mezer a nahrazení prvního písmene každého slova velkým písmenem a ostatních písmen písmeny malými set @prijmeni=dbo.sf_PCR_upravitJmeno(@prijmeni) -- úprava příjmení dle stejných pravidel jako jméno -- úprava titulů - pokud není titul vložen je nahrazen prázdným řetězcem if(@titulpred is null)begin set @titulpred=’’ end else begin set @titulpred=dbo.sf_PCR_odstranitDvojiteMezery(@titulpred) end if(@titulza is null)begin set @titulza=’’ end else begin set @titulza=dbo.sf_PCR_odstranitDvojiteMezery(@titulza) end -- kontroly vstupních dat -- kontrola velikosti oeč - velikost musí být přesně 6 znaků if(LEN(@oec)=6)begin -- kontrola je-li oeč číslo - musí být if(ISNUMERIC(@oec)=1)begin -- kontrola duplicity oec - nesmí být duplicitní if(not(exists(select * from uzivatelosobni where OSOBNIoec=@oec)))begin -- kontrola je-li vloženo jméno if(LEN(@jmeno)>0)begin -- kontrola je-li vloženo příjmení if(LEN(@prijmeni)>0)begin 45
-- vstupní data v pořádku = bude se ukládat insert into uzivatelosobni (OSOBNIoec,OSOBNIlogin,OSOBNIjmeno, OSOBNIprijmeni,OSOBNItitulpred, OSOBNItitulza,OSOBNIzkratkacj, OSOBNIhodnost,OSOBNIneviditelny) values (@oec,@login,@jmeno,@prijmeni, @titulpred,@titulza,’’,@hodnost,0) -- zjištění nového uid select @uid=OSOBNIid from uzivatelosobni where OSOBNIoec=@oec end end end end end -- výstupním parametrem je nové ID nového uživatele select @uid as uid Smazání celého dokumentu i s přílohami. sp_PCR_siarvklad_smazatCelyDokument vstupní parametr: @cid int -- ID dokumentu -- deklarace tabulky pro IDčka všech závislých dokumentů = hlavní + přílohy declare @clanky as table( cid int ) -- načtení ID hlavního dokumentu insert into @clanky (cid) values (@cid) -- načtení IDček příloh insert into @clanky select CLANEKid from siarclanek where CLANEKpriloha=@cid -- smazání propojení s jinými dokumenty 46
delete from siarzmena where ZMENAclanek=@cid or ZMENAzmena=@cid -- smazání přidělení - nemělo by nastat -- neschválený dokument nejde přidělit - pro jistotu delete from siarprideleni where PRIDELENIclanek=@cid -- smazání potvrzení - nemělo by nastat -- neschválený dokument nejde podepsat - pro jistotu delete from siarpotvrzeni where POTVRZENIclanek=@cid -- smazání datumů účinnosti delete from siarplatiod where PLATIODclanek=@cid -- smazání obsahů - pro fulltext delete from siarobsah where OBSAHclanek in (select cid from @clanky) -- smazání z oblíbených - nemělo by nastat -- neschválený dokument nejde vložit do oblíbených - pro jistotu delete from siaroblibene where OBLIBENEclanek=@cid -- smazání vlastních dokumentů delete from siarclanek where CLANEKid in (select cid from @clanky) -- kontrolní výstup select 1 as hotovo Výstupním parametrem je číslo 1 sloužící pouze k tomu, aby asp skript vyčkal na provedení procedury. Změna pořadí objektu v organizační struktuře o jednu pozici nahoru. sp_PCR_organizacnistruktura_funkce_setrideni1 vstupní parametry: @fid int, -- ID objektu kterému budeme měnit pořadí @kam varchar(1) -- směr - n-nahoru, d-dolů -- deklarace potřebných proměnných declare @nadrizeny int, -- ID nadřízeného objektu @poradi1 int, -- pořadí objektu kterému budeme měnit pořadí @poradi2 int, -- pořadí objektu se kterým budeme vyměňovat pozici 47
@vymena int -- ID objektu určeného pro výměnu -- načtení potčebných dat select @nadrizeny=STROMnadrizeny,@poradi1=STROMporadi from strukturastrom where STROMid=@fid -- nalezení objektu pro výměnu if(@kam=’n’)begin -- hledání objektu před aktuálním objektem select top 1 @vymena=STROMid from strukturastrom where STROMnadrizeny=@nadrizeny and STROMporadi<@poradi1 order by STROMporadi desc end else begin -- hledání objektu za aktuálním objektem select top 1 @vymena=STROMid from strukturastrom where STROMnadrizeny=@nadrizeny and STROMporadi>@poradi1 order by STROMporadi end if(@vymena is not null)begin -- byl nalezen prvek - provede se výměna -- načtení pořadí nalezeného prvku pro výměnu select @poradi2=STROMporadi from strukturastrom where STROMid=@vymena -- provedení výměny update strukturastrom set STROMporadi=@poradi2 where STROMid=@fid update strukturastrom set STROMporadi=@poradi1 where STROMid=@vymena end -- kontrolní výstup select 1 as hotovo Výstupním parametrem je číslo 1 sloužící pouze k tomu, aby asp skript vyčkal na provedení procedury.
48
7.1.3.2.
Vybrané uložené funkce
Výpis vybraného úseku organizační struktury – delegované struktury sf_PCR_siar_delegovanyStrom vstupní parametry: @oec varchar(10), -- oeč delegátora @prvek int -- ID prvku kam má být rozbalena organizační struktury výstupní tabulka: seq int identity, -- automatické číslo - pro setřídění výstupní tabulky uroven int, -- vzdálenost objektu od počátku fid int, -- ID objektu typ int, -- typ objektu - 1-útvar 2-odbor 3-funkce nadrizeny int, -- ID nadřízeného objektu nazev varchar(100), -- název objektu podrizeni bit, -- má objekt podřízené 0-ne 1-ano rozbaleno bit, -- je objekt rozbalen 0-ne 1-ano uid int, -- ID uživatele přiřazeného na struktuře - pro typ 3 uzivatel varchar(350), -- uživatel - hodnost, tituly, jméno a příjmení hotovo bit -- příznak zpracování prvku 0-nezpracován 1-zpracován -- deklarace potřebných proměnných declare @rot int -- první objekt od které bude struktura rozbalena -- nalezení ID struktury select @rot=FUNKCEstruktura from uzivatelosobni left join uzivatelstruktura on OSOBNIid=FUNKCEuzivatel where OSOBNIoec=@oec -- kontrola prvku - jestli je platný if(@prvek=0 or @prvek is null)begin set @prvek=@rot -- pokud prvek neexistuje doplní se rotem end -- vykreslení stromu if(@rot is not null)begin -- kontrola existence rotu declare
-- deklarace potřebných proměnných 49
@posloupnost varchar(8000), -- posloupnost ID objektů @seq int, -- pro automatické číslo z výstupní tabulky @uroven int, -- vzdálenost od počátku @fid int, -- ID objektu @typ int, -- typ objektu @nadrizeny int, -- ID nadřízeného objektu @nazev varchar(100) -- název objektu -- nastavení počátečních hodnot set @uroven=1 set @seq=@prvek set @posloupnost=’>>’+cast(@seq as varchar)+’<<’ -- vytvoření cesty posloupnosti - pro rozbalení objektů - od spodního objektu po vrchní while(@seq!=@rot)begin select @seq=STROMnadrizeny from strukturastrom where STROMid=@seq -- doplnění ID do posloupnosti set @posloupnost=’>>’+cast(@seq as varchar)+’<<’+@posloupnost end -- vložení prvního prvku do tabulky - nestaven jako nezpracovaný insert into @strom select @uroven,@rot,3,0,STROMnazev,null,null,null,null,0 from strukturastrom where STROMid=@rot -- načtení podřízené struktury while(exists(select * from @strom where hotovo=0))begin -- načtení posledního nezpracovaného prvku select top 1 @seq=seq,@uroven=uroven,@fid=fid, @typ=typ,@nadrizeny=nadrizeny,@nazev=nazev from @strom where hotovo=0 order by seq desc -- uložení nyní již zpracovaného prvku insert into @strom 50
(uroven,fid,typ,nadrizeny,nazev,hotovo) values (@uroven,@fid,@typ,@nadrizeny,@nazev,1) -- smazání nezpracovaného prvku delete from @strom where seq=@seq -- načtení všech podřízených objektů s kontrolou rozbalení if(exists(select * from strukturastrom where STROMnadrizeny=@fid) and charindex(’>>’+cast(@fid as varchar)+’<<’,@posloupnost)>0) begin -- vložení nalezených objektů do tabulky jako nezpracované v obráceném pořadí - objekty zpracováváme odzadu insert into @strom select @uroven+1,STROMid,STROMtypobjektu, @fid,STROMnazev,null,null,null,null,0 from strukturastrom where STROMnadrizeny=@fid and STROMtypobjektu>0 order by STROMporadi desc,STROMid desc end -- doplnění údajů o uživateli - pro typ 3 funkce if(@typ=3)begin update @strom set uid=a.OSOBNIid, uzivatel=a.HODNOSTzkratka+’ ’+a.OSOBNItitulpred+’ ’+ a.OSOBNIjmeno+’ ’+a.OSOBNIprijmeni+’ ’+a.OSOBNItitulza from (select * from uzivatelstruktura inner join (uzivatelosobni inner join hodnost on OSOBNIhodnost=HODNOSTid) on FUNKCEuzivatel=OSOBNIid where FUNKCEstruktura=@fid) as a where fid=@fid end -- kontrola je-li objekt v posloupnosti - čili je rozbalen if(charindex(’>>’+cast(@fid as varchar)+’<<’,@posloupnost)>0) begin update @strom set rozbaleno=1 where fid=@fid end else begin update @strom set rozbaleno=0 where fid=@fid end 51
-- kontrola má-li objekt podřízené if exists(select * from strukturastrom where STROMnadrizeny=@fid)begin update @strom set podrizeni=1 where fid=@fid end else begin update @strom set podrizeni=0 where fid=@fid end end end -- výstup select * from @strom order by seq Fulltextové prohledání obsahů dokumentů - výstup nalezených dokumentů sf_PCR_siar_hledatFulltext vstupní parametry: @oec varchar(10), -- oeč pro výsledky z neveřejných PP @vyraz varchar(200) -- hledaný výraz výstupní tabulka: @fulltext TABLE ( cid int, priloha int, pid int, ptyp int, pnazev varchar(200), castka int, cast varchar(3), cislo varchar(30), rocnik varchar(4), nazev varchar(1000), prilohacislo varchar(30), prilohanazev varchar(1000), pravo bit ) -- úprava výrazu před fulltext prohledáváním if(charindex(’ ’,@vyraz)>0)begin -- výraz obsahuje mezeru 52
set @vyraz=’"’+@vyraz+’"’ end else begin -- výraz neobsahuje mezeru - jedno slovo set @vyraz=’"’+@vyraz+’*"’ end -- načtení ID dokumentů z fulltextu insert into @fulltext select OBSAHclanek,null,null,null,null,null,null,null,null, null,null,null,null from siarobsah where contains(OBSAHobsah,@vyraz) -- nahrazení ID příloh IDčkem hlavního dokumentu update @fulltext set priloha=cid,cid=CLANEKpriloha from siarclanek where CLANEKid=cid and CLANEKpriloha is not null -- likvidace neschválených dokumentů delete from @fulltext where cid in (select CLANEKid from siarclanek where CLANEKschvaleno=0) -- kotrola oprávnění na čtení a likvidace neoprávněných update @fulltext set pravo=dbo.sf_PCR_siar_dejPravaNaCteni(@oec,0,cid) delete from @fulltext where pravo=0 -- doplnění základních údajů update @fulltext set pid=CLANEKpublikacniprostredek, ptyp=PROSTREDEKtyp, pnazev=PROSTREDEKnazev, castka=CLANEKcastka, cast=CLANEKcast, cislo=CLANEKcislo, rocnik=CLANEKrocnik, nazev=CLANEKnazev from siarclanek left join siarprostredek on CLANEKpublikacniprostredek=PROSTREDEKid where CLANEKid=cid -- doplnění údajů o přílohách 53
update @fulltext set prilohacislo=CLANEKcislo, prilohanazev=CLANEKnazev from siarclanek where priloha is not null and CLANEKid=priloha -- výstup select * from @fulltext order by pnazev,rocnik desc,castka,cast, cislo,cid,priloha Výpis spojení na uživatele sf_PCR_uzivatel_spojeniUdaje vstupní parametry: @uid int, -- ID uživatele @typ varchar(2) = null -- typ spojení výstupní tabulka: @seznam TABLE ( sid int, -- ID údaje o spojení typ varchar(2), -- typ spojení - ST služební telefon, SE služební email, ... udaj varchar(100) -- vlastní údaje - telefonní číslo, emailová adresa, ... ) -- načtení údajů a vložení do výstupní tabulky if(@typ is null or len(@typ)<1) begin -- jestliže nebyl definován typ - načte se všechny údaje insert @seznam select SPOJENIid,SPOJENItyp,SPOJENIudaj from uzivatelspojeni where SPOJENIuzivatel=@uid end else begin -- typ definován - načte se jen daný typ insert @seznam select SPOJENIid,SPOJENItyp,SPOJENIudaj from uzivatelspojeni where SPOJENIuzivatel=@uid and SPOJENItyp=@typ end -- výstup select * from @seznam order by typ,udaj 54
Výpis cesty k prvnímu prvku organizační struktury od definovaného prvku sf_PCR_dejCestuKRootu vstupní parametr: @fid int -- ID objektu na struktuře -- deklarace potřebných proměnných declare @nadrizeny int, -- ID nadřízeného objektu @retezec varchar(2000) -- řetězec pro uložení posloupnosti IDček -- uložení prvního prvku set @retezec = ’>>’ + cast(@fid as varchar) + ’<<’ -- prováděcí smyčka s kontrolou prvního objektu - rootu - konce while(@fid<>1)begin -- nastavení počáteční hodnoty set @nadrizeny = null -- nalezení nadřízeného objektu select @nadrizeny = STROMnadrizeny from strukturastrom where STROMid=@fid -- kontrola existence objektu - když neexistuje je vrácen prázdný řetězec if(@nadrizeny is null)begin set @retezec = ’’ set @fid=1 end else begin set @retezec = @retezec + ’>>’ + cast(@nadrizeny as varchar) + ’<<’ set @fid = @nadrizeny end end výstupní hodnota: @retezec
55
Výpis oprávnění na čtení daného dokumentu nebo přístupu do publikačního prostředku – pro aplikaci eSIAŘ sf_PCR_siar_dejPravaNaCteni vstupní parametry: @oec varchar(10), -- oeč uživatele @pid int, -- ID publikačního prostředku @cid int -- ID dokumentu -- deklarace potřebných proměnných declare @pravo bit -- oprávnění 0-není 1-je -- prvotní nastavení proměnné set @pravo=0 -- zjištění ID publikačního prostředku z dokumentu - pokud není if(@pid=0)begin select @pid=CLANEKpublikacniprostredek from siarclanek where CLANEKid=@cid end -- zjištění oprávnění na publikační prostředek if((select PROSTREDEKneverejny from siarprostredek where PROSTREDEKid=@pid)=0)begin -- veřejný publikační prostředek set @pravo=1 -- nastavení oprávnění na Ano end else begin -- neveřejný publikační prostředek - zjistíme práva pro uživatele -- deklarace potřebných proměnných declare @fid int, -- ID objektu na struktuře @uid int, -- ID uživatele @hodnost smallint -- hodnost uživatele -- nalezení uid a fid select @uid=OSOBNIid,@hodnost=OSOBNIhodnost, @fid=FUNKCEstruktura from uzivatelosobni left join uzivatelstruktura on OSOBNIid=FUNKCEuzivatel where OSOBNIoec=@oec 56
if(@uid>0)begin -- pokud existuje uživatel pak budeme hledat právo přístupu -- zjištění přímé volby pro uživatele if(exists(select * from siarneverejny where NEVEREJNYuzivatel=@uid and NEVEREJNYz is null))begin set @pravo=1 -- nastavení oprávnění na Ano end -- zjištění přímé volby pro funkci if(@pravo=0 and @fid>0)begin if(exists(select * from siarneverejny where NEVEREJNYstruktura=@fid and NEVEREJNYs=1))begin set @pravo=1 -- nastavení oprávnění na Ano end -- zjištění zděděného práva - pokud stále právo není 1 if(@pravo=0)begin -- deklarace potřebných proměnných declare @policista smallint, -- právo pro policisty @obcan smallint -- pro občany -- načtení práv na publikační prostředek select @policista=pravapolicista,@obcan=pravaobcan from dbo.sf_PCR_siarvklad_vypisZdedenychPristupovychPravDoPP (@pid,@fid) -- zjištění práv dle hodnosti if(@hodnost>1)begin set @pravo=@policista end else begin set @pravo=@obcan end end end
57
-- zjištění přímého zákazu if(@pravo=1)begin -- pro uživatele if(exists(select * from siarneverejny where NEVEREJNYuzivatel=@uid and NEVEREJNYz=1))begin set @pravo=0 -- nastavení oprávnění na NE end -- pro funkci if(@pravo=1 and @fid>0)begin if(exists(select * from siarneverejny where NEVEREJNYstruktura=@fid and NEVEREJNYz=1))begin set @pravo=1 -- nastavení oprávnění na Ano end end end end end výstupní hodnota: @pravo
7.2. 7.2.1.
Programátorský popis webového rozhraní eSIAŘe Přehled souborů a adresářů
Kořenový adresář ASP aplikace je umístěn na inetpub\wwwroot\siar. Zde se nachází inicializační soubor „init.aspÿ obsahující nastavené cesty k dokumentům, k obrázkům, k rozcestníku, . . . Tento soubor je pro správnou činnost aplikací nutné zeditovat a doplnit zde správné hodnoty. Dále tento soubor obsahuje funkce, které jsou využívány všemi ostatními aplikacemi. Každá aplikace má svůj vlastní „init.aspÿ soubor, kde jsou uloženy funkce platné pouze pro tu danou aplikaci. Popis jednotlivých adresářů: css – adresář obsahuje kaskádové styly platné pro všechny aplikace foto – adresář obsahuje osobní fotografie uživatelů 58
img – adresář obsahuje obrázky potřebné všemi aplikacemi. metodika – adresář obsahuje aplikaci pro zpracování metodik a zaměření organizacnistruktura – adresář obsahuje aplikaci pro administraci organizační struktury organizacnistruktura\img – adresář obsahuje obrázky používané pouze aplikací „administrace organizační strukturyÿ osobniudaje – adresář obsahuje aplikaci „správa údajů vedených k uživateliÿ, kde jednotliví uživatelé mohou editovat své osobní údaje, které pak následně využívají ostatní aplikace osobniudaje\img – adresář obsahuje obrázky používané pouze aplikací „správa údajů vedených k uživateliÿ rozcestnik – adresář obsahuje základní nabídku aplikací siar – adresář obsahuje aplikaci eSIAŘ - prohlížení dokumentů uživateli siar\administrace – adresář obsahuje aplikaci pro administraci eSIAŘe siar\dokumenty – adresář obsahuje podadresáře jednotlivých publikačních prostředků a další podadresáře jednotlivých dokumentů uložených v publikačních prostředcích siar\dokumenty\upload – adresář obsahuje soubory potřebné pro upload souborů na server siar\img – adresář obsahuje obrázky používané pouze aplikací eSIAŘ siar\vklad – adresář obsahuje aplikaci „vkládání do eSIAŘÿ telefonniseznam – adresář obsahuje aplikaci „telefonní seznamÿ vypisstruktury – adresář obsahuje 7.2.2.
Asp soubory a SQL
Volání uložené procedury z asp skriptu (vybrána náhodná uložená procedura)
59
’ deklarace proměnné dim vy ’ nastavení na recorset set vy = Server.Createobject("ADODB.Recordset") ’ volání uložené procedury vy.open "sp_PCR_siarvklad_vlozitPravaUzivateleDoNeverejnehoPP "\¶metr, DATAKONEKT ’ uložen konekt string ’ převzetí výstupní hodnoty HOTOVO = vy.fields("hotovo") ’ zavření recordsetu vy.Close ’ uvolnění proměnné z paměti set vy = nothing Do proměnné HOTOVO se uloží výsledek volání uložené procedury. Volání uložené table funkce z asp skriptu (vybrána náhodná funkce) ’ proměnná pro uložení recordsetu nastavená na prázdný řetězec UDAJE = "" ’ deklarace proměnné dim vy ’ nastavení na recorset set vy = Server.CreateObject("ADODB.Recordset") ’ volání uložené funkce vy.open "select * from dbo.sf_PCR_organizacnistruktura_stromCestaPath ("\¶metr1\&","\¶metr2\&")", DATAKONEKT ’ uložen konekt string ’ jestliže byla vrácena data - jsou vložena do proměnné if not vy.eof then ’ převzetí výstupní tabulky UDAJE = vy.GetRows end if ’ zavření recordsetu vy.Close ’ uvolnění proměnné z~paměti set vy = nothing
60
’ jestliže byla vrácena tabulka bude proměnná UDAJE polem if isarray(UDAJE) then ’ procházení pole UDAJE for i=0 to Ubound(UDAJE,2) ’ načtení dat z~řádku PROMENNA1 = UDAJE(0,i) PROEMNNA2 = UDAJE (1,i) next end if ’ uvolnění pole z paměti UDAJE = "" Do proměnné UDAJE se uloží výsledek volání table funkce. Volání uložené scalar funkce z asp skriptu (vybrána náhodná funkce) ’ deklarace proměnné dim vy ’ nastavení na recorset set vy = Server.Createobject("ADODB.Recordset") ’ volání uložené funkce vy.open "select pravo=dbo.sf_PCR_siar_dejPravaNaCteni (’"\¶metr1\&"’,"\¶metr2\&","\¶metr3\&")", DATAKONEKT ’ uložen konekt string ’ převzetí výstupní hodnoty PRAVO = vy.fields("pravo") ’ zavření recordsetu vy.Close ’ uvolnění proměnné z~paměti set vy = nothing Do proměnné PRAVO se uloží výsledek volání scalar funkce. 7.2.3.
Omezení oproti provozní verzi nasazené u Policie České republiky
Verze nasazená na provozním serveru PČR využívá ke své činnosti active directory doménu pcr. Každý uživatel má v této doméně vytvořen jednoznačný účet sestávající z kombinace jména příjmení a osobního evidenčního čísla. Protože PČR má vlastní intranet striktně oddělený od internetu, nebylo možné předvést informační systém eSIAŘ v jeho pracovní verzi. Proto byly vyřazeny z činnosti tři funkce v souboru „init.aspÿ v kořenovém adresáři webového prostoru. 61
funkce vracející oeč uživatele z logonuser asp skriptu function dejOec ’ z domény pcr se načte uživatelské jméno ’up_data = request.servervariables("LOGON_USER") ’ je vyselektován login ’up_data = mid(up_data,instr(up_data,"\")+1) ’ je vyselektováno oeč ’up_data = mid(up_data,3) ’ je netvrdo uvedeno oeč up_data = "304670" dejOec = up_data end function funkce vracející z logonuseru login uživatele function dejLogin ’ načte uživatelské jméno z~domény ’up_data = request.servervariables("LOGIN_USER") ’ vyselektuje login ’up_data = mid(up_data,instr(up_data,"\textbackslash")+1) ’ je netvrdo uveden login up_data = "jt304670" dejLogin = up_data end function funkce vracející IP adresu z logonuseru function dejIp ’up_data = request.servervariables("REMOTE_ADDR") ’ je netvrdo uvedena IP adresa up_data = "10.10.10.10" dejIp = up_data end function
62
Závěr Cílem bakalářské práce bylo vytvoření jednotného informačního systému pro správu, distribuci a přidělování dokumentů elektronickou formou v rámci definované organizační struktury PČR. Dokumenty jsou sloučeny do logických celků (dílčích elektronických knihoven - publikačních prostředků) organizovaných hierarchicky dle organizační struktury pro pokrytí potřeb vedoucích pracovníků. Elektronizací dokumentů zaniká potřeba tisku, což vede v rámci rezortu k nezanedbatelným finančním úsporám. Další podstatnou vlastností tohoto systému je plné fulltextové vyhledávání umožňující velmi rychle zpřístupnit libovolný dokument dle požadovaných parametrů.
63
Reference [1] Eric M. Schurman, William J. Pardi - Dynamické HTML v akci, Computer Press Praha 2000. [2] Rastislav Škultéty - JavaScript programujeme internetové aplikace, Computer Press Praha 2001. [3] Gary Cornell - Microsoft Visual Basic Scriptning, Computer Press Brno 1999. [4] Alex Homer, Dave Sussman, Brian Francis - Active Server Pages 3.0 Profesionálně, Computer Press 2000, UNIS Publishing 2000. [5] A. Keyton Weissinger - Active Server Pages v kostce, Computer Press Praha 2001. [6] Robert E.Walters, Michael Coles, Robert Rae, Fabio Ferracchiati, Donald FarmerHomer - Mistrovství v Microsoft SQL Server 2008, Computer Press 2008. [7] Microsoft Developer Network - http://msdn.microsoft.com
64
A.
Popis obsahu přiloženého CD
Součástí této práce je přiložené datové médium CD obsahující tři adresáře. • Adresář doc obsahuje dokumentaci této práce. • Adresář sql obsahuje soubor general script esiar.sql obsahující tabulky, indexy včetně fulltextového, uložené procedury a funkce. • Adresář www obsahuje ASP skripty jednotlivých aplikací celého informačního systému eSIAŘ. Soubor readme.txt obsahující informace o obsahu přiloženého CD média.
65