%vlna 22.12.00:45
%\kapitola{Implementácia a testovanie práce}
\kapitola{Implementácia}
Zaužívaná konvencia prikazuje definovať názov objektu vyvíjaného v~systéme  
nevytvoreného priamo vývojármi firmy SAP tak, aby začínal znakmi Y alebo Z.
Komponenty Menu a skladových operácii sú preto pomenované s~prefixom  \verb\ZMC_*\.
 Rovnako tabuľky, dátové typy a parametre zadefinované pre podporu riešenia budú začínať znakom \emph{Z}.
 Všetky tieto objekty sú ukladané do vývojového balíčka (paket) pomenovaného \verb\ZRF\.

Implementácia komponentov mobilného prístupu do skladového hospodárstva
je realizovaná technológiou Web Dynpro (WD4A).
Model-view-controller charakter tejto technológie sa zakladá na separácii
implementácie do častí:
\begin{itemize}
 \item užívateľského rozhrania -- prezentácia dát + spracovanie užívateľskej interakcie, 
 \item riadiacej logiky  -- správa dát aplikácie + prístup k~dátam systému. 
\end{itemize}
Na implementáciu Web Dynpro komponentu je tak možné pozerať v~týchto rovinách:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%UI
\sekce{Užívateľské rozhranie}
Užívateľské rozhranie (UI) nespravuje dáta aplikácie,
len pristupuje k~hodnotám spravovaným a umiestneným v~kontroléri celého komponentu.

UI v~komponente pozostáva z~pohľadov (views). Tých väčšinou býva 
 viac a tvoria sémanticky nezávisle časti užívateľského rozhrania komponentu.
Napríklad formulár pre zadávanie vstupných dát môže byť realizovaný ako samostatný pohľad,  
rovnako aj pohľad pre zobrazenie a listovanie v~zozname hodnôt, atď.
%Pohľady majú vlastné kontroléry, tie slúžia na volanie metód z kontroléra komponenty.

Pre spustenie webovej aplikácie nad komponentom, musí mať definovaný primárne zobrazovaný pohľad.
V~danom momente je aktívny vždy výlučne jeden pohľad a prepínaním
medzi zobrazenými pohľadmi je realizovaná sekvencia krokov aplikácie.

Užívateľské rozhranie komponentov pre jednotlivé skladové aplikácie,
 je formované mapovaním jedného alebo viacerých funkčných blokov 
z~diagramu aktivít aplikácie (podkapitola \ref{skladove_aplikacie})
na funkčne odpovedajúci pohľad. 

\podsekce{Pohľad komponentu}
Je časť komponentu viditeľná vo webovej aplikácií,  do ktorej sú vložené  
grafické elementy frameworku za účelom stavby želaného užívateľského rozhrania. 
Najpoužívanejšie grafické elementy v~implementácii sú:
\begin{enumerate}
\item Tlačidlo -- nesie vlastný popis a vyvolá volanie určitej funkcie (potvrdzovanie, prechod medzi pohľadmi atď.).
\item Vstupné pole -- zachytávajúce užívateľom zadanú hodnotu.
\item Štítok -- párované so vstupnými poliami, nesú ich pomenovanie.
\item Titulok -- popis celej aplikácie.
\item Tabuľka -- zložitejší element pre výstup štruktúrovaný do tabuľky.
\item Časovač -- neviditeľný, dôležitý pri obsluhe udalostí.
\end{enumerate}
Každý pohľad musí mať zadané rozloženie (layout).
To definuje priestorové rozvrhnutie grafických elementov vložených do pohľadu.
Empirickým prístupom k~všetkým podporovaným rozloženiam poskytovaným frameworkom
a ich premietnutím do mobilného zariadenia bolo vybraté  \emph{rozloženie do mriežky}
s~dvoma stĺpcami (Obr. \ref{layout}), pretože efektívne využíva malý priestor
poskytnutý obrazovkou zariadenia a zároveň drží grafické elementy usporiadané.
\obrazek%Layout Pohladu 
\vlozeps{fig/screens/layout.png}{0.5}
\endobrl{Zobrazenie pohľadu z~komponentu pre Spätné hlásenie do výroby v~WYSIWYG editore.
Je zrejmé rozloženie grafických elementov do dvoch stĺpcov:
V~ľavom sú štítky vstupných polí, tlačidlá a časovač.
V~pravom stĺpci sú vstupné polia. }{layout}
Technické riešenia prítomné pri tvorbe pohľadov:
\begin{itemize}

