59
MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Mobilná aplikácia pre CRM-ERP systém OpenERP DIPLOMOVÁ PRÁCA Miroslav Sliacky Brno, 2013

Mobilná aplikácia pre CRM-ERP systém OpenERP

Embed Size (px)

Citation preview

MASARYKOVA UNIVERZITAFAKULTA INFORMATIKY

}w���������� ������������� !"#$%&'()+,-./012345<yA|Mobilná aplikácia pre

CRM-ERP systém OpenERP

DIPLOMOVÁ PRÁCA

Miroslav Sliacky

Brno, 2013

Prehlásenie

Prehlasujem, že táto diplomová práca je mojím pôvodným autor-ským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pra-mene a literatúru, ktoré som pri vypracovaní používal alebo z nichcerpal, v práci riadne citujem s uvedením úplného odkazu na prí-slušný zdroj.

Miroslav Sliacky

Vedúci práce: doc. RNDr. Vlastislav Dohnal, Ph.D.

ii

Pod’akovanie

Chcel by som pod’akovat’ svojej rodine a priatel’ke ktorí ma podpo-rujú v štúdiu. Dakujem vedúcemu tejto práce doc. RNDr. Vlastisla-vovi Dohnalovi, Ph.D. za odborné vedenie a cenné rady. Dakujem ajfirme Cloud Technologies s.r.o a jej zamestnacom.

iii

Zhrnutie

Táto práca sa zaoberá návrhom a následnou implementáciou mo-bilného klienta pre open source CRM-ERP systém OpenERP na plat-forme Android. Vytvorená aplikácia poskytuje užívatel’om OpenERPmobilný prístup k systému a správe produktov, zákazníkov a ich ob-jednávok.

iv

Kl’úcové slová

Customer Relationship Management, Enterprise Resource Planning,CRM-ERP, OpenERP, OpenERP klient, Android, Java, OpenSource

v

Obsah

1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Základné pojmy . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1 CRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 ERP systém . . . . . . . . . . . . . . . . . . . . . . . . . 42.3 Open source . . . . . . . . . . . . . . . . . . . . . . . . . 52.4 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 CRM-ERP systémy . . . . . . . . . . . . . . . . . . . . . . . . 73.1 Komercné riešenia . . . . . . . . . . . . . . . . . . . . . 7

3.1.1 SAP ERP . . . . . . . . . . . . . . . . . . . . . . . 73.1.2 Microsoft Dynamics . . . . . . . . . . . . . . . . 83.1.3 Oracle E-Business Suite . . . . . . . . . . . . . . 83.1.4 NetSuite ERP . . . . . . . . . . . . . . . . . . . . 9

3.2 Open source riešenia . . . . . . . . . . . . . . . . . . . . 93.2.1 xTouple ERP . . . . . . . . . . . . . . . . . . . . . 93.2.2 Compiere . . . . . . . . . . . . . . . . . . . . . . 103.2.3 Openbravo . . . . . . . . . . . . . . . . . . . . . 103.2.4 Tryton . . . . . . . . . . . . . . . . . . . . . . . . 11

4 OpenERP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.1 Architektúra . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.1.1 Databázový server . . . . . . . . . . . . . . . . . 134.1.2 Aplikacný server . . . . . . . . . . . . . . . . . . 134.1.3 Web server . . . . . . . . . . . . . . . . . . . . . . 14

4.2 Analýza systému . . . . . . . . . . . . . . . . . . . . . . 145 XML-RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5.1 RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155.2 XML-RPC a Java . . . . . . . . . . . . . . . . . . . . . . . 16

6 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.1 Charakteristika . . . . . . . . . . . . . . . . . . . . . . . 176.2 História . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.3 Verzie a ich zastúpenie . . . . . . . . . . . . . . . . . . . 186.4 Architektúra . . . . . . . . . . . . . . . . . . . . . . . . . 19

6.4.1 Linux kernel . . . . . . . . . . . . . . . . . . . . . 196.4.2 Knižnice . . . . . . . . . . . . . . . . . . . . . . . 216.4.3 Android Java a Dalvik . . . . . . . . . . . . . . . 216.4.4 Aplikacný framework . . . . . . . . . . . . . . . 22

vi

6.4.5 Aplikácie . . . . . . . . . . . . . . . . . . . . . . . 226.5 Vývoj aplikácií . . . . . . . . . . . . . . . . . . . . . . . . 22

7 Analýza a návrh . . . . . . . . . . . . . . . . . . . . . . . . . . 257.1 OpenERP 6.1 . . . . . . . . . . . . . . . . . . . . . . . . . 25

7.1.1 Zákazníci . . . . . . . . . . . . . . . . . . . . . . 267.1.2 Produkty . . . . . . . . . . . . . . . . . . . . . . . 277.1.3 Predaje . . . . . . . . . . . . . . . . . . . . . . . . 29

7.2 Android OpenERP Client . . . . . . . . . . . . . . . . . 307.2.1 Prihlásenie . . . . . . . . . . . . . . . . . . . . . . 317.2.2 Zákazníci . . . . . . . . . . . . . . . . . . . . . . 327.2.3 Produkty . . . . . . . . . . . . . . . . . . . . . . . 347.2.4 Predaje . . . . . . . . . . . . . . . . . . . . . . . . 357.2.5 Vyhl’adávanie . . . . . . . . . . . . . . . . . . . . 37

7.3 Diagramy prípadov užitia a tried . . . . . . . . . . . . . 378 Implementácia . . . . . . . . . . . . . . . . . . . . . . . . . . 40

8.1 Použité knižnice . . . . . . . . . . . . . . . . . . . . . . . 408.1.1 Android-xmlrpc . . . . . . . . . . . . . . . . . . 408.1.2 Android-openerp . . . . . . . . . . . . . . . . . . 418.1.3 ZXing . . . . . . . . . . . . . . . . . . . . . . . . 42

8.2 Implementacné detaily aplikácie . . . . . . . . . . . . . 428.2.1 AsyncTask . . . . . . . . . . . . . . . . . . . . . . 438.2.2 Zobrazenie dát . . . . . . . . . . . . . . . . . . . 448.2.3 Rotácia zariadenia . . . . . . . . . . . . . . . . . 448.2.4 Lokalizácia . . . . . . . . . . . . . . . . . . . . . 468.2.5 Aktivity a fragmenty . . . . . . . . . . . . . . . . 47

9 Záver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48A Príloha – CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

vii

1 Úvod

Pre úspech v konkurencnom boji vynakladajú firmy nemalé úsilie.Snažia sa tak získat’ výhodu oproti ostatným spolocnostiam na trhu.K najdôležitejším aspektom, ktorým sa firmy venujú patria podni-kové procesy a komunikácia so zákazníkmi.

Bez ohl’adu na to, ci sa jedná o výrobu, nákup, predaj, logistiku,úctovníctvo alebo iné cinnosti, je dôležité, aby procesy vo všetkýchoblastiach boli správne a efektívne plánované a riadené. K tomutoúcelu sa využívajú ERP systémy (Enterprise Resource Planning), kto-ré mnohé z týchto cinností automatizujú a starajú sa tak o jedno-duchost’ a efektívost’ procesov. CRM systémy (Customer Relations-hip Management) slúžia firmám pre riadenie komunikácie so zákaz-níkmi.

Používanie CRM-ERP systémov dávalo firmám výhodu v bojis konkurenciou. Dnes už sa však stali prakticky nevyhnutnou súcas-t’ou väcšiny podnikov a je potrebné d’alší náskok hl’adat’ inde. Ne-ustávajúci rast popularity zaznamenávajú mobilné technológie. Vy-užívanie smartfónov a tabletov neustále rastie a je preto prirodzenézamerat’ sa na túto oblast’ a pokúsit’ sa využit’ prepojenie CRM-ERPsystémov s mobilnými platformami.

V spolupráci s Cloud Technologies s.r.o. sme sa preto rozhodlivytvorit’ aplikáciu pre operacný systém Android, ktorá bude slú-žit’ ako klient pre open source CRM-ERP systém OpenERP. Komuni-kácia medzi jednotlivými komponentami bude prebiehat’ pomocouprotokolu XML-RPC.

Aplikáciu budú využívat’ predovšetkým obchodníci bežne pra-cujúci s OpenERP, ktorým umožní mat’ kedykol’vek k dispozícii sprá-vu produktov, zákazníkov a ich objednávok. Napríklad pri stretnu-tiach s novými potenciálnymi zákazníkmi budú schopní okamžiteich pridat’ do systému a následne im môžu hned’ vytvorit’ novú ob-jednávku. Aplikácia tak prinesie väcšiu flexibilitu pre obchodníkova odstráni nutnost’ mat’ prístup k pocítacu pri vytváraní nových ob-jednávok.

Obsah práce je rozdelený do jedenástich kapitol. Prvá kapitola jevenovaná úvodnému oboznámeniu sa s témou práce. V druhej ka-pitole sa oboznámime so základnými pojmami ako napríklad CRM,

1

1. ÚVOD

ERP a open source. Nasledujúce dve kapitoly sú venované defino-vaniu CRM-ERP systémov a popisu konkrétnych riešení, ktoré súrozdelené podl’a otvorenosti kódu. Podrobne sa práca venuje hlavnesystému, nad ktorým je aplikácia vyvíjaná, OpenERP. Na komuni-káciu s ním sa používa protokol XML-RPC, ktorému je taktiež ve-novaná samostatná kapitola. Dalšie kapitoly sa venujú samotnémuvývoju aplikácie. Najskôr je predstavený operacný systém Androida všetky použité technológie. Nasleduje analýza, návrh a popis im-plementácie aplikácie. V poslednej kapitole sú zhrnuté výsledky prá-ce.

2

2 Základné pojmy

