62
Diplomsko delo univerzitetnega študija Organizacija in management informacijskih sistemov RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT Mentor: doc. dr. Borut Werber Kandidat: Aljoša Lindič Kranj, avgust 2016

RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

  • Upload
    others

  • View
    29

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Diplomsko delo univerzitetnega študija Organizacija in management informacijskih sistemov

RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT

Mentor: doc. dr. Borut Werber Kandidat: Aljoša Lindič

Kranj, avgust 2016

Page 2: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

ZAHVALA Zahvaljujem se mentorju doc. dr. Borutu Werberju za vodenje, pomoč in nasvete pri izdelavi diplomske naloge. Hvala celotnemu kolektivu podjetja Infotrans d.o.o., še posebej sodelavcem, ki so sodelovali pri projektu in na kakršen koli način pripomogli k uspešnemu razvoju programske rešitve.

Page 3: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

POVZETEK

V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem naročnik programske rešitve načrtuje in nadzoruje prihode ter izhode tovornih vozil v in izven svojih proizvodnih obratov. Obravnavano programsko rešitev sestavljajo tri ločene ASP.NET spletna orodja ali rešitve. Vsaka med njimi je v nalogi analizirana, definirana. Prikazana sta njen namen ter naloga, hkrati pa je opisan in argumentiran tudi proces razvoja. Sam razvoj je potekal v razvojnem okolju Microsoft Visual Studio, za obdelavo in shranjevanje podatkov pa smo uporabili orodje SQL Server. Ob koncu razvoja smo programsko rešitev vzpostavili v naročnikovem produkcijskem okolju. Naročnik rešitev uporablja vsakodnevno in je z rezultatom zadovoljen. Čeprav je proces razvoja zaključen, v dogovoru z naročnikom rešitvi še naprej dodajamo nove funkcionalnosti in jo tako izboljšujemo.

KLJUČNE BESEDE:

- ASP.NET - Spletna rešitev - Razvoj - Transport

Page 4: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

ABSTRACT The thesis describes the process of developing a software solution as an attempt to automate and to optimize the process in which a client plans and controls arrivals and departures of cargo vehicles on and off his production facilities. The described software solution consists of three separate ASP.NET web solutions. Each solution is analyzed, its purpose is defined and its development process is described and explained. The development itself was conducted in the Microsoft Visual Studio development environment. The SQL Server database management system was used in order to process and store data. At the end of the development, the software solution was installed in the production environment of the client. The client uses web solutions daily and is pleased with the results. Despite the fact that the development process has been completed, with the agreement of the client, we continue to add new functionalities and to improve the software solution.

KEYWORDS:

- ASP.NET - Web solution - Development - Transportation

Page 5: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

KAZALO

1. UVOD ................................................................................... 1

1.1. PREDSTAVITEV PROBLEMA ........................................................ 1

1.2. PREDSTAVITEV OKOLJA ............................................................ 1

1.3. PREDSTAVITEV CILJEV NALOGE .................................................. 2

1.4. METODE DELA ....................................................................... 2

2. OPIS STANJA PRED UVEDBO PROGRAMSKE REŠITVE .............................. 2

3. ANALIZA ZAHTEV IN AKTUALNIH DELOVNIH PROCESOV ............................ 3

3.1. ZAHTEVE NAROČNIKA .............................................................. 3

3.2 NAČRT ZA URESNIČITEV NAROČNIKOVIH ZAHTEV .............................. 3

3.3 ANALIZA PROCESA NADZDOROVANJA VHODOV IN IZHODOV .................. 3

3.3.1. PRIPRAVE NAJAV .............................................................. 4

3.3.2. ZAZNAVA PRIHODA ALI IZHODA VOZILA .................................... 4

3.3.3. REGISTRACIJA DOGODKA PRIHODA ALI IZHODA VOZILA ................. 5

4. OPIS PROCESA RAZVOJA IN RAZVOJNEGA OKOLJA .................................. 5

4.1. METODOLOGIJA RAZVOJA ......................................................... 5

4.2. PREGLED RAZVOJNEGA OKOLJA IN UPORABLJENIH ORODIJ .................. 6

4.2.1. OGRODJE ASP.NET ............................................................ 6

4.2.2. MICROSOFT VISUAL STUDIO 2013/2015 .................................... 7

4.2.3. DEVEXPRESS ................................................................... 9

4.2.4. MICROSOFT SQL SERVER 2012 .............................................. 12

5. SKUPNE ZNAČILNOSTI SPLETNIH REŠITEV ........................................... 12

5.1. PODATKOVNA PODLAGA .......................................................... 12

5.2. SPLOŠNA PODOBA PROGRAMSKE REŠITVE ...................................... 15

5.3. VARNOST ........................................................................... 18

6. RAZVOJ IN PREGLED ORODJA ClickTransPRT ....................................... 22

6.1. SPLOŠNA PODOBA ORODJA ....................................................... 23

6.2. ANALIZA POSAMEZNIK VSEBINSKIH STRANI ..................................... 26

6.2.1. SKLOP PREGLED IN UREJANJE NAJAV – VARNOSTNIKI ................... 26

6.2.2. SKLOP PREGLED IN UREJANJE TRAJNIH DOVOLILNIC ................... 33

6.2.3. SKLOP PREGLED IN KREIRANJE NAJAV – NABAVNA SLUŽBA............. 36

6.2.4. SKUPNI ISKALNIK ............................................................. 39

6.3 PREGLED RAZVITIH ORODIJ ...................................................... 40

6.3.1. ORODJE ZA REGISTRACIJO VHODOV IN IZHODOV VOZIL ................ 40

6.3.2. ORODJE ZA HITRO DODAJANJE ............................................ 45

Page 6: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

6.3.3. ORODJE ZA ZAKLEPANJE PODATKOV ...................................... 46

7. RAZVOJ IN PREGLED ORODJA ClickTransPRT Live ................................. 47

7.1. NALOGA IN NAMEN SPLETNEGA ORODJA ....................................... 47

7.2 OPIS VSEBINE SPLETNEGA ORODJA ............................................. 47

8. RAZVOJ IN PREGLED ORODJA ClickTransPRT Live ................................. 49

8.1. NALOGA IN NAMEN SPLETNEGA ORODJA ....................................... 49

8.2 OPIS VSEBINE SPLETNEGA ORODJA ............................................. 49

9. ZAKLJUČKI ............................................................................... 51

9.1. OCENA UČINKOV ................................................................... 51

9.2 POGOJI ZA UVEDBO ............................................................... 52

9.3 MOŽNOST NADALJNEGA RAZVOJA .............................................. 53

LITERATURA IN VIRI ....................................................................... 54

KAZALO SLIK ............................................................................... 55

KAZALO TABEL ............................................................................. 56

KRATICE IN AKRONIMI ..................................................................... 56

Page 7: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 1

1. UVOD 1.1. PREDSTAVITEV PROBLEMA Ostati konkurenčen na trgu za podjetja še nikoli prej ni bilo tako težko, kot je danes. Zaradi tega podjetja ves čas iščejo nove poti in načine, s katerimi bi pridobili prednost pred konkurenti. Nemalokrat se tega lotijo s poskusom optimizacije svojih delovnih procesov. Te skušajo čim bolj avtomatizirati, jih narediti čim bolj učinkovite in enostavne, posledično pa zmanjšati stroške opravljanja izbranega procesa. Naročnik, čigar problem obravnavamo v sklopu diplomske naloge, je podjetje, ki mu poslovni partnerji vsakodnevno dovažajo surovine, ki so potrebne za neprekinjeno izvajanje osnovnega delovnega procesa naročnika. Hkrati vsak dan poslovni partnerji, ali pa naročnik sam, s tovornimi vozili iz proizvodnih obratov tudi izvažajo svoje proizvode. Obvezno je zato treba planirati in nadzirati prihode in izhode vozil iz proizvodnih obratov. Da bi v omenjenem proces čim bolj optimiziral in avtomatiziral naročnik za svoje potrebe potrebuje narejena in prilagojena orodja. Trenutno se uporabljajo orodja, ki jih njihov avtor ne more več posodabljati in nadzirati. Hkrati je mnenja, da orodja niso več dovolj učinkovite in so zastarele. Naročnik zato želi uporabljati funkcionalnosti, ki v starih orodjih niso prisotne. Meni, da dodajanje funkcionalnosti v stare programske rešitve ni smiselno oziroma ni mogoče. Pri razvoju nove programske rešitve je torej potrebno upoštevati, da funkcionalnosti prejšnjih orodij, na katere so naročnikovi zaposleni navajeni ohranimo, povečamo učinkovitost delovanja, v rešitve vključimo najnovejše načine, metode, tehnologije in komponente ter nazadnje dodamo tudi novim orodjem funkcionalnosti, ki jih potrebuje naročnik. Celoten proces razvoja, še posebej pa ob zaključevanju, je potrebno tudi ustrezno dokumentirati. To pomeni, da opišemo postopek razvijanja orodij, prikažemo in argumentiramo naše odločitve pred in med procesom razvoja, predstavimo težave, s katerimi smo se soočali in nazadnje seveda tudi analiziramo ter predstavimo končne rezultate.

1.2. PREDSTAVITEV OKOLJA Programsko rešitev ClickTransPRT smo razvili v podjetju Infotrans d.o.o. Gre za manjše podjetje, ki je specializirano v zagotavljanju strojne, kot tudi programske opreme za sodobna transportno logistična podjetja. Poleg po meri razvitih programskih rešitev za posamezne naročnike, kakršna je obravnavana programska rešitev ClickTransPRT, je podjetje razvilo tudi celo vrsto orodij, ki se uporabljajo bolj splošno in jih je združilo v celovit sistem ClickTrans.

Page 8: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 2

Ta tako omogoča stranki, da na enem samem mestu pridobi vsa potrebna orodja in podatke za učinkovito vodenje in upravljanje prometne pisarne.

1.3. PREDSTAVITEV CILJEV NALOGE Glavni cilji diplomske naloge so ustrezno zabeležiti, prikazati, opisati in argumentirati odločitve med razvojem, hkrati pa razviti orodja, ki bodo ustrezala naročnikovim zahtevam. Orodja se bo uporabljalo vsak dan, kar pomeni, da morajo biti zanesljiva in delovati stabilno. Vsebina orodij naj bo prikazana jasno in urejeno, kontrole v programski rešitvi pa naj bodo oblikovane tako, da bo za uporabnika uporaba orodja čim bolj enostavna in intuitivna. Vse to dosežemo s pomočjo ustreznega načrtovanja, največkrat pa tudi s popravki na povratne informacije in kritike s strani naročnika med obdobjem testiranja orodij.

1.4. METODE DELA Pri pisanju poročila oziroma pisnega dela diplomske naloge bomo uporabili opisno oz. deskriptivno metodo. Uporabljali bomo urejevalnik besedil Microsoft Office Word, za risanje in grafično prikazovanje postopkov in procesov pa Microsoft Office Visio. Pri drugem delu diplomske naloge, ki vsebuje razvoj programskih orodij, bomo uporabili metodologijo SCRUM. Samo ustvarjanje in programiranje orodij bo potekalo v razvojnem okolju Microsoft Visual Studio. S podatki bomo opravljali preko okolja SQL Server in SQL Server Management Studio. Orodja bodo ustvarjena v obliki ASP.NET spletnih orodij, kar pomeni, da bomo pri programiranju uporabljali ukaze iz programskih jezikov (X)HTML, Javascript, Visual Basic in SQL. Podrobnejši opis razvojnega okolja lahko najdemo v nadaljevanju diplomske naloge.

2. OPIS STANJA PRED UVEDBO PROGRAMSKE REŠITVE Kot je bilo omenjeno v uvodu, je pred začetkom uporabe obravnavane programske rešitve, naročnik že uporabljal orodja, z zelo podobnim namenom. Ta so bila vključena v sistem SAP. Hkrati je naročnik skupaj z orodji v sistemu SAP uporabljal sistem varnostnih kamer, a je ta skozi čas postal zastarel. Programje sistema ni sledilo razvijajočim tehnologijam in ni bilo več kompatibilno z novejšimi operacijskimi sistemi, ki so za naročnika nujno potrebni. Naročnik je zamenjal star sistem kamer z novim, a se je odločil, da prilagajanje starih orodij ni smiselno. Zaradi zagotavljanja večje fleksibilnosti, prilagodljivosti in kontrole nad končnim izdelkom, se je naročnik odločil, da naroči razvoj samostojnih orodij, ki bodo osnovana za delovanje z novim sistemom varnostnih kamer.

Page 9: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 3

3. ANALIZA ZAHTEV IN AKTUALNIH DELOVNIH PROCESOV

3.1. ZAHTEVE NAROČNIKA Ob začetku projekta nam je naročnik predstavil zahteve. Gre za seznam temeljnih funkcionalnosti, ki jih ob koncu razvoja s programsko rešitvijo ClickTransPRT moramo nuditi njenim uporabnikom. Vsi prihodi in izhodi vozil iz naročnikovih obratov morajo biti vnaprej načrtovani in si jih preko spletnih rešitev pooblaščene osebe lahko ogledajo. Vsak vhod v poslopje naročnika ima vratarnico z računalnikom, preko katerega se varnostniki lahko povežejo do spletnih rešitev. Ob prihodu vozila na vhod ali izhod mora orodje varnostnike o prihodu opozoriti. Varnostnik mora nato s pomočjo orodja dogodek čim hitreje registrirati in ga vnesti v sistem programske rešitve oziroma podatkovno bazo. Nujno je treba zagotoviti, da v obrat naročnika vstopijo le tista vozila, ki imajo za to dovoljenje. Vstop se vozilom brez dovoljenja zavrne. Vsak vhod ali izhod vozila mora imeti naročnik zabeležen v podatkovni bazi, hkrati pa mora imeti uporabnik možnost pregleda vseh preteklih vhodov in izhodov vozil (Zapisniki, 2015/2016).

3.2 NAČRT ZA URESNIČITEV NAROČNIKOVIH ZAHTEV Da bi uresničili naročnikove želje, smo se v podjetju odločili ponuditi rešitev v obliki treh spletnih orodij. Prva programska rešitev, ki predstavlja srce celotnega projekta, se imenuje ClickTransPRT. Ta je med vsemi tremi najobsežnejša in najbolj kompleksna, v njej pa ponujamo glavnino rešitev za zgornje zahteve naročnika. Drugi dve rešitvi služita kot orodje za opozarjanje varnostnikov o prihodih vozil na vhod ali izhod v naročnikov obrat ali pa kot orodje za pomoč pri nadzorovanju delovanja in servisiranju naročnikovega sistema varnostnih kamer, ki so nameščene na vseh glavnih vhodih v naročnikov obrat. Ti dve stranski spletni orodji smo poimenovali ClickTransPRT LIVE in ClickTransPRT KAMERE.

3.3 ANALIZA PROCESA NADZDOROVANJA VHODOV IN IZHODOV Celoten proces smo razdelili na tri sklope. Pri prvem govorimo o pripravi najav in ostalih potrebnih podatkov, ki jih morajo varnostniki imeti na razpolago ob prihodu vozila na vhod naročnikovega obrata. Pri drugem koraku gre za avtomatizirano zaznavo prihoda vozila na vhod ali izhod.

Page 10: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 4

Do tretjega koraka v vsakem primeru pride dvakrat. Prvič po zaznavi prihoda vozila na vhod obrata in drugič po zaznavi prihoda vozila na izhod obrata. Gre za registracijo vhoda ali izhoda obravnavanega vozila.

3.3.1. PRIPRAVE NAJAV Navadno se najave pripravlja nekaj dni pred načrtovanim prihodom vozila oziroma ko zaposleni v sistemu SAP pripravijo nabavni dokument. Najave vozil je za programsko rešitev ClickTransPRT mogoče ustvariti na 3 načine:

Preko sistema ClickTrans, modul Naročilo Ker sta sistema ClickTrans in ClickTransPRT sorodna ter uporabljata isto podatkovno bazo in tabele, lahko le s pritiskom na gumb v modulu Naročilo kreiramo najavo vozila za spletna orodja. V novo generirano najavo se zaradi povezanosti lahko prenesejo vse vrednosti, ki so v sistemu ClickTrans že izbrane.

Preko sistema SAP Naročnik na več področjih uporablja sistem SAP, med njimi je tudi oddelek za nabavo. Ko zaposleni v sistemu SAP kreirajo novo nabavo, pridobijo številko nabavnega dokumenta. Ko je pripravljena, jo lahko s klikom na gumb v sistemu SAP prenesejo v obravnavano spletno rešitev, kjer kreirajo novo najavo vozila. Ker sistema SAP in ClickTransPRT nimata skupne podatkovne baze in tabel, mora zaposleni ročno vnesti vsaj načrtovani datum prihoda vozila, registrsko številko vozila in ponudnika storitev prevoza. To pomeni, da sta nabava v sistemu SAP in najava v sistemu ClickTransPRT povezani preko številke nabavnega dokumenta.

Ročno ustvarjanje Uporabnikom puščamo možnost ročnega kreiranja novih najav v rešitvi ClickTransPRT. V tem primeru mora uporabnik ročno izpolniti vse zahtevane vrednosti. Tega načina se navadno ne uporablja in služi kot rezervna možnost v primeru, odpovedi drugih načinov kreiranja najav.

3.3.2. ZAZNAVA PRIHODA ALI IZHODA VOZILA Ta del procesa se zgodi le na vhodih in izhodih naročnikovega obrata, ki so opremljeni s sistemom varnostnih kamer. Ob prihodu vozila se ta ustavi pred varnostno rampo. Naročnik uporablja posebne varnostne kamere, ki imajo zarisano območje, za katerega ves čas pregledujejo, ali se v njem nahaja vozilo ali ne. Če kamera vozilo zazna, ga slika, nato pa kamerino programje analizira sliko. Ustvari .xml datoteko, ki med drugimi podatki vsebuje zapise o času slikanja vozila in imenu kamere, skuša prebrati registrsko številko vozila na rampi, hkrati pa v .xml datoteko zapiše sliko, pretvorjeno v šestnajstiški zapis. Kreirano datoteko kamera odloži v dogovorjeni mapi, tam pa jo prebere spletna storitev, ki vse podane podatke vnese v podatkovno bazo. Celoten proces od zaznave vozila na rampi, do zapisa vrednosti v podatkovno bazo traja od ene do pet sekund.

Page 11: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 5

Če vhod ali izhod ni opremljen s sistemom varnostnih kamer, mora varnostnik ročno kreirati zapise preko spletne rešitve ClickTransPRT. Seveda v tem primeru v bazo dodaja le bistvene podatke.

3.3.3. REGISTRACIJA DOGODKA PRIHODA ALI IZHODA VOZILA V podjetju naročnika obstajata dva načina registracij prihodov in izhodov. Prvi način je registracija preko najave, ki razen v posebnih primerih, velja za en vhod in en izhod vozila iz obrata. Drugi način so registracije preko tako imenovanih trajnih dovolilnic. Vsaka trajna dovolilnica je vezana na neko vozilo (reg. številko vozila) in ima določeno obdobje aktivnosti. Vozilo s trajno dovolilnico ima v obdobju aktivnosti trajne dovolilnice možnost neomejenega vstopanja in odhajanja iz obrata. Ob prihodu vozila na vhod naročnikovega obrata se ta ustavi pred varnostno rampo ob vratarnici. Če je vhod opremljen z varnostno kamero, ta vozilo slika, analizira sliko in zapiše prebrane podatke v podatkovno bazo. Varnostnik v spletnem orodju izbere na novo kreiran zapis, ki je bil kreiran, ko je kamera zaznala prihod vozila. V primeru da vhod ni opremljen s kamero, mora varnostnik ročno kreirati zapis, v katerega vstavi registrsko številko, čas prihoda in ime vhoda/proge, na kateri vozilo vstopa. Ko varnostnik za registracijo izbere vrstico vhoda, spletna rešitev samostojno preveri, če ima vozilo na vhodu veljavno najavo ali trajno dovolilnico. Če orodje uspešno najde eno zgornjih možnosti, se vhod zabeleži v ustreznem poglavju.