\item\textbf{Šablóna} je technické riešenie, ktoré je možné tvoriť na úrovni pohľadov.
Vývojár môže často používané grafické prvky a ich konfiguráciu vyňať
z~konkrétneho pohľadu a jednoducho ich použiť v~rovnakej forme pri vytváraní ďalšieho.
Táto možnosť je využívaná pre konfigurácie navigačných tlačidiel, často sa opakujúcich 
v~pohľadoch jednotlivých komponentov (Obr.~\ref{button_templates}).
\obrazek%Layout Pohladu 
\vlozeps{fig/screens/button_templates.png}{0.5}
\endobrl{Ukážka frekventovane používaných šablón z~tlačidiel. 
Najčastejšie funkcie sú návrat do menu, prechádzanie zoznamami a presun na ďalší/predchádzajúci pohľad.}{button_templates}


\item\textbf{Dynamický element}
 nie je konkrétny typ grafického elementu. 
Ide o~vlastnosť všetkých elementov využívanú v~implementácií. 
K~použitiu dôjde pri častiach užívateľského rozhrania komponentu,
ktorých zobrazenie je v~aktuálnom kontexte aplikácie zbytočné.
Napríklad zadávanie skladových miest pri neriadenom sklade,
šarže pri materiáli bez šarže. V~týchto prípadoch
je zbytočné zobrazovať štítok a vstupné pole.
Každý element má vo frameworku atribút viditeľnosti,
ktorý je v~bežnej konfigurácii nastavený ako pravdivý.
Pri dynamickom elemente dôjde k~mapovaniu atribútu 
viditeľnosti na dáta z~kontroléru. Zmenou pravdivostnej hodnoty 
takejto premennej za behu aplikácie dochádza k~skrývaniu/zobrazovaniu elementov
naviazaných na premennú.

\item\textbf{Systémové texty} označované OTR (Online text repository),
predstavujú podporu preložiteľnosti užívateľského rozhrania do viacerých jazykov.
Tieto objekty sú v~systéme uložené  nezávisle na Web Dynpro komponentoch.
Nad OTR sú dostupné mechanizmy prekladu, transakcia \emph{SE63} zo SAP GUI.
Popisky jednotlivých grafických elementov užívateľského rozhrania je možné mapovať
na systémové texty. Potom pri prihlásení do webovej aplikácie v~inom jazyku sa 
jednoducho pristúpi k~množine systémových textov pre daný jazyk a rozhranie sa
užívateľovi zobrazí preložené.
Príklad cesty mapovania textu nad tlačidlom Ďalej: \verb|$OTR:ZRF/NEXT|.
Pomenovanie objektu NEXT nezačína na Z, čo môže evokovať 
porušenie konvencie počiatočného znaku \emph{Z} pre neštandardný vývoj.
Pri OTR textoch ale stačí, ak sa nachádzajú vo vývojovom pakete, ktorý konvenciu spĺňa.

\item\textbf{Časovač}          
predstavuje špeciálny grafický element pohľadu. 
Vo webovej aplikácií pristupujúcej ku komponentu sa nezobrazí. 
Jeho funkcia je natoľko dôležitá, že je použitý v~každom pohľade, každého komponentu v~rámci implementácie.
Časovač je definovaný celočíselnou hodnotou. Tá udáva časový interval v~sekundách, 
medzi opakovanými spusteniami jeho obslužnej rutiny v~kontroléri.
Táto funkcia je rozpracovaná do trojúrovňového časovača. 
V~komponente sú definované tri časové konštanty. V~závislosti na vnútornom stave,
sa priradzujú časovaču ich hodnoty:
\begin{itemize} 
\item \verb\SLOW\ je primárne nastavená hodnota. Volanie rutiny prebieha každých 100\,sekúnd, 
predchádza pádu webovej aplikácie po 180 sekundách nečinnosti. Je to dané portálovým charakterom
Web Dynpro frameworku, ale nie žiadúce pre potreby mobilného skladového hospodárstva.
\item\verb\MEDIUM\ znamená volanie rutiny každých 10\,sekúnd, 
predstavuje dĺžku trvania pozitívnej správy aplikácie. 
Napríklad vygenerovanie materiálového dokladu. Po spracovaní sa nastaví späť na SLOW.
\item \verb\FAST\ znamená  volanie rutiny každých  5\,sekúnd,
 predstavuje dĺžku trvania negatívnej správy aplikácie, 