Pre lepšiu orientáciu v problematike CRM-ERP systémov a vývojamobilných open source aplikácií, ktoré s týmito systémami spolupra-cujú, si na úvod definujeme niekol’ko základných pojmov s ktorýmisa môžeme v práci stretnút’.

2.1 CRM

Skratka CRM pochádza z anglického slovného spojenia Customer Re-lationship Management – riadenie vzt’ahov so zákazníkmi. Toto spo-jenie vzniklo v polovici devät’desiatych rokov a do širšieho povedo-mia sa dostalo koncom desat’rocia [9]. Je však zložité nájst’ jednotnúa jednoduchú definíciu, pretože CRM sa neustále, rýchlo vyvíja a prerôzne firmy má rozdielny význam. Pre porovnanie si uvedieme nie-kol’ko definícií CRM:

• Integruje l’udí, procesy a technológie s ciel’om maximalizovat’vzt’ahy so všetkými zákazníkmi. CRM je komplexný prístup,ktorý umožnuje bezproblémovú koordináciu medzi všetkými,na zákazníka orientovanými, funkciami. CRM coraz viac vy-užíva internet (2003). [8]

• Infraštruktúra, ktorá umožnuje vymedzenie a zvyšovanie hod-noty pre zákazníka a poskytuje správne prostriedky, ktorýmicenných zákazníkov motivuje aby zostali lojálni – samozrejme,aby znovu nakupovali (2004). [4]

• Taký dynamický proces riadenia vzt’ahu medzi spolocnost’oua zákazníkom, že zákazníci chcú nad’alej pokracovat’ vo vzá-jomne výhodných obchodných transakciách a naopak sú odrá-dzaní od transakcií, ktoré sú pre spolocnost’ stratové. [1]

Ako je možné vidiet’ CRM má za ciel’ nastavit’ firemné procesy sme-rom k zákazníkom a budovat’ s nimi dlhodobý a vzájomne pros-pešný vzt’ah. Úspešne implementované CRM ponúka množstvo vý-hod, ako sú napríklad lepšie informácie pre predaj a marketing, zvý-šená produktivita alebo kvalitnejší zákaznícky servis [9].

3

2. ZÁKLADNÉ POJMY

Aby však bola implementácia CRM úspešná, je dôležité, aby fir-ma pri nasadzovaní upravila všetky aspekty podl’a vlastných po-trieb. Neexistuje jedno univerzálne riešenie, ktoré by sa dalo nasadit’v každej spolocnosti.

2.2 ERP systém

Z anglického Enterprise Resource Planning (plánovanie podnikovýchzdrojov) pochádza pomenovanie ERP systém, napriek tomu, že o plá-novanie sa tieto systémy primárne nestarajú. Ich hlavnou funkciouje prepojenie všetkých oddelení v spolocnosti do jediného informac-ného systému tak, aby plnil špecifické potreby jednotlivých odde-lení.

Je nárocné vybudovat’ jeden program vyhovujúci potrebám za-mestnancov v oddelení l’udských zdrojov a zároven zamestnancovv sklade. Bežne majú každé z týchto oddelení vlastný systém, opti-malizovaný presne pre ich potreby a spôsob práce. ERP systém všakpráve tieto jednotlivé systémy spája do samostatného celku, do jed-ného integrovaného informacného systému, ktorý pracuje nad jedi-nou spolocnou databázou. Napomáha tak jednoduchému zdiel’aniuinformácií a lepšej komunikácii medzi rôznymi oddeleniami [20].

Rovnako ako pri CRM aj ERP systémy sú vysoko špecifické a prekaždú firmu je potrebné navrhnút’ a implementovat’ systém na mie-ru. Nie je možné jednoducho nainštalovat’ systém, ktorý funguje ús-pešne v inej spolocnosti. Ak sa však podarí úspešne systém zaviest’,môže byt’ pre firmu vel’kým prínosom v mnohých oblastiach [20]:

• Zjednotenie financných informácií – Pri kontrole financií a sta-vu firmy majú vedúci pracovníci všetky informácie na jednommieste. Nemusia riešit’ nekonzistentnosti, ktoré môžu vznik-nút’ používaním viacerých systémov.

• Zjednotenie informácií o objednávkach zákazníkov – ERPsystém sa stáva miestom, kde prebieha celý životný cyklus ob-jednávky, od prijatia až po vyexpedovanie a fakturáciu. Je pretojednoduchšie sledovat’ objednávky a koordinovat’ výrobu.

• Štandardizovanie a urýchlenie výrobných procesov – Výrobnéspolocnosti, hlavne tie s viacerými výrobnými miestami, casto

4

2. ZÁKLADNÉ POJMY

vyrábajú produkty rôznymi procesmi s použitím rôznych in-formacných systémov. ERP automatizuje niektoré kroky výrob-ného procesu. Ich štandardizácia, používanie jedného systému,tak môže šetrit’ cas, zvyšit’ produktivitu a znižit’ pocet potreb-ných zamestnancov.

• Štandardizovanie informácií o l’udských zdrojoch – Najmävo vel’kých podnikoch s viacerými obchodnými jednotkami,môže byt’ zložité sledovat’ pracovnú dobu zamestnancov a ko-munikovat’ s nimi o výhodách a službách. ERP môže tento ne-dostatok napravit’.

2.3 Open source

Pri vývoji softvéru nan autorovi vznikajú zo zákona exkluzívne prá-va. Medzi ne patria napríklad právo na kopírovanie, distribúciu a vy-tváranie odvodeného softvéru. Autor sa môže rozhodnút’ niektoréz týchto práv preniest’ na ostatných prostredníctvom licencnej zmlu-vy. Väcšina komercných zmlúv sa snaží co najviac obmedzit’ použí-vanie softvéru.

Open source licencie dávajú užívatel’om naopak omnoho viacpráv. Najpopulárnejšia open source licencia GNU General Public Li-cense napríklad poskytuje právo kopírovat’ licencovaný softvér, vy-tvárat’ z neho odvodené produkty a distribuovat’ originálnu verziuako aj jej deriváty [14].

Medzi d’alšie obl’úbené a casto používané licencie patria naprí-klad:

• GNU Library alebo ”Lesser” General Public License (LGPL)

• Apache License 2.0

• The MIT License

• BSD 2-Clause License – ”Simplified” alebo ”FreeBSD”

• GNU Affero General Public License 3.0 – GNU AGPL-3.0

Pod licenciou GNU AGPL-3.0 bude uvol’nený aj zdrojový kód našejaplikácie, podobne ako je šírené aj OpenERP.

5

2. ZÁKLADNÉ POJMY

Viac informácií je možné nájst’ na internetových stránkach OpenSource Initiative.

2.4 XML

Extensible Markup Language – rozšíritel’ný znackovací jazyk – je štan-dard, ktorý bol schválený konzorciom W3C (World Wide Web Con-sortium). Definuje všeobecnú syntax pre oznacenie dát pomocou jed-noduchých, pre l’udí citatel’ných znaciek. Poskytuje tým štandardnýformát dát, ktorý je natol’ko flexibilný, že môže byt’ upravený predomény tak rozdielne, ako sú internetové stránky, vektorová grafika,volanie vzdialených procedúr a mnoho d’alších [10].

Príklad XML kódu použitého v OpenERP:

1 <?xml version="1.0"?>2 <openerp>3 <data>4 <record id="view_servers_form" model="ir.ui.view">5 <field name="name">x_server.form</field>6 <field name="model">x_server</field>7 <field name="type">form</field>8 <field name="arch" type="xml">9 <form string="Servers">

10 <group>11 <field name="url"/>12 <field name="ip"/>13 <field name="server"/>14 <field name="note"/>15 </group>16 <notebook>17 <page string="Partners">18 <field name="partners"19 widget="one2many_list"/>20 </page>21 </notebook>22 </form>23 </field>24 </record>25 </data>26 </openerp>

6

3 CRM-ERP systémy

V predchádzajúcej kapitole sme sa oboznámili s významom CRMa ERP systémov a zistili sme aké výhody prinášajú. Pre väcšie a stred-né podniky je prakticky nevyhnutné implementovat’ niektoré z natrhu dostupných riešení.

Je však dôležité, aby vybraný systém dokonale splnal všetky po-žiadavky kladené danou firmou. Musí preto byt’ priamo vytvorenýna zákazku alebo dostatocne upravený. Aby CRM-ERP systémy mo-hli byt’ jednoducho upravované a splnit’ tak všetky nároky, ktorésú na ne kladené, sú väcšinou vytvárané modulárne. Zavedenie vofirme je následne jednoduchšie. Pri každej implementácii sa použijúa upravia len potrebné moduly.

CRM-ERP systémy môžeme rozdelit’ do dvoch kategórií podl’aotvorenosti ich zdrojového kódu. Komercné riešenia s uzavretýmzdrojovým kódom a open source riešenia, ktoré sú vydávané podrôznymi open source licenciami.

V nasledujúcej casti si predstavíme niekol’ko zástupcov z obi-dvoch skupín a pozrieme sa aj na to, ci ponúkajú svojim zákazníkomaj prístup pomocou mobilných klientov.

3.1 Komercné riešenia

3.1.1 SAP ERP

SAP ERP je systém vyvinutý nemeckou medzinárodnou spolocnos-t’ou SAP AG – Systems, Applications, and Products in Data Processing,založenou v roku 1972. V minulosti sa oznacoval ako SAP R/3. Dnesvšak SAP ponúka množstvo produktov a modulov, ktorých centrál-nym komponentom je práve SAP ERP [11].

SAP ponúka aj širokú škálu mobilných aplikácií pre smartfóny ajtablety na všetkých platformách – iOS, Android, Blackberry a Win-dows. Nie však v rovnakej miere. Najviac aplikácií ponúka pre iOS– takmer 160, na druhom mieste je Android s polovicným poctoma najmenej aplikácií poskytuje pre Blackberry a Windows – do 25.

