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

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

Jan 29, 2017

Download

Documents

hoangtuyen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mobilná aplikácia pre CRM-ERP systém OpenERP

MASARYKOVA UNIVERZITAFAKULTA INFORMATIKY

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

CRM-ERP systém OpenERP

DIPLOMOVÁ PRÁCA

Miroslav Sliacky

Brno, 2013

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

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

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

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

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

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

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

Kl’úcové slová

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

v

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7. ANALÝZA A NÁVRH

Obr. 7.4: OpenERP – Produkty [17]

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

28

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

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

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

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

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

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

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

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

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

7. ANALÝZA A NÁVRH

Obr. 7.10: Klient – Zákazníci

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

33

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

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

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

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

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

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

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

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

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

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

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

7. ANALÝZA A NÁVRH

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

Obr. 7.20: Diagram tried – predaje

39

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

A Príloha – CD

- Text práce

- Zdrojové kódy aplikácie

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

50

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

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

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

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