napríklad pri zle zadanom vstupe a pod. Po spracovaní sa nastaví späť SLOW.
\end{itemize}

\item\textbf{Pohľad Quest}
je špeciálny pohľad\footnote{Označenie Quest je skratka z~\emph{question}.}. 
Využíva sa v~komponentoch kde užívateľ generuje dynamické zoznamy alebo inak buduje štruktúrované dáta. 
Pri neuváženom vrátení do menu alebo prekliknutí sa, tak môže užívateľ aplikácie prísť o~dôležité
zatiaľ neuložené informácie.
Je náhrada za pop-up okno, ktoré by v~takej chvíli vyskočilo v~bežnom prehliadači,
ale jeho implementácia v~zariadeniach s~Widnows Mobile je problematická. 
Preto je otázka integrovaná ako ďalší z~pohľadov komponentu.
Pohľad má oproti ostatným zvýraznené tlačidlá, aby náhla zmena upútala užívateľovu pozornosť.
\obrazek%Layout Pohladu 
\vlozeps{fig/screens/quest.png}{0.5}
\endobrl{Ukážka jednej z~variant pohľadu Quest, ktorá je použitá v~komponente \emph{Výdaj do výroby}.}{button_templates}
\end{itemize}

\podsekce{Spájanie pohľadov}
Na vytvorenie aplikačného procesu tvoreného prepínaním 
viacerých pohľadov musia byť medzi nimi definované spojenia.
Tie sú realizované mechanizmom párovania zásuviek (plugov) jednotlivých pohľadov.
Aby mohlo dochádzať  k~prechodu medzi dvoma pohľadmi, musia mať vytvorené zásuvky
a byť vzájomne prepojené.
Existujú dva druhy zásuviek:
\begin{itemize}
\item Výstupná zásuvka -- napojí sa na vstupnú zásuvku iného pohľadu.
Je volaná pri prechode do pohľadu, na ktorý sa napája.
\item Vstupná zásuvka -- predstavuje cieľový pohľad,
 na ktorý sa prejde pri volaní párovanej výstupnej zásuvky iného  pohľadu.
\end{itemize}
\obrazek%Layout Pohladu 
\vlozeps{fig/screens/connection.png}{1}
\endobrl{Ukážka komponentu \emph{Výdaj do výroby} s~troma pohľadmi  \emph{MAIN}, \emph{LIST} a \emph{QUEST}
a ich vstupnými (IN) a výstupnými (OUT) zásuvkami. 
Každý pohľad môže prejsť do ďalších dvoch a~celý komponent môže za pomoci rovnakého mechanizmu prejsť do Menu komponentu,
nezávisle na pohľade, v~ktorom sa aktuálne nachádza. 
}{button_templates}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%RIADIACA LOGIKA
\sekce{Riadiaca logika}
Komponentové dáta a metódy, ktoré ich spravujú sú umiestnené v~kontroléri komponentu.
Ten spravuje aj prístup k~systémovým dátam cez volania systémových rutín.
Pohľady užívateľského rozhrania síce majú vlastné kontroléry, 
ale tie sa  využívajú len na volanie metód z~kontroléra komponentu 
(napr. generovanie materiálového dokladu po stlačení tlačidla).
Porovnanie volania metódy:  
\begin{description}
\item \verb|wd_this->refresh_page( )| -- priamo z~kontroléra.
\item \verb|wd_comp_controller->refresh_page( )| -- metóda kontroléra volaná v~pohľade.
\end{description}