Domovská stránka: http://www.sap.com

7

3. CRM-ERP SYSTÉMY

3.1.2 Microsoft Dynamics

Ked’ sa Microsoft rozhodol vstúpit’ na trh s ERP riešeniami v roku2000, zacal tým, že odkúpil popredné firmy v tomto odbore v Spoje-ných štátoch amerických a v Európe. Získal tak štyri ERP riešenia:

• Microsoft Dynamics GP – Great Plains

• Microsoft Dynamics SL – Solomon

• Microsoft Dynamics AX – Axapta

• Microsoft Dynamics NAV – Navision

Ich výhodou je výška investícií, ktoré Microsoft venuje na výskuma vývoj svojich produktov, integrácia s ostatnými produktami, akonapríklad Microsoft Office a v neposlednom rade aj množstvo infor-mácií, ktoré Microsoft o svojich produktoch poskytuje, vrátane dlho-dobých plánov [12].

Mobilných klientov pre Microsoft Dynamics CRM poskytuje nie-kol’ko spolocností a to na všetkých významných platformách. Patrímedzi ne BFI Mobile GmbH & Co. KG ale napríklad aj slovenskáfirma Resco spol. s.r.o. [BFI, Resco]

Domovská stránka: www.microsoft.com/dynamics

3.1.3 Oracle E-Business Suite

Oracle ponúka svojim zákazníkom vlastné riešenie s názvom OracleE-Business Suite. Jedná sa o balík niekol’kých aplikácií rozdelenýchdo rôznych kategórií ako napríklad:

• CRM

• správa služieb

• správa financií

• pokrocilé verejné obstarávanie a iné

Oracle ponúka v oblasti mobilných klientov iba niekol’ko apliká-cií pre iPhone a iPad. Sú to napríklad Oracle Business Approvals for

8

3. CRM-ERP SYSTÉMY

Managers, Oracle Mobile Sales Assistant alebo Oracle Mobile Sales Fore-cast.

Domovská stránka: http://www.oracle.com/us/products/applications/ebusiness

3.1.4 NetSuite ERP

NetSuite je jedným z popredných poskytovatel’ov cloud ERP riešení(SaaS – softvér ako služba). Cloudové riešenia šetria náklady spoloc-ností spojené so zavedením a udržovaním infraštruktúry potrebnejna prevádzku.

NetSuite ERP je postavené modulárne a je jednoducho upravi-tel’né potrebám jednotlivých zákazníkov. Všetky úpravy sú následnezachovávané aj pri automatických prechodoch na novšie verzie sys-tému.

NetSuite ponúka zo spomínaných systémov najmenej co sa týkamobilných klientov pre svoje CRM-ERP systémy. Dve z riešení súprimárne zamerané na Blackberry a starší Windows Mobile – MobileEdge, Explore Mobile. Tretí – SuiteDroid – je vyvýjaný pre OS Android.

Domovská stránka: http://www.netsuite.com/

3.2 Open source riešenia

3.2.1 xTouple ERP

Spolocnost’ xTouple ponúka svoje open source riešenie v štyroch edí-ciách:

• PostBooks

• Standard

• Manufacturing

• Enterprise

Ako už samotné názvy napovedajú, pocet funkcií obsiahnutých v sys-téme postupne stúpa a s nimi aj zameranie na vel’kost’ firmy.

xTouple neponúka mobilného klienta v pravom slova zmysle. Ichriešenie sa nazýva xTouple Mobile Web. Ide o aplikáciu založenú na

9

3. CRM-ERP SYSTÉMY

HTML5, napísanú v JavaScripte. Dá sa preto spustit’ v prehliadaciv každom smartfóne, tablete ci stolnom pocítaci.

Domovská stránka: https://www.xtuple.com/

3.2.2 Compiere

Compiere pôvodne zacínal ako open source projekt poskytovaný podlicenciou GNU GPL. Na Sourceforge patril medzi top 10 produktovmedzi rokmi 2002 až 2006. Následne, po príchode investora sa roz-hodli autori svoj produkt ponúkat’ komercne a vznikli tak dve verzieich systému [16]:

• Community edition – Open source verzia, podporovaná a spra-vovaná komunitou.

• Enterprise edition – Komercná verzia systému s priamou pod-porou výrobcu.

Pre Compiere je jediným dostupným mobilným klientom Com-piere Mobile vyvíjaný firmou Astidian Systems. Funkcne ide skôro prehliadac, cím sa má zabezpecit’ použitel’nost’ na rôznych platfor-mách. GUI je ladené do štýlu iOS, aby bolo jeho používanie prívetivépre užívatel’ov [19].

Domovská stránka: http://www.compiere.com/products/

3.2.3 Openbravo

Openbravo bol prvýkrát vydaný v roku 2006. Je navrhnutý tak, abyv co najväcšej miere podporoval možnosti úprav systému a nezame-riava sa preto na špecifický druh priemyslu. Pristupuje sa k nemucez internetový prehliadac. Spolocnostiam so vzdialenými poboc-kami a pracovníkmi, ktorí musia cestovat’ tak ponúka jednoduchériešenie [6].

Openbravo má k dispozícii niekol’ko aplikácií. Jednu z nich môžuvyužívat’ zamestnanci na samotnom mieste predaja, napríklad v re-štauráciách. Dalšia – Openbravo Analytics – ponúka analýzu dát z in-štancie Openbravo priamo v smartfóne.

Domovská stránka: http://www.openbravo.com/

10

3. CRM-ERP SYSTÉMY

3.2.4 Tryton

Tryton je systém, ktorého vývoj sa zacal koncom roku 2008 ako ko-munitná verzia systému OpenERP. Napísaný je v jazyku Python a po-užíva databázu PostgreSQL. Skladá sa z troch komponent:

• Klient

• Server

• Moduly

Tryton je dostupný pod licenciou GPLv3 a to pre Linux, Windowsa Mac OS X.

Tryton Android, ako je z názvu zrejmé je klient pre Tryton ERP naplatforme Android. Je to všeobecný klient a mal by byt’ kompatibilnýso všetkými modulmi. Umožnuje prístup k úctovníctvu, faktúram,výrobe, skladu atd’.

Domovská stránka: http://www.tryton.org/

11

4 OpenERP

V predchádzajúcej kapitole sme sa oboznámili s rôznymi CRM-ERPsystémami, ktoré sme rozdelili do dvoch skupín podl’a otvorenostiich kódu. Do skupiny open source riešení patrí aj OpenERP, ktoré jepublikované pod licenciou AGPL. OpenERP S.A. ponúka svoj pro-dukt v troch variantách:

• OpenERP Enterprise – Verzia pre podniky pripravená priamona produkcné nasadenie a použitie. Ide však o spoplatnenúverziu. V cene je zahrnutá plná podpora zo strany OpenERP,neobmedzené migrácie na nové verzie systému, záruka na o-pravy chýb a bezpecnostné upozornenia. Zároven je poskyt-nutá možnost’ pre zákazníkov vytvárat’ si vlastné, súkromnémoduly rozšírením licencie na AGPL + Private Use. Firmy takmôžu používat’ open source softvér a zároven si strážit’ svojecitlivé dáta.

• OpenERP Community – Plná verzia systému so všetkými jehosúcast’ami, ale nie je zahrnutá akákol’vek priama podpora zostrany OpenERP, ani migrácie na novšie verzie a nie je možnéani používat’ súkromné moduly. To znamená, že všetky novovytvorené moduly musia byt’ zverejnené aj so zdrojovými kód-mi komunite. S touto verziou OpenERP pracujeme aj my.

• OpenERP Online – Online verzia ponúka zákazníkom clou-dovú alternatívu voci ostatným produktom. Taktiež ako pri ver-zii enterprise ide o spoplatnenú verziu, avšak lacnejšiu. Systémje v tomto prípade umiestnený na serveroch OpenERP a je nimipreto aj spravovaný. V cene sú taktiež zahrnuté zálohy a migrá-cie, nie je však možné používat’ súkromné moduly ani modulyvytvorené komunitou, iba oficiálne.

Vývoj OpenERP zacal v roku 2005, pôvodne pod názvom TinyERP. V roku 2008 pri verzii 4.2.X bol následne premenovaný tentosystém na dnešné OpenERP a dostupný je už vo verzii 7.0. Napriektomu, že vývoj našej aplikácie prebiehal ešte pre staršiu verziu 6.1,úpravy potrebné pre fungovanie s najnovšou verziou by v prípadepotreby nemali byt’ zásadné. [15]

12

4. OPENERP

4.1 Architektúra

Systém OpenERP sa skladá z troch komponent – databázový server,aplikacný server a web server (v tomto kontexte chápaný ako klientpre aplikacný server) [15].

4.1.1 Databázový server

Databázový server tvorí dátovú vrstvu architektúry OpenERP. Akorelacný a objektový databázový systém je používaný PostgreSQL. Jeto vol’ne šíritel’ný, vysoko výkonný open source systém, ktorý je do-stupný pre všetky operacné systémy od Unix/Linux cez Windowsaž po Mac OS X, Solaris, SunOS a BSD.

Na databázovom serveri sú ukladané databázy jednotlivých in-štancií OpenERP, v ktorých sú ukladané dáta spolu s väcšinou nasta-vení. Napriek tomu, že SQL dotazy môžu byt’ vykonávané priamoz OpenERP modulov, väcšina prístupov do relacných databáz je vy-konávaných cez objektovo-relacné mapovanie (ORM [13]).

ORM je charakteristickým prvkom systému. Dátové modely súzadefinované v jazyku Python a OpenERP vytvára tabul’ky v samot-nej databáze. Jej výhody ako sú napríklad relacná integrita, obme-dzenia unikátnosti, efektívne dotazy a iné sa tak spájajú s flexibilitouPythonu.

