Mendelova zemědělská a lesnická univerzita v Brně Provozně ekonomická fakulta
Optimalizace firemního logistického řetězce Bakalářská práce
Vedoucí práce: Ing. Oldřich Trenz, Ph. D.
Petra Katovská
Brno 2008
Poděkování Děkuji Ing. Oldřichu Trenzovi, Ph. D. za odborné vedení a cenné rady poskytnuté při vypracování této bakalářské práce. Poděkování za neocenitelné poznatky z praxe patří vedení firmy BMC Brno, s. r. o., bez které by tato práce nemohla vzniknout. Dále děkuji své rodině, která mi byla stálou oporou a jejich pozitivní vliv přispěl ke všem mým úspěchům. V neposlední řadě děkuji svému spolužákovi Marku Fojtlovi za jeho cenné připomínky.
Prohlášení Prohlašuji, že jsem tuto bakalářskou práci tvořila samostatně dle pokynů vedoucího práce a za použití zdrojů, které jsou uvedeny v závěru práce.
V Brně dne 26. května 2008
....................................................
4
Abstract Katovská, P. Optimalization of company logistic network. Bachelor thesis. Brno, 2008. The thesis deals with the database system and the web platform utilization used for the optimization of logistic processes within the given company. The proposed system is applied into the software structure of the company and helps with solving everyday working operations. Keywords: logistic network, logistic system, logistic strategy, database system, web platform.
Abstrakt Katovská, P. Optimalizace firemního logistického řetězce. Bakalářská práce. Brno, 2008. Práce pojednává o využití databázového systému a webové platformy při optimalizaci logistických procesů v rámci konkrétní firmy. Navržený systém je aplikován do softwarové struktury podniku a napomáhá řešit každodenní pracovní činnosti. Klíčová slova: logistický řetězec, logistický systém, logistická strategie, databázový systém, webová platforma.
5
OBSAH
Obsah 1 Význam a cíl práce 1.1 Uvedení do problematiky . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Použité nástroje logistického systému 2.1 Databázové systémy . . . . . . . . . 2.1.1 Normální formy . . . . . . . . 2.2 Databázový systém Oracle . . . . . . 2.3 Structured query language (SQL) . . 2.4 HTML a CSS . . . . . . . . . . . . . 2.5 PHP . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
6 6 7 8 8 9 10 12 14 15
3 Charakteristika firmy BMC Brno, s. r. o. 17 3.1 Profil společnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2 Další činnost a spolupráce . . . . . . . . . . . . . . . . . . . . . . . . 17 4 Struktura zavedeného logistického 4.1 Ekonomický systém Pohoda . . . 4.2 Webové rozhraní a e-shop . . . . 4.3 Elektronické zpracování dat . . .
systému 18 . . . . . . . . . . . . . . . . . . . . 18 . . . . . . . . . . . . . . . . . . . . 19 . . . . . . . . . . . . . . . . . . . . 20
5 Tvorba nového logistického systému 5.1 Databáze . . . . . . . . . . . . . . 5.1.1 Konceptuální úroveň . . . . 5.1.2 Logická úroveň . . . . . . . 5.1.3 Implementační úroveň . . . 5.2 Webové rozhraní . . . . . . . . . . 5.2.1 Editace tabulek . . . . . . . 5.2.2 Úprava tabulek . . . . . . . 5.2.3 Objednávky . . . . . . . . . 5.2.4 Sklad . . . . . . . . . . . . . 5.2.5 Seznamy . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
21 21 21 22 22 25 25 27 28 31 33
6 Diskuse
35
7 Závěr
37
8 Literatura
39
Přílohy
41
A Použité přílohy
42
1
VÝZNAM A CÍL PRÁCE
1 1.1
6
Význam a cíl práce Uvedení do problematiky
V dnešním stále se zrychlujícím životním tempu hraje logistika neodmyslitelnou roli. Každý si může vzpomenout na nedávné doby komunismu, ve kterých se stály fronty na pomeranče, banány a dokonce i na hygienické potřeby. Tuto situaci by většina z nás rozhodně už nechtěla nikdy zažít. A právě proto je velmi důležité mít produkt ve správnou dobu a na správném místě. Nejen těmito požadavky se zabývá právě logistika. Největší rozvoj logistika pocítila s rozšiřováním Evropské unie a globalizací trhů, kdy firmy potřebovaly získávat konkurenční výhody před ostatními z oboru. Poslední dobou se v podnikání a obchodu klade důraz především na kvalitu a spokojenost zákazníka. Proto je velmi důležité zaměřit se na vlastní zboží, aby nevznikaly zbytečné prostoje a zákazník nebyl zdržován od uspokojení svých potřeb zbytečnou firemní administrativou. Řešení každého problému vždy začíná v jeho jádru. Firma si musí nejdříve ujasnit své priority a začlenit logistiku do celkové strategie podniku. Využitím nejmodernějších technologií dosáhne zlepšení a zjednodušení vnitropodnikových operací, snížení nákladů a v důsledku toho i zvýšení vlastní rentability. Logistika se dotýká různých stránek každodenního života a zajišťuje podnikům zlepšení profitability a konkurenční výhody. Zahrnuje veškeré operace od vzniku produktu až po jeho likvidaci. Jedná se o proces plánování, realizace a řízení efektivního, výkonného toku a skladování zboží, služeb a souvisejících informací z místa vzniku do místa spotřeby, jehož cílem je uspokojit požadavky zákazníků (Oak Brook, 1993). Za klíčový faktor jsou v současnosti považovány informační technologie, které budou v budoucnu značně ovlivňovat růst a rozvoj logistiky (Bernard La Londe, James M. Masters, 1996). Počítače v posledních letech přispěly ke zlepšení podnikových procesů a tím i ke snížení celkových nákladů. Jsou zdrojem informací a zlepšují komunikaci nejen uvnitř firmy, ale především mezi podnikem a zákazníkem. Z informačních technologií jsou využívány především informační systémy, jako např. systémy na podporu rozhodování, umělá inteligence či expertní systémy. Pro tvorbu takového softwaru využívají firmy zejména třetích stran, které jsou v této oblasti specialisté. Těmto zakázkám se říká outsourcing. Nejedná se ovšem jen o softwarové specializace, outsourcingu může být využito např. i v oblasti skladování či přepravy. Tato práce je zaměřena právě na tvorbu logistického informačního systému. Firma BMC Brno, s. r. o. využívá ke své činnosti několik různých programů a systémů, ale neustále se potýká s problémem objednávek pro své dodavatele. Vzhledem k tomu, že její obchodní činnost je zaměřena na celé Španělsko, které se rozkládá na území 505 992 km2 . Celý stát se skládá ze 17 autonomních regionů (Andalusie, Aragonie, Asturské knížectví, Baleáry, Baskicko, Extramadura, Galicie, Kanárské ostrovy, Kantábrie, Kastilie - La Mancha, Kastilie a León, Katalánsko, La Rioja,
1.2
Cíl práce
7
Madrid, Murcie, Navarra, Valencie) a na jeho území žije 44 708 964 obyvatel. Z toho vyplývá, že distribuce v rámci celého království je velmi obtížná a je nezbytné vyřešit problémy spojené s nakládáním kamionů.
1.2
Cíl práce
Cílem této práce je analyzovat silné a slabé stránky současného využítí logistického systému ve firmě BMC Brno, s. r. o. a navrhnout taková řešení, která by vedla ke zlepšení každodenních činností spojených s provozem dané společnosti. Výsledkem by měl být logistický systém, který dokáže evidovat zásoby na skladě, jejich množství i expirační dobu a umožní efektivně sestavovat objednávky a nakládky kamionů ze Španělska do České republiky. Pro vytvoření tohoto systému je potřebné provést následující kroky: • Seznámit se se strategickým plánem společnosti, • provést analýzu současného logistického systému, • odhalit nedostatky a nalézt způsob jejich odstranění a • implementovat nový logistický systém do současného firemního řízení. Stěžejní je vyřešení současného objednávkového systému. V současnosti se veškeré objednávky provádí spíše za pomoci intuice nákupčího. Nový logistický systém by měl zahrnovat tvorbu objednávek dle místa nakládky výrobce, možnost změn vytvořených objednávek a především jejich archivaci, která poslouží pro marketingové a statistické účely.
2
POUŽITÉ NÁSTROJE LOGISTICKÉHO SYSTÉMU
2 2.1
8
Použité nástroje logistického systému Databázové systémy
Lidé se celý život potýkají s problémem uchování a zpracování dat. Již v historii se objevovaly různé evidence, které umožňovaly shromažďování potřebných informací. Dříve to mohly být záznamy na hliněných tabulkách, které se postupem času přeměnily v klasické papírové kartotéky. Veškerá data v nich byla uspořádána podle určitých kritérií, která umožňovala snadnější přístup k hledaným informacím. V padesátých letech 20. století byl zaznamenán obrovský posun v oblasti výpočetní techniky a tudíž bylo jen otázkou času, kdy správu klasických kartoték převezmou automatizované stroje. V dnešní době jsou databázové systémy nedílnou součástí našeho každodenního života a většina odvětví se bez nich už vůbec neobejde. Jejich tvorba je v rukou počítačových odborníků, kteří jsou schopni na základě určitých dotazů vypsat potřebné informace a tím ulechčit i ty nejsložitější operace jakékoliv osobě na světě. Databáze je určitá uspořádaná množina dat uložená na paměťovém médiu (Wikipedia - databáze, 2008). Abychom mohli z uložených dat získat informace, je nutné využít softwarových prostředků, které databázi řídí. Tomuto softwaru se říká systém řízení báze dat a společně s databází tvoří databázový systém. V současné době je nejrozšířenějším systémem relační databáze, která data uspořádává do jednotlivých tabulek, nad kterými jsou definovány přípustné operace.
Obr. 1: Databázový systém
Každý návrh relační databáze začíná tvorbou entitně relačního diagramu (ERD), který jasně zobrazuje zkoumané prvky, jejich popis a vzájemné vazby. Jednotlivé tabulky se nazývají entity a reprezentují objekty reálného světa, které zkoumáme. Abychom tyto entity byli schopni od sebe odlišit, popisujeme je jejich klíčovými vlastnostmi, které jsou v databázových systémech označovány jako atributy.
2.1
Databázové systémy
9
Pro hledání v uložených tabulkách je nutné vytvořit vazby (relace), které by určovaly vzájemné propojení a tím usnadňovaly práci s celou databází. V reálném světě mohou nastat tři typy relací a to 1:1, 1:N a N:M, ale v databázových systémech se snažíme vše transformovat do podoby 1:N. Což znamená, že jeden objekt může být spojen s několika dalšími. Tímto se dostáváme k další vlastnosti vztahů a tou je jejich parcialita. U každé tabulky můžeme rozlišit, jestli je její vztah vůči ostatním tabulkám povinný či volitelný (Šimůnek, 1999). Při vytváření jednotlivých tabulek v databázovém systému, musí být dodržována určitá pravidla, aby bylo možné z uložených dat získávat potřebné informace. Těmto pravidlům se v počítačové praxi říká databázová integrita, která je reprezentována normálními formami. Zcela základní jsou první tři, bez kterých by nebylo možné informace vyhledávat. Další jsou podrobné logistické závislosti, které návrh dále zpřesňují. 2.1.1
Normální formy
• 1. normální forma Základem tvorby tabulek je atomičnost jednotlivých atributů (Skřivan, 2000). Aby bylo možné jednotlivé tabulky propojit a vhodně v nich hledat, je nutné, aby jednotlivé vlastnosti byly rozděleny na co nejmenší části. V praxi to znamená, že např. adresu rozdělíme na ulici, číslo popisné a město. Tímto rozložením získáme možnost nalezení osob z jednoho města, ulice či členů jedné domácnosti. • 2. normální forma Předpokladem pro splnění je dodržení 1. normální formy. Dále je nutné stanovit vyhledávací klíč, pomocí kterého bude možné z tabulky získávat informace. Tento klíč bude pro každý řádek unikátní a tím bude snadné určit konkrétní výskyt hledaného záznamu. Pro 2. normální formu musí platit, že existuje klíč a současně všechna neklíčová pole jsou funkcí celého klíče, a nikoli jen jeho části (Pokorný, 2004). Čím složitější klíč bude, tím těžší bude udržení závislosti atributů na všech jeho částech. • 3. normální forma Základním kritériem pro splnění je existence 2. normální formy a dále vytvoření tzv. číselníků. Toto pravidlo totiž říká, že nesmí existovat závislot mezi neklíčovými sloupci tabulky (Žák, 2002). Jestliže se vrátíme k příkladu z 1. normální formy, znamená to, že pokud bude vytvořen vyhledávací klíč identifikující osobu žijící na určité adrese, nesmí být ve výčtu atributů současně uvedeno město a poštovní směrovací číslo, jelikož PSČ se vztahuje k dané lokalitě a ne osobě. Z tohoto důvodu jsou tvořeny číselníky, které obsahují např. seznam měst a PSČ a tento číselník je poté jen odkazem v tabulce popisující zkoumané osoby.
2.2
Databázový systém Oracle
10
• Boyce-Coddova normální forma Pro tuto normu opět platí pravidlo splnění normy předcházející. Dále je nutné dodržet závislost mezi prvky. Jestliže je jeden prvek funkčně závislý na druhém, musí být obsažen ve vyhledávacím klíči (Skřivan, 2000). Obvykle je tato norma automaticky splněna, jsou-li striktně dodržovány první tři základní normy. • 4. normální forma Pravidlo je splněno, je-li dodržena 3. normální forma a je popisována pouze příčinná souvislost (Rydval, 2005). Zde je ovšem nutné dbát na to, aby nevznikala redundance dat a nebyly porušovány předchozí normy. • 5. normální forma Předpokladem je splnění veškerých předchozích norem. Tato norma dále udává, že není možné do tabulky přidat nový sloupec (skupinu sloupců) tak, aby se vlivem skrytých závislostí rozpadla na několik dílčích tabulek (Rydval, 2005).
2.2
Databázový systém Oracle
První uvedení na trh databázového systému Oracle bylo v roce 1979 tehdy ještě firmou Relational Sortware, Inc. (nyní Oracle Corporation) (Šimůnek, 1999). Tento systém se vzhledem ke své spolehlivosti, výkonnosti a multiplatformnímu použití řadí mezi světovou elitu. Společnost Oracle Corporation, jejíž roční obrat činí 10,2 miliardy USD, nabízí kromě podnikových aplikací a nástrojů na jejich vývoj také databázi, aplikační server a nástroje pro podnikovou spolupráci (Oracle Corporation, 2007). O vývoj produktů, správu a zákaznický servis se stará více než 40 tisíc zaměstnanců a zastoupení společnosti je ve 145 zemích světa (také v České republice). Produkty této firmy jsou postaveny na myšlence konslidace, virtualizace a automatizace. Propojení jednotlivých kusů hardwaru do gridu1 je rozvinuto o inteligenci softwarového řízení, která umožňuje správnou komunikaci mezi jednotlivými servery a databázemi (Oracle Corporation, 2007). Prvními takovými produkty jsou databáze Oracle 10g a aplikační server Oracle 10g. Tento databázový systém je kompletní platforma pro ukládání, správu a analýzu dat a v současnosti zaujímá největší podíl na trhu, o čemž svědčí i cena za databázi roku 2004 udělená odbornou komisí redakcí Databázového světa v prosinci 2004 (Oracle Corporation, 2007). Aplikační server Oracle 10g je ve svém oboru nejrychlejším, nejúplnějším a nejlépe integrovaným aplikačním serverem s certifikací J2EE (Java 2 Platform) a byl prvním produktem, který integroval veškerou technologii potřebnou k vybudování portálů elektronických podniků, transakčních aplikací a webových služeb v jediném produktu (Oracle Corporation, 2007). Aktuální verze Oracle Database 11g podporuje nejen standardní relační dotazovací jazyk SQL, ale také proprietární firemní rozšíření Oracle (např. 1
Hardwarová a softwarová infrastruktura, která poskytuje spolehlivý, standardizovaný, všudypřítomný a levný přístup ke špičkovým výpočetním službám (MetaCentrum, 2007).
2.2
Databázový systém Oracle
11
pro hierarchické dotazy), imperativní programovací jazyk PL/SQL rozšiřující možnosti vlastního SQL (v tomto jazyce je možné tvořit uložené procedury, uživatelské funkce, programové balíky a triggery), dále objektové databáze a databáze uložené v hierarchickém modelu dat (XML databáze) (Oracle, 2008). Společnost Oracle vyvíjí také aplikační balíčky, které umožňují firmám efektivně řídit výrobu a interakce s odběrateli, expedovat objednávky či inkasovat platby a to vše s jednotnou informační architekturou, což podnikům ušetří mnoho finančních prostředků (Oracle Corporation, 2007). Tento produkt se nazývá Oracle EBusiness Suite. Velice podobný a neméně potřebný je Oracle Collaboration Suite. Jedná se o softwarový systém, který dokáže spravovat veškerou internetovou komunikaci, umožňuje sdílení prostředků nebo umožňuje pořádání webových konferencí (Collaboration suit, 2007). Jeho hlavní výhodou je jednotné prostředí, které snižuje i nároky na údržbu celého systému (Oracle Corporation, 2007).
Obr. 2: Integrovanost služeb (Collaboration suit, 2007)
Mezi doplňkové služby Oraclu patří poradenství, odborná podpora, školící programy a další. Tímto společnost dosahuje opravdu špičkového zákaznického servisu. Odběratelé produktů Oracle se nemusí starat o technické problémy, strategie podnikového výpočetního systému či odborná školení (Oracle Corporation, 2007). Díky 100 % nasazení zaměstnanců Oracle Corporation, se může firma používající její produkty věnovat už jen své práci a ne technickému chodu zakoupeného softwaru.
2.3
2.3
Structured query language (SQL)
12
Structured query language (SQL)
V sedmdesátých letech minulého století potřebovala firma IBM ovládat relační databázi určenou pro výzkum a tak její experti byli nuceni vyvinout komunikační prostředek, který by jim dále usnadňoval práci (Šimůnek, 1999). Tímto vznikl jazyk SEQUEL (Structured english query language), jehož příkazy vycházejí z běžné angličtiny. Postupem doby se začaly relační databáze rozšiřovat, což si vyžádalo nutnost standardizaci jazyka, který by se systémy komunikoval. Tímto standardem v roce 1986 byl strukturovaný dotazovací jazyk SQL (Wikipedia - SQL, 2008). Jak už to v odvětví informačních technologií chodí, původní standard se stal nedostatečným a následovalo několik aktualizací a rozšířených verzí až do současné verze SQL-99. SQL patří mezi tzv. deklarativní programovací jazyky, což znamená, že kód jazyka nepíšeme v žádném samostatném programu, ale vkládáme jej do jiného programovacího jazyka, který je již procedurální (Skřivan, 2000). S jazykem SQL můžeme pracovat pouze v tom případě, že budeme připojeni k SQL serveru. Samostatný SQL server nabízí např. společnost Microsoft. Ovšem jelikož se jazyk SQL používá většinou ve spojitosti s databázemi, je jednodušší nainstalovat si databázový systém a tím si automaticky zpřístupnit i možnost používání tohoto strukturovaného dotazovacího jazyka. Základním vytvářeným objektem pomocí jazyka SQL je tabulka. Tabulky reprezentují reálné objekty, které podle klíčových vlastností popisujeme. Tyto atributy tvoří sloupce tabulky a musí mít jasně definovanou doménu, která vymezuje data určitého typu. V každé tabulce musí být určen primární (vyhledávací) klíč a poté můžeme nastavit doplňující funkce ostatním atributům (např. unikátnost, cizí klíč, podmínku) (Šimůnek, 1999). Velmi podobné tabulkám jsou pohledy, které jsou tvořeny na základě výběru potřebných informací z předem vytvořených tabulek. Dalšími používanými objekty jsou procedury, funkce a spouštěče tzv. triggery (Šimůnek, 1999). Procedura je posloupnost příkazů, které se po zavolání z jakéhokoliv místa programu provedou. Na stejném principu funguje i funkce, která ovšem po provedení posloupnosti příkazů vrátí požadovaný výsledek. Trigger je SQL příkaz nebo procedura, která je spuštěna při vzniku určité události (Šimůnek, 1999). Dalšími používanými objekty mohou být typy, indexy či balíky. Jazyk SQL v sobě zahrnuje desítky funkcí a pro zjednodušení se dělí do třech základních částí (Wikipedia - SQL, 2008), které specifikují práci s daty. První částí, bez které by objekty vůbec v databázovém systému vůbec neexistovaly je DDL (data definition language), která umožňuje vytváření, změny a mazání jednotlivých entit. Pomocí jazyka SQL se dají vytvářet tabulky, indexy, role, sekvence a další objekty. Na samotnou tvorbu přímo navazuje naplňování tabulek daty, což probíhá pomocí příkazů v sekci DML (data manipulation language). A poslední neméně důležitou základní částí, která je stěžejní pro získávání informací z databáze je úsek DQL (data query language). Nad těmito základními sekcemi se nachází jedna nadřazená řídící, která zaštiťuje veškerou práci s daty. Tato část se nazývá DCL (data control language) a umožňuje ovládat jednotlivé transakce.
2.3
Structured query language (SQL)
13
Základní příkazy jazyka SQL(Šimůnek, 1999): 1. Data definition language • CREATE - vytváření nových objektů Př.: CREATE TABLE
( [], ...) • ALTER - změny již uložených objektů Př.: ALTER TABLE [ADD (<specifikace sloupce>)] [MODIFY (<specifikace sloupce>)] [DROP ()] • DROP - mazání vytvořených objektů Př.: DROP TABLE 2. Data manipulation language • INSERT - vkládání dat do databáze Př.: INSERT INTO VALUES (, ...) • UPDATE - úprava vložených dat Př.: UPDATE SET = [WHERE <podmínka>] • DELETE - mazání vložených dat Př.: DELETE FROM [WHERE <podmínka>] 3. Data query language • SELECT - tvorba dotazů pro vyhledávání informací z databáze Př.: SELECT <seznam vystupních sloupců> FROM <seznam tabulek> [WHERE <podmínka řádku>] [GROUP BY <seznam výrazů seskupení>] [HAVING <podmínka skupiny>] [ORDER BY <seznam kritérií třídění>] 4. Data control language • GRANT - přidělení oprávnění uživateli k určitým objektům Př.: GRANT TO <jméno uživatele> • REVOKE - odebrání práv uživateli Př.: REVOKE FROM <jméno uživatele> • BEGIN - zahájení transakce • COMMIT - potvrzení transakce • ROLLBACK - zrušení transakce a návrat do původního stavu
2.4
2.4
HTML a CSS
14
HTML a CSS
V předchozích sekcích jsou popsány databázové systémy a strukturovaný dotazovací jazyk, pomocí kterého můžeme s databázemi pracovat. Ovšem tyto operace probíhají zejména na profesionální úrovni. Aby se k informacím z databáze mohla dostat i laická veřejnost je zapotřebí dalších jazyků, které by vše uživatelsky zpříjemnily. Nejčastějším přístupem k databázím bývá internet, kde se využívá zejména jazyků HTML (hypertextový značkovací jazyk) a PHP (skriptovací programovací jazyk). Propojením těchto částí vzniká uživatelsky příjemá aplikace, ve které je možná orientace pomocí formulářů a tlačítek a po odeslání získání potřebných informací. V roce 1990 vznikl jeden z jazyků pro vytváření stránek v systému World Wide Web, který umožňuje publikaci dokumentů na Internetu (Wikipedia - HTML, 2008). Tak jako jiné jazyky i HTML prodělalo několik změn a díky rychle se vyvíjejícímu internetu vzniklo mnoho standardů. V roce 1991 byla vydána verze 0.9 a o šestnáct let později zatím konečná verze 4.01. V současné době se tým odborníků snaží vytvořit novou verzi 5, která by měla být dokončena v roce 2010, ovšem finální verze zbavená všech chyb se odhaduje až na rok 2022 (Wikipedia - HTML, 2008). HTML se skládá z různých značek tzv. tagů, do kterých jsou uzavírány části dokumentu, které jsou poté viditelné na webu. Tagy jsou ohraničeny úhlovými závorkami a mohou obsahovat doplňující atributy, které upřesňují vlastnosti elementu (Raggett, 2003). Při psaní HTML dokumentů je nutné dodržovat určitou strukturu. Aby bylo vše korektní, existují určitá pravidla tvorby internetových dokumentů. Validitu (přesné dodržení všech pravidel příslušných specifikací), lze zjistit online na internetu pomocí aplikace vytvořené konsorciem World Wide Web (Validator).
Obr. 3: Příklad zdrojového kódu HTML 4.01 (Wikipedia - HTML, 2008)
Zkratka CSS v počítačovém světě reprezentuje kaskádové styly, které umožňují popsat vzhled HTML dokumentu v prohlížeči či při tisku (root.cz). Jazyk byl navržen standardizační organizací W3C a při tvorbě internetových stránek se stal velmi využívaným nástrojem (Wikipedia - CSS, 2008). Při tvorbě HTML dokumentu bylo
2.5
PHP
15
přímo zničující neustále deklarovat vzhled a kód se stával velmi nepřehledným. Z tohoto důvodu byl vzhled dokumentu oddělen od jeho obsahu a struktury (Wikipedia - CSS, 2008). Největší výhodou použití kaskádových stylů je aplikace na všechny webové prezentace, což umožňuje vytvoření jednotného vizuálního stylu (Wikipedia - CSS, 2008). Kaskádové styly nabízí rozsáhlejší formátovací možnosti než hypertextový značkovací jazyk, umožňují projevení jedné změny ve všech HTML dokumentech a především větší přehlednost, jelikož je CSS kód oddělen od HTML kódu (CSS Tutorial, 2008). Jednou z mála nevýhod kaskádových stylů je odlišně zobrazení v různých prohlížečích, ale s tímto nedostatkem si zkušený programátor dovede poradit. Kaskádový styl se skládá z určitých pravidel, které specifikují vzhled daného elementu HTML dokumentu (Wikipedia - CSS, 2008). Syntaxe začíná vždy označením elementu a poté seznamem deklarací oddělených středníkem, které jsou uzavřeny do složených závorek. Takto lze v CSS dokumentu vzhled deklarovat pro všechny HTML elementy.
Obr. 4: Příklad zdrojového kódu CSS (Wikipedia - CSS, 2008)
2.5
PHP
Počátky jazyka PHP spadají do roku 1994, kdy pan Rasmus Lerdorf vydal sadu skriptů pod názvem Personal Home Page Tools (zkráceně PHP) (Zajic, 2005). Tyto skripty umožňovaly tvorbu dynamických internetových stránek a počet webů, které používaly PHP se začal rapidně zvyšovat. Jeho výhodou je především multiplatformita a kompatibilita s vetšinou webových serverů a existujících operačních systémů, podpora široké řady souvisejících technologií, fůrmátů a standardů a především otevřenost projektu s rozsáhlou podporou komunity (Zajic, 2005). Kódy ve skriptovacím jazyku píšeme do běžného HTML dokumentu do uvozovacích a ukončovacíh značek (např. ¡? . . .php kód. . . ?¿) a výsledný soubor ukládáme s příponou php. Jak už bývá u programovacích či skriptovaích jazyků zvykem, i PHP podporuje komentáře, které slouží k zpřehlednění kódu. Pro jednořádkový komentář lze použí // či # a k zakomentování více řádků slouží dvoujice znaků /* . . .komentář. . . */. Takto vytvořené skripty jsou poté prováděny na straně serveru a k uživateli je přenášen pouze výsledek jejich činnosti (Zajic, 2005). Tímto se stávají běžné statické HTML dokumenty dynamickými.
2.5
PHP
16
Práce s tímto skriptovacím jazykem je poměrně jednoduchá a naučení nedělá zkušenějšímu informatikovi větší problémy. Proměnné jsou dynamické, tudíž není třeba nic předem deklarovat a datový typ se určuje v okamžiku přiřazení (Wikipedia - PHP, 2008). Dalšími prvky, které PHP podporuje jsou heterogenní pole, předdefinované funkce či vytváření vlastních cyklů. Jednotlivé instrukce se oddělují středníkem a jakýkoliv špatný zápis vyvolá chybové hlášení (např. chyba s kódem 400 znamená špatný požadavek či kód 500 nedostupnou službu) (Diviš, 2005).
3
CHARAKTERISTIKA FIRMY BMC BRNO, S. R. O.
3 3.1
17
Charakteristika firmy BMC Brno, s. r. o. Profil společnosti
Firma BMC Brno, s. r. o. byla založena 19. ledna roku 2000 jako společnost s ručením omezeným. V obchodním rejstříku jsou zapsáni dva společníci, kteří jsou zároveň jednateli a při založení oba splatili vklad ve výši 50 000 Kč. V současné době má firma dvanáct kmenových zaměstnanců, ale ke své činnosti využívá i několik externích pracovníků a v případě potřeby i brigádníky a studenty. Formou outsourcing jsou zaštíceny logistické služby, jako např. skladování a přeprava zboží. Po několika letech své existence se společnost stala specialistou na dovoz španělských delikates. Zaměřuje se převážně na distribuci do České republiky, Slovenska a od minulého roku expanduje i na polské trhy. Sortiment, který má firma ve svém portfoliu, je opravdu velmi široký. Jako první zahraniční položkou se staly olivy a olivové oleje a postupem času začaly přibývat další produkty - konzervované ovoce a zelenina, rybí speciality, koření, dochucovadla a omáčky a originální španělské sušené vepřové maso ”jamón”. Od roku 2004, kdy Česká republika vstoupila do Evropské unie, firma rozšířila svoji nabídku o španělská vína a typický nápoj sangria. Do doplňkového sortimentu také spadají produkty ”non food”, především kuchyňské potřeby pro přípravu španělských specialit. A pro opravdové milovníky Španělska jsou připraveny i dárkové předměty s tématikou flamenka či býčích zápasů (např. vějíře nebo plakáty). Obrovskou raritou, nejen v České republice, jsou kyslíkové absorbéry ATCO, které mají v moderním světě velkou budoucnost. Jedná se o technologii, která šetrně a bezchemicky ochraňuje potraviny i výrobky nepotravinářského charakteru a prodlužuje tím jejich trvanlivost či životnost. Na tento produkt navazují kyslíkové indikátory, které jsou schopné identifikovat i nepatrné množství kyslíku. Nejnovější zařazenou komoditou je americká kosmetika Noredol, která má léčivé účinky na problematickou pleť.
3.2
Další činnost a spolupráce
Zákazníky společnosti jsou především nezávislé obchodní řetězce (např. TESCO, SPAR, MAKRO, AHOLD), výrobci potravin (např. Guseppe, Varmuža), specializované vinotéky a celá síť HO.RE.CA, do které společnost BMC Brno dodává prostřednictvím významného distributora Nowaco. Firma ovšem nezanedbává ani jednotlivé spotřebitele a umožňuje jim nákup svých produktů i v malém množství. Spolupráce s dalšími firmami je i v oblasti reklamy a dárkových předmětů. Společně s Univerzitou Tomáše Bati ve Zlíně firma vytvořila originální misky na olivy, které se staly velmi oblíbeným dárkovým předmětem. Společnost BMC Brno, s. r. o. se každoročně prezentuje na odborných akcích a soutěžích (např. Víno a Destiláty, Salima, Festival španělské kultury Iberica).
4
STRUKTURA ZAVEDENÉHO LOGISTICKÉHO SYSTÉMU
4
18
Struktura zavedeného logistického systému
V současné době prochází firma BMC Brno, s. r. o. velkým přerodem. Již několik let ke své práci využívá ekonomický systém Pohoda a prezentuje se na internetových stránkách. Ale pro rychle se rozvíjející trhy se tato programová vybavenost stává zcela nevyhovující. Od léta loňského roku navázala spolupráci se specializovaným design studiem Pilot, které vytvořilo přímo na míru webové rozhraní s aktivním internetovým obchodem. Bohužel pořád ve firmě zůstávají některé logistické oblasti, které jsou zcela nepokryty. A práve tyto problematické části by měla řešit tato bakalářská práce. Program, který firma používá zejména pro své interní potřeby je ekonomický systém, s jehož pomocí lze vytvářet příjemky a výdejky pro skladové hospodářství či faktury pro odběratele. Tento software umožňuje zobrazovat různé sestavy a statistiky pro podporu strategického rozhodování vrcholového managementu. Zákaznický servis je zajištěn zejména prostřednictvím webové aplikace, která obsahuje také internetový obchod.
4.1
Ekonomický systém Pohoda
Tento účetní software je jedním z nejrozšířenějších v České republice a na Slovensku. Poměrně rychle se rozvíjí a dokáže pružně reagovat na požadavky svých klientů. Na trh ho zavedla společnost Stormware, která se zabývá vývojem programů pro platformu Windows. Do jejího portfolia spadají i další aplikace, které umožňují kvalitní firemní vedení (např. Panica - personalistika a mzdy, GLX - kniha jízd a cestovní náhrady, TAX - daňová přiznání a další) (Stormware, 2008). Ve firmě BMC Brno, s. r. o. je v současné době nainstalován pouze ekonomický systém Pohoda, který je komplexním účetním, ekonomickým a informačním systémem. Je uživatelsky příjemný a kompatibilní s různými produkty MS Office, což dané firmě plně vyhovuje, jelikož veškeré počítače používají platformu Windows a další produkty společnosti Microsoft. Od instalace a nastavení systému, přes zápis, výběr a tisk dokladů, až po účetní uzávěrku Pohoda svému uživateli maximálně usnadňuje každodenní práci díky propracovanému uživatelskému rozhraní, interaktivním průvodcům a rozsáhlému systému kontextové nápovědy (Stormware, 2008). Ve verzi Pohoda Komplet jsou obsaženy nejen standardní funkce, ale i určitá aplikační nástavba. Tato verze umožňuje vedení běžného účetnictví a daňové evidence, využití programu při homebankingu, objednávkách či fakturacích a dále i správu majetku. To vše jsou standardní služby daného účetního softwaru. Nadstandardními funkcemi jsou mzdy (personalistika) a sklady (příjemky, výdejky, inventura). Dá se říci, že bez těchto doplňkových aplikací se malá a střední firma v současné době neobejde. Jelikož je tento systém určen pro širokou veřejnost, je zcela pochopitelné, že v určitých oblastech je pro každou firmu nedostačující. Firma BMC Brno, s. r. o. využívá veškeré dílčí části, ale pořád řešila problém s optimalizací zásob a způsobem
4.2
Webové rozhraní a e-shop
19
tvorby objednávek. Objednávky probíhají v daném podniku dvakrát do týdne a jelikož jsou směřovány téměř stovce dodavatelů je velmi těžké je tvořit a zkoordinovat. Systém Pohoda ovšem tento problém řešit nedokáže.
4.2
Webové rozhraní a e-shop
Firma BMC Brno, s. r. o. se na českém trhu pohybuje již několik let a tudíž si za tento časový úsek vybudovala určitou image vůči svému okolí. V současnosti se vše posunuje vysokou rychlostí kupředu a proto se i každý podnik musí zamyslet nad svojí vlastní identitou. Je důležité zachovat si vlastní tvář, ale zároveň se umět přizpůsobit době. Právě z tohoto důvodu v loňském roce využila firma odborného poradenství firmy Pilot, která jí vytvořila přesně dle požadavků nový vizuální styl. Design studio Pilot se zabývá nejen tvorbou, zaváděním a udržováním firemních vizuálních stylů, ale také výrobou komplexních prezentačních materiálů a tvorbou webových prezentací. Jelikož tato společnost funguje již deset let, má v oboru značné zkušenosti a v jejím portfoliu se nachází různé významné firmy z celé republiky. Díky odborným znalostem svých pracovníků, nabízí opravdu kvalitní služby. Internetová prezentace firmy BMC Brno, s. r. o. je vytvořena pomocí rozšířeného hypertextového značkovacího jazyka XHTML, který umožňuje vytváření internetových dokumentů. Je rozšířenou verzí značkovacího jazyka HTML a v současné době je také daleko používanější než jeho hypertextový předchůdce. Jeho první verze vznikla na základě doporučení W3C (World Wide Web Consortium) v lednu roku 2000. XHTML prošlo několika změnami a zřejmě tou nejnovější je modulově založená verze, která se začala používat od února 2007 (Wikipedia - XHTML, 2008). Vše je doplněno skriptovacím programovacím jazykem PHP, který zajišťuje dynamičnost internetových stránek. PHP skripty slouží především k propojení webu a databázových serverů. Pro internetový obchod je použit databázový systém MySQL, jehož hlavními autory jsou Michael Widenius a David Axmark. Jedná se o multiplatformní systémovou databázi, která komunikuje pomocí jazyka SQL. Tento databázový systém umožňuje rozložení instalace „serverovouÿ a „klientskouÿ a používání obou částí odděleně (Zajic, 2005). MySQL nabízí několik typů databázových tabulek (storage engine), které se liší svými možnostmi, použitím a způsobem ukládání dat do souborů (Wikipedia MySQL, 2008): • MyISAM - nejpoužívanější, bez podpory transakcí • InnoDB - podpora transakcí • BerkeleyDB (BDB) • MEMORY - práce s daty v paměti • NDB Cluster - úložiště pro clusterované databáze (od verze 5.0) • ARCHIVE - komprimované tabulky, bez podpory indexů • CSV - ukládání dat v prostých textových souborech
4.3
4.3
Elektronické zpracování dat
20
Elektronické zpracování dat
Pro rutinní operace, které jsou nezbytnou součástí pracovní náplně zaměstnanců firmy BMC Brno, s. r. o., slouží běžný kancelářský balík MS Office. Nejvyužívanějšími aplikacemi jsou beze sporu MS Word a MS Excel. Každý zaměstnanec si vytvořil svoji sadu šablon, které má denně k dispozici a ulehčují mu jeho vlastní práci. Komunikace mezi personálem společnosti a dodavatelskými podniky je zajištěna prostřednictvím elektronické pošty a instant messagingu. Skrze e-mailové zprávy jsou vytvářeny objednávky zboží, které jsou poté zaslány zahraničnímu dodavateli. Jestliže se vyskytne nějaký problém, je nejvhodnější ho řešit přímo a proto firma využívá interaktivní komunikace prostřednictvím ICQ či Skypu. Hlavní výhodou instant messegingu je okamžitá odezva druhé strany a možnost přenosu souborů v reálném čase. ICQ vyvinula v roce 1996 izraelská firma Mirabilis a nynějším vlastníkem je společnost AOL, která jej v roce 1998 koupila za 407 milionů dolarů (Wikipedia ICQ, 2008). Slouží především k posílání textových zpráv, videokomunikaci a přenosu souborů. Obdobným programem je Skype, který využívá peer-to-peer komunikace a umožňuje provozovat internetovou telefonii (VoIP) a Instant messaging (Wikipedia - Skype, 2008). Hlavní předností obou programů je bezplatné používání a dostupnost po celém světě. S těmito programy mizí neustálé přepojování telefonistek a chvíle nejistoty, zda je protější strana vůbec v dosahu. Pro evidenci zahraničních faktur společnost využívá aplikace, která je vytvořená přímo jí na míru. Jedná se o databázi MySQL, propojenou pomocí jazyka PHP s HTML. Tyto tři prvky tvoří společně uživatelsky příjemné prostředí, ve kterém se dají přijaté faktury evidovat a především z uložených dat vytvářet potřebné sestavy a statistiky. Díky této poměrně jednoduché aplikaci má firma neustále přehled o svých závazcích, které dokáže včas plnit a tím zvyšovat svoji bonitu a udržovat své postavení na španělském trhu. Achillovou patou celého podniku je tvorba nakládek jednotlivých kamionů. Společnost BMC Brno spolupracuje s téměř stovkou dodavatelských firem, které jsou umístěny v různých španělských regionech. Největším problémem je tedy koordinace zboží, místa a času. Společnost samozřejmě ví, jakého zboží je na skladě nedostatečné množství, ovšem jednotliví výrobci mohou sídlit v různých lokalitách. Dalším negativním faktorem jsou i odlišné dodací lhůty jednotlivých výrobních podniků, které je potřeba zohlednit při vypravování kamionu. K těmto problémům se dále přidávají i požadavky nasmlouvaného přepravce, který si nárokuje především maximální efektivitu jednotlivých zastávek pro nakládání zvoleného typu vozu. Žádný nainstalovaný program v podniku ovšem neumožňuje tvorbu objednávek podle lokality sídla výrobce a tudíž vzniká problém, který může celý logistický systém velmi zpomalit. Společnost BMC Brno, s. r. o. klade důraz předvším na zákaznický servis a zpomalení logistiky by znamenalo velký problém. Z tohoto důvodu je nezbytné situaci co nejrychleji a efektivně vyřešit.
5
TVORBA NOVÉHO LOGISTICKÉHO SYSTÉMU
5 5.1
21
Tvorba nového logistického systému Databáze
Základem tvořeného logistického systému je databáze, do které se budou soustřeďovat data, se kterými bude možné poté pracovat. Jednotlivé tabulky musí odpovídat požadavkům uživatele a zároveň splňovat normální formy, aby v nich bylo možné efektivně vyhledávat. Při návrhu hraje hlavní roli komunikace se zadavatelem. Jde o to, aby byly zkoordinovány veškeré jeho požadavky a možnosti s návrhem a implementací tvořené databáze. V prvotní fázi projektu je nutné hlídat zadání, aby v pozdějších krocích nedocházelo k vytváření nadbytečných elementů, redundanci dat či nemožných propojení jednotlivých entit. Z pohledu zadavatele je nutné dodržet stanovený rozpočet a termín dodání, což může ovlivnit výběr databázového systému i počet osob pracujících na projektu. 5.1.1
Konceptuální úroveň
Jelikož je většinou zadavatel a tvůrce databáze ze zcela jiného odvětví, prvním krokem je nalezení společné řeči. Musí spolu konkretizovat požadavky na databázi, ty formalizovat a na jejich základě vytvořit podklad pro návrh datové základny (Šimůnek, 1999). Takto vytvořený konceptuální model lze dále detailněji zpracovat. Návrh databáze pro firmu BMC Brno, s. r. o. byl tvořen pomocí entitě-relačního diagramu, kde entity byly znázorněny pomocí obdélníků a vztahy čárou spojující jednotlivé entity. U každého vztahu byla dále určena kardinalita (násobnost) a parcialita (povinnost).
Obr. 5: Konceptuální model databáze pro logistický systém
5.1
Databáze
5.1.2
22
Logická úroveň
V této části návrhu je důležité detailně popsat data a vše vyjádřit pomocí relačního schématu. Toto schéma obsahuje atributy všech entit, vyznačení primárních klíčů a vzájemných vztahů (Šimůnek, 1999). Relační schéma poté slouží jako podklad pro implementaci databáze do konkrétního databázového systému.
Obr. 6: Entitně-relační diagram databáze pro logistický systém
5.1.3
Implementační úroveň
Společnost BMC Brno si pro tento projekt vybrala databázový systém společnosti Oracle Corporation. Jelikož se v současnosti jedná o zkušební provoz je využito produktu Oracle Database 10g Express Edition, který je určený zejména pro vývojáře a studenty. Tato databáze může být nainstalovaná na jakémkoliv hostitelském počítači, uživateli nabízí 4GB volného místa pro jeho data a na uživatelově harddisku zabírá 1GB paměti (Oracle Database, 2007). Z relačního schématu je zřejmé, že se v databázi k označení klíčové položky tabulky často používá ID, které uživatel ke své práci nepotřebuje, ale je nezbytné pro uložení dat. Z tohoto důvodu se v tomto případě využívá sekvencí, které umožňují automatické získání posloupností čísel (Šimůnek, 1999). Uživatel se o tento atribut sice nemusí starat, ale nadále je v tabulce použit jako klíčový identifikátor.
5.1
Databáze
23
Sekvencí je ve vytvářeném systému celkem 11 a slouží k tvorbě všech ID. Každá sekvence má své jméno, počáteční hodnotu a konstantu, o kterou se zvyšuje při každém dalším záznamu. Všechny jsou tvořeny analogicky, tudíž je zbytečné popisovat tvorbu pro každou sekvenci zvlášť a jako demonstrace bude použit jen jeden příklad. CREATE SEQUENCE p prijem START WITH 1 INCREMENT BY 1; Databáze skladového hospodářství firmy BMC Brno, s. r. o. se skládá ze 14 tabulek, které jsou vzájemně propojeny. Aby nedošlo k zapsání nekorektních dat, jsou některé atributy opatřeny podmínkami, které zaručují logické ukládání. V celé databázi jsou k nalezení tři druhy tabulek. Nejčastějším vytvářeným druhem byla kernelova entita, která popisuje objekty reálného světa. Pro dodržení 3. normální formy bylo nezbytné vytvořit několik číselníků a v neposlední řadě byla nutná implementace asociativních tabulek, které transformují vztah M:N na dva dílčí 1:N. Příklady tvořených tabulek: • Číselníku CREATE TABLE p destinace (id number(10) primary key, zeme varchar2(30) not null); • Kernelova entita CREATE TABLE p zbozi (id number(10) primary key, ean number(20) unique, nazev varchar2(100) not null, prum prodej number(10), min zasoba number(10), expirace number(2), baleni number(5), objem number(8,3) not null, vaha br decimal(8,3), kusu karton number(4) not null, kartonu rada number(3), rady paleta number(3) not null); • Asociativní entita CREATE TABLE p objednavka (cislo obj number(10) primary key, dodavatel references p dodavatel not null, zbozi references p zbozi not null, pocet kusu number(10), datum date not null, kamion references p kamion); Aby celý databázový systém fungoval správně a vhodně reagoval na požadavky uživatele, je nutné některé tabulky ošetřit triggery. Uživatele aplikace nezajímá vzájemná provázanost tabulek, ale chce pracovat s databází jako s celkem. Jestliže je jeho požadavkem např. smazání určitého záznamu, který je propojen s dalšími tabulkami, je nutné jeho odstranění i z ostatních navázaných tabulek. Právě k těmto operacím slouží spouštěče (triggery), které na základě určité události vyvolají další procesy.
5.1
Databáze
24
V databázi skladového hospodářství je použit např. trigger pro tabulku evidující jednotlivé komodity. Jestliže uživatel bude mít zájem na odstranění záznamu z této tabulky, běžný příkaz tuto akci neprovede, jelikož záznam k odstranění odkazuje i na další tabulky. V tomto konkrétním případě je tabulka zboží dále propojena s tabulkou katalog. Jestliže smažeme záznam z této tabulky, musíme ošetřit i další výskyty, a to konkrétně v tabulkách objednávka, naskladnění a vyskladnění. Příklad triggeru: • Mazání v tabulce zboží CREATE OR REPLACE TRIGGER zb before delete on zbozi for each row declare cursor cur1 is select id from p naskladneni n, p katalog k where kat cislo=n.zbozi and k.zbozi=:old.id; cursor cur2 is select id from p vyskladneni v, p katalog k where kat cislo=v.zbozi and k.zbozi=:old.id; cursor cur3 is select cislo obj from p objednavka o, p katalog k where o.zbozi=kat cislo and k.zbozi=:old.id; cursor cur4 is select kat cislo from p katalog where zbozi = :old.id; vysledek1 cur1%ROWTYPE; vysledek2 cur2%ROWTYPE; vysledek3 cur3%ROWTYPE; vysledek4 cur4%ROWTYPE; begin for vysledek1 in cur1 loop delete from p naskladneni where id=vysledek1.id; end loop; for vysledek2 in cur2 loop delete from p vyskladneni where id=vysledek2.id; end loop; for vysledek3 in cur3 loop delete from p objednavka where cislo obj=vysledek3.cislo obj; end loop; for vysledek4 in cur4 loop delete from p katalog where kat cislo=vysledek4.kat cislo; end loop; return; end; Vytvořením tabulek a triggerů se zdá být implementační část hotova. S databází lze již plnohodnotně pracovat, ale je nutné počítat i s implementací dalších objektů, jako jsou např. funkce a procedury, které by mohl uživatel využít pro uspokojení svých potřeb. Databáze je naimplementována a nyní je třeba ji naplnit daty, aby z nich bylo možné dále získávat potřebné informace. Jelikož běžný uživatel většinou nezná jazyk SQL, je třeba pro jeho činnost vytvořit aplikaci, která by mu umožňovala pracovat s databází bez znalosti příkazů strukturovaného dotazovacího jazyka.
5.2
Webové rozhraní
5.2
25
Webové rozhraní
Jelikož je firma BMC Brno, s. r. o. již zvyká obsluhovat databázi prostřednictvím webového rozhraní, vybrala si i v tomto případě stejnou možnost. Na základě požadavků vrcholového managementu byl zachován jednotný vizuální styl společnosti a podle jejich design manuálu byly využity pro tvorbu webových prezentací také kaskádové styly. Úvodní stránka obsahuje základní informace a návod, jak s aplikací pracovat. Jsou zde uvedeny požadavky, které je nutné dodržovat, aby byla databáze plněna korektními daty. Vše bylo konzultováno s managementem firmy a tudíž je aplikace tvořena přímo na míru společnosti BMC Brno. Práce s databází je rozdělena do pěti kategorií, které reprezentují jednotlivé operace v databázi. První část je věnovaná editaci tabulek, kde uživatel může vkládat svá data. Kdyby došlo k nějakým změnám, další sekce umožňuje upravit stávající data, a tím udržovat databázi stále v aktuálním stavu. Třetí oddíl je věnován objednávkám, které jsou stěžejní v celém systému. Na objednávky navazuje další kategorie, kterou jsou sklady. A v poslední části se nachází sestavy, které mají zejména informační charakter. 5.2.1
Editace tabulek
Uživatel má možnost editovat sedm různých tabulek. Veškerá data vkládá pomocí formuláře, který je vytvořen jazykem HTML a data jsou ke zpracování předána prostřednictvím netod hypertextového značkovacího jazyka. Většinou se jedná o ruční zaznamenávání dat. Jestliže ovšem dojde k propojení tabulek, místo textového políčka je uživateli nabídnuto rolovací menu, ze kterého je možné vybrat libovolnou hodnotu. Po stisknutí tlačítka „Vložÿ se provede zápis do databáze. Textová pole jsou tvořena podle značek patřícím k formulářum HTML. Jestliže ale chceme vytvořit rolovací menu, které bude nabízet položky podle obsahu databáze je nutné se s ní nejprve spojit. Toto propojení umožňuje jazyk PHP, kde pomocí stukturovaného dotazovacího jazyka můžeme provést výběr informací z databáze. V Praxi to vypadá následovně: <select style="background-color: white" name="dodavatel"> ".$result[1]." \n"; } ?> |
5.2
Webové rozhraní
26
Výsledný formulář má poté tuto podobu:
Obr. 7: Formulář pro editaci tabulky zboží
Po stisknutí tlačítka „Vložÿ se data zpracují. Nejprve je nutné připojení k databázi, poté naplnění proměnných konkrétními daty a na závěr nejdůležitější operace - vložení dat do databáze. Zde již většina příkazů probíhá prostřednictvím PHP a SQL. Postup pro operace s databází: • Pripojení k databázi $conn = OCILogon("xkatovsk", "pwxkatovsk", "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=akela.mendelu.cz) (PORT=1521))(CONNECT DATA=(SID=vseved)))") or die ("Could not connect to Oracle database!"); • Naplnění proměnných $kat cislo=$ GET[’kat cislo’]; if (!isset ($kat cislo)) { $kat cislo=’’; $err=true;} ... • Příkazy pro databázi: $sql="INSERT INTO p zbozi VALUES (p zb.nextval, ’".$ean."’, ’".$nazev."’, ’".$prum prodej."’, ’".$min zasoba."’, ’".$expirace."’, ’".$baleni."’, ’".$objem."’, ’".$vaha br."’, ’".$ks karton."’, ’".$karton rada."’, ’".$rad paleta."’)";
5.2
Webové rozhraní
27
• Vložení záznamu do propojené tabulky: $sql="INSERT INTO P KATALOG VALUES (’".$kat cislo."’,’".$dodavatel."’,p zb.currval,’".$cena ks."’)"; Po správném provedení těchto příkazů systém vypíše „Karta zboží byla založenaÿ. Analogicky probíhají i ostatní editace tabulek. Uživatel může z jedné do druhé přecházet pomocí nabídkového menu umístěného vlevo na stránce. 5.2.2
Úprava tabulek
Úpravy tabulek je možné provádět opět prostřednictvím formuláře. Jeho součástí jsou dvě rolovací menu, na základě kterých uživatel určí, který řádek tabulky chce aktualizovat a jaký sloupec bude měnit. Třetí políčko je textové, do kterého se vyplňuje nová hodnota atributu. Ve spodní části formuláře jsou zobrazena dvě výběrová tlačítka, aby uživatel mohl zvolit, jestli chce záznam aktualizovat či úplně smazat. Operace se provedou opět po odeslání formuláře, stisknutím tlačítka „Proveď ÿ.
Obr. 8: Formulář pro úpravy tabulky dodavatel
U tabulky dodavatel je nutné rozlišovat tři operace. Nejprve je nezbytné rozlišit, jestli mají být data aktualizována či smazána. Jestliže má dojít k aktualizaci, je nutné zjistit o jaký sloupec jde. Pakliže chce uživatel aktulizovat sloupec destinace je potřeba nejprve zjistit ID dané země a poté ho teprve zapsat do tabulky dodavatel. Operace prováděné s tabulkou: • Aktualizace sloupce destinace: – Zjištění id země $sql="SELECT id FROM P DESTINACE WHERE zeme=’".$zmena."’"; $rs=OCIParse($conn,$sql); @OCIExecute($rs); $error=OCIError($rs); ocifetchinto($rs,&$result,OCI RETURN NULLS);
5.2
Webové rozhraní
28
– Aktualizace sloupce destinace $sql="UPDATE P DODAVATEL SET $sloupec=’".$result[0]."’ WHERE id=’".$dodavatel."’"; • Aktualizace ostatních sloupců: $sql="UPDATE P DODAVATEL SET $sloupec=’".$zmena."’ WHERE id=’".$dodavatel."’"; • Smazání záznamu: $sql="DELETE FROM P DODAVATEL WHERE id=’".$dodavatel."’"; 5.2.3
Objednávky
Tato část skladového hospodářství je pro firmu BMC Brno, s. r. o. naprosto nepostradatelná. Doposud žádný program, který má společnost k dispozici neumožňuje tvorbu objednávek podle umístění sídla výrobce. Tato sekce řeší jak problémy s nakládkami kamionů, tak tvorbou samotných objednávek. Nová objednávka se tvoří prostřednictvím formuláře, který je měněn podle požadavků uživatele. Po zadání data objednávky a čísla kamionu si uživatel může vybrat z různých typů vozů. Jelikož dané vozidlo může mít v nabídce více dopravců, se kterými má firma uzavřenou smlouvu, po potvrzení výběru vozu následuje volba samotného přepravce. V dalším rolovacím menu se nelézá nabídka oblastí, ve kterých se nacházejí sídla dodavatelů. Po potvrzení výběru, se do následujícího menu vypíší dodavatelé z dané oblasti. V tomto okamžiku je vyplněn základní formulář a uživatel může zjistit seznam výrobků. Jestliže bude chtít nějakou položku objednat, stačí jen napsat počet kusů a vše potvrdit stisknutím tlačítka „Objednejÿ.
Obr. 9: Objednávkový formulář
5.2
Webové rozhraní
29
Jelikož je v reálném světě zcela běžné, že se každým dnem vše mění, musí mít i uživatel k dispozici změnu svých nedošlých objednávek. Na základě čísla kamionu lze měnit jak jednotlivé objednané komodity, tak i dopravce, který má zboží dovézt. Aby nedošlo k přeplnění vozu, vypisují se uživateli informace o naplněnosti a tonáži. Zobrazení změn objednávek vypadá takto:
Obr. 10: Změny objednávek
V první řadě je nutné uživatele informovat o zvoleném typu vozu. Toho je docíleno běžným výběrem dat z databáze, kdy je na monitor vypsána váha auta a maximální možný počet palet. V případě aktuálního stavu, je nutné vytvořit funkce, které by dané hodnoty počítaly. U hmotnosti naloženého zboží je nutné vypočítat váhu jednotlivých položek, sečíst ji s ostatními a převést na tuny, ve kterých je zaznamenána i nosnost vozu. Váha naloženého zboží $sql="SELECT vaha zbozi (pocet ks, vaha br) from P ZBOZI z, P KATALOG k, P OBJEDNAVKA o where z.id=k.zbozi and kat cislo=o.zbozi and kamion=’".$ GET[’kamion’]."’"; $rs=OCIParse($conn,$sql); @OCIExecute($rs); $error=OCIError($rs); while (ocifetchinto($rs,&$result,OCI RETURN NULLS)) { $vaha zb=$vaha zb+$result[0]; } $vaha zb=round($vaha zb/1000000,3); kde funkce vaha zbozi je: CREATE OR REPLACE function vaha zbozi(ks decimal, vaha decimal) return varchar2 as
5.2
Webové rozhraní
30
suma decimal(20,3); i number; begin suma:=0; for i in 1..ks loop suma := suma + vaha; end loop; return to char(suma); end; V druhém případě, kdy jsou vypisovány počty naložených palet, je nutné brát v úvahu nekompletnost paletové jednotky. Nejmenším nasmlouvaným přepravovatelným prvkem je jedna paleta, a tudíž i když si firma objedná pouhé tři kusy, budou mu dopraveny právě na jedné paletě. To je nutné zohlednit i v tvořeném dotazu na databázi. Naložené palety $sql="select ceil (pocet pal(v.obj ks, paleta(z.ks karton, z.krt rada, z.rad paleta))) from (select kat cislo, z.nazev, sum(pocet ks) obj ks from P OBJEDNAVKA o, P KATALOG k, P ZBOZI z where k.zbozi=z.id and kat cislo=o.zbozi and kamion=’".$ GET[’kamion’]."’ group by kat cislo, z.nazev) v, P KATALOG k, P ZBOZI z where v.kat cislo=k.kat cislo and k.zbozi=z.id"; $rs=OCIParse($conn,$sql); @OCIExecute($rs); $error=OCIError($rs); while (ocifetchinto($rs,&$result,OCI RETURN NULLS)) { $nal pal = $nal pal + $result[0]; } kde funkce pocet pal je: CREATE OR REPLACE function pocet pal(obj number, maxi number) return number as begin RETURN obj / maxi; exception when dup val on index then return null; end; a funkce paleta je: CREATE OR REPLACE function paleta(ks karton number, krt rada number, pocet rad number) return number as suma number := 0;
5.2
Webové rozhraní
31
begin suma := ks karton * karton rada * pocet rad; return suma; end; Druhé tlačítko na této stránce umožňuje měnit přepravce. Tak jako informace o naplnění kamionu se vypíše i zvolený dopravce. Jestliže chce uživatel udělat změnu, vybere z rolovacího menu jiného a volbu potvrdí. Dalšími funkcemi sekce Objednávky jsou sestavy objednávek. Je zde možnost vypsání kompletního seznamu všech objednávek a také zobrazení objednávek podle zvoleného katalogového čísla. Poslední dva odkazy mají spíše informativní charakter, ale zároveň jsou pro podnikatelskou činnost nezbytné. Každý dobrý podnik se totiž musí zabývat nejen svojí budoucností, ale také analyzovat svoji minulost. 5.2.4
Sklad
Sekce sklad je rozdělena na tři části. První se věnuje příjmu zboží. Zde se na základě výběru kamionu vypíše seznam naložených komodit a uživatel má možnost určit sklad, na který bude zboží směřovat. Jelikož se v praxi běžně stává, že objednané položky nedorazí v požadovaném množství, musí mít uživatel možnost měnit objednané kusy zboží. Při naskladnění zboží se také sleduje šarže zboží, která určuje jeho trvanlivost. Toto datum je potřeba ručně zaznamenat.
Obr. 11: Formulář pro příjem zboží na sklad
5.2
Webové rozhraní
32
Skladové hospodářství se skládá jak z příjmů tak výdejů. Příjmy jsou řešeny na základě objednaných kamionů a výdeje na základě katalogového čísla. Uživateli jen stačí vyplnit formulář, data odeslat a zboží se tímto vyskladní. Výdej zboží proběhne po zadáni data, čísla výdejky a zadání katalogového čísla komodity, kterou chce uživatel vyskladnit. Je nezbytné vybrat také sklad, ze kterého má být zboží odebráno. Po potvrzení se zobrazí tabulka s názvem zboží, minimální a aktuální zásobou a textovým polem, do kterého uživatel zadá požadované množství, které má být vyskladněno. V některých případech je potřeba zjistit naskladněné zboží. Právě k této operaci slouží poslední položka sekce Sklad. Uživatel z rolovacího menu vybere jen sklad, který chce zobrazit a svoji volbu potvrdí. Po odeslaní dotazu se vypíše informace o technické kapacitě skladu a aktuálním zaplnění. Následuje tabulka s identifikací zboží, minimální a aktuální zásobou. Tento seznam má uživateli poskytnout základní přehled o naskladněných položkách, na jeho základě lze snadno určit, které zboží je před vyčerpáním a třeba doplnit. Výpis aktuálního stavu palet: SELECT ceil (pocet pal(s.sk ks, paleta(z.ks karton, z.karton rada, z.rad paleta))) from (select kat cislo, z.nazev, sum(n.pocet kusu) sk ks from P NASKLADNENI n, P PRIJEM ZBOZI p, P SKLADY s, P KATALOG k, P ZBOZI z where n.zbozi=kat cislo and k.zbozi=z.id and n.prijem=p.id and p.sklad=s.id and zkratka=’".$ GET[’sklad’]."’ group by kat cislo, z.nazev) s, P KATALOG k, P ZBOZI z where s.kat cislo=k.kat cislo and k.zbozi=z.id
Obr. 12: Seznam zboží na skladě
5.2
Webové rozhraní
5.2.5
33
Seznamy
Velmi důležité pro činnost firmy jsou informace. V kategorii seznamy jsou k dispozici čtyři sestavy, které umožňují běžný výpis dat z databáze do tabulky. První dva odkazy zobrazují seznam uživatelů a zboží, které má podnik ve svém portfoliu. Zobrazená data mohou sloužit i jako marketingový zdroj informací pro potenciální zákazníky.
Obr. 13: Seznam dodavatelů
Poslední dvě položky této sekce se zabývají celkovou sumarizací. Na základě údajů o objednávaném zboží, je možné stanovit nejžádanější komodity a dodavatele, se kterými společnost nejvíce spolupracuje. Tyto informace jsou pro firmu nesmírně důležité, jelikož na jejich základě, může vyhodnotit, na které zboží se má v budoucnu zaměřit, kam je potřeba směřovat reklamu a které dodavatele např. pozvat na mezinárodní potravinářský veletrh.
Obr. 14: Seznam nejobjednávanějšího zboží
5.2
Webové rozhraní
Seznam nejobjednávanějších komodit: SELECT rownum, v.zb, v.dod, v.obj ks from (SELECT z.nazev zb, d.nazev dod, sum(pocet ks) obj ks from P OBJEDNAVKA o, P KATALOG k, P ZBOZI z, P DODAVATEL d where d.id=dodavatel and o.zbozi=kat cislo and k.zbozi=z.id group by z.nazev, d.nazev order by obj ks desc) v where rownum<11
34
6
DISKUSE
6
35
Diskuse
Společnost BMC Brno, s. r. o. je českým specialistou a poradcem pro Španělsko (zaměřuje se především na dovoz oliv, olivového oleje, vína, konzervovaných masných výrobků, sterilovaného ovoce a zeleniny, koření, ochucovadel a suchých plodů). V jejím portfoliu ovšem nejsou jen španělské produkty, nachází se zde také specifické výrobky z Francie, Japonska a USA, které se týkají balících technik potravin, kávy a kosmetiky s léčivými účinky. Tento podnik se pohybuje na českém trhu již od roku 2000, tudíž má již vytvořenou určitou tradici a skupinu svých zákazníků. Firma si uvědomuje, že zákazníci jsou absolutně nejdůležitějším prvkem úspěšného obchodu a proto je nutné se o ně umět vhodně postarat a být flexibilní k jejich požadavkům. Společnost BMC Brno, proto v tomto roce zaměřila svoji pozornost především na zákaznický servis. Aby dosáhla svého vytyčeného cíle, začala spolupracovat s renomovaným design studiem, které dle požadavků vytvořilo novou webovou prezentaci s aktivním internetovým obchodem. Tímto krokem se zásadním způsobem zkvalitnil zákaznický servis. Kupující již nemusí vytvářet faxovou objednávku či se telefonicky spojovat s provozovnou, ale může využít jednoduchého internetového objednávkového systému. Komunikace se zákazníkem je ovšem jen polovina úspěchu. Firma může mít dokonalý objednávkový systém pro kupující, ale jestliže nebude schopná dodat své zboží ve stanovený čas, na požadované místo a určeném množství, rychle o své zákazníky přijde. Je tedy nezbytné zajistit optimální vstupní toky, které by uspokojovali potřeby zákazníků podle jejich požadavků a za co nejnižší přijatelné náklady. Do této doby se objednávky tvořily podle požadavků skladníků, kteří předali své podklady logistickému centru. Zde se veškeré žádosti vyhodnotily a začaly se tvořit objednávky. Problém byl ovšem v tom, že téměř stovka španělských dodavatelů byla rozseta po celé zemi. Nákupčí tudíž objednával kamion velmi dlouhou dobu, jelikož musel analyzovat, v jakém pořadí budou jednotlivé nakládky tvořeny.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Objednání jednoho kamionu zahrnuje: Identifikace potřeby Analýza statistiky prodejnosti Určení optimálního množství Zjištění dodací doby výrobce Vyhledání místa nakládky Výpočet váhy pro objednané množství Vytvoření objednávky Opakování kroků pro 1. - 7. pro ostatní komodity Synchronizace nakládek dle místa a času Objednání kamionu u přepravce
6
DISKUSE
36
Zejména problém objednávek, který velmi negativně ovlivňoval celý logistický systém byl řešen v této práci. Na základě poskytnutých informací společností BMC Brno bylo možné vytvořit aplikaci, která by umožňovala plánování objednávek podle umístění nakládací lokality výrobce. Díky tomu, že jsou objednávky prováděny v elektronické podobě, je možné uložená data využívat i pro marketingové a statistické účely.
7
ZÁVĚR
7
37
Závěr
Logistický řetězec jsou na sebe navazující operace, které umožňují plynulý pohyb zboží a informací. Aby tyto procesy probíhaly kontinuálně, je potřeba veškeré toky optimalizovat. V dnešní moderní době se k řízení jednotlivých toků využívá zejména výpočetní technika, a tudíž je nebytné veškerá firemní data převádět do elektronické podoby. Cílem této práce bylo vytvoření části logistického systému firmy BMC Brno, s. r. o., který by umožňoval plynulý import zboží dle specifických požadavků centra řízení dodávek. Tato aplikace má řešit zejména problém koordinace objednávek a nakládek jednotlivých kamionů. Jedná se o velmi složitý proces, který musí skloubit nákup stovek položek od téměř stovky dodavatelů, kteří jsou rozprostřeni po celém území Španělského království. Dalšími faktory ovlivňující pořízení zboží jsou jednotlivé podmínky samotných výrobců, ať už se jedná o dobu dodání, minimální velikost nakládky či dobu expirace.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Postup při tvorbě logistického systému: Seznámení s portfoliem Současné možnosti používaného softwaru Analýza prostředí firmy Analýza zboží a dodavatelů Odborná diskuse s jednotlivými pracovníky Nalezení vhodných metod a nástrojů pro logistický systém Návrh logistického systému Vytvoření prototypu Konzultace se zadavatelem a odstranění nedostatků či doplnění dalších částí Tvorba logistického systému Testování Zpětná vazba
Na základě tohoto postupu vznikla aplikace, která umožňuje řešit veškeré dosavadní logistické problémy společnosti BMC Brno. Objednávky jsou tvořeny efektivněji, což má významný dopad nejen na celkové náklady podniku, ale také na efektivitu práce jednotlivých zaměstnanců, kteří mají ve své pracovní náplni na starost tuto oblast. Ačkoliv se to na první pohled nezdá, importní činnost je jednou z nejdůležitějších operací každé obchodní firmy zaměřené na dovoz. Po implementaci nového logistického systému, je společnost BMC Brno připravena na veškeré proměnné požadavky trhu, které pochází nejen od samotných zákazníků, ale také od jednotlivých dealerů a obchodních zástupců. Po zavedení tohoto logistického systému vzniklo pružné propojení vstupních a výstupních operací. Nákupčím se vyčlenil další časový prostor pro detailnější komunikaci s dodavateli, zdokonalily se vstupy zákaznického servisu a především bylo umožněno další zpracování uložených dat. Na základě evidence zboží, objednávek
7
ZÁVĚR
38
a příjemek a výdejek na sklad lze tvořit příslušné statistické sestavy, které zásadním způsobem mohou měnit rozhodování podniku. Z nové zkušenosti s logistickým systémem bych firmě v tomto okamžiku doporučila využívat určité služby formou outsourcingu. Bylo by nanejvýš vhodné, aby společnost předa své skladovací operace specializované distribuční firmě, která by zabezpečila všechny nutné kroky k dokonalému zákaznickému servisu. Pokud se firmě BMC Brno, s. r. o. podaří najít takovouto distribuční společnost, dojde k profesionálnímu propojení logistických vstupů a výstupů. Tímto vznikne obrovská síla ustát konkurenční tlak ostatních firem na trhu.
8
8
LITERATURA
39
Literatura
What’s It All About?. Oak Brook, IL: Council of Logistics Management, 1993. . Bernard La Londe, James M. Masters. Proceedings of the Annual Conference of the Council of Logistics Management The 1996 Ohio State University Survey of Career Patterns in Logistics. . Databáze [online]. Poslední aktualizace 25. 4. 2008, [cit. 2008-4-20]. Dostupný z . Milan Šimůnek. SQL - Kompletní Kapesní Průvodce Grada Publishing, 1999. ISBN 80-247-0661-X. . Jaromír Skřivan. Databáze a jazyk SQL [online]. Poslední aktualizace 4. 8. 2000, [cit. 2008-4-22]. Dostupný z . Martin Pokorný. Vyvíjíme databázový a informační systém VII [online]. Poslední aktualizace 16. 6. 2004, [cit. 2008-4-22]. Dostupný z . Karel Žák. Modelování databází [online]. Poslední aktualizace 3. 4. 2002, [cit. 20084-22]. Dostupný z . Slávek Rydval. Normální formy [online]. Poslední aktualizace 7. 8. 2005, [cit. 2008-4-22]. Dostupný z . Oracle Corporation. Profil společnosti Oracle [online]. Poslední aktualizace 2. 5. 2007, [cit. 2008-4-24]. Dostupný z . Úvahy nad překladem slova ”grid” do češtiny [online]. Poslední aktualizace 6. 12. 2007, [cit. 2008-4-24]. Dostupný z . Oracle [online]. Poslední aktualizace 23. 3. 2008, [cit. 2008-4-24]. Dostupný z . Oracle Corporation. Oracle Collaboration Suite - obchodní přínosy [online]. Poslední aktualizace 2. 5. 2007, [cit. 2008-4-24]. Dostupný z . SQL [online]. Poslední aktualizace 21. 1. 2008, [cit. 2008-4-26]. Dostupný z . HyperText Markup Language [online]. Poslední aktualizace 3. 5. 2008, [cit. 2008-428]. Dostupný z . Dave Raggett Getting started with HTML [online]. c1994 - 2003, [cit. 2008-4-28]. Dostupný z . Markup validation service [online]. c1994 - 2007, [cit. 2008-4-28]. Dostupný z . CSS [online]. c1998 - 2008, [cit. 2008-4-30]. Dostupný z .
8
LITERATURA
40
Cascading Style Sheets [online]. Poslední aktualizace 30. 4. 2008, [cit. 2008-4-30]. Dostupný z . CSS Tutorial [online]. c2007 [cit. 2008-4-30]. Dostupný z . Petr Zajíc Serial PHP [online]. Poslední aktualizace 4. 2. 2005, [cit. 2008-5-2]. Dostupný z . PHP [online]. Poslední aktualizace 26. 4. 2008, [cit. 2008-5-2]. Dostupný z . Roman Diviš .htaccess komplexní přehled jeho funkcí (1.) [online]. c2000 - 2005, [cit. 2008-5-2]. Dostupný z . Ekonomický systém POHODA 2008 [online]. c2007, [cit. 2008-5-6]. Dostupný z . Extensible HyperText Markup Language [online]. Poslední aktualizace 31. 3. 2008, [cit. 2008-5-8]. Dostupný z . Petr Zajíc MySQL (2) - Instalujeme databázi MySQL [online]. Poslední aktualizace 4. 3. 2005, [cit. 2008-5-10]. Dostupný z . MySQL [online]. Poslední aktualizace 30. 1. 2008, [cit. 2008-5-10]. Dostupný z . ICQ [online]. Poslední aktualizace 31. 3. 2008, [cit. 2008-5-12]. Dostupný z . Skype [online]. Poslední aktualizace 23. 4. 2008, [cit. 2008-5-12]. Dostupný z . Oracle Corporation. Profil společnosti Oracle [online]. Poslední aktualizace 15. 5. 2008, [cit. 2008-5-16]. Dostupný z .
Přílohy
A
A
POUŽITÉ PŘÍLOHY
Použité přílohy
Přiložené CD se zdrojovými kódy
42