MOBILE CRM. Stage dossier. Dwight Kerkhove. Pieter Van Hamme. Departement Bedrijfsinformatie. Bedrijf: ESC bvba. Stagementor: Benny Van Hyfte



Vergelijkbare documenten
IMAP-handleiding Bookinto

Gebruikershandleiding

Technische nota AbiFire Rapporten maken via ODBC

Beschrijving webmail Enterprise Hosting

Er zijn diverse andere software platformen en providers die werken met SIP, maar in dit voorbeeld gaan we uit van de volgende software:

Handleiding Webapplicatie Robin

Gebruikers handleiding Brugge Printshop webshop

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50%

Quickstart. Browser instellingen

Enghouse Interactive MySupport Web Portal. Gebruikershandleiding Klant

Temperatuur logger synchronisatie

OTYS in Microsoft Outlook OTYS Recruiting Technology. Versie 2.3

HANDLEIDING IMPACTXRM MOBILE. IMPACTXRM NV Zuidleiestraat 12/1b 9880 Aalter 0032 (50) Bijgewerkt 29/07/2015 Versie 1.2.

HANDLEIDING DOMEINREGISTRATIE EN DNS- BEHEER

Cloud2 Online Backup - CrashplanPRO

2 Eisenanalyse. 2.1 Functionele eisen het UseCaseDiagram

Elektronisch factureren

INSTALLATIE EXCHANGE CONNECTOR

Installatiehandleiding Business Assistent

Mamut Business Software. Introductie. Mamut Enterprise Travel CRM

Quick start handleiding versie 1.0

Technische nota AbiFire5 Rapporten maken via ODBC

Fleet Pack Scan2FleetPack

How To Do Gebruikersbeheer mbconnect24 V2

Datum 15 juni 2006 Versie Exchange Online. Handleiding voor gebruiker Release 1.0

Service Pack notes CRM SPE SP3

v.1.11 Verenigingenweb handleiding Genkgo koppeling: Exact Online

Handleiding helpdesk. Datum: Versie: 1.0 Auteur: Inge van Sark

FONDS VOOR ARBEIDSONGEVALLEN CORFLAT II. Handleiding

Installatiehandleiding Business Assistent

PROXSYS Spamfilter. Gebruikers Handleiding Quarantine Webinterface. Pagina 1 van 1. Auteur: Marcel van Leur. Datum: 31 oktober Versie: 2.

Op basis van klanten-,product-,barcodegegevens wordt automatisch een barcode document aangemaakt

Handleiding Digitaal Aanvraagformulier

1 Inleiding. 3 Handmatig... invoeren zaken basis 4 Verwerken... zaken 5 Afhandelen... van zaken. 7 Uitgebreidere... zaak opties

ZorgMail Secure

Portal Handleiding voor de gebruiker 4.8

Taxis Pitane Transparantie. Censys BV Eindhoven

HRM-Reviews Reviews Handleiding voor PZ

Start de applicatie op om naar het inlogscherm te gaan. Onthoudt mijn gegevens

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april Versie 2.1.0

Factuur Beheer. Gebruikers handleiding

Handleiding Activiteiten Microsoft CRM 2016

Handleiding bij het gebruik van het bibsource portaal

Handleiding voor de applicatiebeheerder van Business Assistent

Inhoudsopgave web2work Pagina 1 van 16

Nieuw in Mamut Business Software en Mamut Online

Met deze module heeft u de mogelijkheid om gemakkelijk, snel en efficiënt uw documenten als naslag in Unit 4 Multivers te koppelen.

Easy Business Tools - Multi-user module

Installatie handleiding Reinder.NET.Optac

Office 365 gebruiken op uw iphone of ipad

HANDLEIDING DMS Plugin Installatie, configuratie & werking

5. Documenten Wat kan ik met Documenten? 1. Over LEVIY. 5.1 Documenten terugvinden Uitleg over vinden van documenten.

Cliënten handleiding PwC Client Portal

Handleiding bij de DWO (digitale wiskunde oefenomgeving)

PhPlist Gebruikers Handleiding

AUTOMATISERING. Act! WerkbonApp. De koppeling tussen het CRM systeem Act! en de Werkbon applicatie WerkbonApp.

Handleiding Webapplicatie Robin

Web applicatie Tolk- en vertaalaanvragen: Handleiding voor aanvragers SVBBO

Installatiehandleiding. Facto minifmis

Handleiding Mijn Kerk

SCENARIO ADVIES INSTALLATIEHANDLEIDING. Versie 1.3

Handleiding. Opslag Online. voor Android. Versie februari 2014

Net2WebServer. Gebruikers handleiding

HANDLEIDING TEAMPAGINA S MIJNCLUB.NU

Handleiding werkwijze e-bestel site Smulders

Gebruikers en groepen configureren

Handleiding Kleos ipad. oktober 2013

HANDLEIDING ONEDRIVE IN OFFICE365

Boutronic. MSSQL Express server voor Log functie. >> Installatie handleiding << 23 april 2014, versie 1.0d

Documentatie Handleiding Hunter-CRM Desktop v1.0

Installatiehandleiding SCENARIO ADVIES. Oktober Versie 1.3

Inleiding. Wil je hier meer over weten klik dan op de onderstaande link voor het introductie filmpje.

Inleiding MyUnifiedPost: verschillende inboxen De standaard MyUnifiedPost-inbox van het reisagentschap...4

Klachtenbeheer (Intranet)

Installatie SQL Server 2012

Handleiding gebruik Citymail

Installatiehandleiding Cane Webservices.nl Integratie

Service Pack notes CRM SPE SP4

Quick reference Smartflow App

Handleiding TAPI Driver

Handleiding installatie Rental Dynamics

Met deze module heeft u de mogelijkheid om gemakkelijk, snel en efficiënt uw documenten als naslag in Unit 4 Multivers te koppelen.

Startershandleiding ProCheck+

Kluwer Office. DMS Basic Medewerker. Software.kluwer.be

v.1.9 Genkgo Handleiding Genkgo koppeling: Exact Online

Snel op weg met webworxx

Table of contents 2 / 15

Installatie SQL Server 2014

Handleiding Remote Engineer Client

ChainWise digitaal factureren

1 Algemeen Inloggen in Basecone Aanleveren van documenten Commentaar toevoegen aan documenten Autoriseren...

Factuur2King Multi User release notes

Installatiehandleiding TiC Narrow Casting Manager

Gebruikershandleiding MobiDM

Handleiding 4CIS Synchro

Opstarten van de GRATIS facturatiemodule

Handleiding IBestel. Inloggen. Startpagina

BRIGHT-NET INSTALLATIE HANDLEIDING

Handleiding OnLine voor de Opdrachtgever Versie 3.1

Transcriptie:

Departement Bedrijfsinformatie MOBILE CRM Stage dossier Dwight Kerkhove Pieter Van Hamme Bedrijf: ESC bvba Toegepaste Informatica Stagementor: Benny Van Hyfte Stagebegeleider: Johan Van Schoor Academiejaar 2008-2009

Stagedossier G15 Mobile CRM 2 Inhoudstabel Inhoudstabel... 2 Voorwoord... 8 Deel 1: Inleiding... 9 1 Voorstelling bedrijf en activiteiten... 9 2 Beschrijving van de opdracht... 10 3 Beschrijving van het huidige systeem... 11 4 Terminologie... 13 4.1 CRM Server... 13 4.2 Entiteit... 13 4.3 View van een entiteit... 13 4.4 Form van een entiteit... 13 4.5 Meta Data van de Beheersapplicatie/Mobile Server... 13 4.6 CRM Data... 13 Deel 2: Analyse... 14 1 Use Cases Beheersapplicatie... 14 1.1 Beheren van Entiteiten... 16 1.2 Beheren van Profielen... 17 1.3 Beheren van Users... 19 1.4 Beheren van Lay-out... 21 1.5 Beheren van Forms... 23 1.6 Beheren van Views... 25 1.7 Beheren van Filters... 27 1.8 Beheren van Devices... 29 2 Use cases Mobiele Applicatie... 30 2.1 Applicatie opstarten... 31 2.2 Synchroniseren... 32 2.3 Entiteiten mobiel gebruiken... 34 2.4 Oplossen van conflicten... 36 2.5 Beheren van instellingen... 38

Stagedossier G15 Mobile CRM 3 Deel 3: Ontwerp... 39 1 Structuur... 39 1.1 Mobile Client... 39 1.2 Mobile Server... 40 1.3 CRM Server... 41 2 Structuur in detail... 42 2.1 GUI... 42 2.2 Domain (Business Logic Layer)... 43 2.3 Data Access Layer (Persistentie laag)... 43 3 Structuur Beheersapplicatie... 45 3.1 GUI... 45 3.1.1 DomainAccessablePage... 46 3.1.2 GuiForm, GuiTab, GuiView, GuiFilter, GuiConditieGroep, GuiConditie,GuiAttribuut 46 3.2 Domein laag... 47 3.2.1 DomainManager... 48 3.2.2 UserViewController... 48 3.2.3 CRMController... 49 3.2.4 SubDomainManagers... 49 3.2.5 DomainObject... 50 3.2.6 TrackedDomainObject... 50 3.2.7 Domein Objecten: Entiteit, Attribuut, View, Form,... 50 3.2.8 AbstractServerData... 51 3.2.9 ServerMetaData en ServerData... 52 3.2.10 SharedServerProvider... 52 3.2.11 ServerProvider, MetaServerProvider... 52 3.2.12 AbstractSyncServerItem, SyncServerDataItem, SyncServerMetaItem... 53 3.2.13 DBEntity... 53 3.2.14 SyncObjectSerializer... 53 3.3 SyncFramework (server)... 54 3.4 DAL laag... 55 3.4.1 MobileSettings Dataset... 55 3.4.2 SyncTracking Dataset... 55 3.4.3 CRMObjectConversion... 55 3.4.4 CRMMapper, CRMMetaMapper... 56

Stagedossier G15 Mobile CRM 4 3.5 Database structuur... 57 3.5.1 Mobile Settings... 57 3.5.2 SyncTracking Database... 58 3.6 Sequentie diagrammen... 59 3.6.1 Beheer van entiteiten... 59 3.6.2 Beheer van profielen... 60 3.6.3 Beheer van users... 61 3.6.4 Beheer van lay-out... 62 3.6.5 Beheren van forms... 63 3.6.6 Beheren van filters... 65 3.6.7 Beheren van devices... 66 4 Mobiele Applicatie... 67 4.1 GUI... 67 4.1.1 OrientationAwareForm... 68 4.1.2 MobileCRMForm... 68 4.1.3 Entiteiten Overzicht (frmentiteitenoverzicht)... 68 4.1.4 AbstractFrmView... 69 4.1.5 AbstractPage, ViewPage... 69 4.1.6 Records van entiteit (frmentiteitview), Selecteren van een lookup (frmlookup)... 70 4.1.7 FormPanel... 71 4.1.8 Details van een record (frmentiteitform)... 72 4.1.9 Instellingen (frmsettings)... 72 4.1.10 frmsynchronisatie, AbstractLogListener, DataLogListener, MetaLogListener... 73 4.1.11 Conflicten, Details van een conflict (frmconflictdetails), ConflictPanel... 73 4.1.12 ResourceManager, OldestCacheFirst... 74 4.1.13 OldestCacheFirst... 74 4.2 Domein laag... 75 4.2.1 DomainController... 75 4.2.2 SynchronizationController... 75 4.3 DAL laag... 76 4.3.1 MetaMapper... 77 4.3.2 EntiteitMapper, AttribuutMapper, FormMapper, FilterMapper, ViewMapper... 77 4.3.3 DynamicTableMapper... 78 4.3.4 DataMapper... 78

Stagedossier G15 Mobile CRM 5 4.3.5 DynamicDataMapper... 79 4.3.6 LookupMapper... 80 4.3.7 ConflictMapper... 80 4.3.8 DBEntity... 80 4.3.9 DAL Objecten... 81 4.3.10 ClientData, MetaClientData... 81 4.3.11 ClientProvider, MetaClientProvider... 82 4.3.12 AbstractSyncClientItem, SyncClientDataItem, SyncClientMetaItem... 82 4.3.13 SharedSyncObjectSerializer, SyncObjectSerializer, MetaSyncObjectSerializer... 83 4.4 SyncFramework (client)... 83 4.5 Database... 84 4.5.1 Meta Data tabellen... 84 4.5.2 CRM Data... 85 4.6 Sequentie Diagrammen... 86 4.6.1 Applicatie opstarten... 86 4.6.2 Entiteiten mobiel gebruiken... 87 4.6.3 Oplossen van conflicten... 88 4.6.4 Beheren van instellingen... 89 5 Synchronization Framework... 90 5.1 Basisstructuur... 90 5.1.1 SyncController... 91 5.1.2 ISyncClientProvider... 91 5.1.3 ISyncServerProvider... 92 5.1.4 AbstractClientProvider, AbstractServerProvider... 93 5.1.5 IClientData... 94 5.1.6 IServerData... 94 5.1.7 ISyncItem, ISyncClientItem, ISyncServerItem... 95 5.1.8 ISyncHeaderItem, ISyncUpdateItem, ISyncDateItem... 96 5.1.9 Conflict... 96 5.2 Synchronisatie over TCP... 97 5.2.1 ServerProviderTCPClient... 97 5.2.2 ServerTCPListener... 98 5.2.3 SyncWorker... 98 5.2.4 EncryptedBinaryReader,EncryptedBinaryWriter... 99

Stagedossier G15 Mobile CRM 6 5.2.5 AbstractSyncObjectSerializer... 99 5.2.6 Crypto... 100 5.3 Sequentie Diagram... 100 5.3.1 Start van de synchronisatie... 100 5.3.2 Updaten van gegevens op de client... 101 5.3.3 Updaten van de gegevens op de server... 101 Deel 4: Afwerking en Testen... 103 1 Enkele significante scherm lay-outs... 103 1.1 Beheersapplicatie... 103 1.2 Mobiele applicatie... 104 2 Testen... 105 2.1 Testverslag... 105 2.1.1 Beheersapplicatie... 105 2.1.2 Mobiele Applicatie... 109 2.2 Unit testen... 113 2.2.1 Beheersapplicatie... 113 2.2.2 Synchronization Framework... 113 3 Handleiding... 115 3.1 Deel I: Beheersapplicatie... 115 3.1.1 Beheer Entiteiten... 116 3.1.2 Beheer Profielen... 117 3.1.3 Beheer Profiel Details... 118 3.1.4 Beheer Users... 119 3.1.5 Beheer User Details... 120 3.1.6 Beheer Devices... 121 3.1.7 Beheer Lay-out Overzicht... 122 3.1.8 Beheer Lay-out Entiteit... 123 3.1.9 Beheer Lay-out View... 124 3.1.10 Beheer Lay-out Attributen... 125 3.1.11 Beheer Lay-out Form... 126 3.1.12 Beheer Lay-out Relaties... 127 4.1.1 Beheer Lay-out Filter... 128 4.1.2 Beheer Lay-out Filter Conditie... 129

Stagedossier G15 Mobile CRM 7 4.2 Deel II: De mobiele applicatie... 130 4.2.1 Inleiding... 130 4.2.2 Set-up... 130 4.2.3 Beginscherm... 131 4.2.4 Weergave van een gekozen entiteit... 131 4.2.5 Formulier van een record... 132 4.2.6 Instellingen... 134 4.2.7 Synchronisatie... 134 4.2.8 Conflicten... 135 4.3 Problemen, verbeteringen en oplossingen... 136 4.3.1 Attributen van entiteiten rechtstreeks van de CRM server lezen... 136 4.3.2 Toestellen hangen vast aan een gebruiker... 136 4.3.3 Globale filter... 137 4.3.4 Support voor andere talen... 137 4.3.5 Log pagina voor de beheersapplicatie... 137 4.3.6 Mijn contactpersonen, activiteiten, bij filters kunnen instellen... 137 5 Slotwoord... 138 6 Bibliografie... 139 Deel 5:Bijlagen... 140 1 Weekverslagen... 140 2 Figurenlijst... 152

Stagedossier G15 Mobile CRM 8 Voorwoord Onze stage was een interessant project voor ons omdat het geen aanpassing of migratie project was, maar een stand-alone uitbreiding op het Microsoft Dynamics CRM systeem. We moesten dus van nul beginnen en een volledige analyse en ontwerp opstellen, daarna de 2 grote delen (beheersapplicatie en mobile applicatie) schrijven en die dan verbinden met een synchronisatie module. Daar kwam heel wat bij kijken en is zeker 1 van de complexere stages uit de stagelijst die we kregen, wat ons alleen maar trotser maakt op het eindresultaat. We hebben bij dit project ook veel bijgeleerd qua ontwerp en technieken om een stabiele basis te implementeren. We hopen dat dit dossier u een beter beeld zal geven van de werking van het project en dat u er veel plezier mag aan beleven. We zouden ook graag ESC bedanken voor deze leerrijke ervaring. En in het bijzonder onze stagementor Benny Van Hyfte. Dwight Kerkhove Pieter Van Hamme

Stagedossier G15 Mobile CRM 9 Deel 1: Inleiding 1 Voorstelling bedrijf en activiteiten Wij hebben stage gelopen bij ESC in De Pinte. Het is een 10-jaar jong bedrijf met reeds meer dan 25 werknemers en biedt zowel hard- als software oplossingen aan (vooral KMO) bedrijven. ESC heeft 4 bedrijfstakken: Hardware: dit omvat alles wat met apparatuur te maken heeft. Gaande van een printer tot een volledige netwerkoplossing. Software: dit gedeelte wordt onderverdeelt in standaard software en maatwerk. Voorbeelden van standaard software zijn CUBIC pro, Exact Globe, Synergy, Microsoft Dynamics CRM, enz. Voorbeelden van maatwerk zijn het maken van een website, beheersystemen, enz. Communicatie systemen: informatiezuilen, bewakingscamera s en Voice over IP Training: ESC geeft ook training voor alle software die ze verdelen. ESC is Q*for gecertificeerd door de Vlaamse Gemeenschap (opleiding- en adviescheques)