4.1.2 Aplikacný server

O všetku vnútornú logiku systému a o to, aby fungoval optimálnesa stará aplikacný server, tvoriaci logickú vrstvu architektúry. Je na-vrhnutý a napísaný ako jadro, ku ktorému môžu byt’ následne do-inštalované d’alšie moduly a vytvorí sa tak špecifická konfiguráciaOpenERP. Jadro i moduly sú písané v Pythone.

Na aplikacnom serveri môžu byt’ vytvorené špecifické biznis ap-likácie a obsahuje taktiež kompletný vývojový framework, poskytu-júci rozsah funkcií pre ich vytváranie – ORM, MVC, rozšíritel’né dá-tové modely a pohl’ady a iné.

13

4. OPENERP

4.1.3 Web server

Web server je samostatná aplikácia s názvom Open Object client-web,ktorá umožnuje užívatel’om pripojit’ sa k OpenERP pomocou štan-dardného prehliadaca. Na komunikáciu s aplikacným serverom vy-užíva protokol NET-RPC. Spolu s GTK klientom je súcast’ou prezen-tacnej vrstvy architektúry OpenERP.

Je možné všimnút’ si v pomenovaní istú nekonzistentnost’. Jednása teda o server alebo klienta? Pre vysvetlenie je potrebné uviest’, žesa na tento komponent môžeme pozerat’ z dvoch uhlov pohl’adu. Preinternetový prehliadac sa javí ako web server, ale naopak z pohl’aduaplikacného servera sa správa ako klient. Záleží teda na kontexte.

4.2 Analýza systému

Z pohl’adu vývoja klienta pre OpenERP je pre nás najdôležitejší ap-likacný server, s ktorým bude aplikácia priamo spolupracovat’. Prekomunikáciu medzi klientmi a serverom sa využíva niektorý z pro-tokolov XML-RPC, NET-RPC alebo JSON-RPC. Posledný menovanýbol pridaný až vo verzii 6.1. My budeme využívat’ prvý z nich –XML-RPC, ktorý si popíšeme bližšie v nasledujúcej kapitole.

Jedným z hlavných rysov OpenERP je jeho modulárnost’, vd’akaktorej sa dá jednoducho prispôsobit’ potrebám takmer každej spo-locnosti. Pre našu aplikáciu sme sa rozhodli pracovat’ s co najzáklad-nejšou verziou s co najmenším poctom modulov, aby bola jednodu-cho nasaditel’ná do väcšiny inštancií. Je možné ju preto spustit’ ajnad cistou, novou inštanciou, ale v takom prípade bude dostupnálen správa zákazníkov. Pre plnú funkcnost’ aplikácie – správa uží-vatel’ov, produktov a objednávok – je potrebné mat’ nainštalovanýmodul riadenia predaja (Sales Management).

14

5 XML-RPC

Webová služba je sadou nástrojov umožnujúcou vývoj aplikácií nadexistujúcou webovou infraštruktúrou. Tieto aplikácie využívajú in-ternet ako akúsi transportnú vrstvu, ale neponúkajú priame l’udskérozhranie cez prehliadac.

XML-RPC patrí medzi najjednoduchšie, ale zároven najspol’ahli-vejšie riešenia webových služieb a zjednodušuje volania procedúr navzdialených pocítacoch. Využíva infraštruktúru, ktorá bola pôvodnevytvorená pre komunikáciu medzi l’udmi, na komunikáciu medzipocítacovými programami. XML poskytuje slovník pre popis vzdia-lených volaní procedúr – RPC (Remote Procedure Call), ktoré sú ná-sledne prenesené medzi pocítacmi pomocou HTTP (HyperText Trans-fer Protocol). [18]

5.1 RPC

Volanie vzdialených procedúr je podstatne staršia technológia akointernet. Samotný koncept je v podstate tak starý ako siete, napriektomu sa Sun Microsystems považuje za tvorcu všeobecného formál-neho mechanismu na volanie procedúr a návrat výsledkov pomocousietí.

Napriek tomu, že RPC pri svojom fungovaní produkuje naviacisté režijné náklady, s knižnicami na obidvoch stranách pripojeniavytvára a spracováva správy a zároven môže vzniknút’ aj oneskore-nie spôsobené siet’ou, poskytuje možnost’ ako distribuovane spraco-vávat’ a zdiel’at’ informácie. Jeho koncepcia ul’ahcuje prácu progra-mátorom, pretože sa vd’aka RPC nemusia podrobne zaoberat’ štruk-túrou siete, siet’ovými protokolmi ani inými implementacnými de-tailami. Aj programy napísané pre rôzne platformy tak môžu spolukomunikovat’ ak majú spolocnú siet’.

RPC tak dáva vývojárom možnost’ vytvárat’ rozhrania, ktoré mô-žu byt’ volané po sieti, ci už ide o jednoduché rozhrania o vel’kostirádovo jednotiek funkcií alebo komplexné API. [18]

15

5. XML-RPC

5.2 XML-RPC a Java

Java má vlastný mechanizmus pre vzdialenú komunikáciu a koor-dináciu objektov – RMI (Remote Method Invocation), ktorý je na do-statocne pokrocilej úrovni oproti konkurencii. XML-RPC má napriektomu niekol’ko výhod [18]:

• Odl’ahcenost’, jednoduchost’ – odosiela iba parametre miestocelých objektov.

• Jednoduchá konektivita s l’ubovol’ným systémom, ktorý pod-poruje XML-RPC – nemusí sa obmedzovat’ iba na Java systémyvyužívajúce RMI ani na komplexných CORBA sprostredkova-tel’ov komunikácie.

• XML-RPC využíva len malú cast’ HTTP – Java aplikácie sa takmôžu vyhnút’ nadbytocnej réžii spracovania plného protokoluHTTP a fungovat’ efektívnejšie.

16

6 Android

V tejto kapitole si predstavíme operacný systém Android. Obozná-mime sa s jeho históriou, ale hlavne sa nan pozrieme z pohl’adu vý-voja mobilných aplikácií.

6.1 Charakteristika

Android je komplexná open source platforma navrhnutá pre mo-bilné zariadenia. Vlastní ho Open Handset Alliance (OHA), neziskováskupina zložená z kl’úcových mobilných operátorov, výrobcov hard-véru, vývojárov a d’alších spolocností, ako napríklad Google, HTC,Intel, Dell, Motorola, LG Electronics, Samsung Electronics, Nvidiaatd’. Úlohou tejto širokej aliancie je urýchlit’ vývoj a inovácie v mobil-ných technológiách a ponúknut’ zákazníkom bohatší a lacnejší „záži-tok” z mobilných technológií. Je však stále ešte relatívne mladá a nie-ktorí clenovia sa ešte len ucia navzájom spolupracovat’. Momentálnena Androide najviac pracuje samotný Google [7] [5].

6.2 História

Kl’úcové momenty v histórii systému Android [7]:

• V roku 2005 Google kúpil Android, Inc. Verejnost’ sa domnieva,že príde na trh s vlastným smartfónom „gPhone”

• Následne, po dlhšej odmlke, až v roku 2007 vzniká Open Hand-set Alliance a Android oficiálne otvára svoj zdrojový kód a stávasa open source platformou.

• V roku 2008 je vydaný Android SDK 1.0.Tesne na to prichádzana trh telefón G1 od HTC.

• Nasledujúci rok sa zvyšuje pocet zariadení založených na An-droide – je ich viac ako 20. Vychádzajú nové verzie operacnéhosystému: Cupcake (1.5), Donut(1.6) a Eclair (2.0 a 2.1).

17

6. ANDROID

• Android je za Blackberry druhou najlepšie sa predávajúcou plat-formou pre smartfóny v roku 2010. Vychádza Froyo (Android2.2) a využíva ho viac ako 60 zariadení.

• V tom istom roku zacal Google vydávat’ sériu zariadení Nexus– vlajkové lode vyrábané jeho partnermi, ktoré majú prezento-vat’ najnovšie vlastnosti systému.

• Aktuálna verzia operacného systému je 4.2.x Jelly Bean

6.3 Verzie a ich zastúpenie

Ako každý softvér aj Android je neustále vyvíjaný a vylepšovaný,pribúda nová funkcionalita a prejavuje sa to na císle verzie systému.Prehl’ad všetkých verzií ukazuje nasledujúca tabul’ka 6.1.

Verzia API level Kódové meno DistribúciaAndroid 1.0 1 <0.1%Android 1.1 2 <0.1%Android 1.5 3 Cupcake <0.1%Android 1.6 4 Donut 0.1%Android 2.0 5 Eclair <0.1%Android 2.01 6 Eclair <0.1%Android 2.1 7 Eclair 1.7%Android 2.2 8 Froyo 3.7%Android 2.3 9 Gingerbread 0.1%Android 2.3.3 10 Gingerbread 38.4%Android 3.0 11 Honeycomb <0.1%Android 3.1 12 Honeycomb <0.1%Android 3.2 13 Honeycomb 0.1%Android 4.0 14 Ice Cream Sandwich <0.1%Android 4.0.3 15 Ice Cream Sandwich 27.5%Android 4.1 16 Jelly Bean 26.1%Android 4.2 17 Jelly Bean 2.3%

Tabul’ka 6.1: Verzie OS Android a ich zastúpenie k 1. 5. 2013 [7][2].

18

6. ANDROID

Obr. 6.1: Relatívne zastúpenie verzií systému Android k 1. 5. 2013 [2].

Dáta k prehl’adu verzií operacného systému Android boli získanéz prístupov do Google Play Store pocas dvojtýždnového obdobia,konciaceho 1. 5. 2013.

6.4 Architektúra