4. OPIS PROCESA RAZVOJA IN RAZVOJNEGA OKOLJA

4.1. METODOLOGIJA RAZVOJA V podjetju smo se v dogovoru z naročnikom razvoja lotili po metodologiji SCRUM. Naročnik nam je podal osnovne zahteve, ki smo jih razdelili na več sklopov. Izbrali smo si sklop in se lotili razvoja. Z naročnikom smo tedensko preverjali napredek razvoja in skupaj ugotavljali, če morda lahko katero med razvitimi funkcionalnostmi še spremenimo in izboljšamo (Learn about Scrum, 2016). Ob razvijanju orodij po posameznih delih je tudi naročnik dobil boljši vpogled v proces razvoja. S posvetovanjem z bodočimi uporabniki in našo razvojno ekipo smo našli celo vrsto uporabnih funkcionalnosti, ki v začetnem načrtu niso bile predvidene. Z metodo SCRUM smo tako poleg osnovnih orodij dodajali nove funkcionalnosti, jih pregledovali z naročnikom in celoten cikel ponavljali, dokler nismo dosegli točke, ko je bil sklop blizu končne različice in je bil pripravljen na povezavo z ostalimi sklopi (Learn about Scrum, 2016). Zatem smo celoten postopek ponovili za naslednji sklop orodij in funkcionalnosti. V podjetju smo delo v procesu razvoja organizirali tako, da smo (navadno v začetku razvoja nekega orodja ali funkcionalnosti) organizirali redne interne sestanke. Tu smo skušali iz vsebinskih zahtev, ki jih je vodstvo podjetja pridobilo na omenjenih tedenskih sestankih z naročnikom, ustvariti načrt in način, po katerem bomo omogočili izbrane funkcionalnosti ali orodja.

Page 12: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 6

Ko je bil cilj in načrt do cilja zarisan, smo si razdelili delo. V primeru dela s podatkovno bazo, SQL pogledi in SQL procedurami, so delo prevzeli sodelavci. Če je delo vsebovalo programiranje samih ASP.NET spletnih orodij, sem delo prevzel sam.

4.2. PREGLED RAZVOJNEGA OKOLJA IN UPORABLJENIH ORODIJ V nadaljevanju so podrobneje opisana orodja, ki so bila uporabljena pri razvoju programske rešitve.

4.2.1. OGRODJE ASP.NET ASP.NET je ogrodje, ki ga je za razvijanje dinamičnih spletnih strani in orodij razvilo podjetje Microsoft. To je komponenta širšega ogrodja .NET, kar pomeni, da pri pisanju programov lahko izbiramo med vsemi programskimi jeziki, ki jih podpira širše ogrodje (Roth, Anderson in Luttin, 2014). Spletne rešitve, ki so razvite v ogrodju ASP.NET, navadno vsebujejo več ASP.NET spletnih strani, ki jim na kratko rečemo kar »WebForms«. Največkrat datoteke, ki vsebujejo omenjene spletne stran, vsebujejo končnico ».aspx«. V takšni datoteki najdemo ukaze, ki se bodo ob uporabi spletne rešitve prenesli in izvedli v spletnem brskalniku uporabnika. Da spletni brskalniki ukaze znajo prebrati, so ti zapisani v programskem jeziku Javascript in (X)HTML. Datoteke .aspx torej vsebujejo strukturo vseh elementov in komponent, ki jih brskalnik mora izrisati na uporabnikovi strani. Ta del programske kode vsebuje podatke o vrsti vsake komponente, privzetih nastavitvah komponent, obliki in gnezdenju v razmerju z drugimi elementi na spletni strani (Roth, Anderson in Luttin, 2014). Poleg datoteke s končnico .aspx, vsaka spletna stran vsebuje tudi datoteki ImeStrani.aspx.vb in ImeStrani.designer.vb. Obe predstavljata komplet ukazov, napisanih v izbranem programskem jeziku ( v našem primeru VB), ki bodo ostali in se izvedli na strežniku, kjer je rešitev nameščena. Gre za del programske kode, ki naredi spletno rešitev resnično dinamično, saj tu določamo, kako rešitev vpliva na dogodke, ki jih uporabnik sproži ob uporabi orodja (Roth, Anderson in Luttin, 2014). Vsako spletno orodje ima svojo nastavitveno datoteko, ki se imenuje Web.config. Gre za pregledno, po drevesni strukturi oblikovano XML datoteko, v kateri nastavljamo, kako se bo spletno orodje ob zagonu obnašala. Nastavitve so v datoteki razdeljene na naslednja poglavja:

System.web – najbolj obširno poglavje, v katerem določamo uporabljene zunanje knjižnice (assemblies), temo spletne rešitve, glavne strani, definiramo reagiranje strani na programske napake, določimo omejitve za dostopanje do določenih strani in map, definiramo način prijavljanja uporabnikov…

ConnectionStrings – shranjujemo podatke za povezavo do zunanjih virov. V obravnavanih orodjih v tem poglavju shranjujemo pot do strežnika, kjer je nameščena podatkovna baza in pot do strežnika, kjer je nameščen sistem ActiveDirectory, ki ga uporabljamo pri prijavi uporabnikov.

AppSettings – kjer shranjujemo fiksne vrednosti, do katerih lahko dostopamo v programski kodi spletne rešitve.

ConfigSection

Page 13: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 7

Pomembno je, da se zavedamo možnosti urejanja Web.config datoteke tudi potem, ko spletno orodje namestimo na strežnik. Tako lahko prilagajamo nastavitve spletne rešitve, ki morda morajo biti drugačne od tistih, ki smo jih uporabljali v razvojnem okolju (Saichandra, 2011). Nesmiselno bi bilo razvijati spletno rešitev iz nič. Na spletu lahko namreč najdemo celo množico zunanjih orodij in knjižnic, ki jih je nekdo že razvil in pripravil z namenom, da bi programerjem pri razvijanju rešitev poenostavil proces razvoja in prihranil čas. Navadno takšne knjižnice najdemo v datotekah s končnico .dll in jih do naročnika prenašamo v direktoriju skupaj z datotekami spletne rešitve. Da lahko zunanje knjižnice uporabljamo pri programiranju jih povežemo z spletnimi orodji preko razvojnega okolja Visual Studio. Razvojno okolje bo avtomatično dodalo seznam knjižnic tudi na seznam v nastavitveni datoteki Web.config (.NET Assemblies, 2016). Poleg datotek s programsko kodo v ASP.NET spletnih rešitvah uporabljamo še celo vrsto drugih elementov. Pri obravnavanih spletnih orodjih smo te dodatne elemente organizirali v mapi »Content«. V mapi tako najdemo:

podmapo »Images«, v kateri se nahajajo vse dodatne ikone in slike,

podmapo »Tema«, v kateri se nahajajo datoteke, povezane s kreirano temo, ki jo uporabljamo v spletnem orodju,

datoteko »Site.css« , ki vsebuje CSS ukaze za vse strani orodja (Roth, Anderson in Luttin, 2014).

4.2.2. MICROSOFT VISUAL STUDIO 2013/2015 Visual Studio je med najbolj razširjenimi razvojnimi okolji. Omogoča razvoj programske opreme, ki temelji na ogrodju Framework .NET. V okolju Visual Studio torej lahko ustvarjamo programe za sisteme Windows (WinForms), razvijamo spletne strani, spletna orodja in spletne storitve (WebServices), nove različice pa omogočajo tudi razvoj aplikacij za zunanje oziroma mobilne naprave (Avery, 2005). Visual Studio v današnji obliki podpira celo vrsto programskih jezikov. Ko namestimo razvojno okolje, imamo možnost izbirati med C, C++, C++/CLI, C#, F# in pa VB.NET, ki smo ga izbrali za razvoj obravnavane programske rešitve. Če za razvoj programov potrebujemo uporabo drugih programskih jezikov, kot so npr. Node.js, Python, Ruby, HTML, XML, Javascript in CSS, lahko podporo teh pridobimo z enostavnimi razširitvami in vmesniki za Visual Studio (Avery, 2005). Ko namestimo Visual Studio, uporabniki pridobimo celo vrsto orodij, ki nam bodo pomagala pri pisanju programske rešitve. Pri razvoju ASP.NET orodij smo daleč največ uporabljali naslednja orodja:

Urejevalnik kode (Code editor) Urejevalnik kode je ključno orodje vsakega kakovostnega razvojnega okolja. Za vsak podprt programski jezik nam urejevalnik ustrezno označi in pobarva napisane ukaze oziroma sintakse, tako da lahko že samo s pomočjo barv in oblike besedila prepoznamo, kje se nahajajo ukazi, spremenljivke, metode, funkcije... (Avery, 2005).

Page 14: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 8

Urejenost in preglednost kode dosežemo z orodjem IntelliSense. To zelo poenostavi programiranje, saj uporabniku ob pisanju kode ponuja nasvete za pisanje, predlaga možne sintakse, hkrati pa tudi samodejno dokončuje ukaze, doda manjkajoče presledke, nazadnje pa tudi ukaze ter imena spremenljivk pretvarja v vnaprej definirano obliko in tako zagotavlja, da v kodi ne prihaja do tipkarskih napak (Avery, 2005). Ogromno časa pri razvoju prihranimo tudi zaradi sprotnega grajenja in prevajanja ukazov, ki v ozadju poteka med pisanjem kode. S pomočjo te funkcionalnosti nas urejevalnik lahko sproti opozarja na napake v sintaksi ali nesmiselnost ukazov, hkrati pa nam skuša ponuditi rešitev napake (Avery, 2005) .

Razhroščevalnik kode (Debugger) Tako kot urejevalnik kode je tudi orodje za razhroščevanje pri programskem razvoju izrednega pomena. Omogoča nam, da ob uporabi orodja hkrati lahko spremljamo tudi izvajajočo se kodo. Če pride do napake, nas orodje na to opozori in pokaže vrstico v kodi, kjer je prišlo do napake ali konflikta. Če si želimo nek del kode podrobneje ogledati, lahko v urejevalniku neko vrstico kode označimo z »breakpoint-om«. Ko bomo naslednjič uporabljali program, in bomo v kodi prišli do označene vrstice, se bo ta samodejno ustavil in nam omogočil vpogled v stanje programa in kode ob ustavitvi. Z ukazi se nato lahko pomikamo po kodi in poiščemo morebitne napake (Avery, 2005).

Orodje za oblikovanje (Designer) Orodje za oblikovanje nam v Visual Studiu izriše podobo posameznih strani spletnih orodij. Programska koda se za vse spremembe v orodju za oblikovanje v ozadju kreira sama. Tako lahko zelo enostavno prilagajamo izgled posameznih komponent, elementov ali pa celotne strani. Če želimo dodajati nove komponente, lahko te enostavno iz menija povlečemo na površino za oblikovanje, kamor komponento želimo postaviti (Avery, 2005).

Spodnja slika prikazuje razvojno okolje Visual Studio in odprt projekt, ki vsebuje spletno orodje ClickTransPRT. V osrednjem delu slike je prikazano delovanje orodja za oblikovanje, na desnem delu pa je vidna struktura direktorijev in datotek, ki sestavljajo celotno orodje.

Page 15: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 9

Slika 1: Prikaz razvojnega okolja Microsoft Visual Studio 2015

4.2.3. DEVEXPRESS Z namestitvijo razvojnega okolja Microsoft Visual Studio pridobimo celo vrsto uporabnih orodij in komponent, a smo ocenili, da standardne komponente našim potrebam ne ustrezajo. Zato smo uporabili komponente, ki jih ponuja podjetje DevExpress . To je ameriško podjetje, ki se v partnerstvu z Microsoftom specializira v ustvarjanju kakovostnih in učinkovitih komponent in vmesnikov za razvojno okolje Microsoft Visual Studio (Overview of Developer Express Inc., 2016). Podjetje je za razvijalce najbolj priljubljenih zvrsti aplikacij, ki jih je mogoče razvijati v okolju Visual Studio, pripravilo dodatne knjižnice orodij. V primerjavi z običajno zbirko, imajo orodja podjetja DevExpressna navadno več funkcionalnosti, lepši design in so bolje prilagojena in optimizirana posameznim vrstam programskih rešitev (Overview of Developer Express Inc., 2016). V nadaljevanju je opisanih nekaj uporabniških kontrol ali komponent podjetja DevExpress, ki smo jih pri razvoju spletnih orodij uporabili največkrat: ASPxGridView: Komponenta ASPxGridView je bila ustvarjena in optimizirana za delovanje v ASP.NET spletnih rešitev. Njen glavni namen je čim bolj pregledno in berljivo prikazati večjo količino podatkov. To doseže s prikazom podatkov, razporejenih po stolpcih in vrsticah, poleg tega pa komponenta doda še celo vrsto novih funkcionalnosti (Grid Overview, 2016).

Page 16: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 10

Celotna komponenta je zelo intuitivna in izredno podobna tistim, ki jih uporabniki na svojem delovnem mestu že uporabljajo in so nanje navajeni, npr: Microsoft Outlook, Excel, Word…(Grid Overview, 2016). Poleg funkcionalnosti, ki jih avtomatično pridobimo z uporabo komponente, kot so možnost sortiranja po stolpcih, možnost prikazovanja števila naloženih vrstic ali premikanje med stranmi prikazanih podatkov, smo v programski rešitvi ClickTransPRT nad večino komponent ASPxGridView dodali tudi dva gumba. S klikom na prvi gumb ( ) uporabnik pridobi možnost uporabe orodja »Column chooser«. Pogosto se zgodi, da v komponenti ASPxGridView razpolagamo z več stolpci, kot jih sprva prikazujemo uporabniku. Omenjeno orodje uporabniku omogoča, da stolpce, ki so v ozadju, prikaže znotraj komponente, skriva že prikazane stolpce, razporeja vrstni red prikazanih stolpcev itd. Drugi gumb ( ) omogoči uporabniku dostop do orodja za filtriranje vrstic, imenovani »Filter row«. Gre za dodatno vrstico na vrhu tabele, v katero lahko v vsak prikazani stolpec uporabnik vnese poljubno vrednost, komponenta ASPxGridView pa bo naložene vrednosti po vneseni vrednosti filtrirala in uporabniku vrnila le vrstice, ki ustrezajo vpisanemu kriteriju (Grid Overview, 2016). Če želimo, da komponenta ASPxGridView prikazuje podatke iz podatkovne baze, jo moramo povezati s komponento SqlDataSource. Ta nastopa kot vmesni element med tabelo in podatkovno bazo, ki ima med drugimi nastavljivimi lastnosti tudi polje za vnos SQL SELECT ukaza, preko katerega definiramo, katere podatke želimo pridobivati iz podatkovne baze in jih posredovati komponenti ASPxGridView (Grid Overview, 2016). ASPXGridLookup Komponenta ASPXGridLookup je kombinacija zgoraj opisane komponente ASPxGridView in že vsem dobro poznane Drop-down Menu komponente (Grid - Advanced Lookup, 2016). Ob začetku vnašanja besedila ali s pritiskom na gumb za prikaz menija, nam komponenta ASPxGridLookup namesto seznama le nekaj možnih opcij prikaže že integrirano komponento ASPxGridView z vsemi njenimi funkcionalnostmi. Uporabnik s klikom na vrstico podatka potrdi izbiro (Grid - Advanced Lookup, 2016). V obravnavani rešitvi smo ASPxGridLookup uporabili predvsem kot izbirno polje za vrednosti, ki jih predstavljajo šifranti (vozniki, vozila, države, vhodi…). V spletni rešitvi mora uporabnik vnesti/izbrati registrsko številko trenutno obravnavanega vozila. V vnosno polje začne vnašati naziv registrske številke v obliki besedila, ob tipkanju pa mu komponenta že filtrira vsa v podatkovni bazi vnesena vozila in jih uporabniku hkrati prikazuje pod vnosnim poljem (Slika 2). Tako uporabniku niti ni potrebno vnesti celotne registrske številke, hkrati pa se s takšnim vnosom vnašanja in izbire podatka izognemo kakršnim koli tipkarskim napakam.

Page 17: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 11

Slika 2: Prikaz izgleda in uporabe komponente ASPxGridLookup ASPxFormLayout ASPxFormLayout je komponenta, namenjena enostavnemu kreiranju preglednih obrazcev, ki se jih uporablja za pregled in urejanje podatkov. Gre za orodje, ki površino razdeli v navidezno tabelo, kar omogoča razvijalcu v celice tabele dodajati urejevalne komponente, kot so ASPxTextBox, ASPxSpinEdit, ASPxDateEdit, ASPxGridLookup, ASPxMemo… (Navigation and Layout - Form Layout, 2016). Izgled forme lahko preko grafičnega vmesnika po potrebi urejamo, tako da lahko določamo število in širino stolpcev, urejamo poravnave v tabeli in celicah ali pa oblikujemo stile obrobljanja skupin komponent, kar bi brez komponente morali ročno nastavljati znotraj .css datoteke (Navigation and Layout - Form Layout, 2016). V programski rešitvi ClickTransPRT smo množično uporabljali ASPxFormLayout. Na površini strani je za lažje urejanje postavljena v vseh primerih, kjer uporabljamo več urejevalnih komponent. Poleg lažjega oblikovanja obrazcev nam je komponenta ASPxFormLayout omogočila tudi povezovanje urejevalnih komponent znotraj obrazca s podatkovno bazo preko komponente SqlDataSource. Vsaki celici v navidezni tabeli smo določili vrednost »Fieldname«, kar pomeni, da bo urejevalna komponenta v celici ob zagonu spletnega orodja prikazovala dodeljeno vrednost/vrednosti iz podatkovne baze (Navigation and Layout - Form Layout, 2016). UpdatePanel in ScriptManager Komponenti UpdatePanel in ScriptManager, ki ju uporabljamo v programski rešitvi, sicer ni razvilo podjetje DevExpress, temveč ju pridobimo v osnovnem paketu z namestitvijo razvojnega okolja Microsoft Visual Studio. Sami komponenti na prvi pogled spletnim orodjem ne dodajata neke nove funkcionalnosti, a bi brez njiju uporabniki zelo težko uporabljali rešitev. V ogrodju ASP.NET se operacije med delovanjem spletnega orodja odvijajo tako v spletnem brskalniku računalnika uporabnika kot tudi na strežniku, kjer je nameščeno spletno orodje. Obe strani morata za delovanje orodja med seboj komunicirati, zato ob določenih dogodkih v spletni rešitvi brskalnik strežniku pošlje zahtevo za pridobitev potrebnih podatkov ali pa izvedbo neke funkcije. V ASP.NET pošiljanju takšne zahteve rečemo »postback«, ki pa vsakič sproži tudi ponovno

Page 18: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 12