Stagedossier G15 Mobile CRM 10 2 Beschrijving van de opdracht Voor de opdracht moeten we een CRM uitbreiden met de mogelijkheid om de gegevens via een mobiel toestel offline te kunnen raadplegen. De opdracht zal dus bestaan uit 3 delen: - De mobile applicatie - Synchronisatie tussen de mobiele toestellen en de CRM server - De beheersapplicatie De mobile applicatie is de software die geïnstalleerd wordt op het mobiele toestel en waar de gebruiker de gegevens van het CRM systeem kan zien, toevoegen, wijzigen of verwijderen. De gegevens van de CRM Server worden op de mobiele client geplaatst door middel van synchronisatie. Deze synchronisatie gebeurt in 2 richtingen, zo worden ook de gewijzigde gegevens van op de mobile client naar de CRM Server gestuurd om deze wijzigingen door te voeren. Welke gegevens er voor wie beschikbaar is en hoe deze worden voorgesteld wordt volledig dynamisch bepaald in de beheersapplicatie. Door het aanmaken van de nodige profielen beslist de beheerder wie welke gegevens mag zien. Er kan dus per profiel meegegeven worden welke gegevens (vb. accounts, contactpersonen, activiteiten) er mag gezien worden. Niet alle gebruikers van het CRM systeem kunnen de mobile applicatie gebruiken, de beheerder geeft sommige gebruikers rechten om via de mobiele applicatie te verbinding te maken. Verschillende gebruikers mogen ook een verschillend aantal toestellen hebben (vb. iemand met een pda en gsm waar de mobiele applicatie op geïnstalleerd is). Het maximum aantal gebruikers en toestellen is gelimiteerd per licentie. Elke gebruiker moet ook tot een profiel behoren. Voorbeeld: Jan is een verkoper, hij is toegewezen aan het MobileSalesProfile. Daarin staat dat hij de entiteiten contacten en verkoopkansen op zijn mobile kan zien. Tom daarentegen is boekhouder, behoort tot MobileBookkeeper en ziet de accounts, contacten en rapporten. Bij elk profiel hoort er per entiteit een weergave en een formulier: hierin wordt beschreven welke gegevens zichtbaar zijn enerzijds bij het overzicht van entiteiten en anderzijds bij detail van een entiteit. Vervolg voorbeeld: Jan krijgt een overzicht van alle contacten met hun naam en telefoon. Tom krijgt in het overzicht de naam en hun woonplaats te zien. Omdat het geheugen van een mobiel toestel meestal relatief beperkt is, is er een optie voorzien om de data te filteren. Zo zal niet alle data van de CRM server naar de mobiele applicatie gesynchroniseerd worden. Vervolg voorbeeld: Jan krijgt een overzicht van alle contacten die in de stad Gent wonen te zien, terwijl Tom over de contactpersonen uit Gent en Antwerpen beschikt.

Stagedossier G15 Mobile CRM 11 3 Beschrijving van het huidige systeem Ons project was om een mobiele uitbreiding te maken voor Microsoft Dynamics CRM. Voordat we kunnen toelichten wat onze uitbreiding is en doet, is het waarschijnlijk het best dat we eerst even Microsoft Dynamics CRM uitleggen. Microsoft Dynamics CRM is de customer relationship management-software die past bij de behoeften en het budget van kleine, middelgrote en grote organisaties, en die u helpt om meer uit al uw relaties te halen. Microsoft Dynamics CRM is gemakkelijke, flexibele en geïntegreerde CRM-software die u en uw medewerkers in staat stelt te zorgen voor een goed relatiebeheer, gefundeerde beslissingen te nemen, omzet te verhogen en uw klanten een superieure service te bieden. Bron: www.microsoft.com Microsoft Dynamics CRM is dus een applicatie die alle gegevens in verband met uw klantenrelaties regelt. Het bevat onder andere volgende gegevens van contactpersonen: namen, adressen, telefoonnummers, enz. Maar Microsoft Dynamics CRM is meer dan een digitale adressenboek. Het bevat ook facturen, verkoopkansen en zoveel meer. De Dynamics in Microsoft Dynamics CRM wil zeggen dat alle instellen heel vlot en gemakkelijk aan te passen zijn. Wenst u zo bijvoorbeeld een extra veld huidige wagen toe te voegen aan een contactpersoon is dit op 5 minuutjes toegevoegd (door een ervaren Microsoft Dynamics CRM gebruiker). De applicatie draait op een webserver en is dus toegankelijk met Internet Explorer. Zo kan elke medewerker gemakkelijk van op zijn/haar pc de gegevens bekijken en eventuele aanpassingen doorvoeren. Figuur 1: Een overzicht van contactpersonen in de Microsoft Dynamics CRM Omgeving Hier ziet u een overzicht van alle contactpersonen. Links kan u doorklikken naar andere onderdelen zoals accounts.

Stagedossier G15 Mobile CRM 12 Figuur 2: Details van 1 contactpersoon Dit is een overzicht van de details van een contactpersoon. Hier kan u alle gegevens van deze contactpersoon beheren.

Stagedossier G15 Mobile CRM 13 4 Terminologie Om de verdere inhoud van dit document te begrijpen is het nodig een aantal termen die zullen gehanteerd worden uit te leggen. 4.1 CRM Server Customer Relationship Management Server. Dit verwijst naar de bestaande Microsoft Dynamics server waarin o.a. contact- en verkoopgegevens van klanten of relaties zitten. 4.2 Entiteit Een entiteit binnen het CRM systeem is soort container van data, zoals Account of Contactpersoon. Het heeft verschillende attributen zoals Voornaam, Naam, etc. en kan meerdere records bevatten. 4.3 View van een entiteit Het overzicht van alle records binnen een entiteit. Het bevat altijd een aantal kolommen (die overeenstemmen met de attributen van de entiteit) en het kan een filter bevatten (vb. om alleen de gewijzigde records van de laatste 6 maanden te tonen). 4.4 Form van een entiteit De details van 1 bepaald record binnen een entiteit. Hier kan de gebruiker gegevens van het geselecteerde record in detail bekijken en aanpassen. Een form bestaat uit een aantal tabs met daarin een aantal velden aan informatie. 4.5 Meta Data van de Beheersapplicatie/Mobile Server Dit zijn de instellingen die beheerd worden door de beheersapplicatie en gesynchroniseerd worden met de mobile client. De meta data beschrijft welke CRM gegevens beschikbaar moeten zijn op de mobile client (entiteit, attribuut, profiel, user,...) en hoe die getoond moeten worden (view, filter, form, tab,...). 4.6 CRM Data De gegevens of records van een entiteit. Deze gegevens moeten getoond worden op de mobile client aan de hand van de meta data en kunnen dan gewijzigd worden.

Stagedossier G15 Mobile CRM 14 Deel 2: Analyse 1 Use Cases Beheersapplicatie De beheersapplicatie zal geïntegreerd zijn met de bestaande CRM Client. Het beheert welke gegevens (A, B & F), hoe (D, E) en voor wie (C) deze zullen worden weergegeven op de mobile. De gegevens zullen d.m.v. synchronisatie met de CRM Server op het mobile toestel beschikbaar zijn. Figuur 3: Het overzicht van de use cases van de beheersapplicatie A. Beheren van entiteiten (globaal) Toevoegen/Verwijderen van entiteiten die beschikbaar zijn voor de gehele mobiele applicatie. Bij het beheren van profielen zal er alleen keuze zijn tussen deze entiteiten. Elk van deze entiteiten hebben verplicht een mobile form en een mobile view. B. Beheren van profielen (groepen users) Het indelen van gebruikers gebeurt d.m.v. profielen en per profiel wordt aangegeven welke entiteiten mogen gelezen worden, welke entiteiten mogen gewijzigd worden (per attribuut) en welke entiteiten verwijdert mogen worden. Bij het beheren van profielen is er enkel keuze tussen de entiteiten die bij het beheren van entiteiten beschikbaar gesteld zijn. C. Beheren van users (1 profiel, max. devices) Toewijzen (door superuser) van users die het mobile CRM systeem mogen gebruiken, met 1 mobiele profiel per gebruiker en het maximaal aantal devices voor die user. (User aantal en device aantal beperkt aan de hand van een licentie). D. Beheren van forms (globaal per entiteit) De volgorde van de gegevens van de geselecteerde entiteit instellen/wijzigen (zie instellingen bij profiel) en welke al dan niet moeten worden weergegeven.

Stagedossier G15 Mobile CRM 15 E. Beheren van views (globaal per entiteit) Bepaalt het uitzicht van het overzicht van een entiteitenlijst. Het bepaalt: - De kolommen (attributen) die getoond worden in de tabel - Een restrictie om niet alle data te tonen F. Beheren van filters (globaal per profiel per entiteit) Welke records moet op de PDA terechtkomen? Vb. enkel contactpersonen uit Gent (Query). G. Beheren van lay-out Per profiel per entiteit kunnen forms (D), views (E) en filters (F) aangepast worden. H. Beheren van devices Een overzicht van alle toestellen die in het verleden al gesynchroniseerd hebben. Per toestel heb je de mogelijkheid het toestel te blokkeren, dit voorkomt synchronisatie in de toekomst en zal alle data op het toestel verwijderen.

Stagedossier G15 Mobile CRM 16 1.1 Beheren van Entiteiten Revision History: Auteur Beschrijving Datum Pieter Van Hamme Opstellen van de Use Case 17/02/2009 Dwight Kerkhove Use case nagekeken en kleine wijzigingen doorgevoerd 17/02/2009 Pieter Van Hamme Concept GUI gemaakt 18/02/2009 Dwight/Pieter Aanpassing op basis van verkregen feedback 19/02/2009 Pieter Van Hamme Use case aangepast 04/06/2009 Primaire Actor: Beheerder van het mobile CRM systeem (die de instellingen van alle mobile CRM clients bepaald). Pre Condities: Beheerder is ingelogd. De beheerder heeft toegang tot deze functionaliteit. Post Condities: De lijst met entiteiten zijn beschikbaar voor profielen. Normaal verloop: 1. Het systeem toont een overzicht met de entiteiten die naderhand aan profielen gekoppeld kunnen worden. Dit overzicht bevat per entiteit zijn naam en bijhorend icoon. 2. De beheerder wil een entiteit beschikbaar stellen als mobile entiteit. 3. Het systeem toont een lijst van alle entiteiten die nog niet in het overzicht staan. 4. De beheerder kiest een of meerdere entiteiten en bevestigt. 5. Het systeem registreert de aanpassingen. Alternatief verloop: 2. Entiteit verwijderen. a. De gebruiker wenst een entiteit te verwijderen. b. Het systeem vraagt bevestiging. c. De gebruiker bevestigt. d. Het systeem verwijdert de entiteit. e. Keer terug naar stap 1. 4. Annuleer keuze. a. De gebruiker annuleert zijn keuze. b. Ga terug naar stap 1.

Stagedossier G15 Mobile CRM 17 1.2 Beheren van Profielen Revision History: Auteur Beschrijving Datum Pieter Van Hamme Opstellen van de Use Case 17/02/2009 Dwight Kerkhove Use case nagelezen en kleine details aangepast 17/02/2009 Pieter Van Hamme Concept GUI gemaakt 18/02/2009 Dwight/Pieter Aanpassing op basis van verkregen feedback 19/02/2009 Pieter Van Hamme Views, forms en filters worden via Beheren van lay-out 23/02/2009 aangepast Pieter Van Hamme Use case aangepast 04/06/2009 Primaire Actor: Profielbeheerder Pre Condities: De beheerder is ingelogd. De beheerder heeft toegang tot deze functionaliteit. Post Condities: Het profiel is aangepast. Normaal verloop: 1. Het systeem toont een overzicht van alle huidige profielen. 2. De beheerder kiest welk profiel hij wenst aan te passen. 3. Het systeem laadt de gegevens (naam en gekozen entiteiten) van het gekozen profiel in. 4. Het systeem toont de profielnaam en alle mobiele entiteiten. Per entiteit wordt de restrictie opties leesbaar, wijzigbaar en verwijderbaar weergegeven. Alsook de default view en default form. 5. De beheerder past de opties aan en bevestigt. 6. Het systeem registreert de gegevens.

Stagedossier G15 Mobile CRM 18 Alternatief verloop: 1. Geen profielen aanwezig. 1.1. De beheerder kan enkel een nieuw profiel aanmaken. 1.2. Ga naar stap 4 (met alle velden leeg). 2. 1. Nieuw profiel aanmaken. 2.1. De beheerder wil een nieuw profiel aan maken. 2.2. Ga naar stap 4 (met alle velden leeg). 2. 2. Profiel verwijderen. b. De beheerder wil een profiel verwijderen. c. Het systeem vraagt om bevestiging. d. De beheerder bevestigt. b. Het systeem verwijdert het profiel en zijn users. 4. Onvolledige gegevens a. Het systeem geeft een melding dat er niet voor elke Entiteit een view of form geselecteerd. b. Ga terug naar stap 7. 4. Geen View of Form beschikbaar voor een entiteit a. Het systeem stelt deze entiteit niet beschikbaar. b. Ga terug naar stap 4. 5. Profielnaam aanpassen. a. De beheerder past de profielnaam aan. c. Ga terug naar stap 5.

Stagedossier G15 Mobile CRM 19 1.3 Beheren van Users Revision History: Auteur Beschrijving Datum Pieter Van Hamme Opstellen van de Use Case 17/02/2009 Dwight Kerkhove Use case nagekeken en hier en daar wat aangepast 17/02/2009 Dwight/Pieter Aanpassing op basis van verkregen feedback 19/02/2009 Pieter Van Hamme Use case aangepast 04/06/2009 Primaire Actor: Beheerder van het mobile CRM systeem (die de instellingen van alle mobile CRM clients bepaald). Pre Condities: Beheerder is ingelogd. De beheerder heeft toegang tot deze functionaliteit. Post Condities: Er zijn mobiele gebruikers toegevoegd. Normaal verloop: 1. Het systeem geeft een overzicht van de huidige mobiele gebruikers. Met per gebruiker volgende gegevens: naam, profiel en maximum aantal toestellen. En een lijst van zijn toestellen met: het id, de naam en het platform van het toestel en de datum laatste synchronisatie. 2. De beheerder wil een gebruiker mobiele toegang geven. 3. Het systeem vraagt aan de beheerder: - Een gebruiker uit de lijst te selecteren. - Een profiel voor de gebruiker te selecteren. - Het maximum toegelaten toestellen in te geven. 4. De beheerder selecteert de gewenste gebruiker, het gewenste mobiele profiel en stelt maximum aantal toestellen in. De beheerder bevestigt. 5. Het systeem valideert de gegevens. 6. Het systeem registreert de gebruiker als mobiele gebruiker. 7. Het systeem update het overzicht. 8. De beheerder herhaalt stap 2-6 tot alle gewenste gebruikers toegevoegd zijn.

Stagedossier G15 Mobile CRM 20 Alternatief verloop: 2. 1. Gebruiker verwijderen a. De beheerder wil een gebruiker verwijderen. b. Het systeem vraagt bevestiging. c. De beheerder bevestigt. d. Het systeem verwijdert de gebruiker. 2. 3. Gebruiker aanpassen a. De beheerder wil een gebruiker aanpassen. b. Het systeem toont van de gebruiker zijn profiel, maximum toegelaten toestellen en geeft een overzicht van zijn huidige toestellen. c. De beheerder past het profiel en maximum toegelaten toestellen aan en bevestigt. d. Het systeem registreert de aanpassingen. e. Ga verder naar stap 7. 3. Maximum aantal mobiele gebruikers bereikt. a. Het systeem meldt dat het maximum aantal mobiele gebruikers bereikt is. b. Ga terug naar stap 2. 5. 1. Maximum aantal toestellen bereikt. a. Het systeem meldt dat het maximum aantal toestellen bereikt is. b. Ga terug naar stap 4. 5. 2. Geen gebruiker geselecteerd a. De beheerder heeft geen gebruiker geselecteerd. a. Het systeem vraagt om een gebruiker te selecteren. b. Ga terug naar stap 4. 5. 3. Geen profiel geselecteerd a. De gebruiker heeft geen profiel geselecteerd. b. Het systeem vraagt om een profiel te selecteren. c. Ga terug naar stap 4. 5. 4. Maximum aantal toestellen niet correct ingevuld a. De gebruiker heeft een incorrect aantal maximum aantal toestellen ingegeven. b. Het systeem vraagt om een getal tussen 1 en 20 in te geven. c. Ga terug naar stap 4. Opmerkingen: - Maximum aantal mobiele gebruikers en maximum aantal toestellen is licentie afhankelijk.

Stagedossier G15 Mobile CRM 21 1.4 Beheren van Lay-out Revision History: Auteur Beschrijving Datum Dwight Kerkhove Opstellen van de Use Case 24/02/2009 Pieter Van Hamme Use case nagekeken en kleine wijzigingen doorgevoerd 24/02/2009 Pieter Van Hamme Use case aangepast 04/06/2009 Primaire Actor: Beheerder Pre Condities: Beheerder is ingelogd. De beheerder heeft toegang tot deze functionaliteit. Post Condities: De lay-out van een entiteit van een profiel is aangepast. Normaal verloop: 1. Het systeem vraagt van welke mobiele entiteit de aanpassingen moeten gebeuren. 2. De beheerder selecteert een entiteit. 3. Het systeem toont de views, forms en filters van het geselecteerde entiteit. 4. De beheerder wil een view aanmaken. 5. Ga naar use case Beheren van views. 6. De beheerder wil een form aanmaken. 7. Ga naar use case Beheren van forms.

Stagedossier G15 Mobile CRM 22 Alternatief verloop: 4. 1. View aanpassen a. De beheerder wil een view aanpassen. b. Ga verder met de use case: Beheren van views. 4. 2. View verwijderen a. De beheerder wil een view verwijderen. b. Het systeem vraagt om bevestiging. c. De beheerder bevestigt zijn keuze. d. Het systeem verwijdert de view. 6. 1. Form aanpassen a. De beheerder wil een form aanpassen. b. Ga verder met de use case: Beheren van forms. 6. 2. Form verwijderen a. De beheerder wil een form verwijderen. b. Het systeem vraagt om bevestiging. c. De beheerder bevestigt zijn keuze. d. Het systeem verwijdert de form. 7. 1. Filter aanpassen a. De beheerder wil een filter aanpassen. b. Ga verder met de use case: Beheren van filters. 7. 1. Filter verwijderen c. De beheerder wil een filter verwijderen. d. Het systeem vraagt om bevestiging. e. De beheerder bevestigt zijn keuze. a. Het systeem verwijdert de filter.

Stagedossier G15 Mobile CRM 23 1.5 Beheren van Forms Revision History: Auteur Beschrijving Datum Dwight Kerkhove Opstellen van de Use Case 17/02/2009 Pieter Van Hamme Use Case nagekeken en kleine wijzigingen doorgevoerd 17/02/2009 Dwight/Pieter Aanpassing op basis van verkregen feedback 19/02/2009 Dwight Kerkhove Aanpassing dat forms ook per profiel zijn 23/02/2009 Pieter Van Hamme Use case aangepast 04/06/2009 Primaire Actor: Beheerder van het mobile CRM systeem (die de instellingen van alle mobile CRM clients bepaald). Pre Condities: De beheerder is ingelogd. De beheerder heeft toegang tot deze functionaliteit. De beheerder heeft een entiteit gekozen (zie use case: Beheren van Lay-out) Post Condities: De beheerder heeft de mobiele voorstelling (form) van de details van een entiteit aangepast. Normaal verloop: 1. De beheerder wil een mobiele form aanpassen. 2. Het systeem toont: - De huidige lay-out (welke attributen er zich op welke tabbladen bevinden). 3. De beheerder wil een attribuut toevoegen. 4. Het systeem geeft een overzicht van alle attributen die zich nog niet op de form bevinden. 5. De beheerder selecteert een of meerdere attributen en bevestigt. 6. Het systeem voegt de gekozen attributen toe aan het huidig tabblad. 7. De beheerder verplaatst een attribuut op een tabblad. 8. Het systeem past de lay-out aan. 9. Herhaal stap 3-8 tot dat de gewenste lay-out is bekomen. 10. De beheerder slaat de wijzigingen op. 11. Het systeem registreert de wijziging.