V tejto podkapitole sa pozrieme podrobne na operacný systém An-droid, konkrétne na jeho architektúru. Jej porozumenie nám pomôžepri programovaní pochopit’ co všetko dokáže.

Skladá sa zo štyroch vrstiev (vid’. 6.2) [7]:

• Linuxové jadro (Linux kernel)

• Knižnice (Libraries, Android runtime)

• Aplikacný framework (Aplication framework)

• Aplikácie (Applications)

6.4.1 Linux kernel

Android je vystavaný nad jadrom operacného systému Linux. Ideo kvalitný systém, ktorý je jedným z hlavných zástupcov open source.Medzi hlavné dôvody pre jeho výber patrí jeho portabilita, bezpec-nost’ a iné funkcie. [7]

19

6. ANDROID

Obr. 6.2: Vrstvy OS Android [2].

• Portabilita – Linux je prenosná platforma, ktorá sa dá pomernejednoducho skompilovat’ na rôznych druhoch zariadení. Tentostupen abstrakcie hardvéru prináša aj pre Android. Nie je pretopotrebné obávat’ sa o hardvér na ktorom pobeží.

• Bezpecnost’ – Linux je zároven vel’mi bezpecný systém, testo-vaný drsnými podmienkami pocas desat’rocí. Android sa vý-razne spolieha na jeho bezpecnost’ tým, že všetky aplikácie be-žia ako oddelené Linuxové procesy s oprávneniami nastave-nými práve Linuxom, ktorý beží pod ním.

20

6. ANDROID

• Funkcie – Súcast’ou Linuxu je aj množstvo d’alších užitocnýchfunkcií, ktoré Android využíva. Patria sem napríklad podporasprávy pamäte, správa napájania, správa sietí a iné.

6.4.2 Knižnice

Sú to C/C++ knižnice prevažne z open source komunity, ktoré po-skytujú potrebné služby aplikacnej vrstve. Okrem iných sú to naprí-klad [7]:

• Webkit – Rýchly engine na zobrazovanie webu, používaný Sa-fari, Chrome a inými prehliadacmi.

• SQLite – Plnohodnotná SQL databáza.

• Apache Harmony – open source implementácia Javy

• OpenGL – Knižnica pre 3D grafiku

• OpenSSL – Open source implementácia protokolu SSL

• Bionic – Prepísaná verzia štandardnej knižnice C z licencnýcha technologických dôvodov.

6.4.3 Android Java a Dalvik

V Jave je zdrojový kód kompilovaný na Java bitový kód, ktorý sanásledne vykonáva v Java VM. Java VM však nie je vol’ne dostupný,preto Dan Bornstein a jeho tím v Google vyvinuli virtuálny stroj, špe-ciálne navrhnutý pre Android – Dalvik. Aby ten vedel príkazy spra-covat’, musí byt’ Java bitový kód skompilovaný do Dalvik bitovéhokódu.

Android Java nie je súborom tried štandardnej Javy. Najbližšiemá k Java SE. Hlavný rozdiel je v tom, že knižnice užívatel’ského ro-zhrania (AWT a Swing) boli nahradené knižnicami špecifickými preAndroid. Naviac pridáva aj d’alšie funkcie, no zachováva väcšinutých pôvodných.

21

6. ANDROID

6.4.4 Aplikacný framework

Aplikacný framework je funkcne bohaté prostredie, ktoré poskytujeslužby vývojárom pri vykonávaní ich práce. Je to najlepšie zdokume-tovaná cast’ systému, pretože dáva programátorom nástroje pre vý-voj kvalitných, kreatívnych aplikácií. Patrí medzi ne množstvo Javaknižníc špeciálne vytvorených pre Android, ale aj služieb a mana-žérov sprostredkujúcich využívanie schopností telefónu – Wifi, sen-zory, lokáciu zariadenia a iné.

6.4.5 Aplikácie

Poslednou vrstvou je vrstva samotných aplikácií, medzi ktoré patríaj náš klient pre OpenERP. Sú to práve aplikácie, ktoré si mnohí uží-vatelia najviac cenia na Androide.

Aplikáciu tvorí jeden balík – APK súbor, ktorý sa skladá z trochhlavných castí:

• Dalvik spustitel’ný súbor – Zdrojový kód skompilovaný preDalvik VM, na základe ktorého aplikácia beží.

• Zdroje – Sem patrí všetko, co nie je kód. Aplikácie môžu obsa-hovat’ okrem kódu aj obrázky, videá, XML súbory popisujúcerozvrhnutie obrazoviek aplikácie, jazykové balíky a pod.

• Natívne knižnice – V niektorých prípadoch môžu aplikácie ob-sahovat’ aj natívny kód ako napríklad C/C++ knižnice, ktorémôžu byt’ zabalené spolu v APK súbore.

6.5 Vývoj aplikácií

Ako sme si ukázali v podkapitole 6.3, na trhu sú dostupné zariade-nia s rôznymi verziami systému Android. Túto skutocnost’ musiazohl’adnit’ aj vývojári pri návrhu a implementácii svojich aplikáciívýberom minimálnej a ciel’ovej verzie.

Ciel’ová verzia urcuje typ systému Android, na ktorom sa apliká-cia plánuje používat’. Minimálna väcšinou korešponduje s ciel’ovou

22

6. ANDROID

verziou, ale ak sa aplikácia nespolieha na najnovšie API alebo do-káže pracovat’ aj so staršími, tak môže byt’ nastavená nižšia verziaako je ciel’ová [7].

V našej aplikácii sme sa rozhodli pre minimálnu verziu API 11– Android 3.0 Honeycomb. Obsahuje množstvo noviniek, ktoré smevyužili aj pri implementácii a niektoré z nich si popíšeme.

Podpora viacjadrových architektúr procesorov

Android 3.0 je prvou verziou systému, ktorá bol navrhnutá aby fun-govala na jedno aj viacjadrových architektúrach procesorov. Bolo po-trebné vykonat’ pre to množstvo zmien vo virtuálnom stroji Dalvik,knižnici Bionic a inde. Z týchto úprav profitujú všetky aplikácie, vrá-tane jednovláknových. Ak jednovláknovú aplikáciu spustíme na za-riadení s viacerými jadrami, systém automaticky zariadi, aby na dru-hom jadre bol spustený napr. garbage collector a zrýchli tak ciastocnebeh aplikácie [3].

Aktivity a fragmenty

Aktivitou sa obycajne nazýva jedna obrazovka, ktorú v danom casevidí užívatel’ na zariadení. Aplikácia sa skladá z niekol’kých akti-vít, medzi ktorými sa užívatel’ môže pohybovat’ [7]. Od API verzie11 (Obr. 6.1) ponúka Android naviac fragmenty. Ide o akési „pod-aktivity”, ktoré musia byt’ umiestnené v aktivitách. Môžu však byt’použité modulárne na viacerých miestach v aplikácii.

Ich využitie nájdeme napríklad v aplikáciách, ktoré podporujú ajzobrazenie na tabletoch. Kedže tablety majú väcšiu obrazovku, ap-likácie, ktoré na nom bežia môžu casto zobrazovat’ viac fragmentovnaraz. Naopak ak je tá istá aplikácia spustená na menšom smartfóne,je možné to detekovat’ a zobrazit’ každý fragment v samostatnej ak-tivite.

Action Bar

Novinkou je tiež takzvaný Action Bar – ovládacia lišta v hornej castiobrazovky. V aplikácii môže byt’ využitý pre rýchly prístup užívate-l’ov ku kontextovému menu (nahrádza tým tlacítko Menu na starších

23

6. ANDROID

zariadeniach), rôznym nástrojom, navigácii a d’alším ovládacím prv-kom. Vývojári tak sprostredkúvajú viacero funkcií na jednom miestea zjednocujú tak ich používanie napriec aplikáciou [3].

Spätná kompatibilita

Z pohl’adu vývoja aplikácií je dôležité aby staršie aplikácie bez prob-lémov fungovali na nových zariadeniach. Android 3.0 napriek množ-stvu noviniek, ktoré boli zavedené, je plne spätne kompatibilný s ap-likáciami vyvinutými pre staršie verzie systému [3].

24

7 Analýza a návrh

V tejto kapitole sa budeme venovat’ analýze systému OpenERP. Obo-známime sa s jeho webovým rozhraním a zameriame sa na to, akýmspôsobom je používaný obchodníkom pri vykonávaní svojej práce.

Zo získaných poznatkov následne zanalyzujeme akú funkciona-litu by mala naša aplikácia ponúknut’ a v akej forme tak, aby ostalaintuitívna pre užívatel’ov štandardného webového klienta.

Výstupom tejto analýzy a návrhu budú diagramy prípadov užitiaa tried, nachádzajúce sa v záverecnej casti kapitoly.

7.1 OpenERP 6.1

Obrazovka, ktorá sa zobrazí užívatel’ovi po prihlásení do systémusa dá každému osobitne nastavit’. Implicitne sa však zobrazí ponukadostupných castí systému – Predaj, Sklad, Úctovníctvo, Nastaveniaa d’alšie (vid’. 7.1). K presunu do inej casti systému môžu byt’ využitével’ké ikony v strede obrazovky, menšie ikony, ktoré sa nachádzajúnad nimi v navigacnom paneli alebo užívatel’ské skratky nad pane-lom.

Obr. 7.1: Úvodná obrazovka OpenERP [17]

25

7. ANALÝZA A NÁVRH

7.1.1 Zákazníci

Pri zobrazovaní záznamov v OpenERP sa využívajú prevažne dvadruhy pohl’adov – tzv. stromový (Obr. 7.2) a formulár (Obr. 7.3).