\podsekce{Dáta komponentu}
Nachádzajú sa v~kontexte kontroléra.
Kontext predstavuje typickú časť Web Dynpro frameworku.
Je tvorený z~uzlov (nodes) a každý uzol obsahuje atribúty, ktoré odpovedajú základným dátovým typom systému.
Uzly združujú sémanticky blízke dáta do uzavretých jednotiek
a~sú priamo mapovateľné do užívateľského rozhrania.
Uzlom je pri vzniku možné nastavovať kardinalitu:
\begin{itemize}
 \item\textbf{Kardinalita uzla rovná 1} -- uzol je interpretovaný ako štruktúra pozostávajúca z~definovaných atribútov.
Využíva sa napríklad pri vstupe jednoduchých štruktúrovaných dát alebo pre kontext časovača.
 \item\textbf{Kardinalita uzla rovná N} -- uzol je interpretovaný ako interná tabuľka, kde definované atribúty predstavujú štruktúru jej riadku.
Obsahuje dáta zoznamového charakteru, kde každý riadok odpovedá záznamu. Využíva sa pri tvorbe
aplikačných záznamov alebo ich prezeraní po častiach, prípadne v~tabuľke.
\end{itemize}
\obrazek%Kontext komponentu 
\vlozeps{fig/screens/context.png}{1}
\endobrl{Príklad kontextu komponentu Príjem materiálu od externého dodávateľa.}{context} 

\podsekce{Metódy komponentu} 
Spravujú dáta v~kontexte komponentu.
Izolovanosť Web Dynpro komponentov sa môže prejaviť redundanciou v~zdrojovom kóde a v~kopírovaní chýb.
To by viedlo k~zlej programátorskej udržovateľnosti.
Predchádzanie týmto javom zabezpečuje zdieľanie opakovane používaných 
častí zdrojového kódu medzi komponentmi pomocou:
\begin{enumerate}
\item\textbf{Asistenčná trieda}
pomenovaná \verb|ZCL_ZMC_TERMINAL| je perzistentý objekt systému. 
Na túto triedu sa napája každý implementovaný komponent.
Využíva sa na distribúciu zmien globálnych konštánt do komponentov bez nutnosti úpravy samotného komponentu:
\begin{itemize}
\item \verb\BARCODE_SEPARATOR\ -- jednoznaková konštanta obsahuje 
separátor hodnôt v~kompozitnom čiarovom kóde, používaný v~komponente \emph{Príjem materiálu od externého dodávateľa}.
Aktuálna hodnota je ":".
\item \verb\TIMER_FAST\, \verb\TIMER_MEDIUM\, \verb\TIMER_SLOW\ -- celočíselné hodnoty pre kontext časovača. Množina
aktuálnych hodnôt je $\{5, 10, 100\}$.

\item \verb\APL_BUTTON_WIDTH\ -- hodnota percentuálnej časti obrazovky, ktorú na šírku zaberajú tlačidlá v~Menu komponente, aktuálne 85\,\%.
\end{itemize}
Asistenčná trieda ďalej poskytuje i množinu zdielaných metód nad komponentmi a~možnosť ukladania prekladateľných textov pre správy.
\item\textbf{Funkčné moduly}
sú spravované vlastnou transakciou v~SAP GUI, $SE37$.
V~systéme začínajú prefixom \verb\ZMC_*\. 
Pri volaní zapúzdrujú komunikáciu komponentu so systémom:
\begin{itemize}
\item Verifikovanie vstupných hodnôt.
\item Kontrola oprávnení užívateľa.
\item Generovanie systémových dokumentov.
\end{itemize}
\end{enumerate}

\podsekce{Realizácia autorizácie}

Autorizácia je na systémovej úrovni riešená pomocou kolekcie  tabuliek 
previazaných vzájomnými väzbami (Príloha \ref{tabs})
a množinou funkčných modulov kontrolujúcich autorizačné záznamy prihláseného užívateľa. 
K~autorizácií dochádza na dvoch úrovniach:
\begin{itemize}
 \item\textbf{Prístup ku komponentom skladových aplikácií} je vymedzený následovne:
Užívateľ má priradené pracovisko, nie priamo komponenty.
Až pracovisko je mapované na konkrétne komponenty skladových aplikácií. Tabuľky:
\begin{itemize}
\item Tabuľka aplikácií \verb\ZAPL\ obsahuje identifikátory komponentov, 
 spolu s~popisom komponentov zobrazovanom v~užívateľskom rozhraní.
\item V~tabuľke \verb\ZMENUS\ sú uložené názvy 
všetkých menu (pracovísk) s~kontaktom na zodpovednú osobu.
\item Tabuľka priradenia komponentov k~menu \verb\ZRF_APL_MENU\,
 obsahuje priradenia komponentov z~\verb\ZAPL\ k~pracoviskám  v~\verb\ZMENUS\.
Každý záznam tabuľky ma poradové číslo, čo umožňuje presne definovať poradie komponentov v~užívateľskom rozhraní.
\item \verb\ZRF_USR_MENU\ tabuľka obsahuje záznamy priradenia systémových užívateľov k~pracoviskám zo \verb\ZMENUS\. 
\end{itemize}


 \item\textbf{Prístup k~objektom skladového hospodárstva}
je mnohonásobne početnejší, v~porovnaní s~jednorázovou autorizáciou komponentov.
Preto je autorizácia objektov realizovaná nad jedinou tabuľkou.
Tabuľka užívateľských parametrov \verb\ZRF_USR_PRM\ aktuálne podporuje tri typy autorizačných parametrov:
\begin{itemize}
\item\emph{ZRF\_LGORT} -- deklaruje autorizačný záznam skladu.
\item\emph{ZRF\_WERKS} -- deklaruje autorizačný záznam závodu.
\item\emph{ZRF\_VKORG} -- deklaruje autorizačný záznam predajnej organizácie.
\end{itemize}
Vlastná hodnota každého riadku databáze je interpretovaná na základe typu autorizačného parametru.
Implementácia autorizačných rutín nad tabuľkou nepodporuje viac hodnôt v~jednom zázname. 
Napriek tomu umožňuje autorizáciu viacerých objektov jedným záznamom v~tabuľke
znakom $*$, ktorý je interpretovaný ako ľubovoľný reťazec (Obr.~\ref{ZRF_USR_PRM}).
\begin{figure}
\centering
\begin{verbatim}CZMICYP ZRF_LGORT 500 <- autorizuje sklad 1500\end{verbatim} 
\begin{verbatim}CZMICYP ZRF_LGORT 5* <- autorizuje sklady zacinajuce na 5 \end{verbatim}  
\begin{verbatim}CZMICYP ZRF_LGORT * <- autorizuje vsetky sklady \end{verbatim}  
\begin{verbatim}CZMICYP ZRF_LGORT 500,501,502 <- nepodporovana hodnota\end{verbatim}
\caption{Možné záznamy v~ZRF\_USR\_PRM autorizujúce užívateľa CZMICYP.}
\label{ZRF_USR_PRM}
\end{figure}
\end{itemize}


\podsekce{Realizácia predvyplnenia}
Principiálne inverzný mechanizmus k~autorizácií, ale tiež vychádza z~autorizačných záznamov.
V~komponentoch skladových aplikácií je kontext mapovaný do užívateľského rozhrania.
Pred prvým zobrazením prebehne predvyplnenie časti atribútov 
kontextových uzlov pomocou funkčného modulu.
Cieľom je zredukovať nutnosť vypĺňať hodnoty
užívateľského rozhrania aplikácie a tak zvýšiť efektivitu práce.
K~predvyplneniu  dochádza pre atribúty:
\begin{itemize}
\item závod -- priamo z~autorizačných záznamov,
\item sklad	-- priamo z~autorizačných záznamov,
\item číslo skladu -- nepriamo, dohľadanie pomocou priamych parametrov,
\item skladové miesto -- nepriamo, dohľadanie pomocou priamych parametrov.
\end{itemize}
Ovládanie predvyplnenia narozdiel od autorizácie má na starosť užívateľ a to 
nastavením štandardných parametrov v~transakcii \emph{SU3} v~SAP GUI.
Užívateľ si vyberie z~množiny prístupných objektov tie, 
ktoré sa mu budú prioritne prednastavovať:
\begin{enumerate}
\item\emph{WRK} -- preferovaný závod,
\item\emph{LGN} -- preferované číslo skladu,
\item\emph{LGP} -- preferované skladové miesto.
\end{enumerate}
V~prípade, že užívateľ nemá nastavené preferované objekty, 
 tie sa nastavia z~množiny jeho prístupných objektov, ktoré sú nájdené ako prvé.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sekce{Aplikačný cyklus}\label{ac}