Stagedossier G15 Mobile CRM 24 Alternatief verloop: 2. Geen attributen toegevoegd op het huidig tabblad. a. Het systeem geeft een melding dat er nog geen attributen toegevoegd zijn op het huidig tabblad. b. Ga verder naar stap 3. 3. 1. Nieuwe tab toevoegen. a. De beheerder wil een nieuwe tab toevoegen. b. Het systeem voegt een nieuwe tab toe en zet de nieuwe tab als huidige tab. c. Ga verder naar stap 4. 3. 2. Tab verwijderen. a. De beheerder wil de huidige tab verwijderen. b. Het systeem vraagt bevestiging aan de beheerder. c. De beheerder bevestigt. d. Ga verder met stap 4. 3.2 a.1. De huidige tab is de enige tab. i. Het systeem meldt dat de tab niet verwijderd kan worden. ii. Ga terug naar stap 3. 3. 3. Nieuwe relatie toevoegen aan tab. a. De beheerder wil een relatie toevoegen aan de huidige tab. b. Het systeem geeft een overzicht van alle relaties die zich nog niet op de form bevinden. c. De beheerder selecteert een of meerdere relaties en bevestigt. d. Het systeem voegt de gekozen relaties toe als attribuut aan het huidig tabblad. e. Ga verder naar stap 7. 3. 4. Attribuut verwijderen van tab a. De beheerder kiest voor attribuut verwijderen van de huidige tab. b. Het systeem verwijdert het attribuut van de tab. c. Ga verder met stap 9.

Stagedossier G15 Mobile CRM 25 1.6 Beheren van Views Revision History: Auteur Beschrijving Datum Dwight Kerkhove Opstellen van de Use Case 17/02/2009 Pieter Van Hamme Use Case nagekeken en samen beslist om deze use case nog 17/02/2009 eens grondig na te kijken Dwight/Pieter Use Case aangepast; wijzigen van Default views verwijderd 18/02/2009 als functionaliteit Dwight/Pieter Aanpassing op basis van verkregen feedback 19/02/2009 Dwight Kerkhove Aanpassing dat views ook per profiel zijn 23/02/2009 Pieter Van Hamme Use case aangepast 04/06/2009 Primaire Actor: Beheerder van het mobile CRM systeem (die de instellingen van alle mobile CRM clients bepaald). Pre Condities: De beheerder is ingelogd. De beheerder heeft toegang tot deze functionaliteit. De beheerder heeft een entiteit gekozen (zie use case: Beheren van Lay-out) Post Condities: De beschikbare views op de mobile client zijn aangepast. Normaal verloop: 1. De beheerder wil een mobiele view aanpassen. 2. Het systeem toont: - De huidige lay-out van de view (welke attributen er moeten weergegeven worden). 3. De beheerder wenst een kolom toe te voegen. 4. Het systeem geeft een overzicht van alle attributen die zich nog niet op de view bevinden. 5. De beheerder selecteert een of meerdere attributen en bevestigt. 6. Het systeem voegt de gekozen attributen toe aan de view. 7. De beheerder verplaatst een attribuut op een tabblad. 8. Het systeem past de lay-out aan. 9. Herhaal stap 3-8 totdat alle gewenste kolommen aanwezig zijn. 10. De beheerder wenst de filter van de view aan te passen (Ga naar Beheer Filters) 11. De beheerder wil de view opslaan. 12. Het systeem registreert de gegevens.

Stagedossier G15 Mobile CRM 26 Alternatief verloop: 1. Nieuwe View a. De beheerder wenst een nieuwe view aan te maken. b. Het systeem toont een view zonder attributen. c. Ga verder met stap 3. 2. Attribuut verwijderen a. De beheerder wenst een attribuut te verwijderen. b. Het systeem vraagt om bevestiging. c. De beheerder bevestigt zijn keuze. d. Het systeem verwijdert het attribuut uit de view. e. Ga verder naar stap 9.

Stagedossier G15 Mobile CRM 27 1.7 Beheren van Filters Revision History: Auteur Beschrijving Datum Dwight Kerkhove Opstellen van de Use Case 17/02/2009 Pieter Van Hamme Use case nagekeken en kleine wijzigingen doorgevoerd 17/02/2009 Dwight/Pieter Aanpassing op basis van verkregen feedback 19/02/2009 Dwight Kerkhove Aanpassing dat filters ook per profiel zijn 23/02/2009 Pieter Van Hamme Use case aangepast 04/06/2009 Primaire Actor: Beheerder van het mobile CRM systeem (die de instellingen van alle mobile CRM clients bepaald). Pre Condities: De beheerder is ingelogd. De beheerder heeft toegang tot deze functionaliteit. De beheerder heeft een entiteit en profiel gekozen (zie use case: Beheren van Lay-out) Post Condities: De filtercriteria zijn aangepast. Normaal verloop: 1. De beheerder wil een filter aanpassen. 2. Het systeem toont de gedefinieerde filter en bijbehorende criteria. 3. De beheerder wil een nieuwe ConditieGroep toevoegen. 4. Het systeem maakt een nieuwe ConditieGroep aan. 5. De beheerder wil nieuwe Conditie toevoegen in die groep. 6. Het systeem vraagt: - Een keuze uit de lijst van attributen waarop het criterium van toepassing is - De operator die de vergelijking van het attribuut met de waarde definieert (gelijk aan, groter dan,..) - De waarde waarmee het attribuut wordt vergeleken aan de hand van de operator. 7. De beheerder kiest een attribuut, operator en de waarde en bevestigt. 8. Het systeem voegt de criteria toe. 9. Herhaal stap 3-8 tot de filter voldoet. 10. De beheerder slaat de gegevens op. 11. Het systeem registreert de nieuwe filter voor de gekozen entiteit en profiel.

Stagedossier G15 Mobile CRM 28 Alternatief verloop: 3. Verwijderen van een groep (boolean operator). a. De beheerder wil de groep verwijderen. b. Het systeem vraagt om de actie te bevestigen. c. De beheerder bevestigt. d. Het systeem verwijdert de groep en alle filtercriteria die tot die groep behoorden. 5. Verwijderen van een filtercriterium. a. De beheerder wil een filtercriterium verwijderen. b. Het systeem vraagt om de actie te bevestigen. c. De beheerder bevestigt. d. Het systeem verwijdert het criterium. 5. Filtercriterium verhuizen naar andere groep. a. De beheerder wil een filtercriterium verhuizen naar een andere groep. b. Het systeem voegt het criterium toe in de bestemmende groep en verwijdert het uit de oorspronkelijke groep. 5. Filtercriterium wijzigen. a. De beheerder wil 1 of meerdere parameters wijzigen van het criterium. b. Het systeem toont de gegevens (attribuut, operator, waarde) zoals in stap 5. c. De beheerder verandert de foute gegevens en bevestigt. d. Het systeem registreert de wijziging.

Stagedossier G15 Mobile CRM 29 1.8 Beheren van Devices Revision History: Auteur Beschrijving Datum Pieter Van Hamme Opstellen van de Use Case 04/05/2009 Dwight Kerkhove Use case nagekeken en kleine aanpassingen doorgevoerd 06/05/2009 Primaire Actor: Beheerder van het mobile CRM systeem (die de instellingen van alle mobile CRM clients bepaald). Pre Condities: Beheerder is ingelogd. De beheerder heeft toegang tot deze functionaliteit. Post Condities: De gewenste toestellen zijn geblokkeerd. Normaal verloop: 6. Het systeem geeft een overzicht van alle toestellen die al eens gesynchroniseerd hebben. Met per toestel volgende gegevens: het id, de naam, het platform, de gebruiker en de datum van de laatste synchronisatie van het toestel. 7. De beheerder wil een toestel blokkeren. 8. Het systeem vraagt om bevestiging. 9. De beheerder bevestigt. 10. Het systeem stelt het toestel op de zwarte lijst. Alternatief verloop: 3. Toestel vrijgeven d. De beheerder wil een toestel vrijgeven. e. Het systeem vraagt om bevestiging. f. De beheerder bevestigt. e. Het systeem verwijdert het toestel van de zwarte lijst. Opmerking: De data van de toestellen op de zwarte lijst zullen bij een volgende synchronisatie volledig gewist worden.

Stagedossier G15 Mobile CRM 30 2 Use cases Mobiele Applicatie De mobile applicatie biedt de gebruiker de mogelijkheid om gegevens zoals accounts, contacten enz. te bekijken en aan te passen zonder verbonden te zijn met de CRM Server. De wijzigingen worden dan later gesynchroniseerd met de CRM server wanneer een verbinding gemaakt is. De gebruiker ziet een overzicht van de verschillende entiteiten (accounts, contacten) in het hoofdmenu. Alle wijzigingen van lay-out voor de details en/of overzicht van een entiteitenlijst (zoals de records in contacten) worden allemaal op de server gedefinieerd (d.m.v. de beheersapplicatie) en lokaal opgeslagen bij de synchronisatie. Figuur 4: Het overzicht van de use cases van de mobiele applicatie A. Applicatie opstarten Het initialiseren van de instellingen bij de 1 e start up en het hoofdmenu tonen. B. Synchroniseren Verzorgt de synchronisatie tussen de lokale gegevens en de gegevens op de CRM server. C. Oplossen van conflicten Biedt de functionaliteit aan om conflicten die ontstaan zijn bij de synchronisatie te kunnen oplossen. D. Beheren van instellingen Beschrijft de verschillende mogelijkheden van de instellingen. E. Entiteiten mobiel gebruiken Zorgt voor de CRUD van de gegevens die beschikbaar gesteld zijn op het mobile systeem.

Stagedossier G15 Mobile CRM 31 2.1 Applicatie opstarten Revision History: Auteur Beschrijving Datum Dwight Kerkhove Opstellen van de use case 17/02/2009 Pieter Van Hamme Nazicht van de use case + concept gui 17/02/2009 Dwight/Pieter Aanpassing op basis van verkregen feedback 19/02/2009 Dwight/Pieter Use case aangepast 05/05/2009 Primaire Actor: Gebruiker van het mobile CRM systeem Pre Condities: De applicatie is correct geïnstalleerd. Post Condities: De gebruiker heeft een keuze uit het hoofdmenu gemaakt. Normaal verloop: 1. Het systeem verifieert of de applicatie niet voor de eerste keer wordt opgestart. 2. Het systeem toont het hoofdmenu met een lijst van entiteiten. 3. De gebruiker kiest een entiteit. 4. Ga verder met use case Entiteiten Mobiel Gebruiken. Alternatief verloop: 1. Het systeem wordt voor de 1 e keer opgestart. a. Ga verder met use case Beheer Instellingen. 2. 1. De gebruiker kiest voor de menu Instellingen. a. Ga verder met use case Beheer Instellingen. 2. 2. De gebruiker kiest voor de menu Synchronisatie. a. Ga verder met use case Synchronisatie.

Stagedossier G15 Mobile CRM 32 2.2 Synchroniseren Revision History: Auteur Beschrijving Datum Dwight/Pieter Opstellen van de use case 18/02/2009 Dwight/Pieter Aanpassen van de use case op basis van nieuwe structuur 20/02/2009 (Synchronisatie flowchart) Dwight/Pieter Use case aangepast 06/05/2009 Primaire Actor: De gebruiker, het mobiele CRM systeem, CRM server. Pre Condities: - Het toestel is verbonden met het internet. Post Condities: De synchronisatie is voltooid. De gegevens op de mobile client zijn consistent met de CRM server. Normaal verloop: 1. De gebruiker start de synchronisatie. 2. Het mobiele CRM systeem verbindt met de CRM server. 3. Het mobiele CRM systeem autoriseert zichzelf aan de hand van de lokale gebruikersnaam, paswoord, domein en toestel informatie (id, naam en platform). 4. De CRM server verifieert deze inloggegevens. 5. Het mobiele CRM systeem vraagt een update. 6. De CRM Server stuurt alle entiteiten die gewijzigd zijn sinds de laatste synchronisatiedatum door. 7. Het mobiele CRM systeem past alle updates toe en toont de details ervan. 8. Het mobiele CRM systeem stuurt zijn logboek (alle lokale wijzigingen waar geen conflict voor bestaat) door en toont de details. 9. De CRM Server update zijn data op basis van het logboek. 10. Het mobiele CRM systeem verbreekt de verbinding.

Stagedossier G15 Mobile CRM 33 Alternatief verloop: 1. De gebruiker wil bestaande conflicten oplossen. a. Ga verder met use case Oplossen van conflicten. 2. De verbinding kan niet tot stand worden gebracht. a. Het mobiele CRM systeem kan geen verbinding maken met de CRM server. b. Het systeem geeft een foutmelding. 4. 1. Combinatie gebruikersnaam, paswoord en domein is incorrect. a. De CRM server meldt dat de combinatie van gebruikersnaam, paswoord en domein incorrect zijn. b. Het systeem geeft een foutmelding. 4. 2. De gebruiker heeft geen toegang tot het mobiele CRM systeem. a. De CRM server meldt dat de beheerder de gebruiker geen toegang gegeven heeft tot het mobiele CRM systeem. b. Het mobiele CRM systeem geeft een foutmelding. 4. 3. Het toestel van de gebruiker is geblacklist. a. De CRM server meldt dat het toestel van de gebruiker geblacklist is. b. Het mobiele CRM systeem verwijdert alle bestaande gegevens en instellingen en geeft een foutmelding aan de gebruiker. 6. Geen wijzigingen sinds de laatste synchronisatie. a. Ga naar stap 8. 7. Er is een conflict met de gewijzigde gegevens. a. De CRM server meldt dat er een conflict is bij de gewijzigde gegevens. b. Het mobiele CRM systeem slaat elk conflict op in het logboek. 8. Er zijn geen wijzigingen op het mobiele CRM systeem uitgevoerd sinds de laatste synchronisatie. a. Ga verder met stap 10. 9. Er is een conflict met de gewijzigde gegevens. a. De CRM server meldt dat er een conflict is bij de gewijzigde gegevens. b. Het mobiele CRM systeem slaat elk conflict op in het logboek. Technische Informatie: - Indien op elk gegeven moment de verbinding verbroken wordt, wordt de synchronisatie herstart. Wanneer de transactie per gewijzigde gegeven van zowel de server naar client of andersom onderbroken wordt, wordt deze herstart bij de volgende synchronisatie.

Stagedossier G15 Mobile CRM 34 2.3 Entiteiten mobiel gebruiken Revision History: Auteur Beschrijving Datum Dwight Kerkhove Opstellen van de use case 18/02/2009 Pieter Van Hamme Use case nagekeken en kleine wijzigingen doorgevoerd 20/02/2009 Dwight/Pieter Use case aangepast 05/05/2009 Primaire Actor: Gebruiker van mobile CRM Pre Condities: De gebruiker heeft een entiteit uit het hoofdmenu gekozen. Post Condities: - De gebruiker heeft de gewenste informatie verkregen. Normaal verloop: 1. Het mobile CRM systeem geeft een overzicht van alle records van de gekozen entiteit. 2. De gebruiker kiest een record. 3. Het mobile CRM systeem toont de details voor het record (volgens het gedefinieerde formulier van dat entiteit). 4. De gebruiker maakt gebruik van de aangeboden informatie. Alternatief verloop: 2. 1. Nieuwe record toevoegen. a. De gebruiker wil een nieuwe record toevoegen aan de lijst. b. Het systeem vraagt de attributen van de entiteit in te vullen voor het aanmaken van de nieuwe record. c. De gebruiker vult de gewenste gegevens (attributen van de entiteit) in en bevestigt. d. Het systeem valideert en slaat deze nieuwe record op. e. Het systeem slaat deze wijziging ook op in de log. 2.1.d.1 Er zijn gegevens niet correct ingevuld. i. Het systeem duidt de ongeldige velden aan. ii. Ga terug naar alternatieve stap 2.1.c 2. 2. Record wijzigen a. De gebruiker wil een record wijzigen. b. Het systeem vraagt de attributen van de entiteit aan te passen. c. De gebruiker past de gewenste gegevens (attributen van de entiteit) aan en bevestigt. d. Het systeem valideert en slaat de record op. e. Het systeem slaat deze wijziging ook op in de log.

Stagedossier G15 Mobile CRM 35 2.2.d.1 Er zijn gegevens niet correct ingevuld. a. Het systeem duidt de ongeldige velden aan. b. Ga terug naar alternatieve stap 2.2.c 2. 3. View wijzigen a. De gebruiker wil de view van het overzicht wijzigen. b. Het systeem toont de beschikbare views. c. De gebruiker kiest een view. d. Het systeem past de lay-out aan op basis van de nieuwe geselecteerde weergave. 2. 4. Record verwijderen a. De gebruiker wil een entiteit verwijderen. b. Het systeem vraagt om bevestiging. c. De gebruiker bevestigt. d. Het systeem verwijdert de entiteit. e. Het systeem slaat deze verwijdering op in log. 2. 5. Sorteren a. De gebruiker wil de records sorteren. b. Het systeem sorteert de records volgens de keuze van de gebruiker. 2. 6. Zoeken a. De gebruiker wil naar een record zoeken. b. Het systeem vraagt naar wat de gebruiker wil zoeken. c. De gebruiker vult de zoekcriteria in. d. Het systeem toont de records die voldoen aan de zoekcriteria. 4. 1. Record wijzigen a. Zie alternatief verloop 2.2 4. 2. Record verwijderen a. Zie alternatief verloop 2.4 4. 3. Beschikbare telefoonnummer bellen a. De gebruiker wil de telefoonnummer bellen. b. Het systeem belt het telefoonnummer. 4. 4. Beschikbare e-mail mailen a. De gebruiker wil het beschikbare e-mail mailen. b. Het systeem start de e-mail client van het toestel met het e-mailadres als bestemming. 4. 5. Beschikbare URL openen a. De gebruiker wil navigeren naar een beschikbare URL. b. Het systeem start de internet browser van het toestel met de URL als bestemming.

Stagedossier G15 Mobile CRM 36 2.4 Oplossen van conflicten Revision History: Auteur Beschrijving Datum Dwight Kerkhove Opstellen van de use case 06/05/2009 Pieter Van Hamme Use case nakijken en kleine aanpassingen doorgevoerd 06/05/2009 Primaire Actor: De gebruiker van het mobile CRM systeem. Pre Condities: - De gebruiker bevindt zich op het synchronisatie overzicht. Post Condities: De gewenste conflicten zijn opgelost. Normaal verloop: 1. De gebruiker kiest ervoor om conflicten op te lossen. 2. Het systeem toont een overzicht van alle conflicten uit het logboek. 3. De gebruiker selecteert een conflict. 4. Het systeem toont de details van het conflict: welk type conflict, de keuze tussen welke versie behouden moet blijven en de mobiele - en server versie van het record. 5. De gebruiker kiest om de mobiele versie te behouden en bevestigt. 6. Het systeem past de gewenste versie toe en verwijdert het conflict. 7. Herhaal stap 2 6 tot alle gewenste conflicten opgelost zijn.

Stagedossier G15 Mobile CRM 37 Alternatief verloop: 3. Er zijn geen conflicten. a. Het systeem meldt dat er geen conflicten zijn. 4. Het conflict is van type mobiele versie gewijzigd, server versie gewijzigd. a. Het systeem toont het type conflict, voor elk niet overeenkomend veld de keuze tussen de 2 versies voor het veld en de mobiele - en server versie van het record. b. De gebruiker kiest elk veld dat moet behouden blijven en bevestigt. c. Ga verder met stap 6. 3.b.1. Annuleren. iii. De gebruiker annuleert. iv. Ga terug naar stap 2. 5. Server versie behouden. a. De gebruiker kiest om de server versie te behouden en bevestigt. b. Ga verder met stap 6. 5. 2. Annuleren a. De gebruiker annuleert. b. Ga terug naar stap 2.