Stromový pohl’ad zobrazuje všetky záznamy v prehl’adnej tabul’-ke. V našom prípade je to tabul’ka so zákazníkmi, ktorej stlpce zo-brazujú najdôležitejšie údaje – meno, telefón, e-mail, mesto, krajinua priradeného obchodníka.

Obr. 7.2: OpenERP – Zákazníci [17]

Formulár naopak zobrazuje bližšie informácie o jednom konkrét-nom zázname – zákazníkovi. V tomto pohl’ade už nájdeme v poliachvšetky o nom dostupné informácie. Modrým podfarbením sú ozna-cené tie, ktoré sú povinné. Tento formulár sa používa pri vytváranínových zákazníkov, ale aj pri zobrazovaní a úprave tých existujúcich.

Pre užívatel’a je teda dôležitý prehl’adný zoznam zákazníkov s naj-dôležitejšími údajmi. A následne po výbere konkrétneho zákazníkazobrazenie jeho bližších, podrobnejších informácií. Pri pridávaní no-vého zákazníka do systému užívatel’ jednoducho vyplní všetky po-vinné a l’ubovol’né nepovinné polia a klikne na tlacítko Uložit’, ktoréje umiestnené v l’avom hornom rohu (Obr. 7.3).

26

7. ANALÝZA A NÁVRH

Obr. 7.3: OpenERP – Zákazníci, editovací formulár [17]

7.1.2 Produkty

Dalšou cast’ou systému, s ktorou prichádza obchodník do styku prisvojej práci, je správa produktov. V stlpcoch tabul’ky všetkých pro-duktov sú zobrazené: referencia (odkaz), názov, merná jednotka, typvýrobku, množstvo na sklade, dostupné množstvo, verejná cena, vý-robná cena a stav produktu (Obr. 7.4).

Pri upravovaní parametrov produktu alebo pri vytváraní nového,je štandardne využitý editovací formulár (Obr. 7.5). Je možné si všim-nút’, že povinných polí je pri produktoch viac. Pre užívatel’a to všaknie je nijak zásadná komplikácia, pretože okrem mena majú všetkypolia nastavené implicitné hodnoty.

Obchodník túto cast’ systému využíva väcšinou v prípadoch kedypotrebuje do OpenERP pridat’ nový produkt alebo upravit’ para-metre niektorého z už existujúcich. Pri vytváraní objednávok pristu-puje k produktom nepriamo cez previazané pole vo formulári objed-návky.

27

7. ANALÝZA A NÁVRH

Obr. 7.4: OpenERP – Produkty [17]

Obr. 7.5: OpenERP – Produkty, editovací formulár [17]

28

7. ANALÝZA A NÁVRH

7.1.3 Predaje

Predaje sú pre obchodníka najdôležitejšou cast’ou systému. Tu si vy-tvára, spravuje predajné objednávky a sleduje ich životný cyklus odnávrhu až po úspešné dokoncenie alebo zrušenie. Stav objednávky jezobrazený aj pri stromovom pohl’ade zároven s d’alšími základnýmiinformáciami ako sú kód ojednávky, dátum, zákazník, zodpovednýobchodník, suma bez dane, celková suma a informácie o tom ci je ob-jednávka vyfaktúrovaná a objednané produkty pripravené k odberu(Obr. 7.6).

Pri vytváraní novej predajnej objednávky sa obchodníkovi zo-brazí obdobný formulár ako v predchádzajúcich prípadoch (Obr. 7.7).Niektoré z polí sú predvyplnené implicitnými alebo vygenerovanýmihodnotami. Je potrebné doplnit’ zákazníka a samotné riadky objed-návky. Zákazník sa vyberá pomocou pol’a previazaného s doménouzákazníkov. Táto väzba užívatel’ovi poskytuje funkcie automatické-ho doplnenia, vyhl’adania alebo vytvorenia zákazníka.

Obr. 7.6: OpenERP – Predaje [17]

Riadky objednávky sa pridávajú tlacítkom vytvorit’ (Obr. 7.7).V okne, ktoré sa následne zobrazí, sa podobne ako zákazník vybe-

29

7. ANALÝZA A NÁVRH

rie tentokrát produkt a zvyšné údaje, ako napríklad cena, sa doplniaautomaticky (je však možné ich ešte upravovat’). Zadá sa už len po-žadované množstvo. Hotovú objednávku je následne možné potvr-dit’ – zmení sa tým jej stav.

Obr. 7.7: OpenERP – Predaje, editovací formulár [17]

Zákazníkov a produkty je možné kedykol’vek upravovat’. U ob-jednávok je to trochu zložitejšie. Upravovat’ je možné len tie pre-dajné objednávky, ktoré sú v stave Návrh (Draft). V prípade, že jenutné upravit’ schválenú objednávku, musí sa najprv zrušit’ a ná-sledne previest’ spät’ na Návrh.

7.2 Android OpenERP Client

Ako je možné vidiet’ na snímkach z webového rozhrania, OpenERPje komplexný a pomerne zložitý CRM-ERP systém. Pre jeho pohodlnéa prehl’adné používanie obchodníkom aj na mobilných zariadeniachje preto potrebné, aby bol pocet informácií zredukovaný na tie naj-dôležitejšie údaje danej casti systému.

Podobne ako v prehliadaci, ani v našej aplikácii sa dáta nebudúlokálne ukladat’ a všetky operácie budú vykonávané online, priamona serveri prostredníctvom XML-RPC protokolu.

30

7. ANALÝZA A NÁVRH

7.2.1 Prihlásenie

Po spustení aplikácie, rovnako ako vo webovom rozhraní, sa uží-vatel’ najprv prihlási (Obr. 7.8). Okrem štandardných údajov ako súužívatel’ské meno a heslo, vyplní informácie o pripojení – URL ad-resu servera, na ktorom beží OpenERP a názov databázy, do ktorejsa pripája.

Neustále vyplnovanie všetkých údajov pri každom prihlásení bybolo užívatel’sky výrazne neprívetivé. Preto aplikácia ponúkne mož-nost’ ich zapamätania.

Obr. 7.8: Klient – Uvítacia obrazovka, prihlásenie

Po prihlásení do systému sa užívatel’ovi naskytne podobný po-hl’ad ako pri využití webového klienta. Hlavné menu zobrazí ikonyzodpovedajúce dostupným castiam systému – Predaje, Zákazníci,Produkty (Obr. 7.9).

31

7. ANALÝZA A NÁVRH

Obr. 7.9: Klient – Hlavné menu

7.2.2 Zákazníci

Zoznam zákazníkov, ktorý sa zobrazí v tabul’ke pri vstupe do tejtocasti systému bude slúžit’ ako obdoba stromového pohl’adu vo we-bovom klientovi (Obr. 7.10). Pre jednoduchost’ a prehl’adnost’ budepotrebné zmenšit’ pocet vypísaných údajov. Zobrazené budú nako-niec meno zákazníka a jeho kontakty – telefón a e-mail, aby boli pripoužívaní jednoducho dostupné. Z webového klienta budú prevzatéaj umiestnenia tlacítok pre vytvorenie nového zákazníka vl’avo horea úpravu zákazníka vl’avo pri každom zázname.

Rovnako štandardne má fungovat’ aj zobrazenie detailu zákaz-níka kliknutím na jeho riadok v tabul’ke. V tomto zobrazení budedostupných viac informácií, nie však všetky, aby bola zachovaná pre-hl’adnost’.

Pri úprave údajov a vytváraní zákazníka bude použité rovnakérozloženie ako pri zobrazení jeho detailov, polia však budú editova-

32

7. ANALÝZA A NÁVRH

Obr. 7.10: Klient – Zákazníci

Obr. 7.11: Klient – Úprava zákazníka a kontaktu

33

7. ANALÝZA A NÁVRH

tel’né (Obr. 7.11). Pribudne len tlacítko na pridanie nového kontaktu,po stlacení ktorého sa zobrazí zadávací formulár. Pre editáciu exis-tujúceho kontaktu na zobrazenom kontakte užívatel’ dlhšie podržíprst. V tomto prípade sa zobrazí rovnaký formulár, ale s predvypl-nenými údajmi.

7.2.3 Produkty

Sekcia produktov bude z pohl’adu používania podobná predchádza-júcej casti. V úvodnej tabul’ke sa zobrazí meno produktu, dostupnémnožstvo a jeho cena – informácie najpotrebnejšie pre obchodníkapri svojej práci (Obr. 7.12).

Pri zobrazení konkrétneho produktu potom pribudnú d’alšie úda-je ako množstvo na sklade, základná merná jednotka alebo kód Ean13.

Obr. 7.12: Klient – Produkty

Úprava existujúceho a vytváranie nového produktu bude prebie-hat’ na obrazovke podobnej zobrazeniu jeho detailu (Obr. 7.13). Na-viac tam bude pridané tlacítko, pomocou ktorého sa spustí aplikácia

34

7. ANALÝZA A NÁVRH

Obr. 7.13: Klient – Úprava produktu

pre naskenovanie Ean kódu. Naopak, vynechané budú polia s množ-stvom dostupného produktu, pretože sa nedajú upravit’ priamo.

7.2.4 Predaje

Poslednou cast’ou aplikácie, s ktorou budú užívatelia pracovat’ jesekcia predaja. V zozname predajných objednávok budú zobrazenézákladné údaje – císlo objednávky, zákazník, dátum a celková suma(Obr. 7.14). Pri tomto zobrazení bude môct’ užívatel’ jednoducho roz-líšit’ rôzne stavy objednávok podl’a sfarbenia ich císla.

Vytváranie objednávok má kopírovat’ správanie webového kli-enta. Bude stacit’ preto zadat’ partnera a pridat’ riadky objednávky,ktoré bude možné pridat’ dvoma spôsobmi. Bud’ výberom zo zo-znamu (Obr. 7.15), alebo naskenovaním ciarového kódu produktu.