nalaganje celotne spletne strani, kar je pri uporabi spletnega orodja izredno moteče (Introduction to the UpdatePanel Control, 2016). Zato smo uporabili komponenti UpdatePanel in ScriptManager. UpdatePanel obravnavamo kot neke vrste zabojnik, ki omogoča, da v primeru postback-a osvežimo le vsebino, ukleščeno znotraj komponente. S tem ne le preprečimo osveževanje celotne strani, ampak lahko tudi definiramo specifične dele strani, ki naj se ob postback-u ne posodabljajo in dele, ki naj se posodabljajo (Introduction to the UpdatePanel Control, 2016).

4.2.4. MICROSOFT SQL SERVER 2012 Microsoft SQL Server je sistem za upravljanje relacijskih zbirk podatkov (tudi RDBMS). Sistem ves čas teče v ozadju, namen takšne vrste sistema pa je upravljanje in hranjenje podatkov. Za naše potrebe je izredno pomembna tudi funkcionalnost oskrbovanja orodij z zahtevanimi podatki, ne glede na to ali teče SQL Server na enakem računalniku kot orodje ali pa sta ta dva elementa povezana preko spleta (Schlichting, 2008). Celoten SQL Server upravljamo preko uporabniškega vmesnika, imenovanega SQL Server Management Studio. Studio vsebuje grafični vmesnik za enostavno upravljanje s podatkovnimi objekti, kot tudi urejevalnik skript, s katerimi lahko izvajamo zapletenejše poizvedovalne in urejevalne ukaze nad podatki (Schlichting, 2008). Vsa obravnavana spletna orodja se morajo pred kakršnim koli črpanjem ali urejanjem podatkov v podatkovni bazi povezati z orodjem SQL Server. Spletna rešitev torej orodju pošlje zahtevo z nekim ukazom za poizvedbo ali urejanje podatkov, ki ga orodje izvede na podatkovni bazi. Če je ukaz uspešno izveden, bo orodje SQL Server spletnemu orodju odgovorilo s posredovanjem zahtevanih podatkov, ki jih nato v orodju lahko prikazujemo uporabniku (Schlichting, 2008). SQL Server Management Studio smo v fazi načrtovanja uporabljali za kreiranje novih, spreminjanje že obstoječih tabel in dodajanje novih stolpcev. Med razvojem smo v orodju kreirali nove SQL poglede in SQL procedure za obdelavo podatkov.

5. SKUPNE ZNAČILNOSTI SPLETNIH REŠITEV

5.1. PODATKOVNA PODLAGA Prvi večji korak v procesu razvoja je bilo načrtovanje podatkovne strukture, kjer smo si nekoliko lahko pomagali z že postavljeno podatkovno strukturo naročnikovega starega orodja. Skušali smo predvideti, katere podatkovne tabele in stolpce bomo za delovanje programske rešitve potrebovali. Po potrebi smo dopolnili že obstoječe tabele, hkrati pa tudi kreirali nekaj popolnoma novih.

Page 19: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 13

Za hranjenje in oskrbovanje programske rešitve z ustreznimi podatki smo v podatkovni bazi uporabljali tri vrste podatkovnih objektov:

Podatkovne tabele Gre za osnovni gradnik podatkovnih baz. Tabele so zbirke podatkov, ki so za lažji in preglednejši prikaz razvrščeni v stolpce in vrstice. Navadno imajo tabele omejeno število stolpcev, vsak izmed teh pa mora imeti definiran podatkovni tip rednosti, ki jih stolpec lahko sprejema. Število vrstic, ki se jih v tabelo lahko doda, navadno ni omejeno. Vsaka vrstica mora imeti v eni izmed stolpcev neko unikatno številsko vrednost, po kateri lahko najdemo željeno vrstico. Takšnemu stolpcu rečemo primarni ključ tabele. V mnogih tabelah ki so uporabljene v obravnavani programski rešitvi lahko ta stolpec preprosto najdemo pod imenom »Id« (Tables, rows, and columns, 2013). Vsaka tabela, ki je uporabljena v programski rešitvi, ima poleg svojih edinstvenih stolpcev, namenjenih hranjenju vsebine, tudi stolpce »Kreiral« (varchar), »DatumKreiranja« (datetime), »Spremenil« (varchar) in »DatumSpremembe« datetime. Vse podatkovne tabele vsebujejo za kreiranje nove vrstice kot tudi za urejanje že obstoječe vrstice tako imenovan sprožilec, ki zazna spremembo v tabeli in v ustrezen stolpec v vrstici spremenjenega podatka zapiše kdaj in kdo je spremenil/kreiral vrstico v tabeli. S takšno funkcionalnostjo pridobimo sledljivost vseh sprememb v tabelah. Imeti podatke o spremembah je izredno koristno kasneje v fazi vzdrževanja spletnih orodij, pri reševanju težav uporabnikov ali iskanju morebitnih napak, saj si z njimi pomagamo pri rekonstruiranju postopka, ki je vodil do napake. Primer SQL ukaza za kreiranje sprožilca, ki v stolpec »Spremenil« in »DatumSpremembe« zabeleži kakršno koli spremembo obstoječe vrstice v tabeli VarnostGlava: CREATE TRIGGER [dbo].[SpremenilVarnostGlava] ON [dbo].[VarnostGlava] AFTER UPDATE AS UPDATE VarnostGlava SET VarnostGlava.Spremenil=SYSTEM_USER, VarnostGlava.DatumSpremembe=getdate() FROM deleted d INNER JOIN VarnostGlava c ON d.ID = c.ID

Podatkovni pogledi (SQL View)

Podatkovni pogledi so SQL poizvedovalni ukazi, ki so pod izbranim imenom shranjeni v podatkovni bazi in povezujejo ter združujejo več tabel v eno samo. Gre za virtualno tabelo, ki v podatkovni bazi fizično ne obstaja in se z izvedbo shranjenega poizvedovalnega ukaza vsakič ob klicu podatkovnega pogleda kreira na novo (SQL - Using Views, 2016). Ker s pomočjo podatkovnega pogleda lahko prikazujemo katere koli vrstice iz povezanih tabel, lahko enostavno kreiramo poglede, ki so za uporabnike intuitivni. To pomeni, da jim lahko prikazujemo le podatke, ki so zanje aktualni, stolpcem spremenimo imena, tako da so uporabnikom bolj razumljiva ali pa celo generiramo nove stolpce, ki so odsev vrednosti

Page 20: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 14

stolpcev tabel (npr. seštevki ali produkti vrednosti iz tabel) (SQL - Using Views, 2016). Razvidno je, da imajo podatkovni pogledi celo vrsto prednosti, seveda pa imajo tudi nekaj bistvenih omejitev. Ker se pogled ob vsakem klicu mora na novo generirati, navadno celoten klic lahko traja nekoliko dlje, kot če bi prikazovali podatke naravnost iz fizične podatkovne tabele. Druga večja pomanjkljivost takšnih podatkovnih objektov pa je, da je podatke možno le prikazovati, ne pa tudi urejati. Za drugo omejitev sicer obstajajo zapletenejši obhodi, a jih v programski rešitvi ClickTransPRT nismo uporabili (SQL - Using Views, 2016). V vseh obravnavanih spletnih orodjih smo za prikaz in shranjevanje podatkov uporabili šifrante. To pomeni, da v tabele, ki so vsebinsko najbolj bistvene in kjer je to seveda smiselno, zapisujemo le »Id« vrednosti. Lep primer uporabe šifranta so vozila. To (registrska številka) je s svojim unikatnim številom (Id) vneseno v tabeli, namenjeni shranjevanju podatkov o vozilih. Tu ima poleg zapisane registrske številke vneseno še celo vrsto drugih vrednosti, npr. interna številka, leto izdelave, datum nakupa, datum zadnje in naslednje registracije, številka motorja in šasije… Za uporabnike spletnih rešitev vsi ti podatki niso aktualni, zato s pomočjo podatkovnega pogleda povežemo Id vozila v glavni tabeli z unikatno Id številko v tabeli za vozila, uporabniku pa pokažemo le zanj aktualen podatek – registrsko številko vozila. To lahko storimo z opisanimi podatkovnimi pogledi ali pa komponento ASPxGridLookup, ki si jo bomo ogledali v nadaljevanju. Obravnavane spletne rešitve so oblikovane tako, da ima vsak sklop po 2 strani. Na prvi strani poglavja uporabniku prikazujemo vse bistvene podatke. Takšne strani smo imenovali »Okolje«. Če uporabnik želi urediti podatke v prikazani vrstici, se preko gumba pomakne na naslednjo stran sklopa, ki smo jo imenovali kar »Podrobno«. Na takšnem tipu strani uporabniku prikazujemo vse aktualne vrednosti, hkrati pa mu tudi omogočamo, da jih ureja. Opisani podatkovni pogledi so v programski rešitvi torej uporabljeni predvsem na prvih straneh sklopov – na straneh tipa »Okolje«.

Procedure (SQL Stored Procedure)

SQL procedure so zaporedje ukazov, ki so shranjeni v podatkovni bazi. Ob vsakem klicu procedure s strani neke programske rešitve, se bodo vsakič po definiranem zaporedju eden za drugim izvedli vsi shranjeni ukazi (Berke, 2009). SQL procedure lahko vsebujejo ukaze za pridobivanje podatkov, ustvarjanje novih vrstic ali pa urejanje ali brisanje že obstoječih vrstic. Odvisno od primera se lahko nekatere procedure izvedejo brez kakršnih koli virov ali parametrov iz okolja, ki proceduro kliče. V drugih primerih za uspešno izvedbo ukazov procedure v klic moramo dodati neke vhodne parametre, s katerimi se vsi ukazi izvedejo. Mogoče je proceduro oblikovati tudi tako, da programska rešitev, ki je izvedla klic, vrača neke izhodne podatke.

Page 21: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 15

Ena glavnih prednosti uporabe procedur je ta, da se te kljub temu, da lahko vsebujejo večjo količino ukazov, izvedejo izredno hitro (Berke, 2009). ASP.NET spletne rešitve delujejo tako, da se za kakršen koli pregled ali opravljanje s podatki preko SQL klicev s strani uporabnika njegov računalnik mora povezati s strežnikom, kjer je nameščena podatkovna baza, kar pa se seveda ne zgodi instantno. Časovno smo veliko bolj učinkoviti, če za izvedbo neke serije SQL ukazov uporabimo proceduro, ki jo preko spletne rešitve kličemo le enkrat, kot pa če ne bi uporabljali procedur in bi klicali vsakega izmed SQL ukazov, združenih v proceduri, samostojno (Berke, 2009). V spletnih rešitvi ClickTransPRT smo uporabili SQL procedure na več načinov. Uporabili smo jih za kreiranje novih vrstic kot so najave ali trajne dovolilnice, kjer moramo že ob kreiranju nastaviti določene parametre, kot tudi urejanje že obstoječih zapisov.

Med samim procesom razvoja smo večkrat ugotovili, da pri načrtovanju podatkovne strukture na nekatere stvari nismo pomislili, nekaterih stvari nismo predvideli ali pa se je predviden načina delovanja spletne rešitve nekoliko spremenil. Zaradi sprememb smo podatkovno strukturo večkrat ustrezno prilagodili. Ob koncu razvoja smo v programski rešitvi ClickTransPRT uporabljali podatkovne tabele, ki so predstavljene v tabeli 1.

Ime tabele Komentar

GLAVNE, VSEBINSKE TABELE

VarnostGlava vsebuje glavne podatke najav

VarnostPoz vsebuje glavne podatke o prihodih in izhodih vozil

SifrantDovolilnic vsebuje glavne podatke trajnih dovolilnic

Log_XMLKamere vsebuje zapise, ki jih generirajo kamere

ŠIFRANTI

Vozilo vsebuje zapise o vozilih

Podatki vsebuje zapise o voznikih in sovoznikih

Subjekt vsebuje zapise o podprevoznikih

SifrantKamer vsebuje seznam varnostnih kamer na vhodih

SifrantProg vsebuje seznam prog na vhodih

SifrantDrzav vsebuje seznam držav

Tabela 1: Namen in vloga podatkovnih tabel v programski rešitvi ClickTransPRT

5.2. SPLOŠNA PODOBA PROGRAMSKE REŠITVE Ljudje smo vizualna bitja, zato je izredno pomemben del vsake programske rešitve uporabniški vmesnik (UI). Ta mora biti enostaven, intuitiven, učinkovit, predvsem pa mora biti preko celotne vsebine orodja konsistenten. Če vse strani izgledajo in delujejo na podoben način, uporabniku omogočimo lažjo uporabo orodij, ga ne zmedemo in mu prihranimo velik del časa, ki bi ga porabil za učenje o učinkoviti uporabi spletnega orodja (Gaffney, 2005). Ko govorimo o konsistentnosti spletnih rešitev ugotovimo, da moramo takšne lastnosti upoštevati na dveh nivojih.

Page 22: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 16

Prva zvrst, na katero mnogokrat pozabimo, je eksterna ali zunanja konsistentnost, kjer si ogledamo vse splošno sprejete prakse na področju izgleda spletnega orodja. Na naši spletni rešitvi bodo uporabniki skušali uveljaviti pravila, na katere so že navajeni iz drugih programskih rešitev, ki jih morda uporabljajo na delovnem mestu ali pa v prostem času, čeprav morda ta na naših rešitvah ne veljajo. S seboj uporabnik torej prinese svoje izkušnje in pričakovanja, ki pa jih moramo pri razvoju upoštevati in predvideti, saj v nasprotnem primeru lahko povzročimo zmedo, nezadovoljstvo uporabnika in nepotrebne težave. Druga je interna konsistentnost. Tu govorimo o ohranjanju podobnosti med stranmi v celotni vsebini spletnega orodja (Gaffney, 2005). Pri obravnavanju omogočanja konsistentnosti moramo biti pozorni na naslednje elemente:

Jezik V spletni rešitvi skušamo uporabljati preprost in razumljiv jezik. Elementi po različnih straneh so imenovani na enak način. V primeru uporabe strokovnih izrazov moramo biti pozorni, da za nek pojem vedno uporabljamo enak izraz, ki pa mora biti hkrati tudi odobren s strani naročnika. Ko uporabniku z orodjem želimo nekaj sporočiti, vedno uporabimo enak »ton« sporočanja in enako obliko glagolov (Gaffney, 2005).

Elementi uporabniškega vmesnika Da uporabnika v spletnem orodju ne zmedemo, uporabljamo komponente za namene, ki so jim namenjene. Tako komponento ComboBox uporabljamo, kadar lahko izbiramo med več možnostmi, a na koncu izberemo le en rezultat, medtem ko komponento CheckBox uporabljamo v primerih, ko lahko izbiramo med več možnostmi in na koncu lahko izberemo več možnih rezultatov (Slika 3) (Gaffney, 2005).

Slika 3: Ponazoritev razlike med komponentama ComboBox in CheckBox V spletni rešitvi skušamo smiselno uporabljati ikone in simbole. Navadno jih uporabljamo za hitrejše in lažje prepoznavanje elementov uporabniškega vmesnika in njihovih funkcij. V obravnavani programski rešitvi na primer na gumbu za kreiranje novega zapisa v tabeli vedno prikazujemo ikono, na kateri je slika praznega lista z znakom »+« ( ). Pozorni moramo biti, da smo v orodjih pri gumbih z enako ali podobno funkcionalnostjo dosledni in prikazujemo uporabniku vedno enako ikono in besedilo.

Page 23: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 17

Postavitev Upoštevanje eksterne konsistentnosti je tukaj izredno pomembno. Splošno sprejeto pravilo pravi, da stran za čim boljšo preglednost razdelimo na glavo, vsebino in nogo strani. V glavi strani naj bi se v levem kotu nahajal logo in ime spletnega orodja, v desnem kotu pa podatki o vpisanem uporabniku. V vsebini se pod glavo ali na levem robu navadno nahaja navigacijski meni, glavnino prostora pa zasede vsebina posamezne strani. Pod vsebino se nahaja noga strani v kateri lahko prikazujemo dodaten navigacijski meni, kontaktne podatke ali verzijo spletne rešitve (Gaffney, 2005). Upoštevati moramo seveda tudi interno konsistentnost, kar pomeni, da ohranjamo splošno obliko in videz vseh strani v spletni rešitvi. (Gaffney, 2005)

Da bi se držali načel konsistentnosti, smo spletne rešitve zasnovali tako, da so si v izgledu in osnovnih funkcionalnostih zelo podobne ali pa celo identične. Pri oblikovanju obravnavanih spletnih rešitev smo sledili strukturi, ki jo danes že uporablja velika večina spletnih strani in orodij. Gre za preverjeno obliko strani, kjer spletno stran razdelimo na tri podskupine - glavo, vsebino in nogo. Glava in noga sta oblikovno v vseh treh spletnih orodjih skoraj identične, medtem ko se oblika in struktura vsebine med orodji močno razlikuje, saj je odvisna od naloge posameznega spletnega orodja. Razvijalci ogrodja ASP.NET se potrebe po konsistentnosti očitno zavedajo, zato so pripravili orodja, ki nam pomagajo, da čim hitreje in enostavno postavimo konsistentno strukturo spletne rešitve. Navadno bi razvijalci morali za vsako novo stran vedno znova kopirati kodo, besedilo, strukturo in komponente, ki se nahajajo v skupnih delih spletne strani. Če bi želeli naknadno spremeniti ali prilagoditi skupne dele strani, bi morali spremeniti ukaze na vsaki ustvarjeni spletni strani posebej (ASP.NET Master Pages, 2016). V ASP.NET ogrodju lahko opisane težave rešimo z uporabo tako imenovanih »glavnih« strani. Gre za posebno vrsto strani, ki jo oblikujemo na enak način kot navadno, vsebinsko spletno stran, nato pa glavno stran povežemo s poljubnimi vsebinskimi stranmi (ASP.NET Master Pages, 2016). Ko v spletnem brskalniku zahtevamo stran, ki je sestavljena tako iz glavne kot tudi vsebinske strani, se ti dve strani združita, tako da ju uporabnik vidi kot eno samo spletno stran (ASP.NET Master Pages, 2016). V programski rešitvi ClickTransPRT smo za oblikovanje konsistentne strukture strani uporabili temu namenjeno glavno stran »Root.Master, ki smo jo pridobili s kreiranjem DevExpress ASP.NET projekta v razvojnem okolju Visual Studio. Celotno glavno stran pravzaprav sestavlja komponenta ASPxSplitter, preko katere nastavljamo osnovno obliko rešitve v spletnem brskalniku. Omenjeno komponento smo nastavili tako, da spletno orodje vedno zasede celotno površino ekrana. Celotna programska rešitev je bila po naročnikovih navodilih razvita za uporabo na 22 colskih ali večjih monitorjih. Da bi omogočili uporabo tudi na manjših ekranih velikosti in oblike spletnih strani ne spreminjamo, temveč omogočimo uporabo celotne vsebine preko horizontalnih in vertikalnih drsnikov.

Page 24: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 18

V komponenti ASPxSplitter lahko definiramo več delov strani. S pomočjo te funkcionalnosti smo stran razdelili na glavo, vsebino in nogo spletne strani. GLAVA STRANI:

V levem delu prikazujemo naročnikov logo in naziv spletnega orodja.

V primeru spletnih orodij ClickTransPRT Live in ClickTransPRT Kamere, je naročnik želel, da uporabniku prikazujemo trenutni čas. »Uro« smo postavili v sredino glave strani. Gre za komponento ASPxLabel, ki jo s pomočjo časovne komponente ASPxTimer vsako sekundo posodabljamo in ji nastavljamo vrednost trenutnega časa (ura v formatu hh:mm:ss).