Stagedossier G15 Mobile CRM 38 2.5 Beheren van instellingen Revision History: Auteur Beschrijving Datum Pieter Van Hamme Opstellen Use Case 20/02/2009 Dwight Kerkhove Use case nagelezen en hier en daar aangepast 20/02/2009 Dwight/Pieter Use case aangepast 05/05/2009 Primaire Actor: Gebruiker van het mobile CRM systeem Pre Condities: De gebruiker bevindt zich op het beginscherm. Post Condities: De gebruiker heeft de instellingen opgeslagen. Normaal verloop: 1. De gebruiker wenst de instellingen aan te passen. 2. Het systeem toont de huidige instellingen (leeg bij 1 e maal): - Gebruikersnaam - Wachtwoord - Domein - Server IP - Poort - Encryptie sleutel - Database pad 3. De gebruiker past de instellingen aan en bevestigt. 4. Het systeem valideert de instellingen en voert deze door. Alternatief verloop: 3. Verwijderen alle gegevens a. De gebruiker kiest voor de optie voor alle gegevens te verwijderen en bevestigt. b. Het systeem verwijdert alle gegevens (niet de instellingen). 4. Er zijn instellingen niet correct ingevuld. c. Het systeem duidt de ongeldige velden aan en geeft de reden. d. Ga terug naar stap 3.

Stagedossier G15 Mobile CRM 39 Deel 3: Ontwerp 1 Structuur Figuur 5: Een compacte structuur van de 3 componenten. De architectuur van het mobile gedeelte van de CRM server wordt zoveel mogelijk gescheiden van het bestaand systeem, waardoor het gemakkelijk is om de hele mobile module in en uit de server te pluggen. De uitbreidingen op het mobile systeem brengen dan ook geen wijzigingen teweeg op het bestaand systeem zodat eventuele problemen geïsoleerd blijven. 1.1 Mobile Client De mobile client is geïnstalleerd op een toestel met Windows Mobile en heeft een lokale database waar de meta data (de instellingen die gedefinieerd zijn in de beheersapplicatie, zoals welke weergaves en formulieren moeten aangeboden worden per entiteit) en de CRM data (de inhoud van de beschikbaar gestelde entiteiten) opgeslagen zijn. De applicatie kan daarvan gebruik maken om gegevens te tonen aan de gebruiker. Om die gegevens te verkrijgen wordt er gesynchroniseerd met de mobile server die naast de CRM Server zal draaien. Hiervoor gebruiken we het custom synchronization framework die de mogelijkheid biedt om te synchroniseren tussen 2 willekeurige data sources. Deze data sources worden met behulp van SyncProviders geïmplementeerd. Database Voor de database zal een Microsoft SQL Compact 3.5 database gebruikt worden aangezien deze het meest flexibel is.

Stagedossier G15 Mobile CRM 40 De andere optie was om XML als database te gebruiken maar hier zijn te veel nadelen aan verbonden: - XML werkt met tekstbestanden en tags dus de opslag van een groot aantal records neemt veel plaats in beslag (terwijl er maar beperkte opslag beschikbaar is op een mobile toestel). - Het toevoegen, wijzigen of verwijderen betekent de hele file aanpassen (traag!). - Het opzoeken van gegevens kan niet volgens primaire sleutels gebeuren, er moet sequentieel doorlopen worden (traag!). - De structuur van de entiteiten kan veranderd worden dus het volledige bestand moet aangepast worden (traag!). 1.2 Mobile Server De mobile server is als een façade voor de CRM Server. Het zal alle synchronisatie requests van de mobile clients afhandelen. Daarnaast biedt het ook een beheersapplicatie aan waar een beheerder de mobiele instellingen kan wijzigen (welke gebruikers toegang hebben, welk profiel ze hebben, hoe en welke gegevens moeten getoond worden,...). Deze applicatie wordt als ASP pagina s aangeboden zodat die geïntegreerd kunnen worden in de pagina s van de CRM server. Zowel de mobile server als de beheersapplicatie hebben gegevens nodig van de CRM server, dus wordt er in de DAL laag een webservice gebruikt om gegevens te kunnen opvragen en te wijzigen. Verbinding met CRM Server Via deze webservice zijn een aantal mogelijkheden beschikbaar om de gegevens op te halen: - FetchXML: Een XML bestand wordt aan de service doorgegeven die definieert welke gegevens terug moeten gestuurd worden. - QueryExpression: Een query expression is een voorstelling van dezelfde opties als bij FetchXML maar er wordt gebruik gemaakt van aangeboden klassen. - LINQ to CRM: LINQ is een eenvoudige manier om gegevens op te vragen en met de LINQ to CRM klassen (http://www.codeplex.com/linqtocrm/) kunnen ook gegevens opgevraagd worden van het CRM systeem. Voor statische methodes waar de parameters vast liggen is LINQ to CRM de beste keuze. Dit is echter niet haalbaar wanneer dynamische entiteiten moeten opgevraagd worden: - De entiteitklassen worden bij LIQ to CRM gecontroleerd op basis van type in plaats van op basis van de entiteitsnaam (string). - Er kan niet dynamisch in de select gespecificeerd worden welke attributen moeten teruggegeven worden. We hebben dus gekozen voor de QueryExpression klassen om de gegevens op te vragen.

Stagedossier G15 Mobile CRM 41 Verbinding met mobiele client Er zijn een aantal mogelijkheden voorhanden om gegevens van de mobile server naar de client te krijgen en omgekeerd. Vb. via TCP, Webservice (SOAP),.NET Remoting, CORBA, HTML,... Aangezien de mobile client op een PDA zal draaien met een trage verbinding (GPRS, 3G) kunnen we niet kiezen voor een text-based protocol, dus een verbinding WCF service, CORBA en HTML is uitgesloten. We werken ook met bedrijfsgevoelige informatie, dus moeten de gegevens geëncrypteerd en zo compact mogelijk verzonden worden. We hebben daarom voor een standaard TCP verbinding gekozen, omdat die het meest flexibel en meest compact is. 1.3 CRM Server De CRM server is de server die nu al beschikbaar is en gegevens bevat. Hier wordt niets aan gewijzigd.

Stagedossier G15 Mobile CRM 42 2 Structuur in detail Figuur 6: een meer gedetailleerde structuur van de mobile server en de mobile applicatie. 2.1 GUI Beheersapplicatie - Mobile Server BeheersApplicatie Pagina s: Biedt een GUI aan de gebruiker om de mobile instellingen te wijzigen (ASP pagina s). De applicatie maakt gebruik van: - De CRM Controller van de Domain Manager om gegevens op te vragen (zoals welke entiteiten gekozen kunnen worden voor de mobile client). - De SubManagers (vb. EntiteitManager, ProfielManager, ) van de Domain Manager om de instellingen op te slaan die de gebruiker gemaakt heeft. Mobile Server: Start de service om te luisteren naar inkomende TCP verbindingen Mobiele Applicatie Mobile Applicatie: Biedt een GUI aan de gebruiker om de inhoud van beschikbare entiteiten te tonen en er aan wijzigingen te maken.

Stagedossier G15 Mobile CRM 43 2.2 Domain (Business Logic Layer) Beheersapplicatie - Mobile Server CRMController: Biedt de functionaliteit aan om gegevens uit de CRM server te lezen en ernaar weg te schrijven. DomainManager: Biedt de functionaliteit aan om de instellingen voor de mobile client te wijzigen. SubManagers: Verschillende submanagers die de instellingen opvragen en opslaan aan de adapters van de dataset (vb. entiteitmanager, attribuutmanager, formmanager, viewmanager,...) UserViewController: Biedt de functionaliteit om alleen de relevante instellingen voor een bepaalde gebruiker op te vragen. ServerTCPListener: Luistert naar inkomende TCP verbindingen, en wijst SyncWorkers toe aan elke verbinding. SyncWorker: Delegeert de inkomende berichten naar de ServerProvider en stuurt de resultaat ervan terug ServerProvider (1 provider voor meta, 1 voor data): Voorziet de methodes die de SyncController nodig heeft om gegevens te synchroniseren. Het maakt gebruik van verschillende takken van de Domain Manager: - De CRM Controller om CRM gegevens op te vragen en te synchroniseren. - De User View Controller om de meta en data voor de gebruiker te synchroniseren. - De SyncTracking Manager om bij te houden welke versie de mobile heeft van een object. Mobiele Applicatie SynchronizationController: Biedt de functionaliteit aan om de synchronisatie te starten. DomainController: Biedt de functionaliteit aan om de beschikbare entiteiten op te vragen en hun inhoud die opgeslagen zijn in de database. Het maakt gebruik van: - De Meta Mapper om de entiteiten en de voorstelling ervan op te vragen. - De Data Mapper om de CRM gegevens (records van entiteiten) op te vragen en/of te wijzigen. 2.3 Data Access Layer (Persistentie laag) Beheersapplicatie - Mobile Server CRMMapper (1 data mapper, 1 metamapper) : Biedt methodes aan om gegevens van de CRM webservice te vragen en wijzigingen door te sturen. Mobile Settings Dataset: Dataset met datatables en adapters voor elke table waar de gegevens van de database aan kan opgevraagd worden.

Stagedossier G15 Mobile CRM 44 SyncTrackingMapper: Biedt methodes aan om bij te houden welke versie de gegevens van de verschillende toestellen zijn. Dit is nodig om te bepalen of een object moet geüpdatet worden op de mobile client. Mobiele Applicatie MetaMapper: Biedt de verschillende mappers aan om de mobile settings op te vragen en weg te schrijven naar de lokale database. DataMapper: Biedt de verschillende mappers aan om de CRM gegevens op te vragen en weg te schrijven naar de dynamische tabellen in de lokale database. ClientProvider (1 provider voor data, 1 voor metadata): Voorziet de methodes die de SyncController nodig heeft om de gegevens te synchroniseren. Het maakt gebruik van: - De Meta Mapper om de mobile settings op te slaan bij de synchronisatie. - De Data Mapper om de CRM gegevens (records van entiteiten) op te vragen en/of te wijzigen. ClientData (1 datasource voor data, 1 voor metadata): Implementeert de datasource interface van het synchronization framework zodat de gegevens kunnen gesynchroniseerd worden) SyncController: Beheert het synchronisatie proces (deze klasse maakt deel uit van het Synchronization Framework)

Stagedossier G15 Mobile CRM 45 3 Structuur Beheersapplicatie 3.1 GUI Figuur 7: De structuur van de pagina's

Stagedossier G15 Mobile CRM 46 Figuur 8: Het klasse diagram van de GUI. De DomainManager behoort tot de domein laag, maar is op het diagram geplaatst voor de duidelijkheid. 3.1.1 DomainAccessablePage Een abstracte pagina die de link met de domein manager verzorgt. Elke pagina die van deze klasse overerft heeft een Manager ter beschikking. 3.1.2 GuiForm, GuiTab, GuiView, GuiFilter, GuiConditieGroep, GuiConditie,GuiAttribuut De GUI voorstelling van de overeenkomstige domein objecten. Wanneer een form, view of filter bewerkt wordt, wordt een kopie genomen in de vorm van hun respectievelijke Gui objecten. De wijzigingen die de beheerder doet gebeuren dan op de Gui objecten. Bij het opslaan worden die Gui objecten omgezet naar de domein objecten om op te slaan in de database.

Stagedossier G15 Mobile CRM 47 3.2 Domein laag Figuur 9: Het klasse diagram van de domein laag van de mobile server/beheersapplicatie Figuur 10: De domein objecten met hun associaties

Stagedossier G15 Mobile CRM 48 3.2.1 DomainManager De DomainManager is de façade voor de verschillende sub managers. Elk van die managers bevat de CRUD methodes om de gegevens op te vragen en wijzigen. De domein manager kan in de context van een gebruiker gemaakt worden. De user informatie wordt dan doorgegeven aan de CRMController. 3.2.2 UserViewController Deze controller bevat methodes om alle metadata voor een bepaalde gebruiker op te vragen, aangezien de metadata verschilt per gebruiker. Bijvoorbeeld: de gebruiker die tot een Sales profiel behoort zal die andere entiteiten, views en forms beschikbaar krijgen dan iemand die tot een Management profiel behoort. Deze methodes zijn nodig om alleen de benodigde gegevens worden te synchroniseren.

Stagedossier G15 Mobile CRM 49 3.2.3 CRMController De CRMController verzorgt de methodes om gegevens uit de CRM server te lezen of gegevens naar de CRM Server weg te schrijven. Dit omvat zowel de metadata (entiteitnamen, attributen) als de eigenlijke data. 3.2.4 SubDomainManagers: EntiteitManager, AttribuutManager, ProfielManager, FormManager, FilterManager, UserManager en DeviceManager De EntiteitManager beheert de CRUD van de Entiteit en EntiteitPerProfiel klassen. De AttribuutManager beheert de CRUD van de Attribuut, AttribuutLookupEntiteit en AttribuutPicklistOption klassen. De ProfielManager beheert de CRUD van de Profiel klasse. De FormManager beheert de CRUD van de Form, Tab en AttribuutPerForm klassen. De ViewManager beheert de CRUD van de View en AttribuutPerView klassen. De FilterManager beheert de CRUD van Filter, Conditiegroep en Conditie klassen. De UserManager beheert de CRUD van de User klasse. De DeviceManager beheert de CRUD van de Device klasse. Al deze managers bevatten ook een factory methode om hun respectievelijk domein object aan te maken.

Stagedossier G15 Mobile CRM 50 3.2.5 DomainObject Elk domein object erft over van deze klasse. Alle constructors van de domein objecten zijn private en worden via de managers gemaakt. Daardoor blijven de objecten altijd in de context (in dit geval de session van de gebruiker) waartoe ze behoren, waardoor het domein thread safe is. Ook kennen de domein objecten de DomainManager die het object gemaakt heeft, zodat lazy loading van associaties naar andere domein objecten mogelijk is. 3.2.6 TrackedDomainObject Een tracked domein object kan gesynchroniseerd worden naar de mobile aangezien het tijdstip van de creatie van het object en de wijzigingstijdstip bijgehouden wordt. 3.2.7 Domein Objecten: Entiteit, Attribuut, View, Form, Entiteit: Stelt een entiteit voor die beschikbaar gesteld kan worden op de mobiele client waaruit de gebruiker dan kan kiezen. Vb. Contactpersoon, Account,.. Attribuut: Is een voorstelling voor een attribuut van een entiteit. Bevat o.a. het type van het attribuut, naam, of het een required veld is etc. AttribuutLookupEntiteit: Stelt een beschikbaar entiteit voor bij een lookup attribuut. Een lookup attribuut kan verwijzen naar een records van een voorop gestelde lijst van entiteiten. AttribuutPicklistOption: Stelt een picklist option van een attribuut voor. Het attribuut is een picklist waar de gebruiker uit de verschillende opties uit een dropdownlist kan kiezen. Profiel: Stelt een profiel voor waar gebruikers aan toegekend kunnen worden. Een profiel stelt een aantal entiteiten beschikbaar met views en forms (met behulp van entiteit per profiel). EntiteitPerProfiel: Stelt een koppeling van een entiteit aan een profiel voor, met extra informatie die bijgehouden wordt voor het entiteit.

Stagedossier G15 Mobile CRM 51 User: Stelt een mobiele gebruiker voor die de applicatie mag gebruiken op zijn mobile device. Hij/zij behoort tot een profiel waar gedefinieerd staat welke gegevens beschikbaar zijn voor hem/haar. Device: Is een voorstelling van een toestel van een gebruiker Form: Stelt een formulier voor die de voorstelling van een record van een entiteit beschrijft. Een form heeft meerdere tabs waar verschillende attributen op gedefinieerd staan. Tab: Stelt een tab voor van een form van een entiteit. Een tab bevat attributen in een bepaalde volgorde voor de voorstelling van een record van een entiteit. AttribuutPerTab: Is een voorstelling van een attribuut die bij een tab behoort. View: Stelt de weergave van een entiteit voor. Een view beschrijft de voorstelling van het overzicht van de records van een entiteit (welke kolommen getoond moeten worden en op welke data gefilterd moet worden). AttribuutPerView: Is een voorstelling van een kolom (attribuut) die bij een view behoort. Filter: Stelt een filter voor van een view, die met behulp van de gedefinieerde criteria de records kan filteren. Conditiegroep: Stelt een conditiegroep voor van een filter, die subgroepen en condities groepeert met een boolean operator. Conditie: Stelt een conditie voor van een filter, waarop gefilterd moet worden. Een conditie zit altijd in een conditie groep, waar meerdere condities verbonden worden door een boolean operator. 3.2.8 AbstractServerData De klasse erft over van IServerData van het synchronisatie framework en verzorgt de CRUD van de SyncTracking (last sync dates van elk item dat gesynchroniseerd wordt per client). Het fungeert als data source voor de synchronization provider. Dit gebeurt zowel bij de CRM data als metadata synchronisatie, dus dit zit in AbstractServerData. Voor de meta data wordt de MetaServerData subklasse gebruikt, voor de data synchronisatie de ServerData klasse gebruikt.

Stagedossier G15 Mobile CRM 52 3.2.9 ServerMetaData en ServerData Deze klassen zijn de data source voor de meta en data synchronisatie respectievelijk. De SyncTracking CRUD wordt in de superklasse AbstractServerData geïmplementeerd. 3.2.10 SharedServerProvider De abstracte server provider voor de synchronisatie. Aangezien zowel de metadata als de data synchronisatie dezelfde autorisatie van de mobile user gebruiken, wordt deze functionaliteit geïmplementeerd in een superklasse. De klasse erft over van de AbstractServerProvider die de synchronisatie grotendeels afhandelt en de methodes van een gegeven datasource aanroept om gegevens te verkrijgen en weg te schrijven. 3.2.11 ServerProvider, MetaServerProvider De providers voor de CRM data en meta data synchronisatie. Deze erven beide over van de SharedServerProvider. De CreateMapper maakt de datasource aan voor de synchronisatie (MetaServerData voor meta synchronisatie en ServerData voor data synchronisatie).

Stagedossier G15 Mobile CRM 53 3.2.12 AbstractSyncServerItem, SyncServerDataItem, SyncServerMetaItem De wrapper voor een object van de server (het eigenlijke object (DBEntity), maar ook de extra gegevens zoals creation date en modified date die nodig zijn bij de synchronisatie). Het enigste verschil tussen SyncServerDataItem en SyncServerMetaItem is het opvragen van het Id van het object. Bij meta data is dat veld altijd id, terwijl bij de CRM data dit afhangt per entiteit van het veld dat daarvoor gedefinieerd is op de CRM Server (contactid, accountid, ). Om de synchronisatie te versnellen wordt het id veld meegegeven aan de data item zodat het veld niet steeds aan de overeenkomstige entiteit uit de metadata moet gevraagd worden. 3.2.13 DBEntity Een DBEntity is niets meer dan een verzameling (dictionary) van velden met overeenkomstige veldnamen. Deze klasse wordt gebruikt om alle metadata objecten en records van een entiteit (bij data synchronisatie) door te sturen naar de mobile. 3.2.14 SyncObjectSerializer Erft over van de standaard AbstractSyncObjectSerializer en implementeert het lezen en schrijven van een DBEntity object.