35

7. ANALÝZA A NÁVRH

Obr. 7.14: Klient – Predajné objednávky

Obr. 7.15: Klient – Úprava objednávky a pridávanie produktov

36

7. ANALÝZA A NÁVRH

7.2.5 Vyhl’adávanie

Môžeme si všimnút’, že pri každom stromovom pohl’ade vo webo-vom rozhraní je aj cast’ pre vyhl’adávanie v danom zobrazení. Je todôležitá a casto využívaná cast’ systému, preto by táto funkcionalitanemala chýbat’ v našej aplikácii. V hornej casti zobrazení produktov,zákazníkov a predajných objednávok sa bude nachádzat’ zadávaciepole s tlacítkom pre vyhl’adanie. Po jeho stlacení sa v tabul’ke ná-sledne zobrazia zodpovedajúce výsledky (Obr. 7.16).

Obr. 7.16: Klient – Vyhl’adanie produktov

7.3 Diagramy prípadov užitia a tried

Z analýzy využívania systému OpenERP obchodníkom sme vytvo-rili Use Case diagram – digram prípadov užitia (Obr. 7.17). Názornenám zobrazuje komunikáciu užívatel’a, obchodníka so systémom.

37

7. ANALÝZA A NÁVRH

Pocas následného návrhu našej aplikácie vznikli diagramy tried,rozdelené podl’a jednotlivých castí aplikácie – produkty (Obr. 7.18),zákazníci (Obr. 7.19) a predaje (Obr. 7.20). Zobrazujú budúcu štruk-túru systému a vzt’ahy medzi jednotlivými triedami.

Obr. 7.17: Diagram prípadov užitia

Obr. 7.18: Diagram tried – produkty

38

7. ANALÝZA A NÁVRH

Obr. 7.19: Diagram tried – zákazníci

Obr. 7.20: Diagram tried – predaje

39

8 Implementácia

Naša aplikácia bola implementovaná inkrementálne po jednotlivýchcastiach – zákazníci, produkty a predaje. Diagramy tried k jednotli-vým castiam je možné nájst’ v predchádzajúcej kapitole – Obr. 7.19,7.18 a 7.20.

Pocas vývoja bola testovaná na virtuálnych zariadeniach, ktoréposkytuje emulátor vývojového prostredia Android SDK [7] ale aj nafyzických, konkrétne na HTC Desire X a Sony Ericsson Xperia NeoMT15i.

8.1 Použité knižnice

Pri implementácii našej aplikácie boli použité aj tri externé knižnice.Dve z nich zabezpecujú komunikáciu s OpenERP serverom pomo-cou protokolu XML-RPC a tretia slúži na sprostredkovanie aplikáciena skenovanie kódov Ean13.

8.1.1 Android-xmlrpc

Komponent, ktorý zabezpecuje komunikáciu s OpenERP serveromcez protokol XML-RPC je jednoduchá, ale kompletná knižnica preplatformu Android – android-xmlrpc.1

Jej použitie je pomerne jednoduché. Najskôr si nainicializujemeklienta a následne na nom zavoláme metódu call s parametrami, ktoréobsahujú názov procedúry a jej parametre.

1 XMLRPCClient client = new XMLRPCClient("http://your.url.com");2

3 int intResult = (Integer) client . call ("testFunction1", 1, 3) ;4 boolean boolResult = (Boolean) client . call ("testFunction2", param1, 4, 10) ;5 String strResult = (String) client . call ("testFunction3", " test string") ;

1. Knižnica android-xmlrpc je dostupná na stránke http://code.google.com/p/android-xmlrpc/

40

8. IMPLEMENTÁCIA

8.1.2 Android-openerp

Android-xmlrpc využíva knižnica android-openerp v triede Open-ErpConnect, ktorá slúži ako konektor k OpenERP serveru pre zaria-denia Android.2 Je dostupná ako open source pod licenciou GNUGPL.

Niektoré z funkcií, ktoré poskytuje android-openerp:

• Prihlásenie – Zabezpecuje ho funkcia connect. Pri jej zavolanísa vytvorí spojenie, ktoré sa následne používa pocas behu ap-likácie.

1 OpenErpConnect.connect(2 mServer,3 mPort,4 mDatabase,5 mUserName,6 mPassword );

• Vyhl’adávanie – Pre zobrazenie prvkov systému, napr. produk-tov, je potrebné najprv ich vyhl’adat’. Funkcia search nájdezoznam ID zodpovedajúcich záznamov.

1 connection.search(2 mModel,3 mCount,4 mOffset,5 mLimit,6 mOrder,7 mReverseOrder,8 mConditions );

• Cítanie – Po získaní zoznamu ID záznamov môžeme zavolat’funkciu read pre nacítanie hodnôt ich polí (názov produktua pod.).

1 connection.read(2 mModel,3 mIds,4 mFields );

2. https://github.com/zikzakmedia/android-openerp

41

8. IMPLEMENTÁCIA

• Všeobecné volanie – Používa sa ak je potrebné zavolat’ metóduv systéme, ktorú nepokrýva žiadna z ponúkaných funkcií.

1 connection.call (2 mModel,3 mMethod,4 mParams);

8.1.3 ZXing

ZXing (Zebra Crossing) je open source knižnica napísaná v Jave, ktoráslúži na spracovanie ciarových kódov v rôznych formátoch (1D aj2D). Jej úcelom je za využitia vstavanej kamery zariadenia naskeno-vat’ kód a následne ho dekódovat’ bez nutnosti komunikácie so ser-verom. Medzi podporované formáty patria napríklad EAN-8, EAN-13, UPC-A, UPC-B, QR Code, Code 39 a d’alšie.3

V našej aplikácii využívame komponentu android-integration, kto-rá slúži na prepojenie s aplikáciou na cítanie kódov Barcode Scannervyvinutou taktiež tímom ZXing.

8.2 Implementacné detaily aplikácie

Zdrojový kód aplikácie je rozdelený do niekol’kých balíkov podl’afunkcionality.

• Tri balíky, ktoré obsahujú externé knižnice, popísané v pred-chádzajúcej casti:com.google.zxing.integration.androidorg.xmlrpc.androidcz.cloudtech.openerpclient.connection

• Dalšie tri balíky obsahujú triedy rozdelené podl’a jednotlivýchmodulov:cz.cloudtech.openerpclient.customerscz.cloudtech.openerpclient.productscz.cloudtech.openerpclient.sales

3. Kompletný zoznam podporovaných kódov a viac informácii o ZXing je možnénájst’ na http://code.google.com/p/zxing/

42

8. IMPLEMENTÁCIA

• Balík obsahujúci triedy zodpovedné za úvodnú a prihlasovaciuobrazovku:cz.cloudtech.openerpclient

• V poslednom balíku sú umiestnené triedy, ktoré zabezpecujúkomunikáciu so serverom. Ich funkciu si bližšie popíšeme v na-sledujúcej casti.cz.cloudtech.openerpclient.async

8.2.1 AsyncTask

Komunikácia so serverom býva casto casovo nárocná. Ak by prebie-hala na hlavnom vlákne aplikácie, na ktorom beží aj správa grafic-kého rozhrania, malo by to za následok mrznutie aplikácie. Androidmá proti nereagujúcim aplikáciám ochranu a po urcitom case zobrazívarovný dialóg.

Aby sme sa takémuto správaniu vyhli, využívame v našej apliká-cii triedu AsyncTask. Casovo nárocné operácie sme implementovaliv jej metóde doInBackground(). Pre následné spustenie vykoná-vania v samostatnom vlákne treba vytvorit’ inštanciu triedy, ktorározširuje AsyncTask a zavolat’ na nej metódu execute().

1 AsyncTask aTask = new AsyncCustomerSearchRead(2 params).execute();

Pocas jej behu je potrebné aby sme nejakým spôsobom oznámiliužívatel’ovi, že aplikácia nezamrzla a stále pracuje. Využívame nato funkcionalitu, ktorú nám poskytuje ActionBar – neurcitý indikátorpriebehu (Indeterminate Progress Bar).

1 requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);2 setProgressBarIndeterminateVisibility(true) ;

Ked’ doInBackground() ukoncí svoje vykonávanie, tak sa spus-tí metóda onPostExecute(), v ktorej môže prebiehat’ následnéspracovanie výsledkov a môže pracovat’ aj s užívatel’ským rozhra-ním. Na tomto mieste taktiež vypneme indikátor priebehu nastave-ním viditel’nosti na false.

43

8. IMPLEMENTÁCIA

8.2.2 Zobrazenie dát

Dáta získané zo servera pomocou asynchrónnych volaní následnepotrebujeme zobrazit’ užívatel’ovi. V rôznych castiach systému ichzobrazujeme pomocou rozlicných tried API.

Pri zobrazení detailov záznamu používame jednoduché textovépolia – TextView. V prípadoch, kedy potrebujeme záznam upravo-vat’ používame editovatel’né polia – EditText, zaškrtávacie polícka– CheckBox a rolovacie ponuky – Spinner. Pri zobrazovaní kontak-tov zákazníka využívame viacstránkové zobrazenie – ViewFlipper,ktorého reakcie na gestá sú definované v metóde onFling() v triedeCustomerDetail. Pomocou nich sa medzi záznamami užívatel’ po-hybuje.

8.2.3 Rotácia zariadenia

Pri otácaní mobilného zariadenia zo zvislej do vodorovnej polohyalebo naopak sa mení rozloženie obrazovky. Môže nastat’ situácia, ženiektoré prvky zobrazenia nie sú v obidvoch rozvrhnutiach rovnakodobre dostupné. Preto Android ponúka možnost’ ako mat’ pre každúz pozícií vlastné rozloženie.

Obr. 8.1: Zákazníci – Pôvodné rozloženie

44