Predstavuje model fungovania všetkých
 komponentov skladových aplikácií generujúcich zmenu v~systéme.
Rozširuje návrh fungovania zmenových komponentov
 smerom k~efektívnejšiemu používaniu implementovanej aplikácie.
Pozostáva z~troch cyklicky sa opakujúcich krokov (Obr.~\ref{aplikacny_cyklus}):
\begin{itemize}
\item Zadanie hodnôt -- užívateľ zadá potrebné údaje.
\item Generovanie zmeny v~systéme -- prebehne zmena dát systému.
\item Vrátenie do inicializačného stavu -- reštartovanie  pre nové zadanie, 
tzn. premazanie všetkých kontextových uzlov a návrat do 
primárneho pohľadu komponentu.
\end{itemize}
\obrazek%Aplikacny cyklus 
\vlozeps{fig/aplikacny_cyklus.eps}{0.3}
\endobrl{Implementovaný model správania sa zmenových aplikácií.}{aplikacny_cyklus} 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sekce{Menu komponent}\label{menu}
Je hlavný komponent celej implementácie. 
V~produkčnom systéme existuje priamy prístup cez webovú aplikáciu len k~nemu.
Menu ďalej spravuje prístup ku komponentom skladových aplikácií na základe autorizačných záznamov užívateľa.  

Vizuálne je pohľad nad Menu komponentom vertikálne usporiadaný zoznam tlačidiel 
odpovedajúci autorizovaným skladovým aplikáciam (Obr.~\ref{component_switch}).
Narozdiel od implementácie komponentov skladových aplikácií 
je dynamický a mení sa v~závislosti na užívateľovi, ktorý k~nemu pristupuje.
Preto nemôže mať definované konštantné užívateľské rozhranie.

Pri inicializácií Menu komponentu sa zistí pracovisko užívateľa, resp. skladové aplikácie, ku ktorým má prístup.
Na základe zoznamu príslušných komponentov 
je generovaný odpovedajúci počet tlačidiel pre tieto aplikácie do pohľadu Menu komponentu.
Automaticky sú vytvorené i vstupné a výstupné zásuvky a dochádza k~ich 
napojeniu na komponenty skladových aplikácií.
Tak sa dosiahne možnosť prechádzať z~menu do komponentu vybranej skladovej aplikácie a späť (Obr.~\ref{component_switch}).