Stagedossier G15 Mobile CRM 54 3.3 SyncFramework (server) Figuur 11: Het server gedeelte van het synchronization framework. Klassen aangeduid in het grijs behoren tot het domein, maar zijn toegevoegd op het diagram zodat het duidelijker is welke klassen overerven en gebruiken. Zie verder bij het deel Synchronization Framework voor meer details en uitleg over de klassen.

Stagedossier G15 Mobile CRM 55 3.4 DAL laag Figuur 12: Het klasse diagram van de DAL laag van de mobile server/beheersapplicatie. De CRM Controller beheert tot het domein, maar is op het diagram gezet voor de duidelijkheid. 3.4.1 MobileSettings Dataset Automatisch gegenereerde datatables en adapters voor de instellingen(door de gewenste queries in te geven) die kunnen gebruikt worden om de tabellen uit de database te raadplegen. 3.4.2 SyncTracking Dataset Automatisch gegenereerde datatables en adapters voor het de laatste synchronisatie tijdstippen van elk object dat moet gesynchroniseerd worden bij te houden. 3.4.3 CRMObjectConversion Deze statische klasse wordt gebruikt om gegevens van de webservice om te zetten in standaard.net primitives en objecten en andersom.

Stagedossier G15 Mobile CRM 56 3.4.4 CRMMapper, CRMMetaMapper De mappers die gegevens van de CRM server kunnen halen en wegschrijven. De CrmMetaMapper kan de beschikbare entiteiten, attributen en relaties ophalen van de CRM Server. De CrmMapper kan de gegevens van een entiteit ophalen, maar ook records toevoegen, wijzigen of verwijderen. De mappers worden gebruikt door de CRMController van de domein laag.

Stagedossier G15 Mobile CRM 57 3.5 Database structuur 3.5.1 Mobile Settings Figuur 13: Het database diagram van de mobile settings database

Stagedossier G15 Mobile CRM 58 In de Mobile Settings Database worden alle instellingen opgeslagen van de beheersapplicatie. Ook worden toestellen toegevoegd in de Device tabel bij de 1 e synchronisatie, en bij verdere synchronisaties altijd up to date gebracht. 3.5.2 SyncTracking Database Client cid clientid MetaSyncDateEntry id naam cid lastsyncdate DataSyncDateEntry id naam cid lastsyncdate Figuur 14: Het database diagram van de SyncTracking database In de SyncTracking Database wordt elk toestel (client) dat gesynchroniseerd heeft bijgehouden. In de MetaSyncDateEntry en DataSyncDateEntry tabellen zit voor elk object dat moet gesynchroniseerd worden voor elk toestel een record die het laatste synchronisatie tijdstip opslaat. Zo weet de mobile server over welke objecten de mobile applicatie beschikt en welke er verwijderd, toegevoegd of gewijzigd zijn.

Stagedossier G15 Mobile CRM 59 3.6 Sequentie diagrammen 3.6.1 Beheer van entiteiten Figuur 15: Het sequentie diagram voor het beheren van entiteiten (zie use case)

Stagedossier G15 Mobile CRM 60 3.6.2 Beheer van profielen Figuur 16: Het sequentie diagram voor het beheren van profielen (zie use case)

Stagedossier G15 Mobile CRM 61 3.6.3 Beheer van users Figuur 17: Het sequentie diagram voor het beheren van users (zie use case)

Stagedossier G15 Mobile CRM 62 3.6.4 Beheer van lay-out Figuur 18: Het sequentie diagram voor het beheren van lay-out (zie use case)

Stagedossier G15 Mobile CRM 63 3.6.5 Beheren van forms Figuur 19: Het sequentie diagram voor het beheren van een form (zie use case)

Stagedossier G15 Mobile CRM 64 3.6.5.1 Beheren van views Figuur 20: Het sequentie diagram voor het beheren van een view (zie use case)

Stagedossier G15 Mobile CRM 65 3.6.6 Beheren van filters Figuur 21: Het sequentie diagram voor het beheren van een filter (zie use case)

Stagedossier G15 Mobile CRM 66 3.6.7 Beheren van devices Figuur 22: Het sequentie diagram voor het beheren van een device (zie use case)

Stagedossier G15 Mobile CRM 67 4 Mobiele Applicatie 4.1 GUI Figuur 23: De structuur van de window forms van de mobiele applicatie Figuur 24: Het klassendiagram van de GUI van de mobiele applicatie

Stagedossier G15 Mobile CRM 68 4.1.1 OrientationAwareForm Abstracte window form die weet wanneer de oriëntatie van het toestel veranderd is en de methode OnOrientationChange oproept. 4.1.2 MobileCRMForm Abstract window form die de header en close knop beheert. 4.1.3 Entiteiten Overzicht (frmentiteitenoverzicht) De window form die het entiteiten overzicht toont (het beginscherm van de applicatie).

Stagedossier G15 Mobile CRM 69 4.1.4 AbstractFrmView Abstracte window form die records in een lijst kan tonen met paginering, kan zoeken naar records en kan sorteren op velden van een record. Zowel frmentiteitview als frmlookup maken hiervan gebruik om records van een entiteit te tonen. De klasse maakt gebruik van een ViewPage object, die een lijst van records kan pagineren en filteren. De meeste methodes zullen dan ook de gewenste actie delegeren naar dat object. 4.1.5 AbstractPage, ViewPage Abstracte klasse die resultaten kan pagineren. Er worden meerdere pagina s gecached zodat vorige of volgende pagina s opvragen zeer snel door de gebruiker ervaren wordt. Elke pagina wordt door een aparte thread opgehaald zodat de cache in parallel wordt opgevuld, wat veel sneller is dan sequentieel elke pagina opvragen. De enige methode die moet geïmplementeerd worden is de GetPage(record offset) methode. De subklasse ViewPage maakt hiervan gebruik en vraagt aan de domain controller de gewenste pagina, met toegepaste filters en sortering. Omdat dit redelijk veel parameters met zich meebrengt, zijn die gegroepeerd in de RetrieveFilteredItemsRequest klasse uit de DAL laag.

Stagedossier G15 Mobile CRM 70 4.1.6 Records van entiteit (frmentiteitview), Selecteren van een lookup (frmlookup) frmentiteitview is een window form die de records van een entiteit toont (in pagina s) volgens de verschillende gedefinieerde views van de geselecteerde entiteit. Het biedt o.a. de mogelijkheid aan om: Nieuwe records toe te voegen Details van een record op te vragen Een record te verwijderen De records te sorteren Records op te zoeken Te bellen, naar een website te surfen of een e-mail te versturen op basis van de gegevens van het geselecteerde record (via een context menu). frmlookup wordt gebruikt om een waarde voor een lookup veld (een veld dat naar een ander record van een entiteit wijst, vb. een bovenliggende klant bij een contactpersoon) te selecteren. De gebruiker kan uit de beschikbare entiteiten voor dat lookup veld kiezen (zie AttribuutLookupEntiteit klasse) en daarvan een record selecteren.

Stagedossier G15 Mobile CRM 71 4.1.7 FormPanel Panel die de details van een record zowel alleen lezen als aanpasbaar kan tonen en de overeenkomstige controls toont aan de hand van het veld type (dropdownlist, lookup, string, memo, boolean,...). De lay-out wordt opgebouwd op basis van de gedefinieerde instellingen (welke tabs en welke velden per tab). De gebruiker kan ook verschillende acties ondernemen zoals een telefoonnummer bellen, naar een website surfen, een e- mail versturen of de details opvragen van een record waar een lookup veld naar verwijst. Ook worden alle velden gevalideerd of ze correct ingevuld zijn. De criteria zijn o.a.: Verplicht veld Correcte numerische waarde (bij numerische velden) Waarde ligt tussen interval (bij numerische velden) String is niet te lang... Extra informatie zoals interval en type van string zitten altijd in de parameter veld van het attribuut. Bij elk onjuist veld wordt de bijbehorende label in het rood getoond.

Stagedossier G15 Mobile CRM 72 4.1.8 Details van een record (frmentiteitform) Dit is een window form die de details van een record van een entiteit toont met behulp van een form panel. De wijzigingen kunnen aan de form panel gevraagd worden zodat het record kan opgeslagen worden. 4.1.9 Instellingen (frmsettings) De window form waar de gebruiker de instellingen kan invullen of wijzigen. De validatie gebeurt op ongeveer dezelfde wijze als bij de FormPanel.

Stagedossier G15 Mobile CRM 73 4.1.10 frmsynchronisatie, AbstractLogListener, DataLogListener, MetaLogListener frmsynchronisatie is de window form waar de gebruiker de synchronisatie kan starten en de voortgang ervan kan zien. Er kan bij het synchronization framework een logger meegegeven worden die het synchronisatie proces observeert. AbstractLogListener implementeert de interface van die logger en heeft een methode die een lijn kan toevoegen in de lijst die de gebruiker ziet. Aangezien er een verschil van interpretatie is tussen de objecten bij de metadata synchronisatie en de data synchronisatie is dit de superklasse van de MetaLogListener en DataLogListener. 4.1.11 Conflicten (frmconflicts), Details van een conflict (frmconflictdetails), ConflictPanel Een frmconflicts form geeft een overzicht van alle conflicten die er zijn in een lijst. De gebruiker kan hieruit een conflict selecteren om de details ervan te zien en om het op te lossen. Een frmconflictdetails form toont de keuze die de gebruiker kan maken bij het conflict met behulp van een ConflictPanel. Het toont in andere tabs ook de mobile als server versie. Een ConflictPanel toont naarmate het type van het conflict ofwel een lijst van velden die tussen de mobile en server versie verschillend zijn, ofwel een keuze tussen de mobiele en server versie in zijn geheel.

Stagedossier G15 Mobile CRM 74 4.1.12 ResourceManager, OldestCacheFirst De ResourceManager beheert de images die embedded zijn in de assembly, dit zijn alle resources die gebruikt worden in de lay-out van de window forms: icons (van entiteiten) en lay-out images (zoals buttons, header image,...). De manager cached ook een aantal images zodat die niet steeds opnieuw moeten ingelezen worden, met behulp van een OldestFirstCache. 4.1.13 OldestCacheFirst De OldestFirstCache is een cache die x aantal elementen toe laat, en daarna degene die het eerst is toegevoegd (degene die al het langst in de cache zit) uit de cache zal verwijderen om plaats te maken.

Stagedossier G15 Mobile CRM 75 4.2 Domein laag Figuur 25: Het klasse diagram van de domein laag van de mobiele applicatie 4.2.1 DomainController De DomainController klasse is een singleton die methodes van de DAL laag beschikbaar stelt. In tegenstelling tot de beheersapplicatie wordt de applicatie maar door 1 gebruiker tegelijk gebruikt, dus is er geen probleem om een singleton te gebruiken. 4.2.2 SynchronizationController De SynchronizationController biedt de functionaliteit aan om de metadata en data synchronisatie te starten. De meta synchronisatie zal eventueel een lijst teruggeven van attributen van records die moeten gesynchroniseerd worden ongeacht of ze up to date zijn. Dit komt voor wanneer een nieuw veld beschikbaar is geworden. Die lijst kan meegegeven worden met de data synchronisatie.

Stagedossier G15 Mobile CRM 76 4.3 DAL laag Figuur 26: Het klasse diagram van de DAL laag van de mobiele applicatie

Stagedossier G15 Mobile CRM 77 4.3.1 MetaMapper De MetaMapper is een façade voor de mappers van de meta data. Elk van de mappers bevat de CRUD methodes van hun respectievelijke DAL objecten. Het lezen van de gegevens is publiek, maar aanmaken, updaten of verwijderen van meta data is op internal (namespace) niveau, aangezien alleen de synchronisatie die methodes mag gebruiken. 4.3.2 EntiteitMapper, AttribuutMapper, FormMapper, FilterMapper, ViewMapper De EntiteitManager kan de Entiteit klasse uit de database lezen en ernaar wegschrijven. De AttribuutManager kan de Attribuut, AttribuutLookupEntiteit en AttribuutPicklistOption klassen inlezen en wegschrijven. De FormManager kan de Form, Tab en AttribuutPerForm klassen inlezen en wegschrijven. De ViewManager kan de View en AttribuutPerView klassen inlezen en wegschrijven. De FilterManager kan de Filter, Conditiegroep en Conditie klassen inlezen en wegschrijven.

Stagedossier G15 Mobile CRM 78 4.3.3 DynamicTableMapper Deze mapper beheert de dynamische tabellen die gemaakt moeten worden voor de records van entiteiten in op te slaan. De mapper kan: Tabellen voor een entiteit toevoegen en verwijderen. Kolommen toevoegen en verwijderen van die tabellen. Alle dynamische tabellen verwijderen en de metadata tabellen legen. 4.3.4 DataMapper De DataMapper klasse is een façade voor de data (records van entiteiten) en conflicten.

Stagedossier G15 Mobile CRM 79 4.3.5 DynamicDataMapper Deze mapper kan records van entiteiten lezen (met filtering en sortering met behulp van ) uit de dynamische tabellen en records weg schrijven. Buiten de CRUD methodes omvat deze klasse vooral methodes om de query string op te bouwen om records te lezen. Er wordt gebruik gemaakt van een RetrieveFilteredItemsRequest die definieert welke filters juist moeten toegepast worden. Er kan gefilterd worden op: Interval van de resultaten (subset van de resultset). De filter gedefinieerd in de view (ingesteld in de beheerapplicatie). Relatie: de records moeten aan een bepaalde relatie criteria voldoen (vb. alle contact personen die van account ESC). Zoekfunctie: 1 of meerdere velden van een record moet voldoen aan de ingegeven zoekstring. Verwijderde records: moeten records die als status verwijderd hebben ook nog teruggegeven worden.

Stagedossier G15 Mobile CRM 80 4.3.6 LookupMapper Lookup velden van een record worden in aparte tabel opgeslagen. Deze mapper beheert zowel de normale tabel voor de lookups van de mobile versies als de conflict tabel voor lookups van de server versies. 4.3.7 ConflictMapper Conflicten worden in de conflict tabel opgeslagen. De server versies van records worden in een aparte dynamische tabel opgeslagen, die aangemaakt wordt wanneer de normale tabel wordt aangemaakt. Ook voor de lookup velden is er een aparte tabel om de lookups van de server versie op te slaan. Deze mapper kan conflicten opvragen, toevoegen, updaten en verwijderen. De conflicten die opgevraagd worden, worden ingelezen met hun bijbehorende mobile en server versie. 4.3.8 DBEntity Deze klasse wordt zowel voor metadata als data gebruikt om te synchroniseren. De metadata klassen erven van deze klasse over en bieden expliciet de properties aan die in de dictionary zitten. Bij records van entiteiten zitten alle gegevens ook in die dictionary, met als key de naam van het veld. Zo kan met behulp van de metadata de gegevens opgevraagd worden.

Stagedossier G15 Mobile CRM 81 4.3.9 DAL Objecten Domein objecten hebben dezelfde functie als bij de beheersapplicatie. De associaties naar andere DAL objecten worden ook via lazy loading geladen en worden dan gecached om alles sneller te laten verlopen. De properties van de objecten worden uit de property dictionary gelezen en via property velden aangeboden. 4.3.10 ClientData, MetaClientData Zowel de ClientData als MetaClientData klassen erven over van IServerData van het synchronisatie framework. Het zijn de data sources voor de data en metadata synchronisatie. De methodes maken gebruik van de mappers in de MetaMapper en DataMapper om metadata en data op te vragen of weg te schrijven.

Stagedossier G15 Mobile CRM 82 4.3.11 ClientProvider, MetaClientProvider De client providers voor de meta en data synchronisatie. De synchronisatie wordt bijna volledig afgehandeld in de AbstractClientProvider superklasse van het synchronization framework. Het enigste verschil is dat de meta client provider een lijst van attributen opbouwt waarvan de gegevens ontbreken op de mobile. Die worden dan meegegeven bij de ClientProvider. De SyncController zal ze opvragen en doorsturen naar de server provider. 4.3.12 AbstractSyncClientItem, SyncClientDataItem, SyncClientMetaItem De wrapper voor een object van de mobile. Het bevat het eigenlijke object (DBEntity), maar ook extra gegevens zoals de status van het object: Toegevoegd Toegevoegd, gewijzigd Gewijzigd Verwijderd Onveranderd Zoals bij de beheersapplicatie is ook hier het enigste verschil tussen SyncClientDataItem en SyncClientMetaItem is het opvragen van het Id van het object. Bij meta data is dat veld altijd id, terwijl bij de CRM data dit afhangt per entiteit van het veld dat daarvoor gedefinieerd is op de CRM Server (contactid, accountid, ).

Stagedossier G15 Mobile CRM 83 4.3.13 SharedSyncObjectSerializer, SyncObjectSerializer, MetaSyncObjectSerializer De SharedSyncObjectSerializer erft over van de standaard AbstractSyncObjectSerializer en implementeert het lezen en schrijven van een DBEntity object. De MetaSyncObjectSerializer zorgt ook wanneer een DBEntity object gelezen wordt dat het met behulp van reflection naar het goeie Metadata object omgezet wordt. 4.4 SyncFramework (client) Figuur 27: De klassen die de client gebruikt van het synchronization framework Zie verder bij het deel Synchronization Framework voor meer details en uitleg over de klassen.

Stagedossier G15 Mobile CRM 84 4.5 Database 4.5.1 Meta Data tabellen Figuur 28: De meta data tabellen van de database van de mobiele applicatie. Deze tabellen bevatten de gegevens van de meta data, die de mobiele applicatie nodig heeft om de CRM data gestructureerd te tonen. Er zijn geen foreign keys gedefinieerd aangezien de gegevens op willekeurige volgorde kunnen toegevoegd worden bij de synchronisatie (behalve bij attributen en entiteiten aangezien een entiteit zijn attributen moet kennen om de dynamische tabellen te maken).

Stagedossier G15 Mobile CRM 85 4.5.2 CRM Data Figuur 29: De tabellen waarin de CRM data wordt opgeslagen op de mobiele applicatie De CRM data wordt in dynamische tabellen opgeslagen. Wanneer een nieuw Meta_Entiteit toegevoegd wordt, zal er ook 2 dynamische tabellen gemaakt worden met als kolommen de gedefinieerde Meta_Attributen: MOBILE_<entiteitnaam>: De tabel die de gegevens bevat van de CRM server. CONFLICT_<entiteitnaam>: De tabel die de server versie van de gegevens bevat wanneer er een conflict is met de gegevens uit de MOBILE_<entiteitnaam> tabel. Meta_Conflict bevat de conflicten die het type conflict bevat en met de itemid en naam velden de 2 verschillende versies kan opvragen. De lookup tabellen worden niet aangemaakt maar er wordt wel naartoe verwezen bij records van entiteiten die 1 of meerdere lookup velden hebben. De mobile versie en de conflict versie wordt ook hier gesplitst in 2 tabellen.

Stagedossier G15 Mobile CRM 86 4.6 Sequentie Diagrammen 4.6.1 Applicatie opstarten Figuur 30: Het sequentie diagram voor opstarten van de mobiele applicatie (zie use case)