V desnem delu se nahaja kontrola za upravljanje uporabnika (Slika 4). Kot je vidno na sliki (Slika 4), uporabnika v primeru, da je ta uspešno prijavljen v spletno rešitev, kontrola pozdravi z besedilom »Dobrodošli 'uporabniško ime uporabnika' !« poleg besedila pa se nahaja gumb »Odjava«, preko katerega se uporabnik odjavi iz orodja in vrne na stran za prijavo uporabnika. Ko uporabnik ni prijavljen v spletno orodje kontrola prikazuje gumba »Prijava«, ki le tega vrne nazaj na stran za prijavo in pa gumb »Registracija«, ki trenutno ni v uporabi.

Slika 4: Primer delovanja kontrole za upravljanje uporabnika

VSEBINA STRANI:

Obsega večino površine spletne strani. Ker je močno odvisna od naloge spletnega orodja, bo več o vsebini razloženo pri predstavitvah posameznih orodij.

NOGA STRANI:

V levem delu noge se nahaja verzija spletne rešitve.

V desnem delu noge se nahaja leto razvoja orodja in naziv podjetja, ki je orodje razvilo.

5.3. VARNOST Za delovanje programska rešitev ClickTransPRT uporablja interne podatke naročnikovega podjetja, vendar mnogi med njimi niso javno dostopni. Hkrati so vsi omenjeni podatki ob delovanju spletnih rešitev smiselno povezani, tako da tvorijo neko celoto. Nekdo, ki ni usposobljen za uporabo programskih rešitev, bi lahko kljub zaščitam podatke pomešal, tako da povezave ne bi bile več smiselne. Spletne rešitve pa s takšnimi podatki ne morejo delovati pravilno. Zaradi teh varnostnih razlogov je potrebno zagotoviti, da do pregleda in urejanja vsebine spletnih orodij ne more dostopati nihče, ki za to ni usposobljen in nima ustreznih dovoljenj. Za preprečevanje nepooblaščenega dostopa v spletne rešitve smo postavili štiri vrste zaščite:

Nastavili smo, da vse obravnavane spletne rešitve tečejo na vratih, do katerih je možno dostopati le znotraj naročnikovega lokalnega omrežja. S

Page 25: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 19

tem smo onemogočili, da se osebe izven naročnikovega intraneta povežejo do programske rešitve.

Na vseh obravnavanih spletnih orodjih smo vzpostavili kontrolo, kjer preden omogočimo dostop do vsebine spletnih orodij, preverjamo, če ima uporabnik, ki se skuša prijaviti v spletno rešitev, sploh dovoljenje za vstop.

Z namenom preprečevanja možnosti dostopanja in uporabe orodij s strani nepooblaščenega uporabnika, do katere lahko pride, ker se prejšnji uporabnik ni pravilno odjavil iz spletne rešitve, smo nastavili kontrolo, ki po X minutah neaktivnosti uporabnika samodejno izpiše iz orodja.

Ob vstopu na katero koli stran spletnih rešitev preverjamo, v katero uporabniško skupino spada vpisan uporabnik. Nekatere vsebine lahko pregledujejo in urejajo le uporabniki določenih skupin.

Kontrolo vpisovanja smo vzpostavili s pomočjo sistema Active Directory (AD), ki ga je podjetje Microsoft za sisteme Windows Server prvotno razvilo z namenom lažjega upravljanja virov, ki so v omrežje povezani preko iste domene (npr. možnost uporabe enega računalnika ali tiskalnika za vse ljudi v nekem oddelku). Med načini doseganja takšne funkcionalnosti je sistem dodeljenih uporabniških računov (uporabniških imen in gesel)( (Bauer, 2006)). Ko uporabnik želi uporabljati poljuben, v domeni deljen vir, se v sistem poveže z dodeljenim uporabniškim imenom in geslom. Pristnost vpisanih podatkov se nato preveri na domenskem strežniku, kjer so shranjeni vsi podatki uporabnikov. Če se vpisani podatki ujemajo s tistimi, ki jih ima shranjene sistem AD, se uporabniku dovoli uporabljati deljen vir (Bauer, 2006). Pri uporabi sistema AD v povezavi s spletnimi rešitvami so za nas najbolj pomembne sledeče možnosti :

beleženje in urejanje podatkov o uporabnikih,

ustvarjanje in urejanje uporabniških skupin,

razporejanje uporabnikov po uporabniških skupinah,

nastavljanje pravic ter dovoljenj članom uporabniških skupin ali posameznim uporabnikom.

Sama prijavna stran vsebuje enostaven obrazec, v katerega uporabnik vpiše svoje uporabniško ime in geslo (Slika 5). Seveda morata biti tako uporabniško ime kot geslo izpolnjena, v nasprotnem primeru spletna rešitev opozori uporabnika.

Slika 5: Prikaz prijavnega obrazca

Page 26: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 20

Ob kliku na gumb za prijavo, se izvede del programske kode za vpis uporabnika v sistem. Najprej preverimo, če se uporabnikovi vpisani podatki ujemajo s katerim od zapisov, ki jih imamo vnesene v sistemu Active Directory. To storimo z ukazom ValidateUser iz knjižnice System.Web.Security.Membership, v katerega kot parametra vnesemo vpisano uporabniško ime in geslo: Membership.ValidateUser(tbUserName.Text, tbPassword.Text)

Če smo pristnost uporabnika uspešno potrdili, mu podamo pravico za vstop v spletno orodje. To storimo tako, da s spodnjim ukazom za vpisano uporabniško ime ustvarimo avtentikacijski piškotek, ki velja kot nekakšna vrsta vstopnice in pravzaprav v spletni rešitvi predstavlja samega uporabnika. V ukaz kot parameter dodamo uporabniško ime in boolean vrednost, glede na to, ali želimo ustvariti trajni piškotek. Ker v naših programskih rešitvah tega ne želimo, kot drug parameter vpišemo vrednost »False«. FormsAuthentication.SetAuthCookie(tbUserName.Text, False) Avtentikacijski piškotek za uporabnika in izbrani spletni rešitvi obstaja 15 minut, a se vedno, ko spletna rešitev vstopi v stik s strežnikom, piškotova življenjska doba znova nastavi nazaj na prvotnih 15 minut. Orodje se poveže s strežnikom vedno, ko pritiskamo gumbe, se pomikamo med stranmi, urejamo podatke … To pomeni, da bo avtentikacijski piškotek potekel le v primeru, ko orodje nihče ne uporablja in je že 15 minut v stanju mirovanja. Za primere, ko bi prišlo do situacije, kjer je avtentikacijski piškotek potekel, uporabnik pa še naprej želi uporabljati spletno rešitev, smo ustvarili uporabniško kontrolo, ki vsako sekundo preverja stanje preostalega časa uporabniške seje. Minuto pred avtomatsko odjavo, spletno orodje uporabnika opozori na potek seje z novim pojavnim oknom, kjer orodje odšteva preostali čas seje (Slika 6). Pojavno okno je prikazano na spodnji sliki. Če uporabnik želi s sejo nadaljevati, lahko pritisne gumb, ki sproži dogodek, kjer se spletna rešitev poveže s strežnikom, kar znova podaljša življenjsko dobo avtentikacijskega piškotka in omogoči uporabniku najmanj 15 minut ponovne uporabe orodja. Če uporabnik na opozorila ni reagiral in 15 minut poteče, spletna rešitev avtomatsko izpiše uporabnika iz sistema in ga vrne na stran za prijavo.

Page 27: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 21

Slika 6: Prikaz pojavnega okna z opozorilom o poteku seje

Poleg tega, da preko avtentikacijskega piškotka preverjamo, če uporabnik lahko dostopa do spletnega orodja, smo piškotek uporabili tudi za druge namene. Med sejo uporabnika ima vsak uporabnik edinstven avtentikacijski piškotek, na katerega lahko v programski kodi med izvajanjem pritrdimo po želji imenovan objekt vrste »Session«, v katerega pa nato shranimo neko vrednost. Dokler ima uporabnik orodje odprto in seja teče, lahko kadarkoli in na kateri koli strani spletne rešitve iz objekta »Session« pridobimo vrednost, ki smo jo pod izbranim imenom shranili (ASP Session Object, 2016). Kot je bilo že omenjeno, ob vsakem prihodu na stran spletnih rešitev vedno znova preverjamo uporabniške skupine, katerih član je vpisan uporabnik. V sodelovanju z naročnikom smo definirali štiri uporabniške skupine:

»Clictrans-web«, ki predstavlja administratorje sistema. Člani te skupine imajo dostop do vseh treh spletnih orodij, vse vsebine in vseh funkcionalnosti.

»Clicktrans-web-var«, ki predstavlja varnostnike. Imajo dostop do vseh orodij. V spletni rešitvi ClickTransPRT imajo možnost registracije prihajajočih/odhajajočih vozil. Pregledujejo lahko vse podatke o najavljenih vozilih, a so nekatera polja zaklenjena in jih člani skupine ne morejo urejati.

»Clicktrans-web-teh«, ki predstavlja zaposlene v tehnični službi. Člani skupine imajo dostop le do spletnih rešitev ClickTransPRT Live in ClickTransPRT Kamere.

»Clicktrans-web-nab«, ki predstavlja zaposlene v nabavni službi. Člani skupine lahko dostopajo le do za njih izdelanega sklopa v spletni rešitvi ClickTransPRT.

Če uporabnik ni v nobeni izmed definiranih uporabniških skupin, ga obravnavamo kot neznanega uporabnika in mu ne dovolimo dostopati do vsebine spletnih orodij.

Uporabniške skupine so tako kot uporabniki programske rešitve definirani v sistemu Active Directory. Ko so skupine kreirane, lahko le z nekaj kliki uporabnikom dodeljujemo članstvo v skupini. Z naročnikom smo dogovorjeni, da je posamezen uporabnik lahko član le ene izmed definiranih uporabniških skupin. Same pravice in dovoljenja posamezne skupine v samem sistemu AD niso določene, ampak jih definiramo kar znotraj spletnih rešitev.

Page 28: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 22

Ob prihodu na posamezno stran orodja se v dogodku Page_Load kliče funkcija »PreveriSkupinoUporabnika«, ki vrača vrednost tipa String. V sami funkciji je potrebno najti dva objekta. Prvi je avtentikacijski piškotek uporabnika ki je trenutno vpisan v spletno rešitev. Pridobimo ga s pomočjo ukaza UserPrincipal.FindByIdentity, v katerega kot parametra podamo ime domene ter uporabniško ime. Drug potreben objekt je sama uporabniška skupina, definirana v sistemu Active Directory. To pridobimo z ukazom GroupPrincipal.FindByIdentity, v katerega prav tako dodamo parametra, ki predstavljata domeno, po kateri iščemo, in pa ime iskane skupine. Ko imamo potrebna elementa, lahko z ukazom user.IsMemberOf(group), kjer spremenljivka “user” predstavlja objekt trenutnega uporabnika in spremenljivka “group” predstavlja objekt iskane skupine, preverjamo članstvo v uporabniški skupini. Ko najdemo skupino, katere član je vpisan uporabnik, v programski kodi nastavimo vrednost, ki jo bomo vračali klicu funkcije. Nastavljena vrednost predstavlja ime skupine. V dogodku Page_Load, ki se sproži ob nalaganju strani, lahko glede na pridobljeno ime skupine, z enostavnim SELECT CASE stavkom nastavljamo, katere funkcionalnosti in komponente so na strani za uporabnika odklenjene in katere zaklenjene (Slika 7). Če uporabnik nima dovoljenja za obisk trenutne strani, ga preusmerimo na stran z opozorilom, preko katere se lahko vrne na »domačo« stran dodeljene uporabniške skupine.

Slika 7: SELECT CASE stavek za zaklepanje funkcionalnost/komponent

6. RAZVOJ IN PREGLED ORODJA CLICKTRANSPRT ClickTransPRT je glavno spletno orodje programske rešitve. Je daleč najbolj obsežno in kompleksno izmed orodij, zato smo ji tudi posvetili največ časa in truda. Medtem ko preostali dve spletni rešitvi služita pregledovanju vsebine, je glavna naloga orodja ClickTransPRT ravno spreminjanje in smiselno povezovanje podatkov.

Page 29: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 23

V spletno orodje smo vključili funkcionalnosti, ki skoraj v celoti izpolnijo naročnikove zahteve. Z uporabo uporabniki pridobijo možnost priprave in pregleda najavljenih prihodov ali izhodov vozil. Poleg tega lahko s pomočjo spletne rešitve enostavno, hitro in avtomatizirano beležijo prihajajoča in odhajajoča vozila.

6.1. SPLOŠNA PODOBA ORODJA Vstop v spletno rešitev imajo uporabniki, ki so člani skupin »Administrator«, »Varnostnik« in Nabavnik«, a smo v dogovoru z naročnikom nekatere strani, ali funkcionalnost za člane določenih skupin, onemogočili. Za konsistentno strukturo in izgled vsake strani v spletnem orodju smo uporabili glavno stran »Root.master«, ki vsako stran horizontalno razdeli na glavo, nogo in vsebino, nato pa glavo in nogo zapolni z že opisano vsebino. Po želji naročnika smo v levi del vsebinskega dela vstavili stranski meni. Ta vsebuje komponente in funkcionalnosti, ki morajo biti prijavljenemu uporabniku na voljo ves čas. To smo dosegli z glavno stranjo »Main.master«, ki vsebino, tokrat vertikalno, razdeli na dva dela. Levi del predstavlja stranski meni, ki je na vseh straneh enak, desni del pa vsebino, ki je odvisna od trenutno odprte strani spletnega orodja. Za lažjo predstavo smo shemo gnezdenja glavnih strani prikazali na spodnji sliki.

Slika 8: Prikaz gnezdenja glavnih strani v rešitvi ClickTransPRT Celotno glavno stran smo opremili s komponentama ScriptManager in UpdatePanel, kar nam bo ob uporabi spletne rešitve omogočilo osveževati le vsebino in ne celotne strani. Ker smo komponenti dodali na glavno stran, ki se bo ob zagonu izbrane strani združila z vsebinsko stranjo, nam ni potrebno znova dodajati novega para komponent na vsako stran posebej. V del strani, namenjen stranskemu meniju, smo za lažje oblikovanje dodali komponento ASPxLayoutControl. V stolpcu smo kreirali 4 poglavja, v katera smo nato dodali komponente, preko katerih bo uporabnik imel možnost upravljanja elementov po celotnem orodju (Slika 9).

Page 30: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 24

Slika 9: Slika stranskega menija rešitve ClickTransPRT

Celoten meni bomo obravnavali po posameznih skupinah.

»Vrata« - Vsebuje komponento ASPxGridLookup, ki smo jo povezali tako, da iz podatkovne baze bere in prikazuje vrednosti iz šifranta , v katerem so vneseni vsi vhodi v naročnikove obrate. Izbira vhoda je izredno pomembna in je prva stvar, ki jo varnostnik izpolni ob prijavi v spletno repitev. Varnostnikov ob uporabi ne zanimajo podatki o prihodih in izhodih po celotnem podjetju, temveč le za vhod, na katerem uporabljajo spletno orodje. Preko polja »Vrata« torej pridobimo informacijo o trenutnem vhodu in glede na ta podatek prilagajamo vsebino orodja.

»Register« - Vsebuje gumbe »Transp. sredstvo (Nov zapis)«, »Obiskovalec« in »Trajno dovoljenje«. Trenutno sta v uporabi le prvi in zadnji gumb.

o Gumb »Transp.sredstvo« sproži SQL procedure, ki kreirajo popolnoma »prazno« najavo vozila. To pomeni, da generira vnaprej določeno ogrodje najave, a vsebinske vrednosti pusti nedoločene. Gre za že omenjeni način ročnega kreiranja najave preko spletne rešitve, ki pa se običajno ne uporablja. V rešitvi je ta način dodan za primere, ko bi drugi načini kreiranja najav odpovedali.

Page 31: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 25

Ko orodje s pomočjo procedure uspešno generira »prazno« najavo, spletno orodje uporabnika preusmeri na stran ClickTransPRT-PodrobnoKoncno.aspx, preko katere uporabnik lahko generirano najavo uredi in ji dodeli potrebne vsebinske vrednosti.

o Gumb »Obiskovalec« trenutno ni v uporabi. o Gumb »Trajno dovoljenje« preusmeri uporabnika na stran

ClickTransPRT-Dovolilnice.aspx, ki je prva stran sklopa za pregled in urejanje trajnih dovolilnic.

»Iskanje« - Vsebuje orodje za filtriranje podatkov v komponentah ASPxGridView, ki jih najdemo na prvih straneh posameznih sklopov in so namenjene pregledu najav ali trajnih dovolilnic. Uporabniki lahko hkrati filtrirajo po enem ali več kriterijih. Trenutno ponujamo možnost iskanja po zaporedni številki, registrski številki vozila, nazivu voznika in številki dobavnega dokumenta, saj so to tisti podatki, ki jih imajo izpolnjene skoraj vse najave ali trajne dovolilnice.

o Gumb »Iskanje« se nahaja na dnu skupine in ga uporabnik pritisne za tem, ko je izbral vrednosti, po katerih želi filtrirati zapise trenutno odprte strani. Delovanje gumba je omogočeno le na prvih straneh sklopov, torej straneh za pregled najav in trajnih dovolilnic. Ob kliku na gumb »programska koda« najprej preveri ime strani, ki je trenutno odprta, iz te vrednosti pa lahko kličemo različico komponente ASPxGridView, ki se nahaja na odprti strani. Preverimo, kateri izmed kriterijev so vneseni, če je vrednost polja prazna, ga ne upoštevamo. V programski kodi za vsak izpolnjen kriterij sestavimo iskalni ukaz in ga združimo z ostalimi. Tako kot v SQL, pogoje ločujemo z »AND«. Nazadnje skupino kriterijev podamo aktualni komponenti ASPxGridView kot vrednost lastnosti »FilterExpression«. Primer sestavljenega ukaza za filtriranje najav po reg. številki vozila, nazivu voznika in zaporedni številki najave:

[Vozilo] Is like '%KR MP5-S2%' And [Voznik] Is like '%Novak Andrej%' And

[Zap. Št] Is like '%74%'

o Gumb »Iskalnik« preusmeri uporabnika na stran ClickTransPRT-

Iskalnik.aspx, na kateri ima uporabnik možnost hkrati iskati po vseh najavah in trajnih dovolilnicah in bo podrobneje opisana v nadaljevanju.

o Gumb »Vnos registracije« uporabniku omogoča dostop do ene glavnih funkcionalnosti spletnega orodja - registracije prihodov in izhodov vozil iz naročnikovega obrata. Ker je naročnik želel, da ima varnostnik možnost izvedbe registracije v kateremkoli poglavju spletne rešitve, smo se odločili, da orodja ne ponudimo kot dodatno spletno stran, temveč kot pojavna okna, ki jih postavimo v glavno stran Main.master. Orodje za registracijo je podrobneje opisano v naslednjem podpoglavju.

Na dnu menija se nahajata navigacijska gumba »Pregled« in »Izhod«. o Gumb »Pregled« uporabnika ob kliku vrne na začetno stran orodja z

imenom ClickTransPRT-OkoljeKoncno.aspx. o Gumb »Izhod« uporabnika ob kliku izpiše iz orodja in ga vrne na

prijavno stran.

Page 32: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 26

6.2. ANALIZA POSAMEZNIK VSEBINSKIH STRANI

Poleg prijavne strani spletno orodje vsebuje še sedem drugih vsebinskih strani, ki smo jih glede na njihov namen, nalogo ali vrsto uporabnikov, ki so jim namenjeni, razdelili na štiri sklope:

Pregled in urejanje najav - varnostniki

Pregled in urejanje trajnih dovolilnic – administratorji in varnostniki

Pregled in kreiranje najav – nabavna služba

Skupni iskalnik – vse uporabniške skupine

Prvi trije sklopi so vsi strukturirani na zelo podoben način. Vsak sklop vsebuje po 2 strani. Prva stran je namenjena množičnemu prikazu najav ali trajnih dovolilnic, kjer s pomočjo komponente ASPxGridView prikazujemo le najbolj bistvene stolpce. Takšen tip strani smo poimenovali »okolje«. Druga stran v sklopu je namenjena prikazovanju vseh, za uporabnika aktualnih vrednosti za izbrano najavo ali trajno dovolilnico. Takšen tip strani je strukturiran kot obrazec in smo ga v spletni rešitvi imenovali kar »podrobno«. Tudi pri samem delovanju so si strani v sklopih zelo podobne. Da večkrat ne opisujemo enakih stvari, si bomo prvi sklop pogledali bolj podrobno, pri drugem in tretjem pa bomo le opozorili na posebnosti in razlike.

6.2.1. SKLOP PREGLED IN UREJANJE NAJAV – VARNOSTNIKI Sklop sestavljata strani ClickTransPRT-OkoljeKoncno.aspx (Slika 11), ki služi za pregled najav in ClickTransPRT-PodrobnoKoncno.aspx (Slika 15), katere namen je podroben pregled in urejanje posamezne najave. PRVA STRAN SKLOPA - »OKOLJE« ClickTransPRT-OkoljeKoncno.aspx je prva stran, ki jo uporabniki, ki so člani skupin »varnostnik« in »administrator«, obiščejo po prijavi v spletno rešitev. Hkrati gre tudi za »domačo« stran omenjenih uporabnikov. Celotna stran je namenjena pregledovanju pripravljenih najav, kar pomeni, da moramo uporabniku prikazovati le najbolj bistvene podatke, ki pa morajo biti prikazani v čim bolj pregledni in razumljivi obliki. Zato smo v SQL podatkovni bazi kreirali nov podatkovni pogled, ki smo ga poimenovali »dbo.Q_VarnostAppointments«. S povezovanjem podatkovnih tabel smo v podatkovnem pogledu generirali celo vrsto aktualnih podatkov. Najbolj bistveni so sledeči:

Ime stolpca Razlaga vsebine

Zap.Št. Številka, ki jo ima vsaka najava. Ob kreiranju novih najav se povečuje za 1.

Posl. Leto poslovno leto

Št. Priponke št. kartice, ki jo ob vhodu v obrat na vratarnici dobi voznik vozila

Page 33: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 27

Izj. Voznika Ali je voznik podpisal izjavo o razumevanju pravil (boolean)?

Planiran čas datum in čas planiranega prihoda vozila v obrat

Dovoz čas datum in čas prihoda vozila v obrat

Izvoz čas datum in čas izhoda vozila iz obrata

Namemb. Voz. namembnost ali vrsta najavljenega vozila

StatusAppointment trenutni status najave (1-planiran prihod vozila, 2-vozilo je v obratu, 3-vozilo je zapustilo obrat)

Vozilo registrska številka najavljenega vozila

Št. Transporta interna številka transporta

Prikolica registrska številka prikolice najavljenega vozila

Voznik naziv voznika najavljenega vozila

St.Nab.Dok. številka nabavnega dokumenta povezanega z najavo vozila

Prevoznik naziv prevoznika

Tabela 2: Seznam in komentar najpomembnejšim stolpcem v SQL pogledu

»dbo.Q_VarnostAppointments«

Vsebino, ki jo vrača podatkovni pogled, smo uporabniku prikazali v že znani komponenti ASPxGridView, ki se razteza čez celotno stran. Komponenti smo za lažje upravljaje in razumevanje, poleg osnovnih, dodali še naslednje funkcionalnosti. Za uporabnika je med najpomembnejšimi podatki v vrstici najave njen trenutni status. Ta sicer ni zapisan v podatkovni bazi, a številsko vrednost statusa s pomočjo podatkovnega pogleda generiramo glede na to ali so vrednosti časa prihoda ali časa izhoda že zapolnjene. Ker ljudje simbole opazimo hitreje kot številke, smo številske vrednosti zamenjali s smiselnimi barvnimi ikonami. To smo dosegli tako, da smo v polje, v katerem bi se prikazovala vrednost stolpca »StatusAppointment«, vstavili slikovno komponento ASPxImage. Ob nalaganju strani se za vsako vrstico tabele sproži dogodek inicializacije slikovne komponente. V programski kodi ob sprožitvi dogodka lahko iz ozadja pridobimo številsko vrednost statusa, glede na pridobljeno vrednost pa določimo sliko, ki naj jo slikovna komponenta prikaže (Slika 10).

Slika 10: Odsek programske kode za dinamično nastavljanje slike

Za nadzor nad podatki smo v komponento ASPxGridView dodali 3 »Command« gumbe. To so gumbi, ki se nahajajo v prvem stolpcu tabele, v vrsticah v katerih so prikazani podatki. Ta zvrst gumba je tako zelo uporabna, ker ob kliku na gumb v programski kodi lahko razberemo, v kateri vrstici je bil gumb pritisnjen in

Page 34: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 28

pridobljeno vrednost upoštevamo v programski kodi (Custom Command Buttons, 2016). Komponenti smo dodali naslednje »Command« gumbe«:

Gumb omogoča uporabniku prehod na stran za podroben pregled in spreminjanje vrednosti najav, v kateri je pritisnil na gumb. V programski kodi torej pridobimo ID vrednost vrstice in jo shranimo v že opisan objekt »Session« pod imenom »IdVrstice«, do katere bomo lahko nato dostopali tudi na drugi strani. Če želimo uporabnika preusmeriti na naslednjo stran, izvedemo ukaz RedirectOnCallback("ClickTransPRT-

PodrobnoKoncno.aspx"), kjer je parameter ime strani, na katero uporabnika preusmerjamo.

Gumb služi orodju za zaklepanje podatkov, ki je opisan v nadaljevanju.

Gumb varnostniki uporabijo za odstranitev vrstice v primerih, ko je prišlo do napake in je za vozilo kreirana več kot ena najava. V programski rešitvi ClickTransPRT smo zaradi varnosti postavili pravilo, da nobenih zapisov iz podatkovne baze ne brišemo, ampak jih uporabniku le skrijemo/odstranimo. Odstranjevanje dovoljujemo le za najave, kjer je vozilo najavljeno, ni pa še vstopilo v obrat naročnika (vrednost StatusAppointment je enaka 1). Če vrstica takšnemu pogoju ne ustreza, gumba ne prikazujemo in ga zaradi tega uporabnik ne more sprožiti. Ob pritisku na gumb uporabniku prikažemo opozorilno okno, kjer mora potrdit, da razume kaj počne, s čimer preprečimo nenamerna odstranjevanja. V programski kodi nato pridobimo ID vrednost vrstice, nato pa izvedemo enostaven SQL UPDATE ukaz, kjer izbrani vrstici nastavimo vrednost Status na 9. V komponenti ASPxGridView smo nastavili, da vrstic kjer ima stolpec Status vrednost 9 ne prikazujemo. Če vsebino komponente osvežimo (vstavi kodo), bo vrstica kjer je bil gumb pritisnjen odstranjena.

Poleg omenjenih »Command« gumbov znotraj same tabele, smo nad komponento ASPxGridView dodali gumba, preko katerih uporabnik dostopa do že opisanih orodij »ColumnChooser« in »FilterRow«. Za lažjo predstavo vseh opisanih funkcionalnosti in komponent spodnja slika prikazuje opisano vsebinsko stran ClickTransPRT-OkoljeKoncno.aspx (Slika 11).

Page 35: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 29

Slika 11: Slika vsebinske strani ClickTransPRT-OkoljeKoncno.aspx DRUGA STRAN SKLOPA - »PODROBNO« Stran ClickTransPRT-PodrobnoKoncno.aspx je oblikovana kot obrazec in namenjena podrobnemu ogledu in urejanju najave vozil. Strukturo in razporeditev polj smo poskušali čim bolj približati tisti, ki so je uporabniki že navajeni iz orodja, že uporabljenega pred implementacijo obravnavane programske rešitve. Za lažje razumevanje nadaljnje analize strani si oglejmo strukturo posamezne najave. Sam podatek najave v podatkovni bazi ne obstaja, ampak ga sestavimo iz dveh delov. Prvi del ima v našem primeru vlogo »glave«, torej glavnega dela najave, čigar vrednosti so shranjene v podatkovni tabeli »dbo.VarnostGlava«(Tabela 4). Glava ima na sebe preko povezave ID številk pritrjenih več zapisov, ki predstavljajo drugi del najave. Ti zapisi igrajo vlogo »pozicije« in so shranjene v podatkovni tabeli »dbo.VarnostPoz« (Tabela 3). Ena najava ima torej le eno glavo, v kateri so zapisane vrednosti, kot so zaporedna številka »najave«, reg. številka vozila, naziv voznika, sovoznika, prevoznika, številka nabavnega dokumenta… Vsaka glava je navadno povezana s tremi pozicijami. Prva vsebuje podatke o planiranem prihodu vozila v obrat. Je vedno prva v skupini in jo prepoznamo po imenu »Planirano«. Druga vrstica ima ime »Dovoz« in vsebuje podatke o prihodu vozila v obrat, medtem ko ima zadnja vrstica ime »Izvoz« in vsebuje podatke o izhodu vozila iz obrata. Celotno stran smo s pomočjo komponente ASPxSplitter razdelili na tri dele:

na vrhu strani se nahaja gumb za upravljanje strani,

sledi komponenta ASPxGridView, ki običajno prikazuje tri pozicije najave, v katerih zapisujemo podatke o prihodih ali izhodih vozila,

Page 36: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 30

na dnu se nahaja obrazec, namenjen prikazu in urejanju podatkov glave odprte najave.

Prvi del vsebuje gumba »Izhod«, preko katerega se uporabnik vrne na prejšnjo stran (Okolje), »Izhod s shranjevanjem«. Ob kliku slednjega, se shranijo vse vrednosti, ki so ta trenutek izbrane v vnosnih poljih, nato pa prav tako vrne uporabnika na prejšnjo stran. Sledi gumb za omogočanje že opisanega orodja »Column chooser« in gumb »Dodajanje zapisov«, preko katerega lahko uporabniki za najavo ustvarijo dve dodatni poziciji, eno za »Dovoz« in eno za »Izvoz«. To pomeni, da vozilo, ki je pritrjeno na takšno najavo, s tem pridobi možnost registracije še dodatnega vhoda in izhoda iz obrata. Sledi komponenta ASPxGridView (Slika 12), s pomočjo katere prikazujemo pozicije najave. Za uporabnike so v tabeli prikazane vsebinsko najpomembnejše vrednosti naslednjih stolpcev:

Ime stolpca Razlaga vsebine

Tip vnosa, Opomba vrednosti za lažje prepoznavanje vrstic, 1-Planirano, 2-Dovoz, 3-Izvoz

Datum prihoda čas planiranega prihoda vozila (Planirano), čas prihoda vozila k vratarnici (Dovoz / Izvoz)

Fotografija fotografija slike, ki jo je posnela kamera (če je vhod opremljen s kamerami)

Kreiral uporabniško ime preko katerega je bil zapis kreiran (nam pove, kdo je kreiral najavo vozila)

Datum kreiranja čas kreiranja najave (nam pove, kdaj je bila najava kreirana)

Spremenil uporabniško ime preko katerega je bil zapis zadnjič spremenjen (nam pove, kdo je najavil ali registriral dogodek prihoda/odhoda vozila)

Datum spremembe čas zadnje spremembe v zapisu (nam pove, kdaj je uporabnik najavil ali registriral dogodek prihoda/odhoda vozila.)

Proga ime proge na kateri je bil vhod/izhod vozila registriran

Recepcija ime vhoda na katerem je bil vhod/izhod vozila registriran

Kamera ime kamere, ki je slikala vozilo ob vhodu/izhodu v obrat

Tabela 3: Seznam in komentar najpomembnejših stolpcev v tabeli s pozicijami na

straneh za urejanje in pregled najav Uporabniki ob potrebi po urejanju podatkov pritisnejo na »Command« gumb , ki se nahaja v prvem stolpcu tabele. S klikom se komponenta ASPxGridView odkleni, uporabniki pa lahko nastavljajo nove ali pa spreminjajo obstoječe vrednosti. Če je bil prihod ali izhod vozila zabeležen preko varnostne kamere, se je slika ob registraciji dogodka prenesla v pozicijo najave. V vrsticah pozicij, kjer je slika prisotna, uporabniku v stolpcu »Fotografija« prikazujemo gumb . Ob kliku gumba se v pojavnem oknu prikaže fotografija vozila, ki je povezana z izbrano vrstico.

Page 37: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 31

Za dosego takšne funkcionalnosti, smo uporabili komponento ASPxBinaryImage, ki ji v programski kodi dinamično nastavljamo prikazovano vrednost.

Slika 12: Tabela, namenjena prikazovanju pozicij

Pod tabelo s pozicijami se nahaja obrazec za prikaz in urejanje podatkov, ki so shranjeni v glavi najave. Obrazec smo kreirali in s podatkovno bazo povezali s pomočjo že večkrat omenjene komponente ASPxLayoutControl. Kreirana polja smo nato razdelili v poglavja in v njih dodali komponente, ki najbolj ustrezajo tipu prikazovanega podatka (Tabela 4). Podrobneje si bomo ogledali le najbolj pomembna polja v obrazcu, vse ostale si je mogoče ogledati na sliki 16 prikazani na dnu podpoglavja.

Ime polja Vrsta uporabljene komponente

Razlaga vsebine

Št. Transporta ASPxTextBox interna številko transporta

Nabavni dok. ASPxSpinEdit (le številske vred.)

številka nabavnega dokumenta povezanega z najavo

Registrska št. ASPxGridLookup registrska številka obravnavanega vozila

Prevoznik ASPxGridLookup podjetje, ki je lastnih obravnavanega vozila

Registrska št. prikolice

ASPxGridLookup registrska številka prikolice vozila

Voznik ASPxGridLookup voznik obravnavanega vozila

Sovoznik ASPxGridLookup sovoznik obravnavanega vozila

Oseba ASPxGridLookup naziv kontaktne osebe, ki je odgovorna za najavo

Tabela 4: Seznam polj, vrsta uporabljene komponente in komentar k

najpomembnejšim vnosnim poljem na obrazcu za urejanje glave najave Z registrskimi številkami vozila in prikolice, nazivi prevoznika in nazivi voznika ali sovoznika uporabniki upravljajo preko komponente ASPxGridLookup, kar pomeni, da željeno vrednost izberejo z že obstoječega seznama. Omenjena polja so vsebinsko tipa, kjer uporabniki občasno morajo vnesti vrednosti, ki v podatkovni bazi še ne obstajajo (npr. vozilo v obrat pripelje drug voznik kot je bilo zapisano v najavi, ki pa morda še ni vnesen v podatkovno bazo). Uporabnikom smo pripravili dva načina vnosa novih podatkov. Prvi način je vnašanje podatkov z orodjem za hiter vnos, ki ga bomo opisali kasneje. Drugi način je vnos preko dodatnih pojavnih obrazcev. Ob vnosna polja, za katera je to smiselno, smo dodali gumbe, preko katerih uporabniki lahko odprejo pojavno okno in vnesejo nove podatke. Obrazec smo pripravili za vnos novega vozila (Slika 13), nove prikolice ali novega voznika (Slika 14).

Page 38: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 32

Slika 13: Obrazec za dodajanje novega vozila

Slika 14: Obrazec za dodajanje novega voznika

Da ob preusmerjanju na stran »podrobno« prikažemo vrednosti točno tiste najave, preko katere je iz prejšnje strani uporabnik vstopil na trenutno stran, smo morali ustrezno nastaviti komponenti SQLDataSource, ki sta povezani z ASPxGridView (tabela s pozicijami) in ASPxLayoutControl (obrazec z vnosnimi polji). Nastavili smo ju tako, da vračata le podatke vrstice, katere ID je enak vrednosti, ki smo jo na prejšnji strani ob prehodu strani nastavili v »Session« spremenljivko z imenom »IDVrstice«.

Slika 15: Slika vsebinske strani ClickTransPRT-PodrobnoKoncno.aspx

Page 39: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 33

6.2.2. SKLOP PREGLED IN UREJANJE TRAJNIH DOVOLILNIC Sklop sestavljata strani ClickTransPRT-Dovolilnice.aspx (Slika 16), ki služita za množičen pregled trajnih dovolilnic in ClickTransPRT-DovolilnicePodrobno.aspx (Slika 17), katerih namen je podroben pregled in urejanje posamezne trajne dovolilnice. Do sklopa imajo dostop člani uporabniških skupin »administratorji« in »varnostnik«, a obe skupini nimata omogočenih vseh funkcionalnosti. Varnostniki v sklopu ne morejo kreirati novih trajnih dovolilnic, ali pa urejati vrednosti v »glavi« trajne dovolilnice. Kaj predstavlja glavo dovolilnice bomo razložili v nadaljevanju.

PRVA STRAN SKLOPA - »OKOLJE« Kot je bilo že omenjeno, na prvi strani sklopa, uporabniku dajemo možnost pregleda kreiranih trajnih dovolilnic. Da bi uporabniku ponudili le najpomembnejše podatke, smo združili vrednosti iz več podatkovnih tabel in oblikovali SQL pogled »dbo.Q_TrajneDovolilnice«, čigar najbolj bistveni stolpci so prikazani v tabeli 5.

Ime stolpca Razlaga vsebine

Št.Traj.Kart. Zaporedna številka, ki jo ima vsaka trajna dovolilnica. Ob kreiranju novih dovolilnic se povečuje za 1.

Izj.Voznika ali je voznik podpisal izjavo o razumevanju pravil? (boolean)

Veljavno od datum, ko trajna dovolilnica postane aktivna

Veljavno do datum, ko trajna dovolilnica preneha biti aktivna

Vozilo registrska številka vozila, za katero je ustvarjena trajna dovolilnica

Prikolica registrska številka prikolice vozila

Voznik naziv voznika vozila

Sovoznik naziv sovoznika vozila

Prevoznik naziv prevoznika

Tabela 5: Seznam in komentar najpomembnejših stolpcev generiranih z SQL

pogledom »dbo.Q_TrajneDovolilnice« Vsebino, ki jo generiramo s pomočjo pogleda, prikazujemo v že znani komponenti ASPxGridView, ki zajema večino prostora strani. Da bi v komponenti poleg osnovnih funkcionalnosti uporabnikom ponudili tudi nekaj dodatnih, smo ponovno ustvarili tri »Command« gumbe:

Gumb omogoča uporabniku prehod na stran za podroben pregled in spreminjanje vrednosti izbrane trajne dovolilnice. ID številko vrstice zopet vnesemo v objekt tipa »Session« z imenom »IDVrstice«, do katerega bomo lahko dostopali tudi na naslednji strani.

Gumb služi orodju za zaklepanje podatkov, ki je opisan v nadaljevanju.

Gumb uporabniki uporabijo za odstranitev vrstice v primerih, ko je prišlo do napake in so kreirali odvečno trajno dovolilnico. Odstranjevanje dovoljujemo le za dovolilnice, preko katerih še ni bil registriran noben vhod

Page 40: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 34

ali izhod vozila. Ob pritisku na gumb trajne dovolilnice iz podatkovne baze ne izbrišemo, ampak ji, tako kot v primeru najav, v stolpcu »Status« nastavimo vrednost 9. Tabela je nastavljena tako, da takšne vrstice ne prikazuje.

Nad komponento ASPxGridView se zopet, tako kot pri najavah, nahajata gumba za prikaz orodja »ColumnChooser« in »FilterRow«. Poleg omenjenih gumbov smo dodali še gumb za kreiranje novih trajnih dovolilnic. Ob pritisku na gumb se v programski kodi pokliče SQL procedura »"S_KreirajStalnoDovolilnicoLECI"«, ki v podatkovni bazi kreira prazno trajno dovolilnico. Po izvedbi procedure nam ta vrne ID številko novo kreirane dovolilnice, ki jo uporabimo, ko spletno orodje avtomatično preusmeri uporabnika na stran za podrobni pregled in urejanje trajnih dovolilnic imenovana ClickTransPRT-DovolilnicePodrobno.aspx.

Slika 16: Slika vsebinske strani ClickTransPRT-Dovolilnice.aspx DRUGA STRAN SKLOPA - »PODROBNO« Stran ClickTransPRT-DovolilnicePodrobno.aspx (Slika 17) daje uporabniku možnost podrobnega pregledovanja in urejanja podatkov izbrane trajne dovolilnice. Podobno kot najave, so tudi dovolilnice sestavljene iz dveh delov. Prvi del sestavljajo vrednosti iz podatkovne tabele »dbo.SifrantDovolilnic« in imajo vlogo »glave« trajne dovolilnice. V primeru dovolilnic glava vsebuje podatke, ki smo si jih v tabeli ogledali v prejšnjem podpoglavju. Zopet so na glavo trajne dovolilnice preko ID številk povezane pozicije, ki so shranjene v enaki podatkovni tabeli kot pri najavah – »dbo.VarnostPoz« (Tabela 6). Tokrat število pozicij, ki jih ima ena glava, ni definirano. Vsaka pozicija, ki je pritrjena na glavo, predstavlja en registriran vhod ali izhod vozila, torej se ob novi registraciji dogodka kreira in v glavo poveže ena nova pozicija. V pozicijah v sklopu trajnih dovolilnic beležimo naslednje podatke:

Page 41: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 35

Ime stolpca Razlaga vsebine

Poz, Opomba vrednosti za lažje prepoznavanje vrstic (1-Dovoz, 2-Izvoz)

Datum prihoda čas prihoda vozila k vratarnici

Priponka številka kartice, ki jo za namene spremljanja ob vhodu v obrat pridobi voznik vozila

Voznik voznik vozila

Opis polje za vnašanje opomb k registraciji prihoda ali izhoda vozila

Kreiral uporabniško ime preko katerega je bilo zapis kreiran (Nam pove kdo registriral dogodek vstopa ali izhoda vozila.)

Datum kreiranja čas kreiranja najave (Nam pove kdaj je bil registriran dogodek vstopa ali izhoda vozila)

Spremenil uporabniško ime preko katerega je bil zapis zadnjič spremenjen (Nam pove kdo je potencialno spreminjal vrednosti registracije.)

Datum spremembe čas zadnje spremembe v zapisu (Nam pove kdaj je uporabnik potencialno spreminjal vrednosti registracije)

Tabela 6: Seznam in komentar za najpomembnejše stolpce v tabeli s pozicijami na

straneh za urejanje in pregled trajnih dovolilnic Tudi na strani za podrobni pregled in urejanje trajnih dovolilnic smo se skušali čim bolj približati obliki in strukturi strani, ki so je uporabniki že navajeni od uporabe prejšnjega orodja. Celotno stran smo s komponento ASPxSplitter razdelili na tri večje dele. V prvem delu se nahajajo gumbi za navigacijo in upravljanje s stranjo. Ta vsebuje gumba »Izhod« in »Izhod s shranjevanjem«. Oba gumba vračata uporabnika nazaj na stran za pregled trajnih dovolilnic. V primeru premika preko drugega gumba, pred preusmeritvijo uporabnika, shranimo vse vrednosti, ki so trenutno nastavljene v urejevalnih komponentah znotraj obrazca. Pod omenjenimi gumbi se nahaja obrazec za pregled in nastavljanje vrednosti glave trajne dovolilnice. Za lažje oblikovanje in povezovanje komponent s podatkovno bazo smo uporabili ASPxLayoutControl. Komponente za prikaz in vnos smo razdelili na dve skupini, njihovo vrsto pa prilagodili podatkovnemu tipu polja. Obrazec si je mogoče podrobneje ogledati na sliki celotne strani. V obrazcu je omembe vreden gumb »Preveri reg. št«. Vsako izmed izbranih vozil, naj bi imelo le eno aktivno trajno dovolilnico. Uporabnik s klikom na gumb preveri, če trenutno vneseno vozilo v polju poleg gumba že ima svojo dovolilnico, s čimer preprečujemo nepotrebno podvajanje. Pod obrazcem se nahaja še komponenta ASPxGridView, s katero uporabniku prikazujemo pozicije izbrane trajne dovolilnice. Prikazane pozicije so razporejene po datumu registracije, kjer imajo novejši zapisi prednost. Naenkrat prikazujemo po dva para vhoda in izhoda z možnostjo premika med stranmi in tako ogleda tudi starejših pozicij. Prikazujemo polja, ki smo si jih ogledali že v prejšnji tabeli. Če uporabnik želi omogočiti urejanje vrednosti, ki so prikazane v tabeli, to stori s klikom na gumb , ki se nahaja v vsaki vrstici.

Page 42: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 36

Podobno, kot na strani za urejanje najav, smo tudi tukaj pri poljih za izbiro registrske številke vozila in izbiro naziva voznika, uporabili komponento ASPxGridLookup, s katero uporabnik izbere vrednosti z že obstoječega seznama. Občasno se zgodi, da podatka, ki ga želijo izbrati, še ni na seznamu, kar pomeni, da moramo uporabniku omogočiti dodajanje tudi novih registrski številk vozil (novo vozilo) in nazivov voznikov (nov voznik). Obe vrednosti lahko uporabnik doda preko orodja za hiter vnos, ki je opisan v svojem poglavju. Za vnos novega voznika smo pripravili pojavni obrazec, ki je enak tistemu, ki smo ga uporabili tudi na obrazcu pri najavah.

Slika 17: Slika vsebinske strani ClickTransPRT-DovolilnicePodrobno.aspx

6.2.3. SKLOP PREGLED IN KREIRANJE NAJAV – NABAVNA SLUŽBA Sklop sestavljata strani ClickTransPRT-NabavaOkolje.aspx, ki služi za pregled kreiranih najav in ClickTransPRT-NabavaPodrobno.aspx, katerih namen je podroben pregled in urejanje posamezne najave. Sklop je vizualno izredno podoben sklopu za pregled in kreiranje najav, ki je namenjen varnostnikom, a se njuna naloga zelo razlikuje. Varnostniki v svoji različici sklopa uporabljajo strani predvsem za pregled kreiranih najav vozil. Čeprav imajo možnost, varnostniki najav navadno ročno ne urejajo, ampak s postopkom registracije dogodka vhoda ali izhoda dopolnjujejo le pozicije in posledično status najave. Glavna naloga sklopa, namenjenega za nabavno službo, pa je kreiranje in priprava najav, tako da preko njih varnostniki lahko registrirajo dogodke prihodov in izhodov vozil iz obrata. Do sklopa imajo dostop uporabniki, ki so člani uporabniških skupin »administratorji« in »nabavnik«.

Page 43: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 37

PRVA STRAN SKLOPA - »OKOLJE« Glavne spremembe med sklopom, ki je namenjen varnostnikom in sklopom, ki je namenjen nabavnikom najdemo v prvi strani sklopa – okolju. Nabavniki preko sistema SAP generirajo nabavni dokumenta, ki ima med drugimi podatki tudi številko nabavnega dokumenta. V orodju SAP imajo dodan gumb, ki ob pritisku generira URL povezavo do spletne rešitve ClickTransPRT in ga avtomatično odpre v privzetem spletnem brskalniku. Generirana URL povezava je sestavljena iz vrednosti: »http://FiksnoImeDomene:Port/ClickTransPRT-NabavaOkolje.aspx?BELNR=« in številke izbranega nabavnega dokumenta. Primer vrednosti URL povezave za pregled ali kreiranje najav s številko nabavnega dokumenta 123456789: »http://localhost:63927/ClickTransPRT-NabavaOkolje.aspx?BELNR=123456789«. Preko gumba, uporabniki torej odprejo spletno orodje ClickTransPRT, ki pa jih sama vrne na prijavno stran, saj uporabnik še ni prijavljen. Ko se uporabnik uspešno prijavi, ga spletno orodje samodejno preusmeri nazaj, na prvotno ciljno stran. V programski kodi lahko preberemo vrednosti, ki se v URL povezavi nahajajo po imenu ciljne strani in znakom »?«, kar pomeni, da lahko iz URL povezave iz sistema SAP prenesemo številko nabavnega dokumenta. Ko pridobimo št. nabavnega dokumenta, v programski kodi preverimo, če najave s takšno vrednostjo že obstajajo. Če ne najdemo nobene ustrezne vrednosti, s pomočjo SQL procedure kreiramo strukturo (glavo in 3 pozicije) najave in uporabnika preusmerimo na drugo stran sklopa – stran za pregled in urejanje posamezne najave, kjer že vnaprej vstavimo pridobljeno vrednost številke nabavnega dokumenta. Če v podatkovni bazi najdemo eno ali več najav, ki se ujemajo s podano številko nabavnega dokumenta, uporabniku prikažemo prvo stran sklopa (okolje). Za razliko od prvih strani drugih dveh opisanih sklopov, v okolju ne prikazujemo vseh najav ali trajnih dovolilnic, temveč le tiste najave, katerih številka nabavnega dokumenta se ujema z vrednostjo, podano v URL povezavi. Obravnavana stran ClickTransPRT-NabavaOkolje.aspx je razdeljena na dva dela (Slika 18). V prvem, tako kot v drugih sklopih, ponudimo uporabniku gumba za prikaz orodij »ColumnChooser« in »FilterRow«. Sledi komponenta ASPxLabel, ki uporabniku izpisuje aktualno številko nabavnega dokumenta. Nazadnje pa smo dodali tudi gumb za kreiranje nove najave z že izpolnjeno vrednostjo številko nabavnega dokumenta, ki uporabnika po kreiranju prazne najave preusmeri na drugo stran sklopa. Pod vrstico z gumbi se na strani nahaja še komponenta ASPxGridView, ki je po funkcionalnostih in izgledu identična tisti, ki jo varnostniki uporabljajo za pregled kreiranih najav na strani ClickTransPRT-OkoljeKoncno.aspx (Slika 18).

Page 44: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 38

Slika 18: Slika vsebinske strani ClickTransPRT-NabavaOkolje.aspx DRUGA STRAN SKLOPA - »PODROBNO« Stran ClickTransPRT-NabavaPodrobno.aspx (Slika 19) uporabniki uporabljajo za pregled obstoječih in urejanje novih najav. Tako po izgledu, kot tudi po funkcionalnostih, se stran ne razlikuje od tiste, ki smo si jo že ogledali in jo varnostniki uporabljajo za podroben ogled in urejanje najav ClickTransPRT-PodrobnoKoncno.aspx. V tem podpoglavju si bomo ogledali le razlike med stranema. Obe strani imata na vrhu vstavljeno komponento ASPxGridView, v kateri uporabnikom prikazujemo pozicije najave. Naloga zaposlenih v nabavni službi je, da zapolnijo le prvo izmed pozicij, v katero vnesejo datum planiranega prihoda vozila v obrat. Ker naj nabavniki pozicij »Dovoz« in »Izvoz« ne bi izpolnjevali, smo uporabnikom odvzeli možnost urejanja drugih dveh vrstic. Uporabniki obravnavane strani so nam med testiranjem javili, da je za njih uporaba pojavnih obrazcev za vnašanje nove registrske številke vozila in prikolice ali pa vnašanje naziva novega voznika preveč zamudna. Tako smo s strani odstranili pojavne obrazce za vnos in razvili orodje za hitro dodajanje, ki je opisan v nadaljevanju.

Page 45: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 39

Slika 19: Slika vsebinske strani ClickTransPRT-NabavaPodrobno.aspx

6.2.4. SKUPNI ISKALNIK Člani vseh skupin uporabnikov morajo iz takšnih ali drugačnih razlogov občasno poiskati neko vrednost med najavami ali trajnimi dovolilnicami (navadno gre za vrednost registrska številka vozila ali naziv voznika). To bi lahko storili tako, da z orodjem za iskanje pregledajo najave na strani za pregled najav, nato pa se pomaknejo še v sklop, namenjen trajnim dovolilnicam, kjer bi preverili, če se iskan podatek nahaja morda med trajnimi dovolilnicami. Da uporabnikom prihranimo premikanje med stranmi, smo oblikovali stran ClickTransPRT-Iskalnik.aspx, do katere imajo dovoljenje dostopanja in uporabe vsi uporabniki. Istočasno jim omogočamo filtriranje po najavah in trajnih dovolilnicah, zato smo namreč oblikovali nov podatkovni pogled »dbo.Q_ClickTransPRTIskalnik«. Nekateri stolpci niso prisotni v obeh sklopih in so v takšnem primeru vrednosti iz sklopa, kjer stolpec ne obstaja, vedno prazne. V tabeli 7 smo z znakom »X« označili, kateri stolpci so prisotni v posameznem sklopu (N-najava, D-trajna dovolilnica).

Ime stolpca N D Razlaga vsebine

Vrsta zapisa X X najava ali trajna dovolilnica

ZapSt X X zaporedna številka najave ali trajne dovolilnice

Vozilo X X registrska številka vozila na najavi ali trajni dov.

Voznik X X naziv voznika vozila

Prevoznik X X naziv prevoznika

DovVeljaOd X datum začetka aktivnosti trajne dovolilnice

DovVeljaDo X datum konca aktivnosti trajne dovolilnice

NajPlaniranDate, NajPlaniranTime

X datum in čas planiranega prihoda vozila v obrat naročnika

NajDovozDate, NajDovozTime

X datum in čas prihoda vozila v obrat naročnika

Page 46: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 40

NajIzvozDate, NajIzvozTime

X datum in čas izhoda vozila iz obrata naročnika

Kreiral X X uporabniško ime uporabnika, ki je kreiral podatek

Datum kreiranja X X čas kreiranja podatka

Spremenil X X uporabniško ime uporabnika, ki je zadnji spremenil podatek

Datum spremembe

X X čas zadnje spremembe podatka

Tabela 7: Seznam, prisotnost v sklopih in komentar za združene stolpce

generirane z SQL pogledom dbo.Q_ClickTransPRTIskalnik Podatke, ki jih pridobimo iz podatkovnega pogleda, prikazujemo v komponenti ASPxGridView. Komponento smo opremili z orodjema »ColumnChooser« in »FilterRow«, do katerih uporabnik dostopa preko gumbov nad tabelo. Poleg vsebine opisane strani, si je mogoče na spodnji sliki ogledati tudi delovanje funkcionalnosti »FilterRow«.

Slika 20: Slika vsebinske strani ClickTransPRT-Iskalnik.aspx

6.3 PREGLED RAZVITIH ORODIJ V okviru spletne rešitve ClickTransPRT, smo razvili še nekaj dodatnih funkcionalnosti oziroma orodij. V poglavju bomo predstavili najpomembnejša in najbolj zanimiva orodja.

6.3.1. ORODJE ZA REGISTRACIJO VHODOV IN IZHODOV VOZIL

Ogledali smo si načine, preko katerih uporabniki spletne rešitve ustvarjajo in pripravljajo najave ter trajne dovolilnice. Vse to pa je nesmiselno, če pripravljene

Page 47: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 41

najave in dovolilnice ne moremo pravilno povezati z vozilom, ki je pripeljalo na vhod ali izhod obrata. Tu nastopi orodje za registracijo vhodov in izhodov vozil, ki prinaša najpomembnejšo funkcionalnost programske rešitve ClickTransPRT. Njegov glavni namen je razbremenitev uporabnika in pospešitev procesa registracije dogodka. Z orodjem omogočimo, da ob podajanju podatka o prihodu/izhodu vozila, ki ga ustvari sistem kamer ali uporabnik sam, spletna rešitev samostojno ugotovi pod kateri sklop mora registrirati dogodek vozila in ga hkrati tudi zabeleži v podatkovno bazo. Kot je bilo že omenjeno, smo celotno orodje za registracijo zaradi mobilnosti ponudili v obliki pojavnih oken, ki se nahajajo v glavni strani Main.master.

Do orodja uporabniki z ustreznim dovoljenjem (člani skupin »administrator« in »varnostnik«) dostopajo tako, da v stranskem meniju izberejo naziv vhoda in pritisnejo gumb »Vnos registracije«. Uporabniku se odpre pojavno okno »Izbira zapisa« (Slika 21), na katerem sta gumb »Osvežitev podatkov« in komponenta ASPxGridView. Preko gumba »Osvežitev podatkov« uporabniki osvežujejo vsebino komponente ASPxGridView in jim ni potrebno znova in znova odpirati ter odpirati pojavnega okna. V tabeli prikazujemo najbolj aktualne stolpce iz tabele, ki jo sistem varnostnih kamer polni ob vsakem zaznanem prihodu vozila k varnostni rampi pred vhodom. Na obrazcu so torej prikazani »ID« (unikatna št. Vrstice), »REG« (prebrana registrska številka vozila), »DATUM« in »URA« (čas prihoda k vratarnici) ter »KAMERA« (naziv kamere, ki je kreirala zapis). Iz imena kamere lahko razberemo ali gre za vhod ali izhod, hkrati pa tudi ime vratarnice, kjer je bil zapis kreiran, zato v tabeli prikazujemo le zapise iz vratarnice, katere naziv je uporabnik izbral v vnosnem polju »Vrata« na glavni strani »Main.master«. Poleg omenjenih stolpcev iz podatkovne baze za vsako vrstico pridobimo tudi vrednost stolpca »statusObdelano«, v katerega zapisujemo ali je bil preko zapisa kamere vhod ali izhod vozila že registriran (vrednost 1) ali ne (vrednost 0). Stolpca v sami komponenti »ASPxGridView ne prikazujemo, a kljub temu po vrednostih stolpca v ozadju filtriramo podatke tako, da uporabniku prikazujemo le vrstice, ki še niso »porabljene« oziroma preko katerih vhod ali izhod vozila še ni bil registriran.

Slika 21: Glavni del orodja za registracijo vhodov in izhodov vozil

Page 48: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 42

Za upravljanje s prikazanimi podatki smo znotraj komponente ASPxGridView dodali vrsto tako imenovanih »Command« gumbov:

Gumb se nahaja v levem zgornjem kotu tabele in uporabniku omogoča, da v tabelo dodaja nove vrstice. Nastavili smo, da se ob kreiranju nove vrstice v polje za vnos vrednosti samostojno izpiše trenutni datum in ura, ki pa ju uporabnik seveda lahko spreminja. Da uporabnik lahko vrstico doda v podatkovno bazo mora obvezno izpolniti polja REG in KAMERA. Obe vrednosti določi preko komponent ASPxGridlookup.Prva prikazuje vsa v bazo vnesena vozila, druga pa vse kamere ali proge izbrane vratarnice. Uporabnik kreirano vrstico shrani v podatkovno bazo z gumbom . Če želi prekiniti dodajanje nove vrstice, lahko pritisne gumb . Če izbran vhod ni opremljen z varnostnimi kamerami, se vrstice ne morejo generirati same. V takšnih primerih varnostnik vsakič na opisan način ročno kreira vrstico za prihod vozila.

Gumb se nahaja v vsaki vrstici. Uporabniku omogoča urejanje že obstoječe vrstice. Navadno varnostniki ta gumb uporabljajo le, ko varnostna kamera narobe prebere registrsko številko vozila.

Gumb se nahaja v vsaki vrstici. Ob kliku na gumb uporabnik sproži SQL proceduro, ki ne glede na to, če je vozilo najavljeno ali ima trajno dovolilnico, kreira novo, prazno najavo. V proceduro podamo ID vrstice, v kateri je bil gumb pritisnjen, nato pa iz unikatne številke vrstice procedura razbere, za katero vozilo gre in kakšno vrsto registracije mora izvesti (vhod ali izhod vozila). Ker z drugimi podatki v tem trenutku ne razpolagamo, se kreira najava, v kateri je vnesena le registrska številka vozila in podatki o registraciji vhoda ali izhoda v naročnikov obrat (čas registracije, slika vozila pred vhodom, ime vhoda ter ime proge/kamere). Če se SQL procedura izvede uspešno, nam vrne ID številko novo kreirane najave in v vrstici, kjer je bil gumb pritisnjen, nastavi vrednost »statusObdelano« na 1, kar pomeni, da je vrstica porabljena in se uporabniku ne bo več prikazovala na seznamu. Po registraciji spletna rešitev uporabnika avtomatično preusmeri na stran za urejanje najav ClickTransPRT-PodrobnoKoncno.aspx, kjer lahko uporabnik pregleda kreirano najavo in dodaja manjkajoče podatke.

Gumb se nahaja v vsaki vrstici in daje uporabniku možnost odstranitve zapisov s seznama. Če je varnostnik kreiral odvečno vrstico, ali pa je sistem kamer večkrat pred vhodom zaznal isto vozilo, lahko uporabnik odstrani zapis. S klikom na gumb v vrstici, uporabnik izbranemu podatku spremeni vrednost »statusObdelano« na neko vnaprej določeno vrednost ( v našem primeru vrednost 9). Ker smo med nastavitvami komponente ASPxGridView nastavili filter tako, da se uporabniku vrstice, ki imajo v stolpcu »statusObdelano« vrednost 9 (ali 1) ne prikazujejo, je za uporabnika to enako, kot bi izbrisal zapis.

Gumb se prav tako pojavlja v vsaki vrstici. Gre za enega pomembnejših gumbov v spletni rešitvi ClickTransPRT, saj ravno preko tega varnostniki registrirajo veliko večino vhodov ali izhodov vozil. Ob kliku gumba se sproži SQL procedura, v katero preko spletne rešitve kot parameter vnesemo ID vrstice, v kateri je bil gumb pritisnjen (Slika 22).

Page 49: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 43

Pridobljen ID vrstice, kjer je bil pritisnej gumb (pridobimo reg.št, čas in ime

kamere/proge).

Ima vozilo veljavno trajno dovolilnico ? iščemo dovolilnico z

vneseno enako reg.št. iščemo dovolilnico, ki je

še aktivna

Iz imena kamere razberemo, ali gre za vhod ali izhod vozila.

DA

VH

OD

Ali vozilo že ima vpisan vhod?

V trajno dovolilnico zapišemo vhod vozila.

Vrnjen tip vnosa: -2Vrnjen ID dovolilnice

IZH

OD

DA

V trajno dovolilnico zapišemo izhod

vozila.Vrstica iz seznama je

uporabljena Vrnjen tip vnosa: -2

Vrnjen ID dovolilnice

V trajno dovolilnico zapišemo vhod IN

izhod vozila (do takšne situacije

pride le enkrat, če je vozilo ob začetku

uporabe aplikacije že znotraj obrata).

Vrstica iz seznama je uporabljena

Vrnjen tip vnosa: -2Vrnjen ID dovolilnice

NE

Ima vozilo odprto najavo? iščemo najavo z enako

vneseno reg.št ko gre za VHOD iščemo

najavo, kjer še ni registriran vhod ali izhod

ko gre za IZHOD iščemo najavo, kjer je vhod že registriran, izhod pa ne

NE

Ne zapisujemo ničesar.Vrnjen tip vnosa: -3

Ne zapisujemo ničesar.Vrnjen tip vnosa: 1

NI USTREZNE NAJAVE

VEČ KOT ENA USTREZNA NAJAVA

V najdeno najavo zapišemo vhod.

Vrstica iz seznama je uporabljena

Vrnjen tip vnosa: 2Vrnjen ID najave

V najdeno najavo zapišemo izhod.

Vrstica iz seznama je uporabljena

Vrnjen tip vnosa: 3Vrnjen ID najave

Za VHOD najdena najava z ustrezno reg.št, ki še nima registriranega

vhoda ali izhoda.

Za IZHOD najdena najava z ustrezno reg.št,

ki že ima registriran vhod, ne pa izhod.

Slika 22: Načrt SQL procedure za registracijo vhodov in izhodov vozil

Ko se SQL procedura izvede, nam vrne vrednost, ki predstavlja tip vnosa, ki ga je izvedla. Če je bil dogodek ob izvedbi procedure uspešno registriran, nam vrne tudi ID najave ali trajne dovolilnice, na kateri je bil prihod ali izhod vozila zapisan. Glede na pridobljeno vrednost spremenljivke tipa vnosa nadaljujemo postopek registracije.

o Tip vnosa =-3 - SQL procedura ob izvedbi ni našla ustrezne najave ali trajne dovolilnice. Uporabnika z pojavnim obvestilom na to opozorimo in mu damo dve možnosti (Slika 23). Preko gumba na obvestilu lahko kreira popolnoma novo najavo, kjer se ponovi enak postopek, kot če bi v vrstici pritisnil gumb , ali pa zapre okno z opozorilom in dogodek ostane neregistriran.

Slika 23: Pojavno obvestilo v primeru, ko je Tip vnosa enak 3

Page 50: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 44

o Tip vnosa =-2 – SQL procedura je našla ustrezno trajno dovolilnico in vanjo uspešno vpisala dogodek. Procedura nam v takšnem primeru vrne ID najdene dovolilnice. Uporabnika o uspešni registraciji dogodka obvestimo s pojavnim opozorilom (Slika 24). V pojavnem oknu najprej uporabniku omogočimo preko komponente ASPxGridLookUp spremembo naziva voznika vozila. Kot prevzeto vrednost mu ponudimo voznika, ki je zapisan v pred pripravljeni glavi trajne dovolilnice (pri dovolilnici gre vedno za isto vozilo, vendar se vozniki lahko izmenjujejo). Na dnu pojavnega okna ponudimo uporabniku 3 gumbe. Z gumbom »Shrani« uporabnik zaključi proces registracije in se vrne na seznam prebranih prihodov in izhodov vozil. Z gumbom »Odpri podrobno« se uporabnik pomakne v stran ClickTransPRT-DovolilnicePodrobno.aspx, ki je namenjena podrobnemu urejanju trajnih dovolilnic. Z gumbom »Prekliči registracijo« se uporabnik vrne na seznam zaznanih prihodov in izhodov, hkrati pa povrne podatke v stanje pred registracijo dogodka.

Slika 24: Pojavni obrazec, ko je Tip vnosa enak -2

o Tip vnosa = 1 – SQL procedura je našla več kot eno najavo, ki je ustrezala postavljenim kriterijem. V takšnem primeru uporabnika obvestimo s pojavnim oknom, na katerem mu prikažemo vse najave, ki ustrezajo kriterijem. Uporabnik ročno izbere aktualno najavo, spletna rešitev pa s tem novim podatkom znova poskusi registrirati dogodek. Po registraciji, spletno orodje samodejno preusmeri uporabnika na stran ClickTransPRT-PodrobnoKoncno.aspx, ki je namenjena podrobnemu urejanju najave.

o Tip vnosa = 2 – SQL procedura je našla ustrezno najavo in vanjo zapisala dogodek vhoda vozila v naročnikov obrat. Po registraciji spletna rešitev samodejno preusmeri uporabnika na stran ClickTransPRT-PodrobnoKoncno.aspx, ki je namenjena podrobnemu urejanju najave.

o Tip vnosa = 3 - SQL procedura je našla ustrezno najavo in vanjo zapisala dogodek izhoda vozila. Po registraciji, spletna rešitev ponovno samodejno preusmeri uporabnika na stran ClickTransPRT-PodrobnoKoncno.aspx, ki je namenjena podrobnemu urejanju najave.

Page 51: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 45

6.3.2. ORODJE ZA HITRO DODAJANJE Kot smo že omenili, v veliko primerih za komponento preko katere uporabnik pregleduje ali spreminja neko vrednost, uporabljamo ASPxGridLookup. V takšnih primerih ima možnost izbrati vrednost s seznama v podatkovni bazi vnesenih vrstic. Med razvojem programske rešitve smo ugotovili, da bodo obstajali primeri, ko bo uporabnik moral izbrati vrednost, ki še ni vnesena v podatkovni bazi, kar pomeni, da je tudi ni na uporabnikovem seznamu možnosti. Zaradi takšnih primerov smo morali omogočiti uporabnikom tudi vnos novih vrednosti. Uporabnikom smo pripravili dva načina vnosa. Prvi je vnos preko pojavnih obrazcev, ki smo si jih že ogledali med analizo posameznih strani. Ta je bil za nekatere uporabnike prezamuden, zato smo pripravili še orodje za hitro dodajanje. Gre za bližnjico, s katero uporabnik v komponento ASPxGridLookup vnese tekstovno vrednost podatka (registrsko številko ali naziv) in pritisne kombinacijo gumbov »Ctrl« in »Enter«. Podana vrednost se zapiše v podatkovno bazo in doda na seznam možnosti. Da dosežemo takšno funkcionalnost, na uporabnikovi strani spletnega orodja preko dogodka »KeyPress« spremljamo gumbe, ki so pritisnjeni ob vnašanju vrednosti v polje ASPxGridLookup. Ko zaznamo, da sta bila pritisnjena gumba »Ctrl« in »Enter« izvedemo »jQuery AJAX Call« (Slika 25). Gre za metodo, kjer z uporabniške strani spletne rešitve prenašamo parametre (v našem primeru vrednosti vpisane registrske številke ali naziva) in kličemo metodo, ki se izvede na strežniku. V omenjeni metodi sprejmemo podane vrednosti, nato pa se strežnik poveže do podatkovne baze, ter v ustrezno tabelo doda novo vrednost. Če je bila dodana vrednost uspešno vnesena, strežnik o tem obvesti uporabnikovo stran spletne rešitve, kjer uporabniku samodejno nastavimo novo, dodano vrednost.

Slika 25: Programska koda jQuery AJAX klica za dodajanje voznika

Page 52: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 46

Preko opisane metode uporabniku omogočamo dodajanje nove registrske številke vozila, nove registrske številke prikolice, nov naziv prevoznika in nov naziv voznika ali sovoznika.

6.3.3. ORODJE ZA ZAKLEPANJE PODATKOV Med obdobjem testiranja spletne rešitve ClickTransPRT smo naleteli na naslednjo situacijo:

1. Uporabnik A odpre podrobno stran, na kateri se mu prikaže vsebina X. 2. Uporabnik B odpre isto podrobno stran, kjer se mu prikaže vsebina X. 3. Uporabnik A spreminja vrednosti, shrani vsebino Y in zapre podrobno stran. 4. Uporabnik B še vedno vidi vsebino X, spreminja vrednosti, shrani vsebino Z

in zapre podrobno stran. V takšen primeru je uporabnik B nevede prepisal vrednosti, ki jih je pred njim nastavil uporabnik A in smo vsebino Y izgubili. Da bi preprečili ponovitev opisane situacije smo v rešitev ClickTransPRT vgradili orodje za zaklepanje podatkov. Gre za sistem, ki se vedno sproži ob prehodu uporabnika na stran za urejanje podatkov in preverja, če najavo ali trajno dovolilnico trenutno že ureja kdo drug. Če podatke res nekdo že ureja, na to uporabnika opozorimo in mu preprečimo vstop. Za delovanje omenjenega orodja smo v glavni vsebinski tabeli, v kateri se nahajajo glave najav in trajnih dovolilnic, dodali stolpca »LockUsername« in »LockTime«. Ob prihodu na stran za urejanje v ustrezno podatkovno tabelo v stolpec »LockUsername« zapišemo ime uporabnika, ki do podatka dostopa, v stolpec »LockTime« pa trenutni čas. Ko uporabnik zapusti stran za urejanje, ti dve vrednosti pobrišemo. Če v času med prihodom na stran za urejanje in izhodom do iste strani želi dostopati nek drug uporabnik, bo spletna rešitev to zaznala. Uporabnika, ki skuša dostopati do strani za urejanje ustavimo in mu prikažemo opozorilo. V komponenti ASPxGridView, v vrstici preko katere skuša uporabnik vstopiti na stran za urejanje prikažemo »Command« gumb . Z gumbom damo uporabniku v primeru nujnega dostopanja do podatkov v izbrani najavi ali trajni dovolilnici možnost, da blokado prepiše in dostopa do najave ali dovolilnice. V primeru da uporabnik, medtem ko je znotraj strani za urejanje, zapre brskalnik v spletnem orodju, na to ne moremo reagirati in iz tabele izbrisati vrednosti omenjenih vrstic, zato smo v orodje vgradili tudi varovalo. Kot smo omenili, vnašamo v tabelo tudi čas, ko je uporabnik z vstopom na stran za urejanje podatek zaklenil. Ob vstopu v primeru »zaklenjene« najave ali trajne dovolilnice preverimo tudi čas zadnjega zaklepanja. Če je od tega minilo več kot 10 minut, obravnavamo najavo ali trajno dovolilnico, kot da je odklenjena, in uporabniku dovolimo vstop.

Page 53: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 47

7. RAZVOJ IN PREGLED ORODJA CLICKTRANSPRT LIVE

7.1. NALOGA IN NAMEN SPLETNEGA ORODJA Gre za relativno enostavno stransko spletno rešitev. Razvita je bila z namenom omogočanja pregleda zapisov, ki jih sistem varnostnih kamer kreira v podatkovni bazi ob vhodih in izhodih vozil iz naročnikovega obrata. Do spletnega orodja imajo poleg administratorjev dostop:

varnostniki, ki jo lahko uporabljajo za pregled preteklih prihodov in izhodov vozil,

tehniki, ki jo uporabljajo za servisiranje in vzdrževalna dela na sistemu varnostnih kamer. Preko orodja lahko opazujejo in testirajo v katerih primerih in kako hitro sistem kamer prepozna prihod vozila, kako sistem fotografira vozilo in kakšne podatke sistem vpisuje v podatkovno bazo.

7.2 OPIS VSEBINE SPLETNEGA ORODJA Poleg prijavne strani spletna rešitev ClickTransPRT Live vsebuje le eno vsebinsko spletno stran, ki smo jo poimenovali ClickTransPRTLive-Okolje.aspx (Slika 26). Za konsistentno osnovno strukturo v spletnem orodju uporabljamo že omenjeno glavno stran »Root.Master«. Sama vsebina strani je s ponovno uporabo komponente ASPxSplitter razdeljena na tri dele. V zgornjem delu vsebine se nahaja komponenta ASPxImage. Kot samo ime pove, je to element, namenjen prikazovanju različnih formatov slikovnih podatkov. Komponenti smo nastavili fiksne dimenzije in lokacijo. Ker je vsebina, ki jo komponenta prikazuje, odvisna od dejanj uporabnika, smo polje kjer definiramo pot do prikazovane slike, pustili prazno. Sliko, ki jo komponenta prikazuje bomo dinamično nastavljali v programski kodi. Pod slikovno komponento se nahaja vrstica z gumbi, preko katere uporabnik upravlja vsebino spodnje tabele. Poleg že poznanih gumbov za omogočanje orodij »Column chooser« in »Filter row«, smo v vrstico dodali še gumb za prikaz večje količine podatkov. Na dnu strani se nahaja že omenjena komponenta ASPxGridView, preko katere v vrsticah prikazujemo vse podatke, ki jih v podatkovno bazo zapisuje sistem varnostnih kamer. V ospredje smo postavili stolpce, katerih vrednosti so najpomembnejše. Ti stolpci so ID, REG (prebrana registrska številka), REG1 (prebrana registrska številka brez presledkov in pomišljajev), DATUM, URA (čas prihoda ali izhoda) in KAMERA (ime kamere oziroma proge, na kateri je bilo vozilo slikano). V tej spletni rešitvi ne prikazujemo le pisnih ali številskih podatkov, temveč tudi slike, kar pa pomeni, da mora spletno orodje ob zagonu obdelati veliko večjo količino podatkov. Odločili smo se, da zaradi hitrosti delovanja ob vstopu uporabniku ponudimo le pregled najnovejših in hkrati tudi najbolj aktualnih 40 vrstic podatkov.

Page 54: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 48

Če želi uporabnik videti več zapisov, lahko pritisne temu namenjen gumb, a lahko s tem delovanje in odzivnost orodja močno upočasni. V spletni rešitvi smo za komponento ASPxGridView definirali dva podatkovna vira SQLDataSource. Ta predstavljata povezavo med podatkovno bazo in komponento, preko katere uporabniku prikazujemo vsebino. Glavna sprememba med ustvarjenima viroma je njun SELECT stavek . Prvi vir iz podatkovne baze zahteva le najnovejših 40 vrstic, medtem ko drugi podatkovni vir zahteva tudi starejše vrstice. Ob kliku na gumb za nalaganje starejših podatkov se na strežniku izvede dogodek, preko katerega komponenti zamenjamo podatkovna vira, hkrati pa tudi osvežimo vsebino tabele. Poleg pregleda številskih in znakovnih podatkov v tabeli je bistveno, da ima v spletni rešitvi uporabnik pregled tudi nad slikami. Spletno orodje smo zasnovali tako, da se v komponenti ASPxBinaryImage prikazuje slika, ki spada k označeni oziroma fokusirani vrstici v tabeli. Ob vstopu v spletno rešitev se uporabniku samodejno označi prva vrstica tabele. Ko uporabnik označi poljubno drugo vrstico, se na uporabnikovem računalniku sproži dogodek GridFocusedRowChanged, kjer od strežnika zahtevamo ID vrednost novo izbrane vrstice. S pomočjo ID vrednosti lahko z enostavno poizvedbo v podatkovni bazi poiščemo ustrezen binaren zapis, ki v našem primeru predstavlja sliko. Kreiramo navidezno podatkovno tabelo, v katero shranimo pridobljene vrednosti. Z metodo MemoryStream razreda System.IO in metodo BitMap razreda System.Drawing iz binarnega zapisa v navidezni tabeli sestavimo sliko, ki jo nato za prikaz posredujemo komponenti ASPxBinaryImage.

Slika 26: Izgled vsebinske strani ClickTransPRTLive-Okolje.aspx

Page 55: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 49

8. RAZVOJ IN PREGLED ORODJA CLICKTRANSPRT LIVE

8.1. NALOGA IN NAMEN SPLETNEGA ORODJA Tako kot pri prejšnji gre tudi pri spletni rešitvi ClickTransPRT Kamere za stransko in relativno enostavno ASP.NET spletno orodje. Obe stranski rešitvi imata zelo podobno nalogo in podatkovno podlago. Tudi to spletno orodje prikazuje podatke, ki jih je v podatkovno bazo zapisal sistem varnostnih kamer. Glavna razlika med stranskima orodjema je v tem, da v rešitvi ClickTransPRT Live pregledujemo pretekle zapise kreirane z varnostnimi kamerami po celotnem obratu, medtem ko v rešitvi ClickTransPRT Kamere hkrati opazujemo do štiri trenutne slike, a izbiramo rezultate le izbranih kamer. Tako kot za prejšnjo spletno rešitev imajo tudi za ClickTransPRT Kamere poleg administratorjev dostop:

varnostniki, ki z orodjem pridobijo vpogled v »trenutno« stanje vozil pred vhodi in izhodi,

tehniki, ki jo uporabljajo za testiranje, servisiranje in vzdrževalna dela v sistemu varnostnih kamer.

8.2 OPIS VSEBINE SPLETNEGA ORODJA Ponovno zaradi načela konsistentnosti osnovne strukture v spletni rešitvi uporabljamo skupno glavno stran »Root.Master«. Stran za prijavo uporabnika se pri tem orodju nekoliko razlikuje od prejšnjih. Pod polje za vnos uporabniškega imena in gesla smo dodali komponento ASPxGridLookup in jo s podatkovno bazo povezali tako, da uporabniku služi kot izbirno polje za recepcije. Glede na izbrano recepcijo, prilagajamo vsebino vsebinske strani spletne rešitve, ki smo jo poimenovali ClickTransPRTKamere-Okolje.aspx (Slika 28). Glavno stran smo s komponento ASPxSplitter vertikalno razdelili na dva vsebinska dela. Leva stran je namenjena prikazovanju številskih in znakovnih podatkov, desna stran pa prikazovanju slikovnih podatkov. V celotni desni del strani smo za lažje oblikovanje vsebine dodali že znano komponento ASPxFormLayout in z njo stran razdelili na celice, v katerih se bodo nahajale slikovne komponente (Slika 27). Največje in najbolj obremenjene recepcije imajo največ dve progi za vhod in dve progi za izhod vozil, vsaka proga pri teh vhodih pa ima dodeljeno varnostno kamero. Manjše recepcije imajo navadno eno progo za vhod in eno progo za izhod. Za vse potencialne kamere na izbrani recepciji smo na desnem delu strani v celice tabele vstavili štiri identične komponente ASPxBinaryImage, pod vsako slikovno komponento, pa komponento ASPxLabel, ki je namenjena prikazovanju besedila. Na vsaki izmed slikovnih komponent se bo ob vpisu v spletno orodje prikazovala najnovejša slika ustvarjena s posamezno kamero, v tekstovni komponenti pa bodo navedene vrednosti imena kamere, čas, ko je kamera slikala vozilo in prebrana registrska številka prihajajočega vozila.

Page 56: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 50

Slika 27: Slikam, namenjen del strani ClickTransPRTKamere-Okolje.aspx Na vrhu levega dela strani uporabniku prikazujemo aktualno ime recepcije in čas zadnje posodobitve vsebine strani. Pod tekstovnimi komponentami se nahaja še komponenta ASPxGridView, kjer razen slik vse podatke, ki so prikazani na desnem delu strani, prikažemo še tu, tokrat v urejeni obliki znotraj tabele. Prikazujemo najbolj aktualne stolpce iz tabele, katere vsebino polni sistem varnostnih kamer. To so stolpci ID, KAMERA(ime kamere) ter DATUM in URA (čas prihoda/izhoda vozila). Na glavni strani je postavljena komponenta ASPxTimer, hkrati pa je celotna vsebina strani ugnezdena znotraj komponente UpdatePanel. Časovna komponenta vsakih X milisekund sproži dogodek, ki na novo naloži podatke za opisane komponente. Z uporabo komponente UpdatePanel smo zagotovili, da spletna rešitev posodablja le ukleščeno vsebino in ne celotne strani. Med dogodkom prihoda vozila pred vhod/izhod in vpisa podatkov o prihodu v podatkovno bazo navadno preteče od 2 do 5 sekund. Spletna rešitev se osvežuje vsake 3 sekunde in potrebuje od 1 do 2 sekundi, da iz podatkovne baze pridobi in prikaže serijo novih podatkov. Uporabnik torej z uporabo spletne orodja pridobi stanje na progah izbrane recepcije s 5 do 10 sekundno zakasnitvijo. Na spodnji sliki (Slika 28) sta prikazana oba dela opisane strani.

Page 57: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 51

Slika 28: Celotna vsebina strani ClickTransPRTKamere-Okolje.aspx

9. ZAKLJUČKI

9.1. OCENA UČINKOV Celoten projekt, od začetka načrtovanja orodja za registriranje prihodov in izhodov vozil, vse do prve produkcijske verzije, s katero se je uradno zaključil proces razvoja je trajal 9 mesecev. Na spodnjem seznamu so zabeleženi večji mejniki. Junij 2015 – Začetek zbiranja glavnih zahtev in dogovarjanje o osnovnih funkcionalnostih programske rešitve z naročnikom. September 2015 - Začetek aktivnega razvoja spletne rešitve ClickTransPRT, tedenski sestanki in pregledovanje napredka z naročnikom. December 2015 – Naročilo dodatnih spletnih rešitev ClickTransPRT Live in ClickTransPRT Kamere, zahteve za nove funkcionalnosti rešitve ClickTransPRT, tedenski sestanki in pregledovanje napredka z naročnikom. Januar 2016 - Zaključevanje razvoja, dnevno komuniciranje z naročnikom, začetek aktivnega testiranja funkcionalnosti s strani bodočih uporabnikov na testnem okolju, naknadno dodajanje novih funkcionalnosti, popravljanje najdenih napak. Februar 2016 – Zaključen procesa razvoja, programska rešitev se prične uporabljati v produkcijskem okolju. Dne 15. februarja so uporabniki programsko rešitev ClickTransPRT pričeli uporabljati v produkcijskem okolju. S tem se je proces razvoja uradno zaključil. S prvo produkcijsko verzijo programske rešitve smo uporabnikom omogočali vse osnovne funkcionalnosti in izpolnili prvotne zahteve naročnika.

Page 58: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 52

V podjetju smo v primeru opisane programske rešitve prvič razvijali tako obširna orodja v obliki spletnih rešitev. Ob prehodu na produkcijsko okolje so spletne rešitve in njene funkcionalnosti delovale pravilno, a nas je presenetilo večje število uporabnikov, ki so hkrati skušali uporabljali obravnavana spletna orodja. Kmalu smo opazili težave pri počasnosti delovanja spletnih orodij. Problem smo s serijo popravkov z več metodami vsaj delno rešili, a se še danes ob času največje dnevne obremenitve opazi počasnost delovanja. Pri razvoju programske rešitve ClickTransPRT je v podjetju sodelovalo 5 zaposlenih. Za vsebinsko pravilnost in smernice je skrbelo vodstvo podjetja. Pri programskem razvoju obravnavanih spletnih rešitev smo sodelovali trije programerji. Moja vloga v procesu razvoja programske rešitve je bila oblikovanje in programiranje vseh treh spletnih orodij. Sodelavca sta me med procesom razvoja podpirala z zagotavljanjem ustrezne podatkovne podlage in programerskimi nasveti. V procesu razvoja programske rešitve je bilo oblikovanih 9 vsebinskih strani. Programsko rešitev se pri naročniku uporablja v petih obratih, ki imajo skupaj 10 recepcij za beleženje vhodov in izhodov vozil. Orodja uporablja približno 100 uporabnikov. Med delovniki se preko spletnega orodja ClickTransPRT zabeleži od 800 do 1100 vhodov in izhodov vozil. Med vikendi so te številke nižje. Velika večina (približno 90%) vhodov in izhodov je registriranih preko sistema trajnih dovolilnic. Od prehoda na produkcijsko okolje je bilo preko orodij uspešno registriranih približno 125 000 vhodov in izhodov vozil.

9.2 POGOJI ZA UVEDBO Celotna programska rešitev je bila razvita specifično za naročnikov proces spremljanja in nadzorovanja vhodov in izhodov tovornih vozil. Če bi želeli orodja v trenutni obliki implementirati tudi pri kateri izmed drugih strank, bi za implementacijo rešitve bilo potrebno postaviti strukturo dovolj zmogljivega strežnika, na kateri je komplet spletnih rešitev nameščen, strežnika na katerem se nahaja podatkovna baza in domenskega strežnika za nadzor prijavljanja uporabnikov preko sistema Active Directory. Če želimo izkoristiti popolno funkcionalnost razvitih orodij, je potrebno vzpostaviti tudi infrastrukturo sistema varnostnih kamer in spletnih storitev, ki v podatkovno bazo shranjujejo rezultate delovanja kamer. Glavna spletna rešitev ClickTransPRT je sicer izdelana tako, da jo je mogoče uporabljati tudi brez sistema varnostnih kamer. Da bi zagotovili pravilno uporabo spletnih orodij, bi morali strankin kader razdeliti na ustrezne skupine in potencialne uporabnike izšolati o pravilni uporabi programske rešitve.

Page 59: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 53

9.3 MOŽNOST NADALJNEGA RAZVOJA Uradno se je proces razvoja programske rešitve ClickTransPRT s prehodom na produkcijsko okolje zaključil, pričel pa se je proces vzdrževanja in izboljševanja programske rešitve. Od prehoda na produkcijsko okolje smo uporabnikom spletnih orodij v podjetju ob pojavi težav ali napak vsak delovnik na voljo preko telefona in e-pošte. Največkrat gre za uporabniške napake in težave s podatki. Takšne težave rešimo dokaj hitro. Navadno lahko potrebne popravke izvedemo v produkcijskem okolju in je težava rešena že v nekaj urah. V primeru, da gre za napake v programski kodi, moramo za uporabnike pripraviti novo verzijo spletnih rešitev, ki vsebuje popravek in se jo pred namestitvijo vedno najprej testira na testnem okolju. Trajanje celotnega postopka je odvisno od kompleksnosti in vrste napake, uporabnikom pa v vmesnem času poskušamo omogočiti nek obhod in začasno rešitev. Čeprav je proces razvoja programske rešitve zaključen, spletnim orodjem redno dodaja nove funkcionalnosti in izboljšave, tako kot načrtujemo to početi tudi v prihodnosti. Od naročnika vsakih nekaj tednov pridobivamo komentarje o trenutni verziji spletne rešitve in seznam želja ali idej za potencialne nove funkcionalnosti. S takšnimi povratnimi podatki lahko izboljšujemo učinkovitost programske rešitve, posledično pa tudi procesa registracije vhodov in izhodov vozil. V dogovoru z naročnikom na približno dva meseca pripravimo novo verzijo spletnih orodij, ki vsebuje vse večje popravke in nove funkcionalnosti. Kot je bilo omenjeno, se novo verzijo programske rešitve ClickTransPRT najprej namesti na testni strežnik, kjer jo predstavniki uporabniških skupin temeljito preizkusijo in skušajo najti morebitne napake. Če v novi verziji ni najdenih napak, se jo navadno po tednu testiranja namesti tudi na produkcijskem strežniku, kjer je na voljo vsem uporabnikom.

Page 60: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 54

LITERATURA IN VIRI Zapisniki, interni dokumenti:

Zapisniki, 2015/2016:

Potočnik I., Lindič A., Lipanović R., Lukan A. Zapisniki sestankov in delavnic z naročnikom

(2015/2016)

Spletni viri:

.NET Assemblies, 2016:

.NET Assemblies. (2016). Pridobljeno 12.8.2016 na

http://www.indiabix.com/technical/dotnet/dot-net-assemblies/

ASP Session Object, 2016:

ASP Session Object. (2016). Pridobljeno 8.8.2016 na

http://www.w3schools.com/asp/asp_sessions.asp

ASP.NET Master Pages, 2016:

ASP.NET Master Pages . (2016). Pridobljeno 4.8.2016 na

https://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx

Avery, 2005:

Avery J. (2005), What is Visual Studio. Pridobljeno (1.8.2016) na

http://archive.oreilly.com/pub/a/windows/2005/08/22/whatisVisualStudio.html

Bauer, 2006:

Bauer A. (2006). Active Directory. Pridobljeno 9.8.2016 na http://wiki.fmf.uni-

lj.si/wiki/Active_Directory

Berke, 2009:

Berke J. (2009). What is a Stored Procedure?. Pridobljeno 8.8.2016 na

http://stackoverflow.com/a/459531

Custom Command Buttons, 2016:

Custom Command Buttons. (2016). Pridobljeno 12.8.2016 na

https://demos.devexpress.com/aspxgridviewdemos/Columns/CommandColumnCustomButtons.

aspx

Gaffney, 2005:

Gaffney G. (2005). Why Consistency is Critical. Pridobljeno 3.8.2016 na

https://www.sitepoint.com/why-consistency-is-critical/

Grid - Advanced Lookup, 2016:

Grid - Advanced Lookup. (2016). Pridobljeno 3.8.2016 na

http://demos.devexpress.com/aspxgridviewdemos/ASPxGridLookup/FilterServerMode.aspx

Grid Overview, 2016:

Grid Overview. (2016). Pridobljeno 3.8.2016 na

http://demos.devexpress.com/aspxgridviewdemos/Overview.aspx

Introduction to the UpdatePanel Control, 2016:

Introduction to the UpdatePanel Control. (2016). Pridobljeno 3.8.2016 na

https://msdn.microsoft.com/en-us/library/bb399001.aspx

Learn about Scrum, 2016:

Learn about Scrum. (2016). Pridobljeno 12.8.2016 na https://www.scrumalliance.org/why-

scrum

Page 61: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 55

Navigation and Layout - Form Layout, 2016:

Navigation and Layout - Form Layout. (2016). Pridobljeno 3.8.2016 na

https://demos.devexpress.com/ASPxNavigationAndLayoutDemos/FormLayout/Features.aspx

Roth, Anderson in Luttin, 2014:

Roth D., Anderson R. in Luttin S. (2014). Introduction to ASP.NET Core. Pridobljeno 1.8.2016 na

https://docs.asp.net/en/latest/intro.html#unify

Saichandra, 2011:

Saichandra.S.V.(2011). Web.config File - ASP.NET. Pridobljeno 1.8.2016 na

http://www.codeproject.com/Articles/301726/Web-config-File-ASP-NET

Schlichting, 2008:

Schlichting D. (2008). What is SQL Server. Pridobljeno 3.8.2016 na

http://www.databasejournal.com/features/mssql/article.php/3769211/What-is-SQL-

Server.htm

Overview of Developer Express Inc., 2016:

Software Company Overview of Developer Express Inc.. (2016). Pridobljeno 3.8.2016 na

http://www.bloomberg.com/research/stocks/private/snapshot.asp?privcapid=22301243

SQL - Using Views, 2016:

SQL - Using Views. (2016). Pridobljeno 8.8.2016 na http://www.tutorialspoint.com/sql/sql-

using-views.htm

Tables, rows, and columns, 2013:

Tables, rows, and columns. (2013). Pridobljeno 8.8.2016 na

http://www.ibm.com/support/knowledgecenter/SSPK3V_7.0.0/com.ibm.swg.im.soliddb.sql.do

c/doc/tables.rows.and.columns.html

KAZALO SLIK Slika 1: Prikaz razvojnega okolja Microsoft Visual Studio 2015 9 Slika 2: Prikaz izgleda in uporabe komponente ASPxGridLookup Slika 3: Ponazoritev razlike med komponentama ComboBox in CheckBox Slika 4: Primer delovanja kontrole za upravljanje uporabnika Slika 5: Prikaz prijavnega obrazca Slika 6: Prikaz pojavnega okna z opozorilom o poteku seje Slika 7: SELECT CASE stavek za zaklepanje funkcionalnost/komponent Slika 8: Prikaz gnezdenja glavnih strani v rešitvi ClickTransPRT Slika 9: Slika stranskega menija rešitve ClickTransPRT Slika 10: Odsek programske kode za dinamično nastavljanje slike Slika 11: Slika vsebinske strani ClickTransPRT-OkoljeKoncno.aspx Slika 12: Tabela, namenjena prikazovanju pozicij Slika 13: Obrazec za dodajanje novega vozila Slika 14: Obrazec za dodajanje novega voznika Slika 15: Slika vsebinske strani ClickTransPRT-PodrobnoKoncno.aspx Slika 16: Slika vsebinske strani ClickTransPRT-Dovolilnice.aspx Slika 17: Slika vsebinske strani ClickTransPRT-DovolilnicePodrobno.aspx Slika 18: Slika vsebinske strani ClickTransPRT-NabavaOkolje.aspx Slika 19: Slika vsebinske strani ClickTransPRT-NabavaPodrobno.aspx Slika 20: Slika vsebinske strani ClickTransPRT-Iskalnik.aspx Slika 21: Glavni del orodja za registracijo vhodov in izhodov vozil Slika 22: Načrt SQL procedure za registracijo vhodov in izhodov vozil

11 16 18 19 21 22 23 24 27 29 31 32 32 32 34 36 38 39 40 41 43

Page 62: RAZVOJ PROGRAMSKE REŠITVE ClickTransPRT · POVZETEK V diplomski nalogi smo opisali postopek razvoja programske rešitve, ki je poskus avtomatizacije in optimizacije procesa, v katerem

Univerza v Mariboru – Fakulteta za organizacijske vede Diplomsko delo univerzitetnega študija

Aljoša Lindič: Razvoj programske rešitve ClickTransPRT stran 56

Slika 23: Pojavno obvestilo v primeru, ko je Tip vnosa enak 3 Slika 24: Pojavni obrazec, ko je Tip vnosa enak -2 Slika 25: Programska koda jQuery AJAX klica za dodajanje voznika Slika 26: Izgled vsebinske strani ClickTransPRTLive-Okolje.aspx Slika 27: Slikam namenjen del strani ClickTransPRTKamere-Okolje.aspx Slika 28: Celotna vsebina strani ClickTransPRTKamere-Okolje.aspx

43 44 45 48 50 51

KAZALO TABEL Tabela 1: Namen in vloga podatkovnih tabel v programski rešitvi

ClickTransPRT Tabela 2: Seznam in komentar najpomembnejšim stolpcem v SQL

pogledu »dbo.Q_VarnostAppointments« Tabela 3: Seznam in komentar najpomembnejših stolpcev v tabeli s

pozicijami na straneh za urejanje in pregled najav Tabela 4: Seznam polj, vrsta uporabljene komponente in komentar k

najpomembnejšim vnosnim poljem na obrazcu za urejanje glave najave

Tabela 5: Seznam in komentar najpomembnejših stolpcev generiranih z SQL pogledom »dbo.Q_TrajneDovolilnice«

Tabela 6: Seznam in komentar za najpomembnejše stolpce v tabeli s pozicijami na straneh za urejanje in pregled trajnih dovolilnic

Tabela 7: Seznam, prisotnost v sklopih in komentar za združene stolpce generirane z SQL pogledom dbo.Q_ClickTransPRTIskalnik

15

27

30

31

33

35

40

KRATICE IN AKRONIMI SQL: Standard query language: standardni povpraševalni jezik VB: Visual Basic : vrsta programskega jezika RDBMS: Relational database management system: sistem za uprabvljanje s

relacijskimi podatkovnimi bazami URL: Uniform Resource Locator: enolični krajevnik vira UI: User interface : uporabniški vmesnik