8. IMPLEMENTÁCIA

Obr. 8.2: Zákazníci – Upravené rozloženie

Bežne sa XML súbory definujúce rozloženie jednotlivých obrazo-viek ukladajú do adresára res/layout/. Ak však chceme aby sapre zobrazenie vo vodorovnej polohe použil iný súbor umiestnimeho do adresára res/layout-land/ s rovnakým názvom. Výsledoksi môžeme porovnat’ na obrázkoch 8.1 a 8.2.

Problémy s rotáciou

Pri implementácii sa nám vyskytli aj isté problémy s rotáciou zaria-denia. Konkrétne išlo napríklad o prípad, ked’ sa pri zobrazení dia-lógu pre výber produktu do objednávky zariadenie otocilo a apli-kácia následne havarovala. Bolo to spôsobené tým, že sme sa triedeDialogFragment snažili predat’ parametre pret’ažením konštruk-tora. Android však pri rotácii DialogFragment znicí a znovu ob-noví. Volá pri tom bezparametrový konštruktor a k predaným para-metrom sa už nemá ako dostat’.

Riešením bolo zmenit’ spôsob vytvárania dialógu. Bežne sa vy-tvára v metóde onCreateDialog triedy rozširujúcej DialogFrag-ment. V aplikácii sa následne po inicializácii zobrazí pomocou me-tódy show(). Pre zobrazenie dilógu bez predávania parametrov ten-to spôsob funguje správne.

45

8. IMPLEMENTÁCIA

1 NoProductFoundDialog productNotFound = newNoProductFoundDialog();

2 productNotFound.show(getFragmentManager(), "no_product_found");

Ak však chceme využit’ aj parametre musíme tento postup upravit’pridaním statickej metódy newInstance(), ktorá dialóg nainicia-lizuje, parametre uloží do statickej premennej a vráti. Na vrátenomdialógu už môžeme zavolat’ metódu show() ako v predchádzajú-com prípade.

1 private static Object[] mParams;2 public static SalesOrderProductDialog newInstance(Object[] params) {3 SalesOrderProductDialog d = new SalesOrderProductDialog();4 mParams = params;5

6 return d;7 }

1 SalesOrderProductDialog productDialog =SalesOrderProductDialog.newInstance();

2 productDialog.show(getFragmentManager(), "find_product");

8.2.4 Lokalizácia

Lokalizácia je vyriešená obdobným spôsobom ako rozloženia akti-vít. Aplikácii je poskytnutý implicitný súbor s textovými ret’azcamiumiestnený v adresári res/values/strings.xml. Tento súbor jepoužitý ak je vyžadovaný jazyk, ktorý aplikácia nepodporuje. Sú-bory pre d’alšie jazyky sú uložené v priecinkoch oznacených danýmkódom jazyka ako napríklad res/values-en/strings.xml, ale-bo res/values-cs/strings.xml a d’alšie.

V súboroch strings.xml sa nachádzajú záznamy v tvare <stringname=”id”>Retazec</string>. V kóde sa potom na miestach,kde by sa bežne použil textový ret’azec, použije odkaz R.string.id.

Použitý jazyk sa vyberá na základe nastavenia telefónu.

46

8. IMPLEMENTÁCIA

8.2.5 Aktivity a fragmenty

Naša aplikácia nebola primárne navrhovaná pre podporu tabletov,napriek tomu cast’ systému, ktorá je venovaná zákazníkom využívatúto technológiu. Výsledok je možné vidiet’ na nasledujúcom ob-rázku (8.3), kde je oproti smartfónu naraz zobrazený zoznam zákaz-níkov aj detail jedného z nich.

Obr. 8.3: Zákazníci – Zobrazenie na tablete

47

9 Záver

Ciel’om tejto diplomovej práce bolo navrhnút’ a implementovat’ mo-bilného klienta pre CRM-ERP systém OpenERP na mobilné zariade-nia s operacným systémom Android. Výsledná aplikácia má poskyt-nút’ obchodníkom, ktorí pracujú so systémom OpenERP možnost’využívat’ jeho funkcie aj v teréne, mimo svojej kancelárie.

Po analýze a návrhu sa nám úspešne podarilo aplikáciu imple-mentovat’ a je pripravená na testovaciu prevádzku v reálnych pod-mienkach a na následné nasadenie do ostrej prevádzky. Môže takplnit’ úcel, pre ktorý bola navrhnutá.

Ako každý program aj naša aplikácia má potenciál pre d’alší vý-voj a je potrebné, aby ho v budúcnosti využila. Jednou z možnostíkam smerovat’ napredovanie našej aplikácie je jej optimalizácia prevyužitie na tabletoch. Tie zaznamenávajú výrazný nárast v ich po-užívaní, preto by bolo vhodné zamerat’ sa na túto oblast’. V prvomrade by bolo treba navrhnút’ nové rozloženia obrazoviek, ktoré byboli primerane prispôsobené vel’kým obrazovkám tabletov. Využiliby sa k tomu fragmenty vo výraznejšej miere ako v aktuálnej verzii.Dalej bude potrebné upravit’ aj ostatné grafické prvky ako sú ikony,dotykové ovládacie prvky a aj samotný text. Ich vel’kosti musia byt’adekvátne upravené aby zodpovedali vel’kostiam obrazoviek table-tov.

OpenERP, ako väcšina CRM a ERP systémov, má tú vlastnost’, žeje modulárny. Každá firma má tieto systémy upravené podl’a vlast-ných potrieb. Preto je dôležité aby aj naša aplikácia bola pri použitíkonkrétnym klientom vhodne upravená, prípadne doplnená o d’al-šie moduly, ak to bude potrebné. Z pohl’adu vývoja aplikácie to zna-mená, že sa budú musiet’ zobrazované polia – napr. v detaile pro-duktu – upravit’ podl’a požiadaviek zákazníka. Iné informácie o pro-duktoch si žiada výrobná firma a iné napríklad špedicná. V prípade,že zákazník bude používat’ v OpenERP d’alší modul a bude chciet’,aby bol taktiež dostupný aj cez nášho klienta, bude potrebné ho do-programovat’. Všetky casti našej aplikácie sú samostatné a nezávislé,preto nebude problém obdobne ho pridat’.

Pocas implementácie sa taktiež vyskytlo niekol’ko menších kom-plikácií. Väcšinu z nich sa však podarilo úspešne vyriešit’. Najcas-

48

9. ZÁVER

tejšie spôsobovala problémy rotácia zariadenia. Jedným z použitýchriešení je napríklad docasné uzamknutie rotácie pocas behu „kritic-kých” metód.

Coskoro sa naša aplikácia zacne používat’ v reálnom prostredíobchodnej firmy a bude sa tak moct’ d’alej vyvíjat’ a zlepšovat’.

49

A Príloha – CD

- Text práce

- Zdrojové kódy aplikácie

- Inštalacný .apk balík s aplikáciou

50

Literatúra

[1] Bryan Bergeron. Essentials of CRM : A Business Guide to Cus-tomer Relationship Management. John Wiley & Sons, Inc., 2002.

[2] Android Developers. Dashboard. online,2013 [cit. 20 Mája 2013]. Dostupné na adrese:http://developer.android.com/about/dashboards/index.html.

[3] Android Developers. Honeycomb. online,2013 [cit. 20 Mája 2013]. Dostupné na adrese:http://developer.android.com/about/versions/android-3.0-highlights.html.

[4] Jill Dyché. The CRM Hanbook: A Business Guide to CustomerRelationship Management. Addison-Wesley, 2004.

[5] Ben Elgin. Google buys android for its mobile ar-senal. online, 2005 [cit. 20 Mája 2013]. Dostupnéna adrese: http://www.businessweek.com/stories/2005-08-16/google-buys-android-for-its-mobile-arsenal.

[6] Gruman Galen. Is open source the answer to erp? CIO, 20(9):24,2007.

[7] Marko Gargenta. Learning Android. O’Reilly Media, Inc., 2011.

[8] Barton J. Goldenberg. CRM Automation. Prentice Hall PTR,2003.

[9] Barton J. Goldenberg. CRM in Real Time. CyberAge Books,2008.

[10] Eliotte Rusty Harold and W. Scott Means. XML in a Nutshell,Third Edition. O’Reilly Media, Inc., 2004.

[11] Peter Jones and John Burger. Configuring SAP ERP Financialsand Controlling. Wiley Publishing, 2009.

51

A. PRÍLOHA – CD

[12] TVision Technology Ltd. Which microsoft dy-namics erp solution is for me? online, 2012[cit. 20 Mája 2013]. Dostupné na adrese:http://www.tvisiontech.co.uk/whitepaper_erp_solutions.html.

[13] Mark Lutz. Programming Python. O’Reilly Media, Inc., 2011.

[14] Michael Overly. The open source Handbook. Pike & Fisher, Inc.,2003.

[15] Fabien Pinckaers, Geoff Gardiner, and Els Van Vossel. OpenERP, a modern approach to integrated business management.Tiny SPRL, 2011.

[16] Andries L. Pretorius. Compiere 3. Packt Publishing, 2010.

[17] OpenERP s.a. Openerp 6.1, 2013 [cit. 20 Mája 2013].http://v6.openerp.com/.

[18] Simon St.Laurent, Joe Johnston, and Dumbill Edd. Program-ming Web Services with XML-RPC. O’Reilly & Associates, Inc.,2001.

[19] Astidian Systems. Compiere mobile. online,2010 [cit. 20 Mája 2013]. Dostupné na adrese:http://astidian.com/blog///media/blogs/blog/Compiere

[20] Thomas Wailgum. Erp definition and solutions. on-line, 2008 [cit. 20 Mája 2013]. Dostupné na adrese:http://www.cio.com/article/40323/ERP_Definition_and_Solutions.

52