Stagedossier G15 Mobile CRM 87 4.6.2 Entiteiten mobiel gebruiken Figuur 31: Het sequentie diagram voor normale gebruik van de mobiele applicatie (zie use case)

Stagedossier G15 Mobile CRM 88 4.6.3 Oplossen van conflicten Figuur 32: Het sequentie diagram voor het oplossen van 1 of meerdere conflicten (zie use case)

Stagedossier G15 Mobile CRM 89 4.6.4 Beheren van instellingen Figuur 33: Het sequentie diagram voor het aanpassen van de instellingen (zie use case)

Stagedossier G15 Mobile CRM 90 5 Synchronization Framework 5.1 Basisstructuur Figuur 34: De basisstructuur van het synchronization framework. Het synchronisatie framework bestaat uit 2 grote delen, enerzijds de client (mobile) en de server (mobile server/beheersapplicatie) waar de synchronisatie moet tussen gebeuren. De SyncController (die zowel op de client als op de server kan staan) krijgt 2 providers mee: een Client- en ServerSyncProvider die de nodige methodes bevat om de synchronisatie tot een goed einde te brengen. Ook kan op elk moment de synchronisatie afgebroken worden door vb. de gebruiker, maar ook door bijvoorbeeld het wegvallen van de verbinding. Het synchronisatie protocol houdt hier mee rekening en houdt de gegevens tussen de client (mobile) en de server consistent, bij de volgende synchronisatie wordt gewoon hervat.

Stagedossier G15 Mobile CRM 91 5.1.1 SyncController De SyncController beheert de synchronisatie. Het vraagt de gegevens van de client en de server op en vraagt aan de server en client om ze up te daten zodat na de synchronisatie beide over dezelfde gegevens beschikken. Het zorgt ook voor de correcte omzetting van ISyncClientItems naar ISyncServerItems en omgekeerd. 5.1.2 ISyncClientProvider De client provider van de synchronisatie. Definieert de methodes die de SyncController nodig om de gegevens op te vragen en weg te schrijven van de client. Start van synchronisatie o SynchronizationStarted: wordt aangeroepen wanneer de synchronisatie gestart wordt. Updates van server o GetPartialItems: geeft properties terug van objecten die altijd moeten naar de client gestuurd worden, ook wanneer het item van de client nog up to date is (wordt gebruikt om ontbrekende data in te vullen). o ItemIsUpToDate, UpdateItem: wordt aangeroepen wanneer de last sync date van een item geverifieerd is op de server. o UpdateNewItem: wordt aangeroepen wanneer de client een item van de server niet had. o UpdateRemoveItem: wordt aangeroepen wanneer een element op de server niet meer bestaat, dus de client moet het element verwijderen.

Stagedossier G15 Mobile CRM 92 Na update, voor server o SyncBreakAfterUpdate: biedt de mogelijkheid om de synchronisatie stop te zetten na de updates (vb. indien er conflicten zijn). Commit naar server o PrepareNewItemsIterator, NextNewItem: biedt alle gegevens aan die toegevoegd zijn op de client. o UpdateItemBecauseOfFailedAdd, AddItemSuccess: wordt aangeroepen wanneer het item is toegevoegd op de server. o PrepareModifiedCreatedItemsIterator, NextModifiedCreatedItem: biedt alle gegevens aan die reeds zijn toegevoegd op de server in het synchronisatie proces maar nog gegevens hebben die verwezen naar andere nieuwe items (waardoor dus eerst alle nieuwe items moesten aangemaakt worden vooraleer de referenties kunnen gelegd worden). o PrepareModifiedItemsIterator, NextModifiedItem: biedt alle gegevens aan die gewijzigd zijn op de client. o UpdateItemBecauseOfFailedUpdate, UpdateItemSuccess: wordt aangeroepen wanneer de update op de server doorgevoerd is. o PrepareDeletedItemsIterator, NextDeletedItem: biedt alle gegevens aan die verwijderd zijn op de client. o UpdateItemBecauseOfFailedDelete, DeleteItemSuccess: wordt aangeroepen wanneer het item is verwijderd op de server. Einde van de synchronisatie o SynchronizationComplete: wordt aangeroepen wanneer de synchronisatie voltooid is. Problemen in de synchronisatie o SyncIsBroken: wordt aangeroepen als er een fout is opgetreden tijdens de synchronisatie 5.1.3 ISyncServerProvider Start van synchronisatie o SynchronizationStarted: wordt aangeroepen wanneer de synchronisatie gestart wordt. o Authorize: de client moet zich autoriseren. Updates van server o PrepareForSyncDateItems: wordt aangeroepen wanneer de client sync date items ga sturen. Hier wordt ook alle properties meegegeven van de items die zeker moeten gestuurd worden naar de client (ook al is het item up to date), zodat de ontbrekende informatie op de client kan ingevuld worden. o VerifyLastSyncDate: geeft een item terug waarvan de server een nieuwere versie over beschikt dan de client. o NextNewItem: biedt alle gegevens die de client niet heeft aan.