Pridávanie nových komponentov do menu tak vyžaduje od pridávaného komponentu, 
nutnosť mať vytvorené dve presne pomenované zásuvky, 
na ktoré automaticky naviaže Menu komponent:
\begin{enumerate} 
\item\emph{TO\_MENU} -- výstupná zásuvka komponentu, jej volaním sa komponent prepne naspäť do Menu.
\item\emph{DEFAULT} -- vstupná zásuvka komponentu, slúži na prechod z~Menu do komponentu. 
\end{enumerate} 
\obrazek%Zmena komponentov
\vlozeps{fig/screens/component_switch.png}{0.5}
\endobrl{Menu pre pracovisko Logistika -- rozvádzače. S~príkladom prepnutia komponentov.  }{component_switch} 



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sekce{Webová aplikácia}\label{wa}
Je spárovaná s~Menu komponentom, identifikovaná URL adresou
a umožňuje pristupovať ku komponentu pomocou webového rozhrania.
Jedná sa o~štandardnú technológiu poskytujúcu
automatickú autentifikáciu pri otvorení odkazu aplikácie, 
nad ktorou je možné nastaviť vzhľad prihlasovacej obrazovky (Obr.~\ref{component_switch}). 
\obrazek%Zmena komponentov
\vlozeps{fig/screens/logon.png}{1}
\endobrl{Prihlasovacia obrazovka webovej aplikácie -- kompaktná kontrastná verzia.}
{component_switch} 
Pomocou parametrov podporovaných frameworkom, je možné konfigurovať charakter webovej aplikácie.
Za účelom optimalizácie webu pre prístup z~platformy Windows Mobile:
\begin{enumerate}
\item Vypnutie pamäte posledných zadaní do vstupných polí v~užívateľskom rozhraní.
\item Nastavenie staršieho módu vykresľovania stránky.
\item Zákaz reakcie stránky pri prechode ponad grafické elementy.
\end{enumerate}
Aplikácia neposkytuje explicitný mechanizmus pre odhlásenie užívateľa.
Odhlásenie prebehne po zatvorení prehliadača.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sekce{SAP link}
Implementácia práce je integrovaná do systému SAP v~takej miere, že 
 nie je možné exportovať riešenie iným spôsobom, ako pomocou transportných požiadavkov
z~interného transportného systému. 

Exportovanie zdrojových kódov pre potrebu odovzdania je preto problém.
Riešením je  open source programové vybavenie SAP link \cite{SAPlink}, 
umožňujúce exportovať objekty  implementované v~systéme:
Web Dynpro komponenty, štandardné texty systému, tabuľky, dátové typy do formátu xml.
SAP link umožňuje exportované objekty následne importovať do ďalšieho SAP systému,
 bez použitia interného transportného systému.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\kapitola{Testovanie}

Návrh, implementácia a testovanie  skladových aplikácií 
prebiehali po jednotlivých pracoviskách, ktoré využívajú
prístup do mobilného skladového hospodárstva:
\begin{itemize}
\item\textbf{Sklad -- rozvádzače}%Strnad - "SKLAD ( R )"; 
\item\textbf{Príjem materiálu} %Životska
\item\textbf{Logistika -- rozvádzače} %Korecky, Bulawa
\item\textbf{Sklad -- transformátory} %Grunová 	- "SKLAD ( T )"; 
\item\textbf{Linka AlZn / Cu}%Šubrt	- "LINKA AlZn / Cu"
\item\textbf{Hotové výrobky -- transformátory}%Měcháčková 	- "HOTOVE_VYROBKY ( T )"
\end{itemize}
Tieto časti boli vedené v~samostatných projektových tiketoch, napojené na jeden súhrnný projekt. 
Každý tiket niesol aktuálny stav vývoja konkrétneho pracoviska. 
Od analýzy zadaných požiadavkov po implementáciu a testovanie. 
Testovanie prebiehalo buď v~spolupráci s~vedúcim pracoviska alebo ním určenou osobou. 

Správa testovania bola v~réžií HPSM. Po implementovaní požadovaných aplikácií, 
sa posunul stav konkrétneho tiketu do fáze testovania. 
Zadávateľ tiketu bol o~tejto zmene automaticky upovedomený.
Pri testovaní verifikoval splnenie požiadavok na aplikácie. V~prípade nájdených defektov
bol tiket vrátený naspäť do fáze testovania.
Ak implementácia splnila požiadavky došlo k~prenosu do produkčného systému,  
nasledované obdobným testovaním v~produkčnom systéme (Obr.~\ref{testovanie}).
\obrazek%Zmena komponentov
\vlozeps{fig/testovanie.eps}{0.23}
\endobrl{Fázy vývoja projektového tiketu.}{testovanie} 
V~dobe písania práce sa celý projekt blížil v~spoločnosti ABC do úspešného konca.
Väčšia časť vývoja už bola otestovaná a prevedená do produkcie. Kde reálne funguje a je využívaná na svoj účel.
Zvyšné skladové aplikácie sú práve vo fáze finálneho testovania a v~najbližšej dobe budú tiež prenesené do produkcie.	

 
