Szakdolgozat
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Készítette: Antal Alex Tibor Programtervező Informatikus (Bsc)
Témavezető: Krizsán Zoltán
Miskolc, 2014
MISKOLCI EGYETEM Gépészmérnöki és Informatikai Kar Alkalmazott Matematikai Tanszék
Szám:
SZAKDOLGOZAT FELADAT Név: Antal Alex Tibor (D5GXFA) BSc programtervező informatikus jelölt részére. A szakdolgozat tárgyköre: CMS Rendszerek A szakdolgozat címe: Kis és középvállalati termékmenedzselési alkalmazás tervezése A feladat részletezése:
Téma ismertetése Iparban használt rendszerek bemutatása Saját alkalmazásban felhasznált technológiák ismertetése Saját alkalmazás fejlesztése
Témavezető: Krizsán Zoltán
A feladat kiadásának ideje: 2011. február 20.
.................................................... szakfelelős
I
Tartalom: 1. Bevezetés.........................................................................................................................................1 2. Célcsoportot képező vállalkozások bemutatása ..............................................................................3 2.1 Kinek érdemes CRM rendszert használni? ...................................................................................3 2.2. Változtatások bevezetése egy kisvállalat életében .......................................................................3 2.3. Az alkalmazás felhasználási csoportjai ........................................................................................3 3. OLAP és CRM rendszerek ..............................................................................................................5 3.1 OLTP és OLAP rendszerek ...........................................................................................................5 3.2 CRM rendszerek célja ...................................................................................................................6 3.3 A CRM-rendszer ...........................................................................................................................6 3.4 A CRM-rendszerek "mellékhatásai" .............................................................................................6 3.5 A CRM-rendszerek főbb moduljai: ...............................................................................................7 3.5.1 Ügyféladat-nyilvántartás ...............................................................................................7 3.5.2. Értékesítési projektek ...................................................................................................7 3.5.3. Megrendelések .............................................................................................................7 3.5.4. Kampánymenedzsment ................................................................................................7 3.5.5. Ügyfélelégedettség-mérés ...........................................................................................8 4. Az Iparban használt rendszerek.......................................................................................................9 4.1. Microsoft Dynamics CRM ...........................................................................................................9 4.1.1 Bevált technológiák egyesítése ...................................................................................11 4.1.2 Az Ügyfél szempontjából .............................................................................................12 4.1.3 Hatékonyság és átláthatóság a vezetőség érdekében ................................................13 4.2. Pannon set CRM ........................................................................................................................14 4.2.1 Középpontban az ÜGYFÉL............................................................................................14 4.2.2 Ügyfélnyilvántartás......................................................................................................15 4.2.3 Lekérdezés generátor ..................................................................................................16 4.2.4 Érékesítés Támogatás ..................................................................................................16 4.2.5 Ügykövetés, Feladatkezelés ........................................................................................17 4.2.6 Automatikus feladat generálás ...................................................................................17 4.2.7 Lekérdezés generátor ..................................................................................................17 4.2.8 Dokumentum Kezelés..................................................................................................18
4.2.9 Workflow .....................................................................................................................19 4.2.10 Workflow Engine .......................................................................................................19 4.2.11 Felhasználói adatbázis ...............................................................................................19 4.2.12 Munkafolyamat-tervező ............................................................................................19 4.2.13 A Munkafolyamat fázisai: ..........................................................................................20 5. Saját CRM rendszerem..................................................................................................................22 5.1 Adatbázis kapcsolatok .................................................................................................................22 5.2 A termék előnyei .........................................................................................................................23 5.3 A termék hátrányai ......................................................................................................................24 5.4 Munkám során felhasznált programok, technológiák .................................................................24 5.4.1 NetBeans .....................................................................................................................24 5.4.2 Java ..............................................................................................................................25 5.4.3 Servlet ..........................................................................................................................26 5.4.4 JSP (Java Server Pages) ................................................................................................27 5.4.5 Glashfish ......................................................................................................................28 5.4.6 MySQL .........................................................................................................................29 5.4.7 jQuery ..........................................................................................................................29 5.5 Végtermékkel felállított elvárások ..............................................................................................29 5.5.1 Követelményekről általában........................................................................................30 5.5.2 Követelmény feltárás életciklusa, forgatókönyv .........................................................31 5.5.3 Követelmények összegyűjtése:....................................................................................31 5.5.4. UML Diagramok ..........................................................................................................37 5.6. Az Adatbázis ..................................................................................................................41 5.7. GUI tervezési szempontok.............................................................................................45 5.8 Fejlesztése során felhasznált minták ..............................................................................47 6. A rendszer fejlesztése során levont következtetések .....................................................................56 7. Summary .......................................................................................................................................58 Irodalom Jegyzék: .............................................................................................................................59
III
Ábrajegyzék 1. ábra Microsoft Dynamic CRM rendszer felhasználó felülete. ...................................................... 11 2. ábra A Dynamic CRM felhasználóbarát kezelőfelülete.................................................................13 3. ábra a NetBeans fejlesztői környezet kezdőképernyője ................................................................24 4. ábra Követelmény gráf köcsönhatásai ...........................................................................................31 5. ábra Alkalmazott felvételének forrásrészlete ................................................................................34 6. ábra Termék felvétele a Jam CRM-ben .........................................................................................35 7. ábra Use-Case Diagram.................................................................................................................38 8. ábra Szekvenciális diagram ...........................................................................................................40 9. ábra Adatbázis létrehozása NetBeansben ......................................................................................42 10. ábra A Jam CRM logója ..............................................................................................................46 11. ábra Servlet mapping a Web.xml fájlban.....................................................................................48 12. ábra Web.xml adatbázis paraméterei ...........................................................................................49 13. ábra Servlet-adatbázis kapcsolódás forrásrélszlet .......................................................................49 14. ábra Nyersanyag törlésének SQL utasítása .................................................................................51 15. ábra Adatbázis kapcsolódás JSP-ben...........................................................................................51 16. ábra Eredeti DataTables táblázat .................................................................................................52 17. ábra Nyersanyag_torles lap a JQuery táblázattal ........................................................................53 18. ábra Üzenetküldés a Jam CRM-ben ............................................................................................54 19. ábra Az admin felület kezdőoldala ..............................................................................................55
IV
Kis és középvállalati termékmenedzselési alkalmazás tervezése
1. Bevezetés
Középiskolás koromban, nyaranta a családi lekvár üzemben dolgoztam mindenesként. Így remek lehetőségem nyílott arra, hogy megismerkedjek a lekvárgyártás technológiai hátterével az adott munkafolyamatok működésével. Mivel ez egy kisvállalkozás, először így a technikailag kissé elmaradott papír alapú nyilvántartást alkalmazták. Ezt váltotta fel egy egyszerű Excel alapú nyilvántartás. Figyeltem a többi alkalmazottat és észrevettem, hogy rengeteg idő megy el a leltározással és ezek adminisztrációjával. A folyamatosan cserélődő munkaerő pedig csak tovább nehezítette az egységes szokásokon alapuló pontos leltározást. Többször történt, hogy év végén nagy kavarodás és zűrzavar volt az egész raktárban, a készletek ellenőrzésénél. Ekkor még nem tudtam a családi vállalkozásnak megfelelő megoldást szolgáltatni raktározási, be és kimenő termék készlet ellenőrzési problémájára. Aztán egyetemi éveim alatt, ahogy bővült a tudásom, újra eszembe jutottak a munkával töltött nyarak, illetve az ekkor fellépet problémák és ez indított el azon az úton, hogy kifejlesszek egy könnyen kezelhető alkalmazást, ami segíti a raktározással gyártással kapcsolatos munkafolyamatok gyors egyszerű regisztrálását, ellenőrzését. Nemrég beszélgettem egy már végzett ismerősömmel, aki alkalmazásfejlesztőként dolgozik. Nagyon sok értékes információval gazdagodtam e percek alatt. Elmesélte, hogy bár már jó pár éve dolgozik a szakmában, cégek számára rengeteg alkalmazást készített, de még nem találkozott olyannal hogy egy adott cégnek száz százalékosan megfelelt volna egy másik cég számára fejlesztett alkalmazás. Mindig volt kisebb-nagyobb változtatás, amit alkalmazni kellet a programon, hogy az megfelelő legyen az adott cég számára. Ezért is gondoltam azt hogy alkalmazásunkat nem egy általános megoldásként szeretném alkalmazni hanem specifikusan a családi vállalkozásunk számára szeretnék egy opciót felkinálni. Azért hogy alkalmazásunkat hogy minnél életszagúbb legyen nevezzük el Jam CRM-nek. A névválasztás az alapötletnek köszönhető, természetesen a későbbiekben ez bármikor átnevezhető. Design kérdésében nem szükséges túlságosan mélyre menni, egy letisztult egyszerű felhasználói felületet biztosítok. Kutatásaimból kiderült, hogy a kisvállalkozások számára tökéletesen megfelel eme külalak, számukra az egyszerű, könnyen megérthető, tanulható kezelés a fontos, nem pedig az adott program szépsége. 1
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Egy olyan alkalmazást szeretnék létrehozni, amely megoldást jelent a kis és középvállalatok számára az anyag áramlás ellenőrzésére és adminisztrálására. A szolgáltatás széleskörű megvalósítása érdekében vékony klienses architektúrát alkalmazunk, amely az adatbázist és az üzleti logikai részt a központi szerveren tárolja, valósítja meg, felhasználói oldalról Kis és középvállalati menedzsment szoftver fejlesztése a felhasználó, egy böngészőn keresztül, http protokollon keresztül tarthatja a kapcsolatot, intézheti ügyeit. Így az alkalmazás igen széles körben elérhető, hiszen megfelelő hálózati kapcsolat és egy böngésző szükséges, melyek már külön implementálva vannak, rendelkezésre állnak. Ez az egyszerű megoldás nagyon megkönnyítheti a kisvállalatok életét, hiszen a hardveres beruházás költsége is igen alacsony, illetve az elhasználódásig nem is kell plusz pénzeket invesztálni a rendszerbe, ez pedig az egyik fő indok, amiért az ilyen kisvállalatok ilyen rendszereket használnak. Sokat gondolkoztam mégis milyen technológiákkal lenne érdemes megvalósítani ezt a rendszert. Aztán arra jutottam, hogy a legoptimálisabb a JSP-Servlet alapú weblap lenne, mivel ezzel a program nyelvel már megismerkedtem tanulmányaim során, egy minimális szinten, és ezt a tudást továbbfejlesztve ütőképes ismeretekkel fogok rendelkezni egy ilyen projekt megvalósításához. Valószínűleg problémákba fogok ütközni a fejlesztés során, de ezek megoldása közben még több ismeret birtokába fogok jutni, és ezeket a későbbiekben felhasználhatom. A problémák feltárásának a nehézségei remélhetőleg nem fog eltántorítani, és munkám végeztével boldogan fogom ajánlani családi vállalkozások számára az általam fejlesztett célprogramot.
2
Kis és középvállalati termékmenedzselési alkalmazás tervezése
2. Célcsoportot képező vállalkozások bemutatása Jelen korunk elengedhetetlen részei azok a cégek, amik célterületül szolgálnak alkalmazásunknak. A kis és középvállalatok életét tennénk egyszerűbbé e szolgáltatással. Számukra elengedhetetlen a megfizethetőség és az egyszerűség. Alkalmazásunknak maradéktalanul illeszkednie kell, cég szervezeti rendszeréhez, belső elsősorban marketing és értékesítési folyamataihoz.
2.1 Kinek érdemes CRM rendszert használni?
Ajánlatos mindenképpen azoknak akik:
Ügyfelekkel dolgoznak
Ahol több munkatárs is kapcsolatban van az ügyfelekkel
Pontosabban szeretnénk látni a várható bevételeket
Szeretnénk elkerülni aktuális ügyfeleink lemorzsolódását, elvesztését
Fontos számukra az ügyfelek megtartása és lojalitása
Szeretnék naprakészen követni értékesítőink munkáját
Szeretnék elkerülni a kollegák betegségéből, hiányzásából felmerülő információ áramlás problémáját
2.2. Változtatások bevezetése egy kisvállalat életében Minden változás egy cég életében problémákat szülhet, a dolgozók nehezen állnak át az új rendszerre, hiába sokkal egyszerűbb, könnyebben kezelhető, mint az előző rendszer. A fellépő problémákat orvosolni kell, fontos a folyamatos támogatás, segítségnyújtás az alkalmazottak felé, hiszen e révén elégedettebb lesz a megrendelő, és ez elősegítheti a későbbi közös munkát.
2.3. Az alkalmazás felhasználási csoportjai
Célunk egy olyan rendszer készítése, amit a kis és középvállalatok vezetői, alkalmazottai napi szinten könnyen kezelve használni tudnak. A céggel kapcsolatban álló ügyfeleknek egy 3
Kis és középvállalati termékmenedzselési alkalmazás tervezése
egyszerű megrendelői felületet kell biztosítanunk. Különböző felhasználók, különböző oldalról látják, az üzletet pl. megkülönböztetjük a cég alkalmazottainak különböző szerepköreit (megrendelő, cégvezető, titkárnő, raktáros).
Egy megrendelő alkalmanként használja a programot. Ha éppen termékre van szüksége, meglátogatja a honlapot és leadja a rendelést a cégnek. A cégvezető összefogóan látja a raktárban lévő termékek értékeinek pontos értékét, ezen felül a később említett CRM rendszerszolgáltatásokat széleskörűen igénybe veheti, így különböző grafikonokat, statisztikákat kérhetnek le a raktárban levő aktuális értékekről időbeli változásukról. Ezen felül a cégvezetőknek jogukban áll új felhasználókat felvenni a felhasználók közé, jogokat kiosztani nekik. És persze törölhet is felhasználókat az adatbázisból. A raktárosoknak miután bejelentkeztek lehetőségük nyílik bevinni az aktuális be és kiviteli űrlapokat a termékekről, alapanyagokról. Mind amellett jelentéseket írhat a vállalat vezetői felé, amelyben plusz információkat közölhet feléjük pl.(Gépmeghibásodás személyzeti problémák, selejtek száma…). Megvalósul egy CRM rendszer, amely historikusan tárolja az adatokat, a pillanatnyi rendszerekből kinyerve, így miután megfelelő mennyiségű tényadat állrendelkezésünkre előjelzéseket, riportokat és tendencia elemzéseket hajthatunk végre. A nyert adatokat, kitöltött formokat szükséges írott formában is megőrizni, ezért szükséges egy nyomtatást megvalósító programrész.
4
Kis és középvállalati termékmenedzselési alkalmazás tervezése
3. OLAP és CRM rendszerek
3.1 OLTP és OLAP rendszerek Az On-LineTransactional Processing (OLTP) hosszú éveken keresztül minden nagyvállalat sikeresen alkalmazta. Az ilyen tranzakciós rendszerek nagyméretű adatbázisokat készítenek, a vállalkozások összes adatával. Az OLTP nagyjából sikeresen megvalósítja a vállalati logikát, ezért képes támogatni a vállalat működését, a gazdálkodás, és technológiai folyamatot. Mára az informatikában használt eszközöknek támogatniuk kell valamilyen üzleti logikát – ami jelenesetben gazdasági, logisztikai folyamatok támogatására. Ezek a rendszerek jellemzően nem alkalmasak egyszerű kezelőfelületen való lekérdezésére, elemzések készítésére és bonyolult összefüggések vizsgálatára, viszont napjainkban megnövekedett az igény ezen alkalmazások használatára. Az Online Analytical Processing (OLAP) egy növekvő népszerűségű technológia, amely drasztikusan megnöveli az üzleti analízis sikereit, azonban ismert a drága és ügyetlen eszközökről, és a rugalmatlan telepítésről is. Egy OLAP alkalmazás gyors analízisre képes megosztott
multi
dimenzionális
információhalmazon.
OLAP
a
lekérdezést
leghatékonyabban támogató formában tárolja az adatokat. Ezzel lehetővé válnak olyan elemzések, lekérdezések elkészítése, amelyek az OLTD alkalmazásával aránytalanul sok időt és kapacitást igényelt volna. Az OLAP rendszerek alaplogikája szerint az alapadatokat (mértékegységeket, pl.: ár, mennyiség stb.) különböző dimenziók mentén halmozva tárolják. A dimenziók alkotják az úgynevezett adatkockát (természetesen a név által sugallttól eltérően nemcsak három dimenzió vehető fel), melynek egyes cellái a mértékegységek (melyekből szintén több lehet). Dimenzión tipikusan a vállalati működés szempontjából fontos ismérveket kell érteni (pl.: partnerek, időhorizont, termékek, kereskedők). Az ábrázolás módja alapvetően kétdimenziós, azaz egyszerre –mintegy táblázatban –két dimenziót lehet megtekinteni (illetve lehet dimenziókat egymásba is ágyazni), ugyanakkor a dimenziók szabadon változtathatók. [1]
5
Kis és középvállalati termékmenedzselési alkalmazás tervezése
3.2 CRM rendszerek célja A CRM a Customer Relationships Management angol kifejezés rövidítése, amit magyarra ügyfélkapcsolat menedzselésnek fordíthatnánk. Azért is kell ezt már az elején megértenünk, mert a szó magyar jelentéséből is észrevehető, hogy ez nem csupán egy számítógépre telepített programot jelent, hanem egy cégszervezési eszközt is. Vagyis egy CRM rendszer bevezetésekor sok új változtatás is bekerülhet egy cég irányításába, ami nem feltétlenül a szoftveren belül történik. A CRM rendszerben egyetlen nagy adatbázisban helyezkednek el az adatok amiket a dolgozók elérhetnek és szükség szerint módosíthatnak. A rendszerhez több felhasználó egyidejűleg is hozzáférhet, és az általuk elvégzett módosítások azonnal elvégződnek. Ennek segítségével az ügyfelek adatait elegendő egyetlen helyen módosítani és folyamatos karbantartás mellett naprakész információkkal fogunk rendelkezni az ügyfelekről. Akkor most mi is pontosan a CRM? Bár elsőre komplexnek tűnik definíciója mégis roppant egyszerű: a CRM az kliensekkel való kapcsolattartást tudatosan, irányított módon, és összehangoltan kezelő belsővállalati feladatok összessége, amelynek központjában az Ügyfél áll. A CRM egy olyan ügyfélközpontú vezérlő elvet jelent, ami irányítja a cégtevékenységet a kapcsolatfelvételtől egészen addig amíg az ügyféllel tart a kapcsolat 3.3 A CRM-rendszer Ennek megfelelően CRM-rendszernek nevezzük azt az integrált informatikai rendszert, ami a fentiek támogatására szolgál egy ügyfélközpontú adatbázissal a háttérben, és ezen kívül passzol a vállalat szervezeti felépítéséhez és belső, értékesítési folyamataihoz. 3.4 A CRM-rendszerek "mellékhatásai" Számítani kell arra, hogy a CRM-rendszereknek is vannak járulékos hatásai, például:
A CRM-rendszer bevezetés mindig magával hozza a vállalati munkafolyamatok optimalizálását megváltoztatását.
A munkatársak általában nem kedvelik, hogy munkatevékenységük visszakövethetővé válik.
Az adatokat pontosan fel kell vinni a rendszerbe.
6
Kis és középvállalati termékmenedzselési alkalmazás tervezése
3.5 A CRM-rendszerek főbb moduljai: 3.5.1 Ügyféladat-nyilvántartás Az ügyféladatok nyilvántartásán alapul végeredményben a többi funkció. Ebben az alrendszerben kapnak helyet az ügyfelek alapadatai, mint név, cím, elérhetőségek, kapcsolattartók, továbbá az Ügyfélre jellemző marketing-adatok, például tevékenységi kör, alkalmazotti létszám, éves bevétel, és így tovább. Ezek az információk különböző adatbázis-szolgáltatóktól (pl. Hoppenstedt-Bonnier, Dun&Bradstreet) beszerezhetők, illetve természetesen manuálisan rögzíthetők. 3.5.2. Értékesítési projektek Itt tarthatjuk nyilván az értékesítési projekteket, azaz azt a folyamatot, amíg az ügyfél az első kapcsolatfelvételtől eljut a termék megrendeléséig. E folyamat során sok megbeszélés, találkozó, telefon- fax- és üzenetváltás történik, amikről itt tehetünk feljegyzést. Naprakész nyilvántartás esetén nem lesz probléma, ha az adott értékesítéssel foglalkozó munkatársunk szabadságolás miatt, vagy más egyéb okból hiányzik. 3.5.3. Megrendelések E modul segítségével elemezhetjük, hogy ügyfeleink mennyit költöttek nálunk, és milyen termékekre. Fókuszálhatunk azokra az ügyfelekre, akik a többet költötték el nálunk, és kiemelt figyelmet érdemelnek, hiszen jórészt belőlük él a vállalat. Láthatjuk, hogy adott Ügyfél egy adott időszakban mit és mennyiért vásárolt nálunk. Ez pedig lehetőséget ad arra, hogy támogassuk a keresztértékesítést. Ezek az elemzések alapul szolgálhatnak az úgynevezett élettartam-hozamjellemzők kiszámítására. (Az élettartam-hozam az a nyereség, ami a cég számára képződik egy Ügyféllel való kapcsolata során.) 3.5.4. Kampánymenedzsment Ide
tartozik
a
különböző
direkt
marketing
tevékenységek
(Direct
Mailing,
rendezvényszervezés) támogatása. E modul használatával pontosan le lehet szűkíteni egy direkt marketing kampány célcsoportját, rögzíthetők lesznek a kampány során az ügyfelektől kapott visszajelzések, ezek az információk feldolgozhatók, rendszerezhetők és elemezhetők 7
Kis és középvállalati termékmenedzselési alkalmazás tervezése
lesznek, elősegítve az ügyfelek személyre szabott kiszolgálását és a termékfejlesztést. Itt meg kell említenem, hogy a CRM-rendszer részét képező jól felépített marketingadatbázis alkalmas piac szegmentációs célra is. Pontos elemzést készíthetünk arról például, hogy milyen erőforrások szükségesek egy adott piaci rész lefedésére és megfelelő kezelésére. Ez már az adatbányászat tárgykörébe tartozik, amit itt nem kívánok bővebben kitérni. 3.5.5. Ügyfélelégedettség-mérés Ügyfeleink megőrzése és a lemorzsolódás csökkentése érdekében fontos tudnunk, hogy az ügyfelek mennyire elégedettek termékünkkel és szolgáltatásunkkal. Egy angol mondás szerint "Customers don't complain. They jus tleave." - Az ügyfelek nem panaszkodnak. Egyszerűen csak elvándorolnak. Éppen ezért fontos, hogy proaktív módon értesüljünk ügyfeleink elégedettségi indexéről, és adott esetben még az Ügyfél elvándorlása előtt kiderüljön az elégedetlenség oka és megoldást találjunk a problémára. Az ügyfél elégedettségi felmérések eredményei alapvetően két irányban hatnak tovább: 1. Egy adott Ügyfél adott panaszának feltárása és időben történő orvoslása. Itt fontos, hogy pontosan lássuk az elégedetlenség okát, és pontosan rögzítsük a megoldás mikéntjét illetve a megoldás határidejét. Fontos, hogy a végrehajtást végző személy pontosan azonosítható legyen. Feltétlenül visszajelzést kell kérnünk az Ügyféltől arra, hogy elégedett-e a megoldással. 2. A leggyakoribb elégedetlenségi okok vagy források a belső vállalati munkafolyamatok közötti kapcsolódási pontok feltárása jelenti. A hosszútávon gondolkodó vállalatvezetés feladata itt az, hogy az eredményeket feldolgozva, és mintegy felülről vizsgálva megtalálja és ésszerűsítse, szükség szerint megváltoztassa azokat a belső vállalati folyamatokat, amik esetleg az elégedetlenség forrásaként játszanak szerepet. Így a leggyakoribb elégedetlenségi okok a munkafolyamatok optimalizálásával kiküszöbölhetők, jótékony hatást gyakorolva a vállalat hosszú távú terveinek megvalósulására. [2] [3]
8
Kis és középvállalati termékmenedzselési alkalmazás tervezése
4. Az Iparban használt rendszerek
4.1. Microsoft Dynamics CRM
A Microsoft Dynamics CRM a világ legnagyobb szoftvergyártójának stratégiai terméke, melyet a tradicionális kereskedelmi folyamatok korszerűsítése érdekében alkottak meg. A szoftverben a széles körű üzleti tapasztalatok ötvöződtek a legmodernebb integrált, innovatív, kiforrott informatikai technológiával. A megoldás könnyen integrálható más üzleti rendszerekkel, és a vállalat növekedését követve rugalmasan bővíthető. A különböző vállalatok egyéni munkastílussal és sajátos kultúrával rendelkeznek, ráadásul ügyfélkapcsolataikat is eltérően kezelik. A Microsoft Dynamics CRM egy olyan rugalmas megoldás, amelyet gyorsan hozzá lehet igazítani a vállalat pillanatnyi igényeihez, miközben jól méretezhető platformjával képes követni az üzleti tevékenység bővülését. A felületek, űrlapok, riportok, munkafolyamatok testreszabásával a program teljes egészében a vállalat működéséhez igazítható és ez által a különböző ágazatokban tevékenykedő cégek részére is egyenértékű megoldást tud nyújtani. Legyen szó akár kereskedelemről, oktatásról, mezőgazdaságról, vagy a banki szektorról, ügyfeleink sikeresen használják az általunk alkalmazott módosításokkal a Microsoft Dynamics CRM rendszert. Napjaink bonyolult üzleti világát felgyorsult kommunikáció jellemzi. Nehezebb versenyelőnyhöz jutni, megtartani, mint valaha. Az üzleti siker záloga az ügyfelek és a piac minél mélyebb megértése. Az eredményesség végső soron azon múlik, hogy a vállalat képese kellő gyorsasággal, szakértelemmel és magabiztossággal reagálni ügyfeleinek újabbnál újabb igényeire és versenytársainak állandóan változó stratégiájára. A szoftver feladata, hogy az információ technológia eszközeivel járuljon hozzá a felhasználó ügyfélkezelési folyamataihoz. A Microsoft Dynamics CRM ügyfélkapcsolati-kezelési megoldással a vállalat sikeresebbé teheti értékesítési tevékenységét, kiemelkedő színvonalú vevőszolgálatot biztosíthat, és megalapozott, gyors döntéseket hozhat.
A Microsoft Dynamics CRM teljes körű ügyfélkapcsolat-kezelési megoldás. Számtalan eszközével és lehetőségével a felhasználó világos képet alkothat ügyfeleiről a legelső kapcsolatfelvételtől egészen az értékesítést követő
9
Kis és középvállalati termékmenedzselési alkalmazás tervezése
támogatásig.
A marketing, értékesítési, és ügyfélszolgálati modulokat tartalmazó Microsoft Dynamics CRM gyors, rugalmas és gazdaságos megoldás, amely az összes üzleti folyamat hatékonyságának következetes és mérhető javítása mellett szorosabb kapcsolatot
tesz
lehetővé
az
ügyfelekkel,
és
fokozza
a
vállalat
jövedelmezőségét.
A Microsoft Dynamics CRM célja nem csupán az ügyfelek megszerzése, hanem hosszú távú megtartása a kapcsolat folyamatos ápolása révén. Segít az üzleti sikerek növelésében, a hatékonyabb értékesítés és célirányosabb marketing kialakításában. Fejlettebb vevőszolgálatot alakít ki, elősegíti az ügyfelekhez kapcsolódó szolgáltatások ütemezését.
Microsoft Dynamics CRM ügyfél támogatási funkcióinak köre megfelel a középvállalatok igényeinek, de alkalmazhatják a kis és középvállalkozások, illetve a nagyobb vállalatok egyes részlegei is. A szoftver nem csupán az ügyfelek, hanem a felhasználók érdekeit is maximálisan kiszolgálja a hatékonyabb munkavégzés érdekében. Napjainkban alapfeltétellé vált a vállalati folyamatok ellenőrizhetősége, vezérelhetősége, mérhetősége, biztonságossága. A vállalatirányítási szokásokon, szabályzatokon és törvényi korlátozásokon túl, számtalan ki nem mondott elvárásnak is teljesülnie kell. A Microsoft Dynamics CRM átgondolt és kiforrt megalkotása révén, hatékonyan elégíti ki a legszigorúbb üzleti és döntéshozói igényeket is.
Korszerű, kereskedelemi tevékenységet újraszervező és hangoló módszertan.
Gyorsaság, rugalmasság és költséghatékonyság jellemzi a rendszert, már a bevezetés pillanatától kezdve.
Széles körű testreszabhatóság a legbonyolultabb folyamatokat kezelő vállalatokra is.
Rendkívül fejlett felhasználói felülete igazodik a felhasználó munkastílusához. Átlátható, barátságos, felhasználói működtetése egyszerű, nem igényel mély informatikai ismereteket vagy hosszantartó tanulást.
Számos pénznem és nyelv támogatása az eltérő nemzetiségű üzleti partnerek és munkatársak érdekében. Az alkalmazás jelenleg 11, később várhatóan 26 nyelven lesz elérhető.
Igazodás a szabványos ipari technológiákhoz a minőségbiztosítás jegyében.
10
Kis és középvállalati termékmenedzselési alkalmazás tervezése
A rugalmasan bővíthető és biztonságos. NET platformra épülő termék kihasználja a szabványos eszközök és technológiák köztük a MicrosoftSQL Server™, a Microsoft BizTalk® Server és a Microsoft Visual Studio® nyújtotta lehetőségeket.
Igazodik a meglévő vállalati rendszerhez és infrastruktúrához, könnyen és gyorsan telepíthető.
A Microsoft Dynamics CRM segítségével a vállalatok szabványosíthatják és összevontan kezelhetik ügyféladataikat, függetlenül azok létrehozási vagy tárolási helyétől.
A Microsoft fokozott biztonságot nyújt a vállalatoknak, és emellett a felügyelet is egyszerűbb.
Az üzleti adatok biztonságos kezelésére, tárolására, illetve bizalmas jellegének megőrzésére alkalmas platform gondoskodik az ügyféladatok épségéről.
1. ábra Microsoft Dynamic CRM rendszer felhasználó felülete.
4.1.1 Bevált technológiák egyesítése A Dynamics CRM mint a Microsoft stratégiai terméke, tartalmazza mindazon technológiai megoldásokat, melyeket ma az informatika csúcsának tekinthetünk. A rendszer tervezésekor a világ legnagyobb szoftverfejlesztője valamennyi szükséges és ésszerű innovációs tapasztalatát és technikai megoldását egyesítette a Microsoft Dynamics CRM-ben.
11
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Átgondolt, mély integráció a Microsoft termékpalettával. Az Office kompatibilitás révén lehetővé válik a feladatok, naptárak és bejegyzések összehangolt kezelése és szinkronizálása a tervezhetőség javítása
Beépített varázslók, jelentések az önálló munkavégzés érdekében.
Egyszerű adatkezelési és adatmenedzsment funkciók a végeláthatatlan irodai feladatok sebességének gyorsítása végett. Könnyített riportolási lehetőségek, előrejelzések, kötegelt feldolgozások, egyedi keresési funkciók.
Probléma esetén a továbbfejlesztett diagnosztikai és hibaelhárítási eszközök révén a műszaki hibák rendkívül gyorsan megoldhatók.
A hibatűrés és a tartalékrendszerre való automatikus átváltás biztosítja a hosszú üzemidőt és a folyamatos rendelkezésre állást. A Microsoft Dynamics CRM fürtözött webes, adatbázisos és e-mail kiszolgáló környezetekben is telepíthető.
Vállalaton belüli és azon kívüli rendszerekkel való zökkenőmentes együttműködés, valamint a legmagasabb fokú megbízhatóság, méretezhetőség és biztonság.
4.1.2 Az Ügyfél szempontjából Az erősödő piaci verseny vevőinkre és partnereinkre nézve rendkívül sok választási lehetőséget biztosít. Fontos, hogy új ügyfeleket tudjunk szerezni, a meglévőket pedig igyekeznünk kell megtartani. Partnereink belénk vetett hitét az határozza meg, miként vagyunk képesek elvárásaiknak megfelelni, igényeiket minél körültekintőbben kielégíteni.
A kedvező cég imázs és felkészültség elégedettséget szül.
Gyors és hatékony problémakezelés és megoldás.
Jó és hatékony kapcsolat, gördülékenyebb kiszolgálás.
Teljes körű informáltság, a különleges törődés érzete.
Megértett igények és azok hatékony, szervezett, gyors kielégítése.
Célirányosabb marketing, kímélés a felesleges szóróanyagoktól.
Megbízhatóság érzet a kiváló időzítések miatt.
Hatékony kiszolgálásérzet.
Megértettség és figyelem hangulata.
12
Kis és középvállalati termékmenedzselési alkalmazás tervezése
2. ábra A Dynamic CRM felhasználóbarát kezelőfelülete
4.1.3 Hatékonyság és átláthatóság a vezetőség érdekében Minden vezető szereti átlátni és elemezhetővé tenni osztályának működését. Mai rohanó világunkban ez az igen időigényes és összetett folyamat számtalan hibalehetőséggel bír. Korszerű megoldások révén ez a folyamat csak növeli a vezetők - amúgy is magas leterheltségét. Egységük átvilágítását néha globális szinten, máskor pedig aprólékosan kell tudni megoldaniuk. A Microsoft Dynamics CRM számos funkciója segíti ezek megvalósításában..
Az üzleti folyamatokat átláthatóvá követhetővé teszi.
Teljes körű ellenőrizhetőség és monitoring az alkalmazottak munkájától kezdve a legapróbb folyamatokig.
Naprakész, azonnali információnyerés a vállalati szekciókról, eseményekről szelektált lebontásban vagy globálisan
Hatékony segítség az elemzésekhez és munkafolyamatok korszerűsítéséhez.
A kereskedelmi - marketing, értékesítés és ügyfélszolgálat középvezetés
teljes körű háttértámogatása az adott terület speciális elvárásainak megfelelően.
Globális elemezhetőség és ellenőrizhetőség a felső vezetésnek. 13
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Újratervezhetőség és optimalizálási lehetőségek.
Megalapozott döntések támogatása.
Mérhetővé válnak az eddig nem látott részeredmények. [4] [5]
4.2. Pannon set CRM 4.2.1 Középpontban az ÜGYFÉL A PS CRM (Customer Relationship Management) ügyfélkapcsolati rendszerben az ügyféllel kapcsolatos minden esemény: Ki Kinek, Mikor, Mit, Miért, Hogyan rögzítésre kerül az első kapcsolatfelvételtől egészen addig, amíg az Ügyfél Ügyfél marad. Így az ügyfelekkel való kapcsolattartás, a belső munkafolyamatok összessége, szervezetten és összehangoltan irányítható, oly módon hogy az Ügyfél legyen a fókuszban. Hogyan növelheti cége hatékonyságát és bevételeit a PS CRM ügyfélkapcsolati rendszer bevezetését követően:
Az ügyfelekkel kapcsolatos összes dokumentum (ajánlatok, szerződések, levelezés, stb.) és adat egy helyen megtalálható és lekérhető.
Ügyfélnyilvántartás: Az ügyfelekkel kapcsolatos események, jövőbeni feladatok áttekinthetőek, követhetőek, irányíthatóak. (Ki, Kinek, Mikor, Mit, Miért, Hogyan)
Feladatkezelés: A munkatársak és vezetők naprakészen, prioritás sorrendben látják saját, illetve beosztottaik feladatait.
Ügykövetés: Az ügyfeleknek gyorsan és költséghatékonyan lehet küldeni e-mail, fax, sms –rövid csoportos üzeneteteket vagy hírleveleket.
Ügyfélkapcsolat: A dokumentum-generátor automatizálja az szövegszerkesztőben manuálisan készített dokumentumok elkészítését.
A
központi
dokumentum-tárban
saját
feltételrendszer
szerint
tárolhatóak
(témakörökre, mappákba rendezve) és jogosultság függvényében gyorsan visszakereshetőek a cég dokumentumai.
Dokumentumkezelés: A listagenerátorral tetszőleges lekérdezések, statisztikák, kimutatások készíthetőek az ügyfelekről, feladatokról, munkatársanként, feladat 14
Kis és középvállalati termékmenedzselési alkalmazás tervezése
típusonként, feladat állapota szerint (folyamatban, kész, lejárt) időintervallum bontásban.
A munkafolyamatok automatizálásával (Workflow) amint valaki elindít egy folyamatot, vagy befejez egy munkafolyamat-lépést, a folyamat következő résztvevője
értesítést
kap,
hogy
a
munkafolyamat
hozzá
érkezett.
A
minőségirányítási rendszerek (ISO) dokumentálása is automatikusan megoldódik
Betegség, szabadság, illetve kilépés esetén a feladatok egyszerűen átruházhatóak.
A jogosultság adminisztrációban kifinomultan beállítható, hogy a felhasználók, felhasználói csoportok a rendszer mely moduljaihoz, milyen jogkörrel (írás, olvasás) férhetnek hozzá, illetve modulokon belül mely mappákat, dokumentumokat vagy ügyfeleket láthatják.
A felhasználók minden tevékenysége visszakereshető módon naplózásra kerül. 4.2.2 Ügyfélnyilvántartás A CRM egy központi helyen kezeli a cég-információkat. A cégstátusztól függően különböző adatokat: Potenciális ügyfél Ügyfélre vonatkozó marketing adatok: név, cím, elérhetőségek, kapcsolattartók, tevékenységi kör, alkalmazotti létszám, mérleg adatok. Ezen adat cégenként manuálisan rögzíthető vagy adatbázis-szolgáltatóktól megvásárolható és importálható a rendszerbe. Aktív ügyfél A marketing adatok kiegészülnek a megrendelés/szerződés adataival, az ügyféllel kapcsolatos elektronikus és papír alapú dokumentumok tárolásra kerülnek (levelezések, ajánlatok, szerződések, emailek, faxok, stb.); Inaktív ügyfél- az elmúlt időszakban nem forgalmazott. Az utolsó időszak eseményei, forgalma. Meghatározható, hogy a munkatársak csak azon adatokhoz férjenek hozzá, amelyekre feladataik elvégzéséhez szükségük van. Ezt azonban jogosultság függvényében a nap bármely órájában, akár a munkahelytől távol is megtehetik.
15
Kis és középvállalati termékmenedzselési alkalmazás tervezése
4.2.3 Lekérdezés generátor A rendszer felhasználói, a kívánt (tetszőleges szempontú) listát a lekérdezési feltételek megadásával (adat mezők kiválasztása, szűrési feltételek megadása, sorrend beállítása) saját maga állíthatja elő. A lekérdezési feltételek természetesen elmenthetőek és így másodszor már gyorsabban elkészíthetőek. A lista képernyőre, nyomtatóra illetve excelfájl-ba is kérhető. 4.2.4 Érékesítés Támogatás Az értékesítés támogató modul megkönnyíti a potenciális vevők és az értékesítési lehetőségek nyilvántartását, valamint az értékesítés eredményeinek mérését és előrejelzését. Rögzíti és visszakereshetővé teszi a vevőkkel folytatott kommunikációt, és automatizálja az értékesítési folyamat egyes szakaszait. Mindezekkel gyorsabbá válnak az értékesítési ügyleteket, valamint javuk a sikeres üzletkötések aránya és az ügyfélmegtartás szintje. Teljes és átfogó kép a vevőkről Kapcsolattartók adatai, eddigi üzenetváltások és közlemények (mikor, kivel, mit) ajánlatok, nyitott ajánlatok, függő megrendelések, visszahívás emlékeztető. A potenciális vevők kezelése, értékesítési folyamat kezelése A potenciálisvevők adatainak rögzítése és nyilvántartása, üzletkötő megbízása a megkereséssel. Az értékesítési lehetőségek nyilvántartása; az értékesítés folyamata teljes értékesítési ciklus során végigkövethetők. Az értékesítési folyamat egyes szakaszai munkafolyamatok, szabályok segítségével automatizálhatók. Értékesítési háttéranyagok Az értékesítési és marketinges háttéranyagokból közösen használható, kereshető könyvtárat lehet összeállítani, amelynek tartalma igény szerint módosítható. A könyvtárban például prospektusokat, tanulmányokat és a versenytársakra vonatkozó információkat lehet tárolni.
Kimutatások A számos különböző kimutatás megtekintése, szűrése és rendezése segítséget nyújt a trendek felismerésében, az értékesítési tevékenységek eredményeinek mérésében és előrejelzésében, az értékesítési folyamatok nyomon követésében, valamint az üzleti teljesítmény kiértékelésében. 16
Kis és középvállalati termékmenedzselési alkalmazás tervezése
4.2.5 Ügykövetés, Feladatkezelés Az ügykövetés, feladatkezelés modul támogatásával a munkatársak, vezetők folyamatosan nyomon követhetik (saját és/vagy beosztott munkatársaik) feladatait. A cégen belüli tevékenységek munkafolyamatokra azon belül pedig egymásra épülő feladatokra, eseményekre bontható. Egy-egy eseménnyel, feladattal kapcsolatosan az alábbi információk kerülnek megadásra:
Ügyfél megnevezése (listboxból választható);
Feladat megnevezése (listboxból választható);
Időpontok - kezdés dátuma, - határidő, - teljesítés dátuma;
A feladat státusza (folyamatban, lejárt, kész) melyet a rendszer generál;
A feladat intézője/felelőse;
Egyéb megjegyzés/leírás a feladattal kapcsolatosan.
Az elvégzett és jövőbeni feladatok naptárban bejegyezve, határidőnaplószerűen tekinthetőek meg.
4.2.6 Automatikus feladat generálás Amennyiben a munkafolyamat egymásra épülő feladatai definiálásra kerülnek, elegendő csak a teljesítés időpontját megadni, a következő feladat automatikusan generálódik. 4.2.7 Lekérdezés generátor A rendszer felhasználója, a kívánt (tetszőleges szempontú) listát a lekérdezési feltételek megadásával (adat mezők kiválasztása, szűrési feltételek megadása, sorrend beállítása) saját maga állítja elő. A lekérdezési feltételek természetesen elmenthetőek és így másodszor már gyorsabban elkészíthetőek. A lista képernyőre, nyomtatóra illetve excelfájl-ba is kérhető.
17
Kis és középvállalati termékmenedzselési alkalmazás tervezése
4.2.8 Dokumentum Kezelés Dokumentum-generátor A dokumentum-generátor automatizálja az eddig sablon dokumentumon alapuló szövegszerkesztőben manuálisan készített dokumentumok elkészítését: pl.: előterjesztés, ajánlat, szerződés, jelentés, munkalap, stb. a dokumentum elkészítéshez egyrészt az akár szövegszerkesztőben szerkeszthető minta sablonra/biancóra másrész a biancóba kerülő változó adattokra van szükség melyek a cégnyilvántartás modulban kerül rögzítésre. Az egyesített dokumentum lehet doc xls és pdf formátumúak. A generált dokumentumok előnyei:
Garantált, hogy amennyiben jó a dokumentum minta a generált dokumentum (pl. szerződés) is jó lesz.
Amennyiben pdf formátumban készül a generált dokumentum nem módosítható az eredeti (csak újra generálással).
Több dokumentum típus előállítása esetén (pl. ajánlat, szerződés) a közös változó adatokat csak egyszer kell megadni, minden dokumentumba automatikusan bekerül.
Dokumentum-tár A dokumentumok elektronikus tárolása, és gyors visszakeresését oldja meg, oly módon, hogy a felhasználó minden esetben saját feltételrendszer szerint jut a tárolt dokumentumhoz (témakörökre, mappákba rendezve). A rendszer kifinomult jogosultság kezeléssel és adatbiztonsági védelemmel rendelkezik.
Dokumentumokkal
kapcsolatos
funkciók,
műveletek
jogosultság
szint
függvényében:
Feltöltés, Módosítás, Törlés;
Verziókövetés (verziók megjelenítése)
Mappákra és/vagy dokumentumokra előfizetés kérés, melyet a felhasználó állít magának.
Keresés: szabadszavas (doc., xls., pdf esetén a dokumentum tartalmában is).
Jogosultságnak megfelelően megjelenítve az eredményt.
Naplózás (ki, mikor, mit): dokumentum feltöltés, letöltés, törlés naplózása.
18
Kis és középvállalati termékmenedzselési alkalmazás tervezése
4.2.9 Workflow A Workflow modul segítségével gyorsan és szemléletesen kialakítható szinte bármilyen engedélyezési vagy egyéb munkafolyamat. Elektronikus levelezésen alapul, így a továbbítás, sürgetés figyelmeztetés feladatairól email (szükség esetén SMS vagy fax ) értesítés megy. A felhasználók ellenőrizhetik, hogy áll az általuk indított folyamat éppen milyen státuszban van. 4.2.10 Workflow Engine A Workflow Engine vezérli a folyamatokat. Amint valaki elindít egy folyamatot, vagy befejez egy munkafolyamat-lépést, a folyamatkövetkező résztvevője értesítést kap, hogy a munkafolyamat hozzá érkezett. Automatikus lépések is definiálhatók a rendszerben (pl. ha a munkafolyamat végeredménye egy szerződés, azt automatikusan elküldi a másik félnek). Az egyes lépésekben végrehajtott műveletek könnyen testre szabhatók, egy automatikus munkafolyamat-lépésben nagyon sok mindent definiálható. A Workflow visszakereshető módon tárolja a munkafolyamat lépéseit: 4.2.11 Felhasználói adatbázis A Workflow szervezeti adatbázisa tartalmazza a munkafolyamat lényeges szervezeti információit:
személyeket,
munkacsoportokat,
hierarchikus
vállalati
osztályokat,
szerepköröket, kapcsolatokat. 4.2.12 Munkafolyamat-tervező A munkafolyamatok szerkesztése lényegében a tevékenységek paramétereinek beállítását (pl. ki végezheti, milyen feladatokat kell elvégezni ebben a lépésben) jelenti. A Workflow folyamataiba olyan elágazások illeszthetők be, amelyek feltételt is tartalmaznak. A feltételnek teljesülésétől függ, hogy a munkafolyamat melyik ágra terelődik. A rendszer lehetővé teszi az egyes munkafolyamat-lépések időzítését. Beállítható, hogy mennyi időt vesz igénybe az adott lépés. Beállítható, hogy a lépés tervezett befejezését megelőző időben küldjön figyelmeztetést a rendszer, vagy a határidő után. Beállítható ismétlődő üzenet is – amíg nem fejeződik be a tevékenység, akár óránként küldhet figyelmeztetést a munkafolyamat-lépés felelősének. A munkafolyamat bármely pontján automatikusan küldhető értesítés a munkafolyamat kezdeményezőjének vagy más 19
Kis és középvállalati termékmenedzselési alkalmazás tervezése
személynek. 4.2.13 A Munkafolyamat fázisai: Igényfelmérés Ebben a fázisban felmérjük az üzleti igényeket és technikai követelményeket. A cél minden olyan információ összegyűjtése, mely szükséges lehet a rendszer kialításához, illetve befolyásolhatja azt. A CRM-rendszerek rövid távú előnyein (pl. a „cetlik” eltűnése, ügyfél-információkhoz való gyorsabb hozzájutás, stb.) túlmutató, pénzügyileg mérhető, hatékonyságot növelő eredményei középtávon jelentkeznek, így különös jelentőséggel bír a rendszeres és pontos adatrögzítés, a következetes használat. Specifikáció Az összegyűjtött igények és információk alapján specifikáció készül, amelyet értékelés céljából a projekttagok rendelkezésére bocsátunk. A tartalmi és technikai kérdések tisztázása után pontosan meghatározzuk a feladatokat és ütemezésüket. A technikai specifikáción belül a rendszerszervezési feladatot követően rendszertervet készít a projekt megvalósításáért felelős fejlesztő. Megvalósítás Az ügyfél által elfogadott specifikáció alapján megkezdődik a rendszer kialakítása, paraméterezése. Mindezek elkészültével, a háttéralkalmazások és adatbázisok illesztése után kapjuk eredményül a rendszer tesztelhető verzióját.
Az előző fázisban elkészült rendszert három módszer szerint teszteljük. Ezek a következők: Funkcionális teszt: Először a PS szakemberei vizsgálják részleteiben, egyenként a rendszer valamennyi funkcióját és automatizmusát. A második lépésben a megrendelő munkatársai is próba alá vetik a rendszert. Integrációs teszt: Teszt-szakembereink és a megrendelő munkatársai segítségével komplex egységben vizsgáljuk a végleges rendszer minden funkcióját. 20
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Terhelési teszt: A PS technikai szakemberei nagy mennyiségű felhasználót és tranzakciót szimulálva vizsgálják a rendszer stabilitását. A kapott eredmények alapján javaslatokat adnak a technikai architektúra esetleges módosítására. Átadás, Beüzemelés, Oktatás Ebben a fázisban a szakértők üzembe helyezik a teljes rendszert a megrendelő végleges rendszerkörnyezetében. Igény esetén oktatást tartunk a felhasználók számára. [6]
21
Kis és középvállalati termékmenedzselési alkalmazás tervezése
5. Saját CRM rendszerem Mint a fentebbi példákból jól látszik igen széles körű a CRM rendszerek megvalósítási formája az ügyfelek számára. Nagyon sok igényt kimerít e rendszerek funkciói, saját rendszeremet viszont úgy fogom alakítani, hogy a cégek termékmenedzselési problémáit oldja meg. Alkalmazásomat vékony kliens architektúrával szeretném megvalósítani, ez azért előnyös, mivel ennek segítségével úton útfélen, egy internet kapcsolattal és egy böngésző segítségével akármikor nyomon követhetjük alkalmazottaink munkáját, szemben a lokális helyi rendszerekkel, ami csak a cégen belül telepített gépeken elérhető. Alkalmazásomban
szerepet
fog
kapni
a
különböző
felhasználói
csoportok
megkülönböztetése, hiszen ez elengedhetetlen egy olyan alkalmazásnál ahol bizalmas információkat kezelünk. Szeretnék egy admin felhasználói csoportot létrehozni, ami teljes jogkörrel rendelkezik. Ezzel a jogkörrel a cégvezetőnek teljes belelátása van a rendszer működésébe, ezen felül új felhasználókat kreálhat, törölhet, ha szükséges vagy akár új dolgozókat vehet fel a rendszerbe. Az Alkalmazott csoport jogköre korlátozott, csak bizonyos a munka elvégzéséhez elengedhetetlen oldalakat láthatja, ilyen például űrlapok feltöltése megtekintése, módosítása. Alkalmazásunkba belépve egyből értesítéseket kaphatunk, az aktuális teendőkről, arról, ha valamilyen probléma van az üzemben, például ha valamelyik alapanyagból kevés vagy készlethiány van, hogy a megfelelő lépéseket megtehessük. A felhasználók itt üzenhetnek is egymásnak, vagy fontos információkat, megjegyzéseket küldhetnek egymásnak ezzel is segítve a cégen belüli kommunikációt.
5.1 Adatbázis kapcsolatok Rendszerünkben fontos szerepet játszik a háttérben működő adatbázis, ezért hogy a későbbiekben gördülékenyen menjen a fejlesztés, pontosan meg kell tervezni paramétereit, azokat dokumentálni kell. Fontos, hogy előfeltételeink legyenek a már meglévő adatbázisra.
22
Kis és középvállalati termékmenedzselési alkalmazás tervezése
5.2 A termék előnyei Könnyű kezelhetőség: Mivel a vállalat dolgozói nem technikai zsenik, így a lehető legegyszerűbb könnyen kezelhető felületet kell megvalósítanunk, hogy minél hamarabb meg tudják tanulni kezelését. Ezen szoftvernél nem a design a legfontosabb ezért inkább egyszerű letisztult menürendszert kell terveznünk. Állandó elérhetőség: Alkalmazásunk a nap 24 órájában elérhetőnek kell lennie a neten keresztül. Ha valami probléma lép fel és a honlap leáll, minél hamarabb megfelelő segítségnyújtást kell adnunk a cégnek hogy minél hamarabb használható legyen újra. Mobilitás: Szerintem programom legnagyobb előnye az, hogy akárhonnan elérhetjük egy internetkapcsolat és egy böngésző segítségével. Így akármikor nyomon követhetjük alkalmazottaink munkáját. Böngésző függetlenség: Megpróbáljuk minimálisra csökkenteni az oldal különböző böngészőkkel történő megjelenítésének problémáit, nem egy böngészőre tervezni. Platform függetlenség: A termék bármilyen operációs rendszerrel kompatibilis, mivel a felhasználó operációs rendszerén futó web böngésző felel az adott rendszeren történő megjelenítésért. A JSP programozási nyelvnek köszönhető a platformfüggetlenség, hiszen a JSP programot egy számítógépről futtatjuk le, eredménye pedig egy HTML oldal, amelyet a böngésző értelmez. A program alap HTML elemeken kívül Javascript elemeket is tartalmaz. A JSP nyelv nagyon széles parancskészlettel rendelkezik, valamint az adatbázisokat is nagymértékben támogatja. Felhasználói csoportok: Másik nagy előnye programunknak hogy megkülönböztet felhasználói szinteket, és csak olyan információkat láthat az adott csoport, amihez joga van. A különböző jogköröket a cég vezetője oszthatja ki. Ezeket el lehet venni, illetve módosítani is lehet. Ár: Mivel a fejlesztéshez ingyenes programokat használunk fel, így csak a munkaidőt és a hozzá szükséges tudást kell megfizetnie a vásárlónak. A piacon levő szoftverekhez képest alkalmazásunk kedvezőbb áron kínál hasonló funkciókat.
23
Kis és középvállalati termékmenedzselési alkalmazás tervezése
5.3 A termék hátrányai Termékünk hátrány talán az, hogy nagyon nehéz ezt az alkalmazást úgy fejleszteni, hogy minden böngészőben akadálymentesen fusson. Sajnos előfordulhat, hogy egyes funkciók vagy éppen a design elemei nem működnek megfelelően. Programunkat Google Chrome böngészőre optimalizáltuk.
5.4 Munkám során felhasznált programok, technológiák 5.4.1 NetBeans A NetBeans IDE olyan fejlesztői környezet, amely lehetővé teszi a programozók számára, hogy programokat írjanak, fordítsanak, teszteljenek, hibakeresést végezzenek az alkalmazásokban, majd profilozzák és telepítsék a programokat. Java nyelven íródott, de bármilyen más programozási nyelvet is támogat. A NetBeans IDE szoftver számos modullal bővíthető. A NetBeans IDE ingyenes termék, és nincsenek érvényben korlátozások a használatára vonatkozóan. A program legfrissebb elérhető verziója amit én is használni fogok az a 8.0.
3. ábra a NetBeans fejlesztői környezet kezdőképernyője
24
Kis és középvállalati termékmenedzselési alkalmazás tervezése
A NetBeans előnyei:
A fordítási hibák figyelése és jelzése a szerkesztőben folyamatos.
A szövegszerkesztő adja a szokásos kényelmi funkciókat, mint például a csomag és osztálynevek, metódus és példánynevek automatikus kiegészítése.
Szervletek írásánál könnyű menüből elérhető tesztelést biztosít. [7] [8]
5.4.2 Java A Java technológia a Sun Microsystems által kifejlesztett programozási környezet és nyelv, amely jelenleg az egyik legelterjedtebb, valóban platform-független internetes programozási nyelv. Ez az innovatív technológia portálokon keresztül gyakorlatilag korlátlan számú készülékhez, a távirányítással működő TV készülékektől az egyéb interaktív készülékek irányításán át a mobil telefonokig, és különféle rendeltetésű számítástechnikai eszközökig biztosítja az információk és szolgáltatások szabad kiáramlását a háttér adatközpontokból. A Java azáltal, hogy biztonságot nyújt az egész hálózaton, ideális olyan alkalmazások esetében is, amelyek emelt szintű biztonságot követelnek meg, mint például az elektronikus kereskedelem, vagy az internetes banki szolgáltatások. A Java programozási nyelv "Írd meg egyszer, futtasd bárhol" tulajdonságának köszönhetően az alkalmazások egyetlen környezeten fejleszthetőek, majd tetszőleges platformon futtathatók, időt és pénzt takarítva meg minden cég, intézmény és egyéni felhasználó számára. A Java programozási nyelv tisztán objektumorientált nyelv. Ez azt jelenti, hogy a program egyenként jól körülhatárolt, önálló működésű, de egészében véve együttműködő egységekből épül fel. Az elosztott alkalmazású programok különböző részei más-más gépeken is futhatnak, de egységes egészként működnek. Ez a szerkezet növeli a biztonságot, nem minden programrésznek enged hozzáférést bizonyos adatokhoz, a távoli gépen futó programrész nem törölhet állományokat fájlrendszerünkből és nem telepíthet, illetve futtathat nemkívánatos programokat. A Java elődeihez, például a C++-hoz képest sokat fejlődött. Az automatikus "szemétgyűjtés" révén gondoskodik a már nem hivatkozott objektumok törléséről, megelőzve ezzel, hogy a 25
Kis és középvállalati termékmenedzselési alkalmazás tervezése
rendszer az esetleges memóriahiány miatt összeomoljon. Nem használ mutatókat, melyek a nehéz áttekinthetőség miatt igen sok hibát okozhatnak. A Java programok egyszerre több szálon futhatnak, szimultán módon több feladatot is elláthatnak. A Java platform független nyelv: nem kell minden architektúrán lefordítani, az egyszer már lefordított bájtkód a telepített futtatókörnyezet segítségével minden ismertebb operációs rendszeren fut. Ezzel magyarázható, hogy elsőként az internetes alkalmazásokban terjedt el: a "Java keltette életre a honlapokat". A Java technológia segítségével az internetes lapokat ún. dinamikustartalommal lehet ellátni ami új életet lehel a webes programokba. Ma már Java programozók igen népes tábora foglalkozik például a mobil telefonok, az autó navigációs rendszerek, a banki nyilvántartások, a költségvetési és számlavezetési szoftverek, a különféle adminisztrációs és hálózati számítástechnikai rendszerek tervezésével és előállításával. [9]
5.4.3 Servlet Egy servlet olyan speciális Java program, amely szorosan együttműködik egy web szerverrel, így lehetővé teszi a szerveroldalon HTML oldalak dinamikus létrehozását és paraméterezését. A servletek kizárólag szerverfunkciókat képesek ellátni. Ugyanerre a célra használható nem Java alapú technológiák pl. PHP, CGI, ASP.NET. A servlet specifikáció 1.0 verzióját a Sun Microsystems készítette el és adta ki 1997 júniusában. A 2.3 verziótól kezdve a specifikációt a Java Community Process keretében fejlesztik. A JSR 53 dokumentum definiálja a Servlet 2.3 és a JSP 1.2 specifikációkat. A JSR 154 dokumentum tartalmazza a Servlet 2.4 és 2.5 specifikációkat. Ahhoz, hogy egy servlet objektumot kapjunk, implementálnunk kell a Javax.servlet.Servlet interfész 3 metódusát:
void init (ServletConfig config) – inicializálás céljából akkor fut le, amikor példányosítottunk egy servletet.
void service (ServletRequest req, ServletResponse res) – akkor fut le, ha a kliensoldalon hívás érkezik a servlet felé. Ekkor a servlet a ServletRequest kérésre a ServletResponse válasszal felel.
void destroy () – akkor fut le, ha többé már nincs szükségünk a servletre.
26
Kis és középvállalati termékmenedzselési alkalmazás tervezése
ServletContext csak egy van minden alkalmazásban. Ezt az objektumot minden servlet használhatja alkalmazásszintű információk és konténeradatok lekérdezésére. ServletConfig példány viszont minden servlethez külön létezik. Ez az objektum az egyes servletek inicializációjához ServletConfigon
szükséges keresztül
paramétereket és
a
tartalmazza.
ServletRequesten
A
keresztül
ServletContextet
a
is
a
lekérdezheti
szoftverfejlesztő. [10]
5.4.4 JSP (Java Server Pages) Az első hivatalos JSP specifikációt 1999 júniusában adták ki. A későbbi változatok felülről kompatibilisek ezzel az 1.0 verzióval. Szintén még 1999-ben jelent meg a JSP 1.1 verzió decemberben, amely már lehetőséget adott a custom tag libraries, magyarul elemkönyvtárak használatára. A JSP 1.2 verzió 2001 szeptemberében látott napvilágot. Ezt követte a JSP 2.0 verzió, amelyben már szerepelt a kifejezésnyelv (angolul Expression Language vagy röviden EL) és a JSPX dokumentumok támogatása is. A legfrissebb JSP specifikáció a JSP 2.3.
A JSP egy magasabb absztrakciós szintet képvisel, mint a servlet. Segítségével lehetőségünk nyílik arra, hogy egy HTML oldalra JSP tagek közé Java kódot szúrjunk be. Ha kérés érkezik a web szerver felé egy JSP oldal elérésére, akkor a fordító a JSP oldalból servletet generál, majd ezt lefordítja bájtkódra. A bájtkódot a web szerver futtatja, kimenete a beérkezett kérésre adott válasz lesz. Egy JSP oldal servletté alakítására az első kérés kiszolgálásakor kerül sor, ekkor lassabban töltődik be az oldal, de miután elindult a servlet, a további kérések már egyenesen a servlethez kerülnek. Egy web alkalmazás fejlesztésekor célszerű ötvözni a servletes és a JSP technológiát, melyek közt az összeköttetést JavaBean-ekkel valósíthatjuk meg.
[11] [12]
27
Kis és középvállalati termékmenedzselési alkalmazás tervezése
5.4.5 Glashfish A GlassFish egy JEE specifikációval kompatibilis alkalmazás szerver, amit a Sun Microsystems fejleszt. A project 2005. június 6-án kezdődött. Az első Java EE 5 kompatibilis verziót 2006. május 4-én adták ki. A GlassFish alapját a Sun által adott forráskód és az Oracle Top Link nevű perzisztenciakezelő rendszere képezi. A servlet container kódját az Apache Tomcat ből származtatták, de a skálázhatóság és a sebesség végett kiegészítették azt a Grizzly nevű komponenssel, ami Java NIO-t használ. Legfrissebb verziója a 4.0. Az új verzióban hangsúlyos szerepet kapott magas rendelkezésre állás, különös tekintettel a terhelés kiegyenlítés, a tartalék környezet, az állapot kezelés és a központi adminisztráció kérdése. A Java EE referencia implementációjaként az Oracle GlassFish Server egyben a később megjelenő Java EE7 próbatereként is szolgál. Az Oracle megkezdte a munkát a Java Community Process (JCP) kezdeményezés keretében, így olyan JSR (Java Specification Request-Java specifikus kérések) dokumentumokat is benyújtott, mint például a JPA2.1 és a JAX-RS 2.0. A GlassFish egyszerűen egyesíthető az MySQL adatbázissal és használható közvetítő és integrációs platformként. A GlassFish előnyei
drasztikus költségmegtakarítás vállalati telepítéseknél - a szerverenkénti előfizetéstől a végtelen számú szerverig;
a működési költségeken való megtakarítás - hatékony adminisztráció és megnövelt alkalmazhatósági mutatók az erőforrásokat tekintve;
széles Szolgáltatásorientált architektúra (SOA) támogatások, GlassFish ESB-vel;
hatalmas, nyílt forráskódú közösség - gyorsan növő partneri öko rendszer;
küldetésszemléletű támogatás a Sun által;
gyorsabb,
mint
bármilyen
nyílt
forráskódú
vagy
egyedi
fejlesztésű
alkalmazásszerver;
díjszabási opciók - akár 90%-os költségmegtakarítás. [13] [14]
28
Kis és középvállalati termékmenedzselési alkalmazás tervezése
5.4.6 MySQL
A MySQL egy több felhasználós, többszálú, SQL-alapú relációs adatkezelő szerver. Első kiadása 1995 májusában történt. Több tulajdonos váltás után végül az Oracle tulajdona lett 2010-ben. A MySQL az egyik legelterjedtebb adatbázis-kezelő, aminek fő oka talán az lehet hogy teljesen nyílt forráskódú, ezért nagyon hatékony és költségbarát megoldást ajánl dinamikus webhelyek szolgáltatására. [15]
5.4.7 jQuery A jQuery egy közkedvelt JavaScript keretrendszer, ami a html kód és a kliens oldali JavaScript közötti kapcsolatot hangsúlyozza. Első verziója 2006-ban jelent meg. A Jquery egy ingyenes nyílt forráskódú szoftver. A nagy informatikai cégek is szívesen alkalmazzák saját projektjeikben. A Jquery fő célja hogy leválassza a JavaScript kódot a HTML-ből. [16]
5.5 Végtermékkel felállított elvárások A program későbbi könnyű bővíthetősége érdekében a programozás során kódolási, és névkonvenciókat alkalmazunk. Ez kiterjed a programban használatos változók, metódusok, adatbázisok elnevezéseire, alkalmazásukra. Ez a későbbi módosítás esetén fontos, így gyorsabban lehet majd az új igényeknek megfelelően átírni a terméket, valamint hibakeresésnél rendkívül előnyös. Mivel egy független cégmenedzsment szoftverét írom, nagyon fontos, a dokumentáltság, hogy a bővítés során egyértelmű legyen a későbbi bővítés, és az egyes modulok módosításánál ne ütközzünk problémába. A termék egy böngésző segítségével bárhonnan elérhető, a dolgozók a nap bármely időpontjában hozzáférhetnek, végezhetik a munkájukat segítségével. Ezen a web felületen keresztül végezhetik el a szükséges adatbázis módosításokat (pl.: áru érkezik; új termék kerül forgalomba; van, amit tovább nem árusítunk).
29
Kis és középvállalati termékmenedzselési alkalmazás tervezése
A termék működése során jelzi hibaüzenetek formájában, ha valami probléma történik a műveletek végzése közben. 5.5.1 Követelményekről általában A követelmények feltárása és dokumentálása több részről is nagyon fontos. A pontatlan követelmény feltárás és dokumentálás több probléma forrása is lehet, ezeket a teljesség igénye nélkül most felsorolom:
A pontatlan követelmény felvétel miatt lehetnek hiányosságok és ez a későbbiekben reklamációra adhat okot.
Ha a követelmények nem konzisztensek, akkor nem lehet helyesen működő rendszert írni, és megint csak a megrendelő reklamálásával számíthatunk.
A hanyagul megfogalmazott követelményeket kerülni kel, félreértésekhez vezethetnek a megrendelő oldaláról.
A követelményeket folyamatosan dokumentálni kell, és a reklamálások elkerülése végett alá kell írattatni a megrendelővel. A követelmények meghatározásakor be kell vonni a termék végfelhasználóit. A felhasználók tudják pontosan elmondani elvárásaikat, igényeiket hogy mire is van pontosan szükségük, így is tovább pontosítva a funkciók leírását, illetve a későbbiekben nem kell ennek köszönhetően gyökeres változtatásokat végezni. A dokumentáció aláíratása a megrendelővel pedig egy biztonsági lépés egy esteleges későbbi nézeteltéréseknél. A követelményeket három nagy csoportba sorolhatjuk:
Funkcionális követelmények: Ezek a követelmények, amelyek a rendszer által nyújtott szolgáltatásokat jelenti. pl.: raktárnyilvántartás, nyersanyag listázása stb.
Rendszertulajdonságok: az alrendszerektől függetlenek, a rendszer egészére jellemző dolgok. pl.: felhasználói felület
Lehatárolás: Egyes esetekben könnyebb azt meghatározni egy adott rendszerrel szemben, hogy mit nem kell tudnia.
30
Kis és középvállalati termékmenedzselési alkalmazás tervezése
4. ábra Követelmény gráf köcsönhatásai
Mint a fentebb látható követelményi gráf ábrája is mutatja a követelmények kölcsönhatásban állnak egymással, oda visszamutatnak az élek, szóval egyik munkafolyamatból, ha a szükség megkívánja vissza lehet lépni a másik folyamatba, hogy minél pontosabb követelményi rendszert sikerüljön felállítani a fejlesztőnek. A gráfnak egy belépési pontja van, illetve egy kilépési pontja, amikor ledokumentálunk minden követelményt. 5.5.2 Követelmény feltárás életciklusa, forgatókönyv A programozónak meg kell ismerkedni az adott szakterülettel, a hozzá kapcsolódó szakterületi fogalmakkal. Az én esetemben, mivel magamnak fejlesztem a rendszert, ezért csak a „józanész”-re, és az interneten összeszedhető információkra támaszkodhatok, illetve a megrendelő által támasztott igényeket a családi vállalkozásnál szükséges funkciók adják meg. 5.5.3 Követelmények összegyűjtése: Többféle mód létezik a követelmények feltárására. Ilyenek a következők:
31
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Prototípuskészítés: Ezt olyan esetekben hatásos használni, ha a megrendelő nem tudja pontosan megmondani, hogy mire is lenne szüksége. Ilyenkor készítünk egy prototípust, és azon pontosítjuk a követelményeket. Hibája, hogy a prototípus készítése pénz és idő igényes, amit egy kis vállalat nem igazán tud kigazdálkodni szűkös költségvetéséből.
Nézőpont-orientált megközelítés: Azok az emberek, akiknek a rendszert építjük, más és más nézetből láthatják a rendszert. Az én esetemben az főnök és a sima felhasználó másképp látják a rendszert, más és más elvárásaik vannak a rendszerrel szemben. Minden a rendszerrel dolgozó ember nézőpontját meg kell vizsgálnunk, hogy a teljes követelményrendszert meg tudjuk határozni. A fejlesztőnek személyesen kell beszélnie a kulcsemberekkel. Hibája lehet ennek a módszernek, hogy bizonyos kulcsfigurák nem mondanak el olyan dolgokat, amik neki természetesnek tűnnek, illetve nem tudják pontosan megfogalmazni mire is van szükségük, ezért e technika használata közben is problémákba ütközhetünk. Főleg mivel ez egy lekvárgyár, az alkalmazottaknak kialakult egy szaknyelvezetük, és nagyon sok olyan dolog van, ami a több évtizede itt dolgozó embereknek kézenfekvő, míg egy laikus fejlesztőnek nem az. Talán az lenne a legideálisabb, ha a fejlesztő egy vagy két munkanapot szemlélőként a gyárban tartózkodna, és e közben megfigyelné a munkafolyamatokat, illetve betekintést nyerne a már említett szaknyelvbe is.
Etnográfia: Ez egy megfigyelésen alapuló módszer. Adott egy probléma halmaz, és a programozónak bele kell helyeznie magát az adott környezetbe. Semmilyen kommunikációra nincs szükség, azonban nagyon időigényes, és ezzel együtt költséges eljárás, a megfigyelő embernek jól képzettnek, tapasztaltnak kell lennie.
Forgatókönyv technika: A forgatókönyv technika már a 80-as években is létezett. Azóta is nagyon gyakran használt eljárás. Fő erőssége abban rejlik, hogy a megrendelő számára is nagyon könnyen megérthető. Nem tartalmaz informatikai frázisokat,
teljesen
köznyelven
íródott
dokumentum,
amely
a
rendszer
követelményeinek pontosítására szolgál. A forgatókönyvben leírjuk a rendszer működési állapotait, hiba üzeneteit. Leírjuk a rendszerrel végezhető műveleteket, és az azokhoz tartozó fontosabb információkat is. Ezzel egyszerűen adhatunk teljes képet a rendszer működéséről a megrendelőnek. Néhány fontosabb, ebben a dokumentumban szereplő információ:
32
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Induló feltétel: a rendszerrel végzett interakció megkezdése előtt a rendszertállapotát leíró feltétel.
Működés: A rendszer általános, hibamentes működésének leírása. Leírja, hogy mit kell a rendszernek tennie, egy adott interakció esetén. Ez lehet egy teljes munkafolyamat, vagy akár csak egy alfunkció működésének a leírása.
Hibák: Az adott esemény végrehajtása során, felléphető hibák. Itt minden egyes hibaüzenetet meg kell jelenítenünk, amely előfordulhat a működés folyamán.
Végfeltétel: A szabályos lefutást követően, a rendszerünk ebben az állapotban lesz. Ilyen például, hogy egy sikeres regisztráció után, a felhasználó eltárolódik az adatbázisban, vagy egy munkamenet lefutása után a felhasználó kijelentkezik a rendszerből.
Ezek után pedig nézzünk néhány részletet a Jam Crm rendszer forgatókönyvéből, a teljesség igénye nélkül:
Regisztráció: Induló feltétel: Aki a rendszert használni szeretné, annak regisztráltatni kell magát a rendszerbe. Regisztráció nélkül semmilyen opció nem érhető el a rendszerben. Működés: Az admin a regisztráció opció segítségével, elindítja a regisztrációs folyamatot. A rendszer egy űrlapot fog megjeleníteni ahol, a személy saját adatait, hozzáférési azonosítóját, jelszavát adhatja meg. Ha ezeket, az adatokat jól kitölti, akkor az adott személy regisztrálva lesz a rendszerben. Hibák: A admin helytelenül tölti ki az űrlapot. Ez esetben a lapot újra az admin elé kell tenni javításra. Ha az újra elküldött űrlap is helytelen, akkor újra az admin elé kerül, egészen addig, amíg meg nem szakítja a regisztrációs folyamatot, vagy pedig helyesen ki nem tölti az űrlapot. Azonos felhasználói név esetén újat kell választani. Ekkor ezt a rendszer hibaüzenettel jelzi.
33
Kis és középvállalati termékmenedzselési alkalmazás tervezése
5. ábra Alkalmazott felvételének forrásrészlete
Rendszerállapot befejeződéskor: A felhasználó nincs be jelentkezve, de már bejelentkezhet a rendszerbe. A regisztrálni kívánt személy bekerült az adatbázisba.
Bejelentkezés: Induló feltétel: A felhasználónak már regisztrált felhasználónak kell lennie. Működés: A felhasználó az azonosítója és a hozzátartozó jelszó segítségével, sikeresen bejelentkezik a rendszerbe. Hibák: Lehetséges hogy a felhasználó elfelejtette jelszavát, azonosítóját vagy elgépelt valamit. A bejelentkezés ablakot újra be kell tölteni addig, amíg nem történik meg a sikeres bejelentkezés. Rendszerállapot befejeződéskor: A felhasználó be van jelentkezve, és tudja használni a rendszert.
Termék felvétel: Induló feltétel: A felhasználó bejelentkezés után vihet be az új termékeket. 34
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Működés: felhasználó az „termék hozzáadása” nevű gomb segítségével felugró oldal kitöltése után hozhat létre egy új terméket az adatbázisban. Hibák: Nem töltött ki minden mezőt, vagy a termék már létezik. A rendszer ezt hibaüzenettel jelzi.
6. ábra Termék felvétele a Jam CRM-ben
Rendszerállapot befejeződéskor: Sikeres művelet esetén új termék kerül az adatbázisba, egyébként nincs változás.
Termékek listázás: Induló feltétel: A felhasználó számára bejelentkezés után végrehajtható művelet. Működés: A felhasználó termékek gombra, majd megjelenik az összes tárolt termék Hibák: Ha nem létezik az adattábla akkor hibaüzenetet kapunk. Rendszerállapot befejeződéskor: Ha létezik, a tábla akkor a felhasználó láthatja az aktív termékeket. 35
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Nyersanyag felvétel: Induló feltétel: A felhasználó bejelentkezés után vihet be az új nyersanyagot Működés: felhasználó az „nyersanyag hozzáadása” nevű gomb segítségével felugró oldal kitöltése után hozhat létre egy új nyersanyagot az adatbázisban. Hibák: Nem töltött ki minden mezőt, vagy a nyersanyag már létezik. A rendszer ezt hibaüzenettel jelzi.
Aktív megrendelés lekérdezés: Induló feltétel: A felhasználó bejelentkezés után lekérdezheti az aktív megrendeléseket. Működés: A felhasználó az aktív megrendelések gombra kattintva láthatja az aktív megrendeléseket. Hibák: Ha nincs aktív megrendelés akkor ez a „Nincs aktív megrendelés” üzenettel jelzi. Illetve ha nincs kapcsolat az adatbázissal, akkor azt is hibaüzenet kiírásával jelzi. Ellentmondások feloldása: A rendszer fejlesztése során nem engedhetjük meg, hogy a követelményeink ellentmondásosak legyenek.
Termék Megrendelés: Kezdő feltétel: A felhasználó, miután bejelentkezett, nyersanyagokat rendelhet. Működés: A felhasználó a termék megrendelés gombra kattintva belép a megrendelés menübe, ahol kitölti a megrendeléshez szükséges adatokat. Hibák: Ha nem tölt, ki minden mezőt akkor visszadobja a megrendelést, egészen addig amíg nem tölti ki megfelelően az összes mezőt.
Kijelentkezés: Kezdő feltétel:A felhasználó miután elvégezte a feladatait az aktív munkafolyamatból ki akar jelentkezni.
36
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Működés: Munkafolyamat végeztével a felhasználó a kijelentkezés gombra kattintva kilép a rendszerből. Hibák: A Kijelentkezés gomb lenyomása után is a rendszerben marad a felhasználó, nem jelentkezteti ki a rendszer. Ez a hiba legfőbbképpen adatvédelmi szempontokból hátrányos, hiszen a felszanáló nem veszi észre, hogy nem jelentkezett ki a rendszerből és az utána a gép elé ülő ember láthatja az ő jogosultsági szintjén levő adatokat.
Követelmények ellenőrzése: Ezen a ponton újra le kell ellenőrizni az egész követelményrendszert. Az utolsó esély, hogy nagyon fáradságos munkától kíméljük meg magunkat, mert ha az implementáció közben vesszük észre a hibát, lehetséges, hogy az egész rendszerfejlesztést elölről kell kezdenünk.
5.5.4. UML Diagramok Az UML (Unified Modeling Language) szabványos, általános célú modellező nyelv, melynek segítségével szöveges és grafikus modelleket készíthetünk többek közt. Az UML az objektum orientált programozás specifikációs nyelve, ezért ebben dokumentáltam a tervezés menetét. Használati eset diagram A Use Case diagram egy funkcionális diagram, ennek megfelelően a rendszer funkcionalitását lehet vele ábrázolni. Jól átlátható, könnyen értelmezhető ábrákat lehet vele elkészíteni. A követelmények leírására, pontosítására szolgáló grafikus, modellező eszköz. A szoftverfejlesztés korai fázisában használjuk. A használati eset diagram leírja a rendszer, és az őt felhasználó külső szereplők (aktorok) közötti akciók, és reakciók (válaszok) sorozatát. Az aktorok nem tartoznak bele a rendszerbe, csak a kapcsolatokat jelölik.
A diagramm elemei:
Aktorok: az aktorok a következők lehetnek:
Emberek különböző csoportjai. Az általam írt rendszerbem 2 fajta felhasználó 37
Kis és középvállalati termékmenedzselési alkalmazás tervezése
csoport van: Főnök, Dolgozók.
Más a rendszerrel együttműködő programok. A Jam CRM rendszerben is található erre példa, mivel a programhoz tartozik egy adatbázis.
Hardvereszközök
Rendszer: A rendszer jelölésére egy téglalapot használunk, amelybe beírjuk a rendszer nevét. A téglalapon belül a használati esetek helyezkednek el.
Használati esetek: A rendszer funkcionalitásainak jelölésére szolgál. Jelölése: A funkció neve egy oválisba írva.
7. ábra Use-Case Diagram
38
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Aktivitási diagram Az aktivitási diagram a rendszer dinamikus viselkedését mutatja meg úgy, hogy megadja a vezérlés folyamatát lépésről lépésre. A diagram az alkalmazás lehetséges időbeli lefutásait modellezi. Minden egyes folyamatot, amely a rendszer futása közben lezajlik kiválóan ábrázolni lehet ezzel az módszerrel. Ezek a folyamatok különböző jellegűek lehetnek, mint például függvények, eljárások algoritmusai, vagy egyes használati esetek lefutásai. Az aktivitási diagram szemcsézettsége tervezés függő. Az Jam CRM rendszer tervezésénél, a fő folyamatok modellezését tartottam elsőszámú célnak, és nem fejtettem ki minden egyes folyamatot részletesen. A folyamatok szemcsézettségétől függően egy-egy aktivitás lehet akár egy függvényhívás, utasítás vagy akár egy menüpont is. Jelölésrendszere: Minden aktivitási diagram egy belépési ponttal kezdődik, amelyet egy zöld körrel ábrázolunk. Az egyes aktivitásokat egy lekerekített téglalappal jelöljük, amibe beleírjuk az aktivitást. Ezeket az aktivitásokat egyvégű nyíllal kötjük össze, ami az egyik aktivitásból a másik aktivitásba való átmenetet mutatja. Az átmenet biztosít egyfajta szekvencialitást, tehát az egyik átmenet befejezése után következhet csak a következő aktivitás, azaz időrendi sorrendet fejez ki a nyíl. A folyamatok modellezéséhez szükség van elágaztatásokra is. Az elágaztatások kezelését őrszemek használatával végezhetjük el. Az őrszemet egy rombusszal ábrázoljuk, amelyekből minden aktivitáshoz egy-egy vonalat húzunk, és azon az aktivitáson folytatódik a menet amelyre a feltétel teljesül. A különböző ágaknak páronként kölcsönösen kizárónak kel lenniük. A modellünket elláthatjuk kommentekkel is, amely egyszerű téglalapokba írt szöveges információkkal történhet. Minden folyamatot úgy kell felépítenünk, hogy a végső lépés a kilépés legyen, és ne legyenek „zsákutcák”. A kilépést a diagramon egy piros körlappal ábrázolhatjuk. Szekvenciális diagram Ez az objektumok közti üzenetváltások időbeli menetét szemlélteti, tehát az objektumok közötti interakciókat követi nyomon, időrendi sorrendben. A szekvenciális diagram esetén, a résztvevő objektumokat az oldal legtetején jelöljük (Objektum: Objektum típusa) formában, egy a neve alatt függőleges irányban húzott, életvonal segítségével. Az 39
Kis és középvállalati termékmenedzselési alkalmazás tervezése
életvonalat szaggatott egyenessel jelöljük, és az objektum addig létezik, ameddig az életvonal tart. Az életvonal fentről lefele haladva meghatározza a végrehajtás menetét, azaz időbeli sorrendet definiál. Az objektumok üzenetváltások segítségével kommunikálhatnak. Az üzeneteknek több típusa van:
Szinkron:
Szinkron üzenet esetén a küldő objektum elküld egy üzenetet
egy másik objektumnak, amit azt a másik objektum meg nem válaszol, addig várakozik. Jelölése egyfejű, telt nyíl a küldő objektumtól a fogadó objektum életvonala felé mutat.
Visszatérés: -------- Nyillal és szaggatott volnallal a válasz üzenetet illetve a vezérlés visszatérését jelöljük.
Asszinkron:
Az aszinkron nyilat a küldő objektum életvonala, és a
fogadó objektum életvonala közt húzott félfejű nyíl segítségével jelölhetjük. Az aszinkron üzenetküldés lényege az, hogy a küldő elküldi az üzenetet, de annak megválaszolása már nem érdekli.
Öndelegáció: Ha egy objektum a saját funkcióját hívja meg akkor azt öndelegációnak nevezzük. Jelölése: A küldő objektum életvonaláról elindítunk egy üzenet, és ugyanazon az életvonalon is fejeződik be.
8. ábra Szekvenciális diagram
40
Kis és középvállalati termékmenedzselési alkalmazás tervezése
A nyilakon feltüntethetjük az üzenet nevét, illetve az időtartamát is. Az objektum létrejöttét, az életvonalon megjelenő kis téglalap segítségével jelölhetjük. Az elhalálozást pedig az életvonal alatt elhelyezett X-el jelölhetjük. Az fenti ábrán a szekvencia diagram egy kisebb részlete látható. Négy darab életvonal található a képen. Az első életvonal a felhasználó életvonala. Tulajdonképpen ő az, aki interakciót kezdeményez a rendszerrel. A második életvonal a bejelentkezés életvonala, harmadik életvonal a raktárhoz, míg a negyedik életvonal az adatbázishoz tartozik. Jól látszik, hogy a bejelentkezés a rendszerbe, úgy megy végre, hogy először elindítjuk a bejelentkezés folyamatát. Megadjuk a bejelentkezéshez szükséges alapadatokat, majd az adatbázisból lekérdezzük, hogy van-e ilyen felhasználó, és a jelszó megfelelő-e? Ha minden rendben van, és az adatok is megfelelőek akkor a felhasználó belép a rendszerbe. 5.6. Az Adatbázis Mint minden nagy mennyiségű adatokat kezelő webes program alapja, a CRM rendszerem alatt is egy adatbázis rendszer működik. Mivel folyamatosan nyilván kell tartani a programhoz kapcsolódó adatokat, ezért az Adatbázist tárolhattam volna, a program által kezelendő adatokat egy egyszerű állományban is, mint például az XML. Azonban ez a megoldás nem tűnik elég jónak, mivel a programnak sok adattal kell dolgoznia, és ezek között különböző viszonyt kell kialakítani, ráadásul az adataim táblázatban vagy fa struktúrában ábrázolhatók, ezért relációs adatbázist használok. Célszerű olyan relációs adatbázist használni, amely teljesíti a SQL92 szabványt, de Java esetén legjobb, ha JDBC4 verziójú JDBC driver alapú adatbázist használunk. A legkézenfekvőbb megoldás a MySQL. A NetBeans 6.0.1-től már bele van integrálva a MySQL, amely tulajdonképpen egy nyílt forrású relációs adatbázis-kezelő. Az adatbázis létrehozásához a NetBeans könnyen kezelhető grafikus felületet biztosít. A Services/Databases/MySQL menüpont alatt ki kell választani a Create new Data Base opciót. Ekkor megjelenik az itt látható, panel, amelyen beállíthatjuk az adatbázis alap adatait.
41
Kis és középvállalati termékmenedzselési alkalmazás tervezése
9. ábra Adatbázis létrehozása NetBeansben
Ezek után az adatbázis elindításához nyomjuk le a CTRL+ 5 billentyű kombinációt. Ekkor a NetBeans 8.0 bal oldalán megjelennek az adatbázisok (ha van több is). Megkeressük az általunk létrehozott adatbázist, amelyen jobb egérgombot megnyomva elindíthatjuk az adatbázisszervert. Ezután nincs más dolgunk, mint létrehozni a rendszerhez szükséges táblákat, amelyeknek két különböző módja van. Természetesen lehetőség van adatbázist szkript segítségével megszerkeszteni, és emellett a NetBeans grafikus felületet is biztosít új táblák létrehozásához. . A táblák létrehozásához saját szkriptet használtam. Az adatbázis alapjának 6 különböző táblát fogok használni. Az első táblába, a felhasználóhoz tartozó adatokat fogom tárolni. A felhasználó több entitást is tartalmaz, így a tábla nem lesz 3. normálformában, ezért az implementáció egyszerűbb lesz számomra. A szkriptekben használt típusok:
VARCHAR (x): Karakteres típus, amelynél az x egész szám, azt adja meg, hogy maximálisan hány karakter hosszú lehet.
INT (x): Numerikus egész típus, amely hasonlóan a varchar-hoz, meg lehet határozni a számjegyek maximális számát.
Date: Dátum típus.
42
Kis és középvállalati termékmenedzselési alkalmazás tervezése
SZEMELY tábla CREATE TABLE Szemely( ID VARCHAR(6), NEV VARCHAR(30), CIM VARCHAR(50), TELEFONSZAM VARCHAR(13), BEOSZTAS VARCHAR(15), FIZETES NUMERIC(7), )
A tábla elsődleges kulcsának az id-t választottam mivel az embereknek lehet azonos neve így célszerű volt egy külön azonosítót hozzájuk rendelni. A tábla mezőinek igyekeztem olyan neveket adni amik utalnak az tartalmukra.
CEG_ADATAI tábla
CREATE TABLE CEG_ADATAI( NEV VARCHAR(30), TELEFONSZAM VARCHAR(13), CIM VARCHAR(40) ADOSZAM VARCHAR(10); )
Ezen táblában a cég adatait kívántam rögzíteni, a mező elnevezések könnyen érthetőek.
MEGRENDELES tábla
CREATE TABLE Megrendeles( MENNYISEG INT(11), R_DATUM DATUM, T_DATUM DATUM, 43
Kis és középvállalati termékmenedzselési alkalmazás tervezése
T_KOD INT(6), REND_KOD VARCHAR(6), )
Ebben a táblában egy kicsit több magyarázatot kell adnom a tábla elnevezéseivel kapcsolatban. Az R_DATUM és a T_DATUM a rendelés és a teljesítés dátumát jelöli. A T_KOD a termék kódja, a REND KOD a rendelés kódját határozza meg.
NYERSANYAG tábla
CREATE TABLE NYERSANYAG( NY_NEV VARCHAR(20), NY_KOD VARCHAR(8); NY_AR INT(7), NY_DB INT(7); )
A nyersanyag táblában a raktáron levő nyersanyagokat tároljuk, különösebb magyarázatra nem szorulnak az elemek.
TERMEK tábla
CREATE TABLE TERMEK T_KOD VARCHAR(8), T_NEV VARCHAR(20), T_DB INT(7), T_AR INT(7); )
A jelölések itt is egyértelműek, a termek tábla a termékek adatait tartalmazza.
44
Kis és középvállalati termékmenedzselési alkalmazás tervezése
FELHASZNALO tábla
CREATE TABLE FELHASZNALO ( NEV VARCHAR(10), KOD VARCHAR(12), SZINT VARCHAR(1) ) A felhasználo tábla tartalmazza a felhasználok felhasználó nevét és jelszavát illetve a hozzáférési szintet, azaz hogy milyen jogaik vannak a felhasználóknak az oldalon.
MEGJEGYZES tábla CREATE TABLE MEGJEGYZES( NEV VARCHAR (10), UZENET VARCHAR (200), AKTIV VARCHAR (1), KULDO VARCHAR (10) )
A megyjegyzes tábla tartalmazza a dolgozók egymás között váltott üzeneteit. A mezők nevei nem szorulnak magyarázatra. Az adatbázis relációs adatmodellben a következőképpen néz ki:
5.7. GUI tervezési szempontok A felhasználói felületek designjáról oldalakat lehetne írni. Most megpróbálom pár sorba leszükíteni hogy milyen egy jó felhasználói felület. Először is meg kell vizsgálnunk a célcsoportot, hogy kiknek készül az oldal. Ez a CRM rendszer felnőtt embereknek készül, akiknek a funkcionalitás fontosabb, mint a design, tehát az egyszerű kezelhetőséget előtérbe helyezik a külső megjelenéssel szemben. Nekik az a lényeg, hogy könnyen elérhessék és kezelhessék vállalatuk CRM rendszerét. Az oldal tervezése közben figyelembe vettem, hogy az ember egyszerre 5-6 dolgot képes a fejében tartani, tehát nem zsúfoltam össze sok információt az oldalakra. A weblap szín 45
Kis és középvállalati termékmenedzselési alkalmazás tervezése
összealításán ügyeltem arra, hogy olyan színeket válasszak, amelyek nem rikítóak, így nem zavarja a szemet hosszú távú használat során. Ezen felül ügyelni kell arra is, hogy olyan színeket válasszunk, amelyek egymáshoz passzolnak. Talán magától érthetődnek tűnhet a megfelelő kontraszt használata a szöveges tartalom és a háttér között, mégis sok weboldal ezen vérzik el. Az emberek jelentős része színtévesztő, és nem képesek érzékelni a kisebb színbeli eltéréseket. Számukra meglehetősen nehézkes lehet egy alacsony kontraszttal rendelkező honlap olvasása. Mivel az oldal egyszerű átlátható szerkezetű, így bizonyos hátrányos helyzetű embereknek sem jelent akadályt a használata. Ennek ellenére, nem az volt célom, hogy betartsam a WAI (Web Accessibility Initiative) ajánlásait, amelynek betartása esetén az oldalt akadálymentesnek nevezhetjük.
A bal felső sarokba statikusan elhelyeztem a programom logóját ez egy szolid ámde mégis barátságos ábra ezzel is egyedibbé megkülönböztethetőbbé téve rendszeremet. A rendszer emblémája a következő képen néz ki
10. ábra A Jam CRM logója
Figyelni kell még az egyszerű navigációra is a honlapon belül, ezért egyszerű és logikus módon fogom ezt megoldani, gondolva a kevésbé hozzáértő emberekre is. A lapok tervezésekor, megpróbáltam azonos stílusban felépíteni az oldalak szerkezetét. Ennek megfelelően mindig ugyanolyan kinézetű gombokat, és ismétlődő menük esetén, ugyanoda elhelyezni azokat. Ezáltal is barátságosabbá, és ismerősebbé tenni az oldalt. Összességében sikerült egy egyszerű átlátható designt létrehozni, ami hosszútávon sem 46
Kis és középvállalati termékmenedzselési alkalmazás tervezése
zavaró a felhasználók számára. Éppen ezért a későbbi munkáim során is használni fogom az itt megszerzett tapasztalatokat.
5.8 Fejlesztése során felhasznált minták Rendszerünk fejlesztése során nagy szerepet kaptak a servletek, hiszen ezek segítségével történik az összes olyan művelet, amellyel az adatbázisunkban módosítást végzünk. Servletek létrehozásánál a következőkre kell figyelni:
logikai nevet kell nekik adni,
meg kell adni azt az osztályt, amelyik implementálja
esetlegesen inicializáló paramétereket kell adnunk neki
Ezeket a web.xml fájl segítségével tehetjük meg. Ezt az xml fájlt a WEB-INF almappában kell elhelyeznünk. A web.xml egy kapcsolatot definiál URL címek és a servletek között, melyek a kéréseket szolgálják ki. A Webkiszolgáló arra használja ezt a konfigurációs fájlt, hogy megkeresse az adott URLhez tartozó servletet, és meghívja a kéréshez tartozó osztály megfelelő metódusát. Servleteinket hozzá kell rendelni egy vagy több web erőforráshoz, ezt a <servlet-mapping> taggel tehetjük meg, mint ahogy az alábbi példa mutatja is.
<servlet-name>helloWorld
/servlet/HelloWorldExample
A <servlet> elem megadásához definiálnunk kell a nevét, az osztályát és az kezdeti paramétereit. Az osztály tag arra a java osztályra hivatkozik, amely a servlethez befutó kérések kezelését valósítja meg. Többször is deklarálható ugyanaz az osztály, ha a kiindulási paraméterei különbözőek, azonban a névnek egyedinek kell lennie a teljes fájlban.
47
Kis és középvállalati termékmenedzselési alkalmazás tervezése
JSP kiterjesztésű fájloknak is kreálhatunk saját mappinget ami azért célszerű, mert ezek segítségével bealítható, hogy a böngésző címsorában mi látszódjon, ha megnyitjuk az oldalt. Az alábbi példánkban látható hogy a nyersanyag_torles.jsp-het hozzárendeltük a nyersanyag_torles címszót, így az oldal böngészőben való megnyitásakor csak ez a felirat látszódik. [16]
11. ábra Servlet mapping a Web.xml fájlban
Fontos még tudni, a későbbi problémák elkerülése végett, hogy a <jsp-file> (/) karakterrel kell, kezdődjön abban az esetben, ha a JSP fájl a gyökér könyvtárban található. A web.xml nemcsak sevlet illetve JSP mappingre alkalmas, hanem paramétereket is tárolhatunk benne, ez történhet kétféle képen:
context paramétreként – elérhető az egész webes alkalmazásban
init paraméterként – csak egy adott servletnek elérhető
Én az alkalmazásomban init paraméterként tároltam adatokat. Nagy segítségemre volt az adatbázis adatainak tárolásában, hiszen így elég volt egy helyen tárolnom az adatbázis címét, felhasználói nevét, illetve jelszavát. Ez azért egyszerűsíti meg a programozó dolgát, mivel ha költözik az adatbázis, elegendő egyetlen helyen átírni az elérési utakat, nem szükséges minden egyes kapcsolatnál elvégezni a változtatásokat. Nézzük, meg hogy hogyan is történik ez a web.xml fájlban.
48
Kis és középvállalati termékmenedzselési alkalmazás tervezése
12. ábra Web.xml adatbázis paraméterei
Látható hogy
tagek közé kerül a paraméter. A <param-name> tag közé a paraméter neve, míg a <param-value> tag közé a paraméter értéke kerül. Ezek után már csak azt kell megvizsgálnunk, hogy hogyan hivatkozhatunk rá egy adott servletben. Nézzük a nyersanyag_torles.java-t.
13. ábra Servlet-adatbázis kapcsolódás forrásrélszlet
49
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Látható hogy az adatbázis kapcsolódáshoz szükséges paramétereket az xml fájlból a getServletContext().getInitParaméter() segítségével nyerjük ki, amit egy String tipusú változóban
el
is
tárolunk.
Az
adatbázishoz
való
kapcsolódáshoz
a
DriverManager.getConnection() metódust használjuk. Az adatbázis url címét tartalmazó DB változó után "?useUnicode=true&characterEncoding=iso-8859-1" szöveg azért szükséges, hogy az adatbázis mindenképpen a Latin-1 es karakterkészletet használja, hiszen e nélkül nem tudná helyesen kezelni a magyar ékezetes betűket.
Miután felállítottuk a servletünkben az adatbázis kapcsolatot, elkezdhetjük az adatbázis módosító műveleteket. Maradjunk a már bemutatott nyersanyag_torles nevű servletünknél. Mint a neve is jól mutatja egy törlést végez el adatbázisunkban. Ez úgy működik, hogy a hozzá tartozó JSP fájlban egy formon keresztül felvesszük a törölni kívánt nyersanyag nevét és ezt a servletben egy String típusú változóban eltároljuk a request.getParameter metódus segítségével. Ha megvan a törölni kívánt nyersanyag már csupán az SQL utasítást kell kiadnunk ami elvégzi a módosítást az adatbázisban. Servletben SQL utasítást háromféle képen adhatunk ki:
Statement - statikus parancsokhoz használatos
PreparedStatement - előfordított parancsokhoz használatos
CallableStatement - Tárolt eljárásokhoz használatos
Mi egy sima statikus parancsot adunk ki. Kapcsolatunkat felhasználva készítünk egy Statement-et, vagyis nyitunk egy interfészt az adatbázis felé. Az interfészen átnyomjuk a parancsot. Lezárjuk az interfészt. Fontos hogy az SQL utasítás végén ne rakjunk pontosvesszőt, mivel ebben az esetben nem szükséges, ha mégis kiraknánk, akkor az ORA00911: invalid character hibaüzenetet láthatjuk monitorunkon.
50
Kis és középvállalati termékmenedzselési alkalmazás tervezése
14. ábra Nyersanyag törlésének SQL utasítása
Forrásrészletünkön az is láthatjuk, hogy miután elvégezte a rendszer az SQL műveletet annak függvényében, hogy sikeres volt e vagy sem átirányítja egy másik oldalra a felhasználót. Mivel hibák mindig előfordulhatnak ezért az egészet egy try-catch blokba kell betenni, a catch ágon pedig le tudjuk kezelni a hibát. Alkalmazásunkban a servletek többsége erre a sémára épül, különbségek az SQL parancsokban illetve a használt paraméterekben lehetnek. Mivel rendszerünkben nemcsak adatfelvétel/törlés történik ezért szükséges, hogy felvett adatainkat átlátható táblázatokba rendezzük. Ezeket a táblázatokat a JSP oldalak segítségével jelenítjük meg. Mivel a táblázat adatait az adatbázisból nyerjük ki ezért a JSP oldalakon is létre kell hozni az adatbázis kapcsolatokat. A kapcsolatot létre lehet hozni servlet nélkül is a JSP erre kínálja a <sql:setDataSource> tag-et . A web.xml-be eltárolt adatbázis paramétereket
itt
is
használhatjuk
csupán
egy
rövid
JavaScriptel,
getServletContext().getInitParameter() segítségével egy –egy változóba tehetjük az értékeket. A lentebb látható forrásrészletben jól láthatjuk a JavaScriptet illetve az adatbázis kapcsolodást.
15. ábra Adatbázis kapcsolódás JSP-ben
51
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Miután a kapcsolat létrejött már csak az SQL lekérdezést kell végrehajtani, amit <sql:query> tag között történik. Táblázatunk átláthatósága illetve az adott elemre való egyszerűsített keresés miatt JQuerymodult használunk. Erre a célra én a DataTables nevű ingyenes JQuery-t használtam. A DataTables beágyazása JPS oldalunkba igen egyszerű, a honlapján részletes tutorial áll rendelkezésünkre. Néhány fájl megfelelő helyre való másolása illetve pár sor JavaScript beszúrása után, egy ehhez a táblázathoz hasonló fogadhat bennünket JSP oldalunkon.
16. ábra Eredeti DataTables táblázat
Persze ez csak egy alap táblázat, különböző css-ekkel tovább formázható olyanra, ami beleillik alkalmazásunk designjába. Miután meg van a JQuery plugin illetve az adatbázis lekérdezés már csak a lekérdezés eredményét kell hozzárendelni a táblázat mezőihez és kész is van a táblázatunk. Miután kiveséztük a nyersanyag_törles.jsp-t nézzük meg hogy, hogyan mutat a valóságban.
52
Kis és középvállalati termékmenedzselési alkalmazás tervezése
17. ábra Nyersanyag_torles lap a JQuery táblázattal
Mint az a képen is látszódik JQuery puginunk nagy formázáson ment át és így sokkal jobban beleillik az oldal stílusába. Az is látszódik, hogy a táblázatban adatok vannak tehát adatbázis kapcsolódásunk sikerrel zárult. Ha a címsort jobban megnézzük a nyersanyag_torles.jsp helyet csak a nyersanyag_torles látszódik, ez annak köszönhető, hogy a web.xml-ben létrehozott mappingelésünket használtuk. Mivel nem látszik az oldal kiterjesztése így sokkal biztonságosabb a külső támadások ellen.
JSP oldalaink hasonló sémára épültek, mint az előbb bemutatott oldal, hiszen ezeknek fő feladata az adatatok felvitele illetve módosítása. Talán kivételt képez kissé az Uzenet. jsp oldal. Ennek a lapnak a fő feladata, hogy a felhasználók üzenetet tudjanak küldeni a másiknak ezzel is segítve a belső kommunikációt a cégen belül. Lássuk, hogyan mutat ez az oldal.
53
Kis és középvállalati termékmenedzselési alkalmazás tervezése
18. ábra Üzenetküldés a Jam CRM-ben
Mint az, ahogy az ábrán is jól látszik ezen az oldalon egy egyszerű beviteli form található. Két értéket küldhetünk vele az egyik a címzett neve a másik pedig maga az üzenet szövege. Rejtett hidden tagként elküldjük a küldő nevét is. Ezt a belépéskor generált sessionből nyerjük ki. Miután üzenetünket elküldtük a form feldolgozását az Uzenet servletre bízzuk, ami feltölti az adatbázisunk megfelelő táblájába. A tábla tartalmaz egy aktiv mezőt, amit automatikusan 1-re állít a rendszer. Ez azért szükséges, hogy a főoldalon megjelenő üzenet ablakban csak az olvasatlan üzenetek jelenjenek meg. Rendszerünkbe belépéskor a főoldalon a jobb felső sarokban jól látható mégsem zavaró helyen jelennek meg üzeneteink. Az üzenet szövege mellet a küldő neve is megjelenik. Az üzenet box alatt található egy elolvasva gomb melyre kattintva eltüntethetjük az üzeneteket. Ilyenkor egy servlet megkapja az utasítást és az előzőekben említett aktív mező értékét 0-ra állítja. Így már a legközelebb nem jelenik meg az elolvasott üzenet.
54
Kis és középvállalati termékmenedzselési alkalmazás tervezése
19. ábra Az admin felület kezdőoldala
Alkamazásom fejlesztése során ezek a minták voltak azok, amelyekkel szembe kerültem. Némelyikük nehézségeket okozott számomra, de a neten található mintapéldák, és az általam ismert tudás segítségével megbirkóztam velük.
55
Kis és középvállalati termékmenedzselési alkalmazás tervezése
6. A rendszer fejlesztése során levont következtetések A Jam CRM rendszer fejlesztése során sok problémába ütköztem, mint kezdő fejlesztő, viszont ezekből tanulva sikerült elsajátítanom a technológia alapjait. Úgy érzem, hogy most már átlátom a CRM rendszerek működését. Voltak részek ahol elakadva igen sok időt töltöttem tutorialok és más egyéb oktató anyagok böngészésével, aminek segítségével a probléma megoldásán felül más egyéb, hasznos ismeretekre tettem szert. A szakdolgozat elkezdése előtt az volt a célkitűzésem, hogy létrehozzak egy kisvállalati termékmenedzselési alkalmazást, ami kielégíti családi vállalkozásunk alapvető szükségleteit. Alapelveim voltak, hogy webes felületen platform függetlenül lehessen kezelni az alkalmazást, így a termékek és megrendelések kezelése bárhonnan azonnal elérhető a felhasználó számára. A nagy CRM rendszerek több modulból állnak, amelyek segítségével különböző kimutatásokat lehet megvalósítani, ezzel szemben az én rendszerem a termékmenedzselési folyamatokra fokuszál. A szakdolgozat úgy érzem elérte célját, mivel elsajátítottam a fejlesztés során a JSP oldalak-servletek használatát. Sikerült elkészíteni egy gyakorlatban is használható alkalmazást. Ennek köszönhetően elkészült a saját kisvállalati CRM rendszerem a Jam CRM, amely a szükséges alapfunkciókat teljesíti ezen felül egy belső levelezési rendszert is sikerült kialakítani, ami elősegíti a belső kommunikációt. Létrehoztam egy adminisztrációs felületet, ahol a cégvezető a céges belső adatokat tudja kezelni. A dolgozó jogkörrel rendelkezők pedig a termékek és megrendelések felvételét tudják csak kezelni, és ez által átláthatóbb és biztonságosabb lesz a rendszer. Éles helyzetben még nem sikerült tesztelni, valószínűleg nyáron a lekvárszezonban fogjuk bevezetni. Fejlesztés során már említettem, hogy több akadályba ütköztem, ezek nagyrészt a nem megfelelő programozási technikák alkalmazásából adódtak. Ezen hibák detektálása és javítása rengeteg időt vett el a fejlesztéstől. Mivel ez egy termékmenedzselési alkalmazás fontos, hogy a funkciók hibátlanul működjenek, mivel nagy anyagi és presztízsbeli károkat okozhatnak a váratlanul előforduló hibák a vállalkozásnak.
56
Kis és középvállalati termékmenedzselési alkalmazás tervezése
A rendszert az éles tesztelés után a felmerülő igények szerint fejleszteném tovább. Jelenleg úgy érzem, hogy a lekvárüzemnek a termékmenedzselési feladatait maradéktalanul ellátja. A későbbiekben, ha az üzem is igényli, lehetne bővíteni más modulokkal, ezzel is segítve a cég vállalatirányítását, például egy belső bér kalkulátor modul bevezetésével. Illetve kimutatások és diagramok generálásával lehetne jobb rálátást szerezni az aktuális megrendelésekre, eladásokra. Úgy gondolom a program megírása közben szerzett, tapasztalatok hasznosak lesznek majd a további munkáim során, mert az itt szerzett tudásomat más jellegű alkalmazások fejlesztésénél is tudom kamatoztatni. Továbbá meghozta a kedvemet különbző technológiájú rendszerek megismerésére. Remélhetőleg a jövőben lesz alkalmam hasonló alkalmazások megírásában részt vállalni és bővíteni a tudásomat.
57
Kis és középvállalati termékmenedzselési alkalmazás tervezése
7. Summary In the development of the Jam CRM system I ran into a lot of trouble as a beginner, developer, and these kind of the problems / errors were needed to learn from them and then carry out my workmuch more smoothly. There were parts where I spent a lot of time: jammed in tutorials and other educational materials by browsing, which helps to solve the problem in addition to other useful knowledge I have gained. Before starting the thesis, I had to get known a web-based technology, which is less wellknown. So I create a program that others will be used later. The thesis, I feel more or less reached its goals, learned during the development of JSP pages using servlets. As a result, I created my own small business Jam CRM, which fulfills the basic functions expected of it. I have not tried it in live yet, because it needs a lot of improvement, for example programming errors, but unfortunately it also occurred hardware problems. After I created the thesis, there are several things I would do differently. It is formulated in my mind that I write an upgraded version of the system in the future, but it would use an another technology. By my opinon, the experience that I gained during writing this program will be useful for further work, because I want a job in similar are as in the future.
58
Kis és középvállalati termékmenedzselési alkalmazás tervezése
Irodalom Jegyzék:
[1]
http://www.lbseconet.hu/vir/vir.htm
[2]
http://www.hatekonysag.hu/crm_customer_relationship_management.php
[3]
http://hu.wikipedia.org/wiki/CRM
[4]
http://www.microsoft.com/hun/dynamics/default.mspx
[5]
http://crm.dynamics.com/hu-hu/retail
[6]
http://www.crm.ps.hu/
[7]
http://netbeans.org/index_hu.html
[8]
http://hu.wikipedia.org/wiki/NetBeans
[9]
http://hu.wikipedia.org/wiki/Java_(programozási_nyelv)
[10]
http://hu.wikipedia.org/wiki/Servlet
[11]
http://hu.wikipedia.org/wiki/JavaServer_Pages
[12]
http://searchsoa.techtarget.com/definition/Java-Server-Page
[13]
http://pcforum.hu/hirek/12687/Megjelent+az+Oracle+GlassFish+Server+uj+verzioja.html
[14]
http://hu.wikipedia.org/wiki/GlassFish
[15]
http://hu.wikipedia.org/wiki/MySQL
[16]
http://hu.wikipedia.org/wiki/JQuery
[17]
http://hu.wikipedia.org/wiki/Deployment_descriptor
Linkek utoljára ellenőrizve: 2014.04.28
59