Stagedossier G15 Mobile CRM 93 Commit naar server o TryUpdateItem: probeert het item van de client up te daten, als dit niet lukt wordt het item van de server teruggegeven. o TryAddItem: probeert het item van de client toe te voegen, als dit niet lukt (omdat het item al bestaat op de server), dan geeft dit de item van de server terug. o TryUpdateAddedItem: probeert het item van de client te wijzigen nadat het is toegevoegd in de synchronisatie. o TryDeleteItem: probeert het item op de server te verwijderen, als dit niet lukt (omdat het item gewijzigd is op de server), dan geeft dit de item van de server terug. Einde van de synchronisatie o SynchronizationComplete: wordt aangeroepen wanneer de synchronisatie voltooid is. Problemen in de synchronisatie o SyncIsBroken: wordt aangeroepen als er een fout is opgetreden tijdens de synchronisatie 5.1.4 AbstractClientProvider, AbstractServerProvider Beide klassen implementeren voor een groot deel het synchronisatie proces (welke gegevens er moeten opgevraagd worden, wanneer een conflict moet gegenereerd worden, etc. Ze gebruiken respectievelijk een IClientData en IServerData data source waar de gegevens aan kunnen opgevraagd worden of naartoe weggeschreven worden.

Stagedossier G15 Mobile CRM 94 5.1.5 IClientData De interface voor een datasource die de AbstractClientProvider gebruikt om de gegevens van de synchronisatie op te vragen en toe te voegen, wijzigen of verwijderen. 5.1.6 IServerData De interface voor een datasource die de AbstractServerProvider gebruikt om de gegevens van de synchronisatie op te vragen en toe te voegen, wijzigen of verwijderen. Het zorgt ook voor de SyncTracking methodes die de AbstractServerProvider gebruikt om de laatst sync tijdstippen bij te houden van elk object dat gesynchroniseerd moet worden.

Stagedossier G15 Mobile CRM 95 5.1.7 ISyncItem, ISyncClientItem, ISyncServerItem Deze interfaces stellen een item voor dat gesynchroniseerd moet worden. Beide bevatten het eigenlijke object dat gesynchroniseerd worden, maar hebben verschillende extra synchronisatie gegevens. De extra data van de client omvat per record: Status: o Created: Item is aangemaakt op de client. o ModifiedCreated: het item is toegevoegd op de server zonder referenties, het moet nog geüpdatet worden op de server met de referenties o Modified: Item is gewijzigd op de client (als wijzigingen op een created item worden gedaan, blijft het item Created). o Deleted: Item is verwijderd op de client. o Unchanged: Er is niets aangepast aan het item sinds de last sync date. De extra van de server omvat per record: Modified Date: Het tijdstip van de laatste wijziging van de item op de server. Creation Date: Het tijdstip van wanneer het item op de server is aangemaakt.

Stagedossier G15 Mobile CRM 96 5.1.8 ISyncHeaderItem, ISyncUpdateItem, ISyncDateItem Een SyncHeaderItem definieert het id en de naam van een object. Dit wordt gebruikt wanneer er alleen die gegevens nodig zijn (vb. bij het verwijderen van het object is het niet nodig alle gegevens door te sturen aangezien de combinatie id en naam al voldoende zijn om te weten over welk object het gaat). Een SyncDateItem houdt buiten de naam en het id van een object ook zijn laatste synchronisatie tijdstip bij. Die kunnen worden opgevraagd en opgeslagen bij de IServerData en wordt gebruikt om te controleren of een object moet gesynchroniseerd worden. Een SyncUpdateItem duidt buiten het eigenlijke object ook nog aan of alle gegevens van het object beschikbaar zijn, of maar een deel ervan en of er ook een item is gedefinieerd dat moet geüpdatet worden. 5.1.9 Conflict Wanneer er zowel bij de client als server versie iets gewijzigd wordt, wordt een conflict gemaakt. Een Conflict object houdt dan bij het type van het conflict en welke 2 versies in conflict zitten met elkaar.

Stagedossier G15 Mobile CRM 97 5.2 Synchronisatie over TCP Figuur 35: Het overzicht van het Synchronization Framework over TCP. IServerSyncProvider is hier 2x toegevoegd voor de duidelijkheid en 1 ervan behoort tot de client, de andere tot de server 5.2.1 ServerProviderTCPClient Deze klasse implementeert de IServerSyncProvider zodat de SyncController er gebruik van kan maken. Bij de 1 e methode wordt een verbinding gemaakt naar de echte server en worden alle methodes gedelegeerd over TCP (de methode en outgoing parameters worden verstuurd. Daarna wordt een boolean gelezen die aangeeft of er een exception gegooid was. Daarachter volgt de return waarde en alle incoming parameters).

Stagedossier G15 Mobile CRM 98 5.2.2 ServerTCPListener Deze klasse luistert naar inkomende verbindingen en maakt een SyncWorker die de synchronisatie zal afhandelen op een nieuwe thread per verbinding. 5.2.3 SyncWorker De SyncWorker leest de inkomende data en delegeert de requests naar de methodes van de IServerSyncProvider van de server. Het resultaat van die methodes wordt dan teruggestuurd naar de client. Met behulp van reflection wordt de correcte gevraagde methode aangeroepen.

Stagedossier G15 Mobile CRM 99 5.2.4 EncryptedBinaryReader,EncryptedBinaryWriter De EncryptedBinaryReader leest een blok aan data uit de stream, die wordt gedecrypt en daar wordt dan alle gegevens uit gelezen, tot wanneer er voorbij het einde van die blok gelezen wordt, dan wordt de volgende blok gelezen uit de stream, enz.. Bij de EncryptedBinaryWriter worden de gegevens die weggeschreven worden in een buffer opgeslagen. Wanneer de Flush() methode aangeroepen wordt, worden de gegevens uit de buffer als een blok aan data verstuurd. Zowel de EncryptedBinaryReader als de EncryptedBinaryWriter gebruiken het adapter pattern om een extra laag boven de standaard reader en writer te voorzien. 5.2.5 AbstractSyncObjectSerializer Aangezien het compact framework geen ondersteuning heeft voor het serializeren en deserializeren van objecten worden alle objecten die moeten verstuurd worden herleid naar blokken van primitives. Deze klasse biedt de methodes aan om de synchronisatie objecten te lezen en weg te schrijven naar een stream. Het object dat gewrapped zit in een sync object is als abstracte methode toegevoegd en moet dus wel nog geïmplementeerd worden.

Stagedossier G15 Mobile CRM 100 5.2.6 Crypto Deze klasse biedt de functionaliteit aan om een blok aan data te encrypteren en te decrypteren. Er is op het compact framework geen ondersteuning voor de Cryptography klassen, dus maakt het gebruik van native Windows Mobile dll s om de encryptie uit te voeren. 5.3 Sequentie Diagram 5.3.1 Start van de synchronisatie De start van de synchronisatie, de client maakt gebruik van de SyncController om de synchronisatie te starten. Die laat aan beide weten dat de synchronisatie gestart wordt. Bij synchronisatie over TCP wordt bij SynchronisationStarted ook eerst de verbinding gemaakt naar de server. Daarna worden de gegevens aan de client opgevraagd die nodig zijn bij de autorisatie en doorgegeven naar de server om de client te laten autoriseren.

Stagedossier G15 Mobile CRM 101 5.3.2 Updaten van gegevens op de client Nu wordt aan de server gevraagd al de last sync date entries van de client te overlopen en te vergelijken met de gegevens van de server. Daar kunnen inmiddels verschillen op treden: De last sync date entry van een object is ouder dan het wijzigingstijdstip van het object op de server. Het object moet dus out of date op de client en moet dus geüpdatet worden. Het object van de last sync date entry bestaat niet meer op de server, dit wil zeggen dat heb object sinds de laatste synchronisatie verwijderd is van de server, dus de client moet het object verwijderen. Er is geen last sync date entry voor een object van de server, dus het object is nog niet gesynchroniseerd dus de client moet het toevoegen (NextNewItem). Na deze stap zal ook aan zowel de client als server gevraagd worden of de synchronisatie hier moet eindigen. Dit is handig wanneer de client de gegevens van de server moet krijgen maar ze niet mag aanpassen, waardoor er nooit gegevens op de server geüpdatet moet worden. 5.3.3 Updaten van de gegevens op de server Het updaten van de gegevens op de server gebeurt in 4 delen: Toevoegen van nieuwe objecten op de server Er wordt aan de client een lijst gevraagd van nieuwe objecten die moeten toegevoegd worden, en elk van die objecten worden dan naar de server verstuurd. Er kunnen problemen optreden (vb. het mag niet toegevoegd worden), dus naargelang wordt AddItemSuccess en UpdateItemBecauseOfFailedAdd op de client opgeroepen.

Stagedossier G15 Mobile CRM 102 Updaten van toegevoegde objecten op de server Nadat alle objecten zijn toegevoegd zijn we zeker dat verwijzingen naar 1 van die objecten kunnen bestaan op de server. Nu worden de referenties van de objecten die toegevoegd waren geüpdatet op de server, op een gelijkaardige manier als het toevoegen zelf. Updaten van gewijzigde objecten Na het updaten van nieuwe objecten worden de gewijzigde objecten naar de server verstuurd. Updaten van verwijderde objecten En tenslotte als laatste worden de headers van de verwijderde objecten naar de server gestuurd. Einde van de synchronisatie Nadat alle objecten naar de server verstuurd zijn is de synchronisatie afgewerkt.

Stagedossier G15 Mobile CRM 103 Deel 4: Afwerking en Testen 1 Enkele significante scherm lay-outs 1.1 Beheersapplicatie

Stagedossier G15 Mobile CRM 104 1.2 Mobiele applicatie Voor meer informatie over de schermen, zie verder bij 3. Handleiding.

Stagedossier G15 Mobile CRM 105 2 Testen Om het project te testen hebben we een zo volledig mogelijk testverslag opgesteld om de correcte werking te garanderen. Hier en daar hebben we gebruik gemaakt van unit testing om componenten te testen, maar aangezien dit project over verschillende subprojecten loopt en een client-server model hanteert is dit niet evident om daar unit testen te voor gaan schrijven. 2.1 Testverslag 2.1.1 Beheersapplicatie 2.1.1.1 Beheer Entiteiten Namen worden weergegeven in de gridview Icoontjes worden weergegeven in de gridview Een entiteit kunnen selecteren Selectie van een entiteit kunnen veranderen Geselecteerde Entiteit verwijderen Bevestiging bij het verwijderen van een entiteit Geen selectie, niets verwijderen Beheer Entiteiten PopUp weergeven bij toevoegen nieuwe entiteit Gridview goed updaten na het sluiten van Beheer Entiteiten PopUp Titel van de pagina wordt goed weergegeven 2.1.1.2 Beheer Entiteiten Popup Namen worden weergegeven in de gridview Icoontjes worden weergegeven in de gridview Entiteiten kunnen worden aangevinkt/afgevinkt Bij OK worden de entiteiten toegevoegd als mobiele entiteit Bij Annuleren wordt de pagina gesloten Titel van de pagina wordt goed weergegeven 2.1.1.3 Beheer Lay-out Overzicht Namen worden weergegeven in de gridview Icoontjes worden weergegeven in de gridview Entiteit selecteren Selectie Entiteit kunnen veranderen Beheer Lay-out PopUp weergeven bij dubbelklik op een entiteit PopUp wordt in het midden van het scherm weergegeven 2.1.1.4 Beheer Lay-out Popup Alle Icoontjes worden goed weergegeven Default icoontjes als er voor die entiteit geen icoontje is Gridviews View/Form/Filter worden goed weergeven Er kan een rij geselecteerd worden in de gridviews View/Form/Filter Er kan een rij verwijderd worden in de gridviews View/Form/Filter Bevestiging bij verwijderen rij in Gridview View/Form/Filter Beheer Lay-out View weergeven bij dubbelklikken op View

Stagedossier G15 Mobile CRM 106 Beheer Lay-out View weergeven bij nieuwe View Beheer Lay-out Form weergeven bij dubbelklikken op Form Beheer Lay-out Form weergeven bij nieuwe Form Beheer Lay-out Filter weergeven bij dubbelklikken op Filter Opslaan & Opslaan en Afsluiten knoppen werken Titel van de pagina wordt goed weergegeven 2.1.1.5 Beheer Lay-out View Alle Icoontjes worden goed weergeven Default icoontjes als er voor die entiteit geen icoontje is Gridview wordt goed weergeven Kolom selecteren Selectie van kolom veranderen Geselecteerde kolom verwijderen Beheer Lay-out Attributen weergeven bij toevoegen kolommen Kolommen naar rechts verplaatsen Kolommen naar links verplaatsen Beheer Lay-out Filter weergeven bij bewerken van Filter Bij nieuwe View zeggen dat ze eerst de view moeten opslaan voordat ze filter kunnen aan toevoegen Na aanmaken nieuwe filter, wordt filter goed weergegeven bij 2e keer bewerken Opslaan & Opslaan en Afsluiten knoppen werken De naam van een view moet uniek zijn Titel van de pagina wordt goed weergegeven 2.1.1.6 Beheer Lay-out Form Alle Icoontjes worden goed weergeven Default icoontjes als er voor die entiteit geen icoontje is Tabbladen worden goed weergegeven De gridview per tabblad wordt goed weergeven Een rij van de gridview kunnen selecteren Selectie van een rij kunnen wijzigen Geselecteerde rij verplaatsen naar boven Geselecteerde rij verplaatsen naar onder Geselecteerde rij verwijderen Beheer Lay-out Attributen weergeven bij toevoegen Attribuut Tabblad selecteren Selectie Tabblad wijzigen Geselecteerde Tabblad verplaatsen naar rechts Geselecteerde Tabblad verplaatsen naar links Geselecteerde Tabblad verwijderen Bevestiging bij verwijderen van Tabblad Tabblad Toevoegen Naam Tabblad wijzigen Required Fields moeten op de form toegevoegd zijn.

Stagedossier G15 Mobile CRM 107 Opslaan & Opslaan en Afsluiten knoppen werken De naam van een form moet uniek zijn Beheer Lay-out Relatie weergeven bij toevoegen Relatie Weergavenaam van een relatie in de gridview wordt goed weergegeven Titel van de pagina wordt goed weergegeven 2.1.1.7 Beheer Lay-out Relatie Namen worden weergegeven in de gridview Relaties kunnen worden aangevinkt/afgevinkt De gekozen Relaties worden goed aan de huidige GuiForm toegevoegd. Titel van de pagina wordt goed weergegeven 2.1.1.8 Beheer Lay-out Attributen Namen worden weergegeven in de gridview Required niveau wordt weergegeven Enkel de attributen die nog niet zijn toegevoegd in View/Form wordt weergegeven Attributen kunnen worden aangevinkt/afgevinkt Titel van de pagina wordt goed weergegeven 2.1.1.9 Beheer Lay-out Filter Alle Icoontjes worden goed weergeven Default icoontjes als er voor die entiteit geen icoontje is De treeview van de Filter wordt goed opgebouwd Default Filter wordt weergegeven bij nieuwe Filter Icoontjes in de treeview worden goed weergegeven Nodes van de treeview kunnen selecteren Selectie node wijzigen afhankelijk van de geselecteerde node andere knoppen enabled/disabled Toevoegen Node bij Toevoegen van ConditieGroep Wijzigen Operator van geselecteerde ConditieGroep Verwijderen Node bij Verwijderen ConditieGroep Bevestiging bij verwijderen van ConditieGroep Beheer Lay-out Filter PopUp weergeven bij toevoegen nieuwe Conditie Beheer Lay-out Filter PopUp weergeven bij wijzigen Conditie Verwijderen Node bij Verwijderen Conditie Bevestiging bij verwijderen van Conditie Opslaan & Opslaan en Afsluiten knoppen werken Filternaam moet uniek zijn Titel van de pagina wordt goed weergegeven

Stagedossier G15 Mobile CRM 108 2.1.1.10 Beheer Lay-out Filter Popup Als er een Conditie moet worden aangepast wordt deze goed weergeven Titel van de pagina wordt goed weergegeven 2.1.1.11 Beheer Profielen Namen worden weergeven in Gridview Beheer Profielen Pop Up weergegeven bij het aanpassen van een rij Profiel verwijderen Bevestiging bij het verwijderen van een profiel In de inner Gridview wordt alles goed weergeven Entiteit in de inner Gridview verwijderen 2.1.1.12 Beheer Profiel Popup De profielnaam wordt weergegeven Per entiteit wordt zijn eigenschappen goed weergeven In de inner gridview wordt alles goed weergeven Bij het opslaan worden de default view & form opgeslagen ook al staan ze niet aangevinkt in de inner gridview Profielen zonder view of form kunnen niet worden toegevoegd Bij aanpassingen wordt alles goed opgeslagen Bij aanmaken nieuw profiel wordt alles goed opgeslagen Profielnaam moet uniek zijn 2.1.1.13 Beheer Users Namen worden weergegeven in Gridview Details voor een user wordt goed weergeven in de inner gridview Opties voor toevoegen van Nieuwe gebruiker worden weergegeven Verwijderen van User Bevestiging bij verwijderen van User Als er niets geselecteerd is doet de knop bewerken niets Er kan geen user toegevoegd worden als er geen profielen zijn Na toevoegen en verwijderen gebruiker, de gebruikers dropdownlist updaten 2.1.1.14 Beheer Users Popup Gegevens over User worden goed weergegeven Alle toestellen van de user worden goed weergegeven in de gridview Titel van de pagina wordt goed weergegeven

Stagedossier G15 Mobile CRM 109 2.1.1.15 Beheer Devices Gegevens over alle toestellen worden goed weergegeven Blacklisted devices staan aangevinkt en hebben een zwart icoontje Bij het aanvinken van een toestel wordt het toestel na bevestiging geblacklist Bij het afvinken van een toestel wordt het toestel na bevestiging van de blacklist gehaald 2.1.2 Mobiele Applicatie 2.1.2.1 Initialisatie Er wordt gevraagd om de settings in te vullen en gaat naar settings Geef fout wanneer bij de settings geannuleerd word bij de first run Er worden nog geen entiteiten getoond in de lijst (tenzij er al in de database zitten) Er zijn nog geen conflicten 2.1.2.2 View van een Entiteit De default view van de entiteit wordt gebruikt om records te tonen De eerste kolom staat default ascending gesorteerd bij gekozen view Via menu kan alle beschikbare views gekozen worden De lay-out wordt geüpdatet wanneer een view gekozen wordt Wanneer er geladen wordt, wordt de loading image getoond Er kan gesorteerd worden op elke kolom, 2e klik sorteert descending Als er descending gesorteerd is en er wordt een andere kolom gekozen is de sort order terug ascending De kolommen worden automatisch gefit op de listview width Er wordt een dialog getoond wanneer gekozen wordt voor zoeken via menu Zoeken naar records werkt Toon alle uit menu refresht de lay-out van huidig view en toont alle records en behoudt de sort key Vorige/ Volgende pagina's kunnen gekozen worden uit de menu of met <- of -> keys Er kan geen vorige of volgende pagina gekozen worden als er geen data is Een nieuw record kan via menu toegevoegd worden -> ga naar form van entiteit Als record niet mag toegevoegd worden, geef fout Bij Orientation change wordt de lay-out geüpdatet Een record kan verwijderd worden via de menu Als er geen record geselecteerd zijn en kies voor verwijderen, geef een fout Bij verwijderen van record wordt bevestiging gevraagd Bij gekozen record (item activate) de details tonen -> ga naar form van entiteit Het lrg icon van de entiteit wordt getoond linksboven Er is een werkende close button rechtsboven Alle images zijn beschikbaar en goed getoond De filter van de gekozen view is toegepast De lijst wordt geüpdatet wanneer een record toegevoegd is De lijst wordt geüpdatet wanneer een record aangepast is De lijst wordt geüpdatet wanneer een record verwijderd is

Stagedossier G15 Mobile CRM 110 2.1.2.3 Overzicht Entiteiten Bij Orientation change wordt de lay-out geüpdatet Beschikbare entiteiten worden getoond Entiteit selecteren gaat naar view Er kan niet meer geklikt worden op entiteiten wanneer 1 entiteit gekozen is Alle images zijn beschikbaar en goed getoond Er is een werkende close button rechtsboven Er kan naar de conflicten overzicht window gegaan worden via de menu Er kan naar de synchronisatie window gegaan worden 2.1.2.4 Form van een entiteit De default form wordt gebruikt om gegevens te tonen De verschillende tabs worden getoond, met 1e tab als default De attributen worden per tab getoond onder elkaar met labels links en toepasselijke velden op basis van hun type rechts Het primary field wordt getoond in de header De required of optionele velden worden aangeduid met * of + Als wijzigen van entiteit niet toegelaten is, worden alle velden als alleen lezen getoond Bij Orientation change wordt de lay-out geüpdatet Bij een telefoonnummer veld kan het veld gebruikt worden om naartoe te telefoneren Bij een website veld kan het veld gebruikt worden om naartoe te surfen Bij een email veld kan het veld gebruikt worden om een email te sturen Na aanpassingen van email, website of telefoonnummer, wordt de actie op de nieuwe waarde van het veld uitgevoerd Wanneer de form gesloten wordt via de close en er zijn aanpassingen gebeurd, wordt bevestiging gevraagd Bij een lookup veld kan de details van de refererende record opgevraagd worden Een lookup veld wijzigen doet de frmlookup dialog open Nadat een nieuw lookup veld gekozen is, is de lay-out geüpdatet Wanneer het refererende record niet beschikbaar is op de mobiele client, wordt dat aangeduid Labels die langer zijn dan ze kunnen tonen worden getruncated Alle images zijn beschikbaar en goed getoond Er is een werkende close button rechtsboven De relaties worden als links getoond, en wanneer er op geklikt wordt, wordt een frmentiteitview geopend Als de entiteit van de relatie niet beschikbaar is wordt dat gemeld Loading animation wordt getoond wanneer naar de details van een lookup, lookup form of relatie genavigeerd wordt 2.1.2.5 Relaties op een form Alleen de records van de entiteit van de relatie die voldoen aan de relatie met de bovenliggende entiteit worden getoond Als een nieuw record wordt toegevoegd, wordt het veld van de relatie automatisch ingevuld 2.1.2.6 Lookup Dialog Als er al een refererend veld was ingevuld, wordt het entiteit ervan automatisch gekozen

Stagedossier G15 Mobile CRM 111 Bij Orientation change wordt de lay-out geüpdatet Als een entiteit uit de dropdownlist gekozen is, wordt de lijst van records geüpdatet De lijst wordt ook default gesorteerd op de 1e kolom De kolommen worden automatisch gefit op de width van de lijst Pagina's kunnen veranderd worden met de <- en -> keys Er kan geen vorige of volgende pagina gekozen worden als er geen data is Wanneer er geladen wordt, wordt de loading image getoond Er kan gesorteerd worden op elke kolom, 2e klik sorteert descending Als er descending gesorteerd is en er wordt een andere kolom gekozen is de sort order terug ascending Alle images zijn beschikbaar en goed getoond Er kan gezocht worden op bepaalde records van de gekozen entiteit Wanneer er gezocht is, is de knop automatisch 'toon alle resultaten' Wanneer er geladen wordt, wordt de loading image getoond De details van een record kan opgevraagd worden via de menu, de form wordt als readonly getoond Wanneer geen entiteit geselecteerd is en er wordt bevestigd, wordt de lookup gecleared Het geselecteerde record wordt doorgegeven bij bevestiging Wanneer geannuleerd wordt is er niets gewijzigd Geen entiteit selecteren cleared het lookup veld Aanpassen van het zoekveld veranderd de search button terug in zoeken Er kan niet gezocht worden wanneer geen entiteiten geselecteerd zijn 2.1.2.7 Settings Niet alle velden correct ingevuld -> Fout, dialog met ongeldige velden Alle required velden worden met * aangeduid Bij het verwijderen van alle gegevens wordt een bevestiging gevraagd Paswoord en encryption key worden gemaskeerd Alle images zijn beschikbaar en goed getoond Er is een werkende close button rechtsboven Wanneer geannuleerd wordt is er niets gewijzigd Bij Orientation change wordt de lay-out geüpdatet Na verwijderen van alle data wordt automatisch terug volledig gesynchroniseerd bij de volgende synchronisatie 2.1.2.8 Synchronisatie Fout bij verbreken van de verbinding Fout wanneer er geen of incorrecte instellingen ingesteld zijn Wanneer het maximaal aantal toestellen bereikt is voor de gebruiker, wordt een fout gegeven Wanneer een verkeerde gebruikersnaam en passwoord is ingeven, geef een fout Wanneer er een fout opgetreden is wordt de synchronisatie gestopt Meta data die aangemaakt, gewijzigd of verwijderd is wordt met bijpassend icoon getoond Wanneer een record aangepast is op de client, maar ook aangepast is op de server, wordt dit als conflict toegevoegd Wanneer een record is aangepast op de client, maar verwijderd op de server, wordt dit als conflict toegevoegd

Stagedossier G15 Mobile CRM 112 Nieuwe records op de server worden geüpdatet naar de client Gewijzigde records op de server worden geüpdatet op de client Verwijderde records op de server worden verwijderd op de client Records die verwijderd zijn op de client en ook verwijderd zijn op de server geeft geen conflict Records die verwijderd zijn op de client maar gewijzigd zijn op de server geeft conflicten Er kunnen geen meerdere synchronisaties tegelijkertijd gestart worden Bij Orientation change wordt de lay-out geüpdatet Bij records die al in conflict zitten wordt het oud conflict geüpdatet Een aangemaakt record en daarachter terug verwijderd wordt niet gesynchroniseerd naar de server Nieuwe beschikbare attributen door wijziging in metadata worden ook geüpdatet, ook al is het record up to date De attributen die betrokken zijn bij een relatie worden ook mee gesynchroniseerd Wanneer het toestel geblacklist is, worden alle gegevens verwijderd, inclusief de settings 2.1.2.9 Conflicten overzicht Alle conflicten worden in een lijst getoond Alle images zijn beschikbaar en goed getoond Er is een werkende close button rechtsboven Bij Orientation change wordt de lay-out geüpdatet Conflictrecords worden met primary field van client versie in de lijst getoond Wanneer er geladen wordt, wordt de loading image getoond 2.1.2.10 Conflict Details Als een client versie beschikbaar is, wordt de default form getoond in de client tab Als een server versie beschikbaar is, wordt de default form getoond in de server tab Alle images zijn beschikbaar en goed getoond Er is een werkende close button rechtsboven Als het conflict client modified, server modified is, kan voor elke mismatch gekozen worden welke versie moet bijgehouden worden Voor andere conflicten is een standaard keuze tussen client versie en server versie Voor andere conflicten is een standaard keuze tussen client versie en server versie Opslaan past de goede versie toe Wanneer geannuleerd wordt is er niets gewijzigd Bij Orientation change wordt de lay-out geüpdatet 2.1.2.11 Alle vensters Wanneer alle windows geminimized wordt en Mobile CRM wordt gerestored, wordt het laatste window getoond Een window die gesloten wordt gaat terug naar zijn vorige window zonder dat een ander programma daar tussen springt De applicatie wordt maar 1x in task manager getoond

Stagedossier G15 Mobile CRM 113 2.2 Unit testen 2.2.1 Beheersapplicatie Testen die de CRUD van de beheersapplicatie controleren. 2.2.2 Synchronization Framework Main flow Dit zijn verschillende testen voor situaties die het meest zullen voorkomen bij de synchronisatie. Conflicten Hier zijn de testen gefocust op het genereren van conflicten, iets dat minder voorkomt bij de synchronisatie.

Stagedossier G15 Mobile CRM 114 Encryptie Deze testen verifiëren de werking van de encryptie van allerlei data.

Stagedossier G15 Mobile CRM 115 3 Handleiding 3.1 Deel I: Beheersapplicatie Figuur 36: Het overzicht van de beheersapplicatie Bij het navigeren naar de Beheersapplicatie pagina krijgt u een overzicht van de verschillende pagina s waar u kan naar doorklikken. Een overzicht van de pagina s met een korte beschrijving: Entiteiten: Beheer hier welke entiteiten er mobiel beschikbaar mogen zijn. Profielen: Beheer hier welke profielen er beschikbaar zijn. Stel in tot welke entiteiten een profiel toegang heeft. En welke weergaven en formulieren er voor elk van die entiteiten van toepassing is. Gebruikers: Beheer hier welke gebruikers mogen inloggen via de mobiele applicatie en tot welk profiel elke gebruiker behoort. Toestellen: Beheer hier welke toestellen mogen synchroniseren. Weergaven en Formulieren: Beheer hier de weergaven en formulieren voor de mobiele applicatie.

Stagedossier G15 Mobile CRM 116 3.1.1 Beheer Entiteiten Figuur 37: overzicht van de mobiele entiteiten Om entiteiten beschikbaar te stellen op de mobiele applicatie moet u deze eerst op de pagina Beheer Entiteiten toestaan. Als u op de knop Nieuwe Entiteit klikt komt er een venster te voorschijn met een overzicht van alle entiteiten van uw CRM systeem. Hier vinkt u de entiteiten aan die u wenst toe te voegen en drukt u op OK om uw keuze te bevestigen. Nu zijn de nieuw toegevoegde entiteiten beschikbaar om te gebruiken als mobiele entiteit. Als een mobiele entiteit uit de lijst selecteert kan u deze verwijderen. Bij het verwijderen van een mobiele entiteit verwijdert u ook alle weergaven en formulieren die aan deze mobiele entiteit gekoppeld zijn. Ook wordt bij een volgende synchronisatie van een mobiele gebruiker alle data van deze entiteit verwijdert van zijn toestel.

Stagedossier G15 Mobile CRM 117 3.1.2 Beheer Profielen Figuur 38: Overzicht mobiele profielen Door een profiel aan te maken kan u mobiele gebruikers groeperen. Per profiel stelt u in welke entiteiten er voor dat profiel beschikbaar zijn. Zie pagina Beheer Profiel Details voor meer informatie over de instellingen bij het toevoegen van een entiteit aan een profiel. Om een nieuw profiel aan te maken klikt u op de knop Nieuw Profiel. U krijgt dan een nieuw venster te zien waar u een nieuw profiel kan aanmaken. Zie pagina Beheer Profiel Details voor meer informatie over het aanmaken van een profiel. Om een bestaand profiel te bewerken selecteert u eerst het gewenste profiel en klikt u daarna op de knop Bewerk. U krijgt dan een nieuw venster te zien waar u de instellingen van het profiel kan aanpassen. Zie pagina Beheer Profiel Details voor meer informatie over het wijzigen van een profiel. Nadat u een profiel hebt geselecteerd kan u deze ook verwijderen. Daarvoor klikt u op de knop Verwijder en bevestigt. Opmerking: Bij het verwijderen van een profiel verwijdert u ook alle gebruikers die toegewezen zijn aan dat profiel.

Stagedossier G15 Mobile CRM 118 3.1.3 Beheer Profiel Details Figuur 39: Overzicht details van een profiel Op de pagina Beheer Profiel Details krijgt u een overzicht van alle instellingen van het huidige profiel. Deze instellingen omvatten per profiel: Profielnaam: de naam van het huidige profiel. Lees: vink dit aan zodat de gebruikers van dit profiel deze entiteit mogen lezen. Wijzig: vink dit aan zodat de gebruikers van dit profiel een record van deze entiteit mogen wijzigen. Verwijder: vink dit aan zodat de gebruikers van dit profiel een record van deze entiteit mogen verwijderen. Default Weergave: kies een weergave die als standaard gebruikt wordt op de mobiele applicatie. Default Formulier: kies een formulier die als standaard gebruikt wordt op de mobiele applicatie. Weergaven & Formulieren: als je een rij openklapt kan je voor elke entiteit meerdere weergaven en formulieren aanvinken, zodat er meerdere weergaven en formulieren kunnen gebruikt worden op de mobiele applicatie.

Stagedossier G15 Mobile CRM 119 3.1.4 Beheer Users Figuur 40: Overzicht mobiele gebruikers In de pagina Beheer Gebruikers kan je een CRM gebruiker toestaan om via de mobiele applicatie de data van de CRM te bekijken/wijzigen. Bij het toevoegen van een gebruiker moet je instellen tot welk profiel hij zal behoren en hoeveel toestellen de gebruiker maximum mag hebben. Als je een gebruiker hebt geselecteerd heb je volgende opties waarover u beschikt: Bewerken: dit gebeurt via een handig dialoogvenster. Zie Beheer User Details voor meer informatie over het bewerken van een gebruiker. Verwijderen: na bevestiging wordt alle informatie over de mobiele gebruiker gewist.

Stagedossier G15 Mobile CRM 120 3.1.5 Beheer User Details Figuur 41: Overzicht details van een gebruiker Bij het wijzigen van een gebruiker wordt u doorverwezen naar de pagina Beheer User Details. Op deze pagina krijgt u een overzicht van de instellingen van de gebruiker en welke toestellen er reeds aan de gebruiker gekoppeld zijn. U kan de gebruiker van profiel wijzigen en zijn maximum aantal toestellen aanpassen. Indien u van een gebruiker zijn maximum aantal toestellen wilt veranderen naar aantal minder dan zijn huidig aantal toestellen, moet u eerst een andere toestel blacklisten zodat hij nooit meer toestellen heeft dan maximum toegestaan.

Stagedossier G15 Mobile CRM 121 3.1.6 Beheer Devices Figuur 42: Overzicht van alle toestellen Hier kan u beheren welke toestellen toegang krijgen tot het CRM systeem. Het toevoegen van een toestel gebeurt automatisch nadat een gebruiker voor de eerste maal heeft gesynchroniseerd (indien hij de toestemming heeft: zie Beheer Gebruikers voor meer informatie hier omtrent). Als u een toestel wenst te blokkeren moet u dat toestel aanvinken. Dit toestel komt dan in de zwarte lijst te staan. Als het geblokkeerde toestel probeert te synchroniseren wordt alle data op het toestel verwijderd.

Stagedossier G15 Mobile CRM 122 3.1.7 Beheer Lay-out Overzicht Figuur 43: Overzicht van alle mobiele entiteiten, kies een entiteit om zijn lay-out aan te passen Op de pagina Beheer Lay-out Overzicht krijgt u een overzicht van alle mobiele entiteiten. U kan dubbelklikken op een entiteit naar keuze om zijn weergaven, formulieren en filters aan te passen. Zie Beheer Lay-out Entiteit voor meer informatie over het aanpassen van weergaven, formulieren en filters van een mobiele entiteit. Deze weergaven en formulieren kan u dan later aan een profiel koppelen. Zie Beheer Profiel voor meer informatie over het koppelen van weergaven en formulieren aan een profiel.

Stagedossier G15 Mobile CRM 123 3.1.8 Beheer Lay-out Entiteit Figuur 44: Overzicht met alle weergaves, formulieren en filters van een mobiele entiteit Als u in de pagina Beheer Lay-out Overzicht een mobiele entiteit heeft gekozen komt u op de pagina Beheer Lay-out Entiteit terecht. Hier kan u alles wat met lay-out te maken heeft voor een entiteit op de mobiele applicatie beheren. Kies in het linker menu welk onderdeel van de lay-out u wenst aan te passen. Weergaven: hier vindt u een overzicht van alle weergaven van de entiteit en zijn bijhorende filter. Dubbelklik op een weergave om deze te bewerken. Zie Beheer Lay-out View voor meer informatie over het aanpassen van een weergave. Als een weergave geen standaard weergave van een profiel is, kan u deze verwijderen. Dit doet u door de gewenste weergave te selecteren, op Verwijder te klikken en te bevestigen. Formulieren: hier vindt u een overzicht van alle formulieren van de entiteit. Dubbelklik op een formulier om deze te bewerken. Zie Beheer Lay-out Form voor meer informatie over het aanpassen van een formulier. Als een formulier geen default formulier van een profiel is kan u deze verwijderen. Dit doet u door het gewenste formulier te selecteren, op Verwijder te klikken en te bevestigen. Filters: hier vindt u een overzicht van alle filters van elke view van de entiteit. Dubbelklik op een filter om deze te bewerken. Zie Beheer Lay-out Filter voor meer informatie over het aanpassen van een filter. Een filter verwijderen doet u door de gewenste filter te selecteren, op Verwijder te klikken en te bevestigen. Omdat een filter altijd gekoppeld is aan een weergave gebeurt het aanmaken van een nieuwe filter via weergave.

Stagedossier G15 Mobile CRM 124 3.1.9 Beheer Lay-out View Figuur 45: Beheer hier de lay-out van de weergave Als u een nieuwe weergave wil aanmaken of een bestaande weergave wenst aan te passen moet dit gebeuren via de pagina Beheer Lay-out View. Hier krijgt u een voorbeeld te zien van hoe de weergave er (ongeveer) zal uitzien op de mobiele applicatie. Bovenaan het rechter menu vindt u de weergavenaam terug. Deze kan u in het tekstvak aanpassen. Om nieuwe kolommen toe te voegen klikt u in het rechter menu op Toevoegen. Dan krijgt u een dialoogvenster waar u de gewenste attributen kan selecteren. Zie Beheer Lay-out Attributen voor meer informatie over het kiezen van de gewenste attributen. Als u uw keuze gemaakt heeft worden de gekozen attributen als kolommen toegevoegd in de weergave. Om een kolom te verwijderen moet u eerst de kolom selecteren, dit doet u door op de kolomkop te klikken. Daarna kiest u in het rechter menu voor Verwijder en wordt de kolom verwijderd. Als u een kolom geselecteerd hebt kan u ook de volgorde van de kolommen aanpassen. In het rechter menu kan u met de pijlen de kolommen verplaatsen in de gewenste richting. Als u in het rechter menu voor Bewerk Filter kiest krijgt u een nieuw venster te zien waar u de filter van de weergave kan bewerken.

Stagedossier G15 Mobile CRM 125 Indien er nog geen filter aan de weergave gekoppeld was, wordt er een basis filter aangemaakt. Zie Beheer Lay-out Filter voor meer informatie omtrent het aanpassen van een filter. Door op Verwijder Filter te klikken in het rechter menu verwijdert u de filter van de weergave. De filter wordt na bevestiging volledig verwijderd. Terwijl u bezig bent met de weergave aan te passen kan u de weergave opslaan door links boven op de afbeelding voor opslaan te klikken. Als u voor Opslaan en Sluiten kiest zullen de aanpassingen worden opgeslagen en het huidige venster gesloten worden. 3.1.10 Beheer Lay-out Attributen Figuur 46: Kies een of meerdere attributen om toe te voegen Dit venster krijgt u te zien als u in Beheer Lay-out Form of Beheer Lay-out View gekozen heeft om een nieuw attribuut toe te voegen. Hier krijgt u een overzicht van alle attributen die zich nog niet op de weergave of het formulier bevinden. U kan de attributen die u wenst toe te voegen selecteren door de checkbox vooraan in de rij aan te vinken. Nadat u uw keuze heeft bevestigd worden alle gekozen attributen toegevoegd aan de weergave of het formulier.

Stagedossier G15 Mobile CRM 126 3.1.11 Beheer Lay-out Form Figuur 47: Beheer hier de lay-out van het formulier Als u een nieuw formulier wil aanmaken of een bestaand formulier wenst aan te passen moet dit gebeuren via de pagina Beheer Lay-out Form. Hier krijgt u een voorbeeld te zien van hoe het formulier er zal uitzien op de mobiele applicatie. Bovenaan het rechter menu vindt u de formuliernaam terug. Deze kan u in het tekstvak aanpassen. Om nieuwe tab toe te voegen klikt u in het rechter menu op Toevoegen in de sectie Tabs. Er wordt dan een tabblad toegevoegd aan het. Je kan de naam van het huidige tabblad veranderen in de sectie Tabs van het rechter menu. Klikt u in het rechter menu op Verwijder in de sectie Tabs zal de huidige tabblad na bevestiging verwijderd worden. In het rechter menu kan u met de pijlen de tabbladen verplaatsen in de gewenste richting (naar links of naar rechts). Wenst u om een attribuut toe te voegen in de huidige tab moet u klikken op Toevoegen in de sectie Attributen van het rechter menu. Dan krijgt u een dialoogvenster waar u de gewenste attributen kan selecteren. Zie Beheer Lay-out Attributen voor meer informatie over het selecteren van de gewenste attributen. Als u uw keuze gemaakt hebt worden de nieuw gekozen attributen als rijen toegevoegd op het huidige tabblad van het formulier.

Stagedossier G15 Mobile CRM 127 Om een rij te verwijderen moet u eerst de rij selecteren. Daarna kiest u in het rechter menu voor Verwijder in de sectie Attribuut en wordt de rij na bevestiging verwijderd. Als u een rij geselecteerd hebt kan u ook de volgorde van de rijen aanpassen. In het rechter menu kan u met de pijlen de kolommen verplaatsen in de gewenste richting (naar boven of naar onder). Terwijl u bezig bent met het formulier aan te passen kan u het formulier opslaan door links boven voor opslaan te kiezen. Als u voor Opslaan en Sluiten kiest zullen de aanpassingen worden opgeslagen en het huidige venster gesloten worden. 3.1.12 Beheer Lay-out Relaties Figuur 48: Kies een of meerdere relaties om toe te voegen aan het formulier Dit venster krijgt u te zien als u in Beheer Lay-out Form gekozen heeft om een nieuwe 1 op N relatie toe te voegen. Hier krijgt u een overzicht van alle 1 op N relaties die zich nog niet op het formulier bevinden. U kan de relaties die u wenst toe te voegen selecteren door de checkbox vooraan in de rij aan te vinken. Nadat u uw keuze heeft bevestigd worden alle gekozen relaties toegevoegd aan het formulier.

Stagedossier G15 Mobile CRM 128 4.1.1 Beheer Lay-out Filter Figuur 49: Beheer hier de lay-out van de filter Een filter wordt gekoppeld aan een weergave. Zo beslis je welke data er in de weergave te zien is op de mobiele applicatie. Je kan de filter een naam geven die als beknopte omschrijving fungeert zodat je in 1 oogopslag weet wat de filter doet. Een filter bestaat uit een verzameling van conditiegroepen en condities. Een conditiegroep bevat meerdere condities die d.m.v. de operator aan elkaar worden gekoppeld. Je kan een conditiegroep alleen toevoegen aan een andere conditiegroep. Een conditie kan je alleen maar toevoegen aan een conditiegroep. Een conditie bevat een attribuut, een operator en eventueel een waarde. Voorbeeld: conditiegroep met operator EN, bevat 2 condities: - attribuut address1_stad, operator gelijk aan, waarde Gent - attribuut telefoon(werk), operator niet leeg, waarde De weergave waar deze filter op toegepast is zullen enkel de records bevatten waar de address1_stad gelijk is aan Gent EN er een telefoon(werk) is ingevuld. Symbolisch voorgesteld: ((address1_stad == Gent) OF (telefoon(werk)!= )) Zie Beheer Lay-out Filter Conditie voor meer informatie over het toevoegen van een conditie.

Stagedossier G15 Mobile CRM 129 4.1.2 Beheer Lay-out Filter Conditie Figuur 50: Kies een attribuut, operator en waarde. Om een conditie toe te voegen moet u eerste een attribuut kiezen uit de lijst. Afhankelijk van het type van het attribuut wordt dan de lijst met operatoren gevuld. Nadat er een operator geselecteerd is moet u (indien nodig) een waarde ingeven. Die waarde is weer afhankelijk van het attribuut type en van de gekozen operator. Indien u een conditie wenst aan te passen worden alle velden ingevuld en kan u de gewenste aanpassingen maken. Voorbeeld: voor een attribuut van het type datum kan u de operator Vorige Maand kiezen, terwijl u bij een getal de operator Groter dan kan selecteren.

Stagedossier G15 Mobile CRM 130 4.2 Deel II: De mobiele applicatie 4.2.1 Inleiding De mobiele applicatie geeft de gegevens weer van de CRM server volgens de instellingen van de beheersapplicatie. Hier kan u gegevens opvragen, toevoegen, wijzigen en verwijderen per entiteit. Bij de volgende synchronisatie worden die wijzigen dan doorgevoerd naar de CRM Server. Hierdoor kan u de gegevens altijd raadplegen wanneer u geen toegang heeft tot het internet om rechtstreeks de gegevens aan de server te vragen. 4.2.2 Set-up Nadat u de software geïnstalleerd heeft en de applicatie voor de 1 e keer opstart, wordt er achter de basisinstellingen gevraagd. Deze instellingen zijn nodig voor de verbinding te leggen naar de CRM server. Figuur 51: Het beginscherm van Mobile CRM

Stagedossier G15 Mobile CRM 131 Vraag aan uw beheerder de instellingen die gebruikt moeten worden (zie Instellingenvoor meer informatie over de instellingen,) Nadat u de instellingen heeft ingevuld komt u terecht in het hoofdscherm waar u toegang heeft tot alle beschikbare entiteiten. Aangezien u nog niet gesynchroniseerd heeft, is er nog niets beschikbaar. Ga naar synchronisatie wanneer u een actieve internetverbinding heeft om de gegevens van de server op te halen. Naargelang de hoeveelheid aan gegevens kan dit even duren, alle volgende synchronisaties zullen incrementeel worden uitgevoerd, waardoor alleen gewijzigde gegevens zullen gesynchroniseerd worden (wat veel sneller zal verlopen). Figuur 52: Vul de instellingen in 4.2.3 Beginscherm Hier krijgt u het overzicht van alle entiteiten waar u de records kan van opvragen. Via de menu kan u ook naar de synchronisatie menu navigeren of de instellingen aanpassen. Kies een entiteit uit de lijst om de records van het geselecteerde entiteit te zien. Figuur 53: Het beginscherm met de beschikbare entiteiten 4.2.4 Weergave van een gekozen entiteit Hier ziet u de lijst van records voor het gekozen entiteit met de ingestelde standaardweergave. Als er ook andere weergaves beschikbaar zijn voor de entiteit, dan zijn die beschikbaar in de menu weergaves. Aangezien het systeem een groot aantal records kan bevatten, worden de resultaten opgesplitst in pagina s zoals bij het CRM systeem. Om te navigeren tussen verschillende pagina s kan u het menu of de en toetsen gebruiken. U ziet de huidige pagina nummer in het menu tussen de vierkant haakjes. Figuur 54: Een weergave van alle contactpersonen (geselecteerd entiteit) De beheerder kan de weergaves beheren voor elk entiteit in de beheersapplicatie.

Stagedossier G15 Mobile CRM 132 Via het menu is het ook mogelijk om nieuwe records toe te voegen of bestaande records te verwijderen, op voorwaarde dat u die rechten heeft. Ook kunt u hier naar records zoeken (menu zoeken), of de zoekopdracht te annuleren (menu toon alle). Het is ook mogelijk de records te sorteren door op de kolommen te klikken. Om de details van een record te zien, selecteer het gewenste record uit de lijst. Figuur 55: Keuze uit de verschillende weergaves voor de records Indien het record telefoonnummers, websites of e-mails bevat, kunt u via het snelmenu (tap & hold) snel de gewenste functie gebruiken zonder de details te moeten zien. Figuur 56: Via de context menu kunnen snel acties voor records genomen worden 4.2.5 Formulier van een record Hier vindt u de details van een record zoals u deze zou terugvinden op de CRM server. Als de beheerder u rechten verleend heeft om record van dat type entiteit (hier in het vb. een contactpersoon) te wijzigen, dan zijn alle velden aanpasbaar. De verplichte velden en aanbevolen velden zijn aangeduid met respectievelijk een * en een +. Figuur 57: Het formulier van een contactpersoon, niet alleen lezen Bij bepaalde velden is het ook mogelijk om een actie uit te voeren: Met kunt u een telefoongesprek starten (als uw apparaat over een belfunctie beschikt) Met kunt u een naar een website surfen. Met kunt u een e-mail versturen Bij een lookup veld (vb. )kan u de details opvragen van het record waar het naartoe verwijst.

Stagedossier G15 Mobile CRM 133 Om een lookup veld (een veld dat verwijst naar een ander record zoals bvb Bovenliggende klant ) in te vullen, wordt een nieuw venster geopend. Hier kan u uit de verschillende mogelijke entiteiten selecteren om een record te kiezen. De weergave die toegepast wordt is de standaardweergave, maar de bijbehorende filter wordt niet toegepast. Ook hier zijn de records gepagineerd, waar u met de en toetsen kunt navigeren. Het is ook mogelijk een record te zoeken met het zoekveld, op een bepaalde kolom te sorteren zoals bij de lijstweergave van een entiteit. U kunt ook de details van een geselecteerd record opvragen via de menu Details. Tenslotte om het lookup veld leeg te maken, selecteert u geen entiteit en drukt u op OK. Figuur 58: Records opzoeken voor een lookup veld is even eenvoudig als bij de standaard web interface Een formulier kan ook relaties naar records van een ander entiteit bevatten. Die worden als hyperlink getoond zoals u in Figuur 59 kan zien. Als u op een relatie klikt, wordt de desbetreffende lijstweergave getoond met alle records die aan de relatie voldoen. Vb. alle contactpersonen van de account ESC. Als u wijzigingen heeft doorgevoerd, kunt u die opslaan via het menu. Bij de volgende synchronisatie worden de wijzigingen doorgestuurd naar de CRM server. Figuur 59: De account ESC bevat een relatie contactpersonen Wanneer u wilt terugkeren naar het vorig scherm en u heeft aanpassingen gemaakt, zal altijd eerst een bevestiging gevraagd worden zodat u niet per ongeluk gegevens kan verliezen. Als u gegevens incorrect invult, wordt elk foutief ingevuld veld aangeduid. Het systeem zegt ook waarom het veld onjuist is ingevuld. Dit kan bvb zijn omdat het veld noodzakelijk is, geen numeriek veld is, de waarde niet tussen een geldig interval ligt, enz. Figuur 60: De velden worden gevalideerd, ongeldige velden worden aangeduid

Stagedossier G15 Mobile CRM 134 4.2.6 Instellingen Hier kunt u de instellingen wijzigen: Gebruikersnaam, wachtwoord en domein: De gebruikersnaam, wachtwoord en domein die u gebruikt om in te loggen op het CRM systeem. Server IP en poort: het IP adres en de poort van de mobiele CRM server, waar naartoe verbonden wordt om te synchroniseren. Encryptiesleutel: de sleutel die ingesteld is bij de mobiele CRM server, om de gegevens bij de synchronisatie te de/encrypteren. Database pad: de locatie van het database bestand Figuur 61: De instellingen van de mobiele applicatie U kunt ook alle gegevens uit de database verwijderen. De volgende synchronisatie zal alle gegevens terugzetten. 4.2.7 Synchronisatie De synchronisatie zorgt ervoor dat gegevens van de server beschikbaar worden voor de mobiele applicatie en andersom. Het bestaat uit 2 delen: De meta synchronisatie: zal de entiteiten, weergaves, formulieren en andere instellingen ingesteld door de beheerder synchroniseren. De data synchronisatie: zal de gegevens van de CRM server beschikbaar stellen op de mobiele applicatie. En de wijzigingen die op de mobiele applicatie zijn uitgevoerd terug sturen naar de CRM server. Figuur 62: Het synchronisatie proces in volle actie Via het menu kan u ook eventuele conflicten oplossen.

Stagedossier G15 Mobile CRM 135 4.2.8 Conflicten Het kan gebeuren dat een record dat u gewijzigd heeft op de mobile ook al gewijzigd was op de CRM server sinds de laatste synchronisatie. Er wordt dan een conflict gegenereerd waar u kan kiezen welke versie behouden moet blijven. Zolang u geen keuze maakt zal het record bij volgende synchronisaties niet verstuurd worden naar de server, maar eventuele nieuwere versies op de server zullen wel opgeslagen worden bij het conflict, zo bent u altijd zeker van de laatste versie. Figuur 63: Er is een conflict bij de synchronisatie Er zijn verschillende soorten conflicten: Een record is zowel op de mobile als op de server gewijzigd. Hier kunt u de details van beide versies bekijken en per veld dat niet overeenkomt kiezen welke versie van het veld moet behouden blijven. (zie Figuur 65) Een record is gewijzigd op de mobile, maar verwijderd op de server. U kunt de alleen de details opvragen van de mobile versie, en u heeft de keuze tussen de mobile versie en de server versie te behouden (er kan niet per veld gekozen worden) Figuur 64: Bij het conflicten overzicht ziet u het conflict dat is toegevoegd Een record is verwijderd op de mobile, maar gewijzigd op de server. Dit conflict werkt op dezelfde manier als het voorgaande, u kunt de mobile (de staat van het record van voor het verwijderd is) en server versie bekijken. Figuur 65: De details van het conflict. U ziet de velden die niet overeenkwamen met de server