In Mercator kunnen de getrouwheidskaarten van meerdere sites centraal worden beheerd. Dit gebeurt via MercatorFidelServer, een TCP/IP-dienst die de aanvragen centraliseert naar de gegevens van getrouwheidskaarten die gehost worden op één enkele SQL-server. Dit systeem werd specifiek op punt gesteld voor de configuraties gebaseerd op MCD Server. De uitwisselingen van getrouwheidskaartgegevens die zich voordeden bij de overdracht van klanteninformatiebestanden, konden leiden tot min of meer onoplosbare replicatieconflicten met als mogelijk gevolg het verlies van bepaalde gegevens.
1. Installatie
Voor de installatie van deze functionaliteit moet u een site kiezen waar de getrouwheidskaarten samen kunnen worden gehost. Deze site moet over een operationele Mercator configuratie beschikken. We moeten opmerken dat de gemeenschappelijke getrouwheidskaartgegevens niet worden geregistreerd in de CLI-tabel van deze Mercatorversie, maar wel in een extra tabel CLI_FIDELSERV. Hierdoor zal deze centrale Mercatorversie ook functioneren als een gewone client van MercatorFidelServer, op precies dezelfde manier als alle externe sites. De installatie gaat als volgt.
Op MercatorFidelService-niveau
- Op een werkpost die permanent actief is (bij voorkeur een server) moet u het bijgevoegde zipbestand uitpakken in een afzonderlijke lokale directory van Mercator (aanbeveling: gebruik C:\Program Files\MercatorFidelService).
- Let erop dat Framework .net 4.0 geïnstalleerd is op deze computer.
- De dienst werkt standaard via de poort TCP 5050. Als deze poort niet gebruikt kan worden, kunt u dit gewoon wijzigen in MercatorFidelService.ini (opgelet: als de dienst al actief is, moet u Mercator opnieuw opstarten om rekening te houden met deze nieuwe parameter). Het gebruikte protocol is nog steeds TCP.
- In het bestand MercatorFidelService.ini moet u het pad bepalen naar de DATA-directory van de Mercator waarvan de databank de gemeenschappelijke getrouwheidskaartgegevens zal bevatten (opgelet: als de dienst al actief is, moet u Mercator opnieuw opstarten om rekening te houden met deze nieuwe parameter). Aangezien de diensten de mappings niet kennen, moet u dit pad absoluut aanduiden in de vorm van een lokale directory of een externe, in UNC genoteerde directory (\\mon_serveur\\mon_volume\...). We raden aan om MercatorFidelService.exe op te starten in consolemodus via invoer van de parameter -console. Dit laat toe te controleren of het programma geen foutmeldingen genereert (opgelet: in "console"-modus werkt de toepassing op precies dezelfde manier als in de hieronder beschreven "dienst"-modus).
- Voer vervolgens install.cmd uit om de dienst te installeren.
- Controleer in de administratietools op dienstniveau of MercatorFidelServer wel degelijk aanwezig is, opgestart werd en in automatische opstartmodus staat. We kunnen u ook aanraden om hier de opstartopties in te stellen die zullen gelden in geval van enig incident. Als het volume dat in het INI-bestand vermeld wordt als DATA-directory zich op een externe site bevindt, moet u deze dienst een identiteit geven die over voldoende toegangsrechten beschikt voor het gedeelde volume (zie tabblad "Verbinding", veld "Deze account" in de eigenschappen van de dienst).
- Om het gebruik van de TCP 5050-poort mogelijk te maken, moet u ze zowel openstellen voor de server (input) als voor alle clientposten van deze server (output enkel voor deze laatste gevallen).
- Om ook de externe sites toegang te verlenen tot deze server, moet u de router van de centrale site zodanig configureren dat de verzoeken naar de TCP 5050-poort automatisch omgeleid worden naar het lokale IP-adres van de server waarop MercatorFidelService wordt gehost (port forwarding). Opgelet: enkel deze TCP 5050-poort mag worden geopend en doorgestuurd.
Op het niveau van elke Mercator-client
- U moet de clientcomponent MercatorFidelClient.dll installeren in de hoofddirectory van Mercator.
- U moet de optie "Tools / Opties / Getrouwheid: MercatorFidelServer host" aanvullen. Deze moet de gegevens bevatten van de MercatorFidelServer-hostserver.
- Op de site waar MercatorFidelServer zich bevindt: adresse_ip_locale:port (bijvoorbeeld 192.168.2.130:5050) of nom_de_serveur:port (bijvoorbeeld ServClient:5050) (sans \\).
- Op de externe sites: adresse_ip_publique:port (bijvoorbeeld: 81.88.145.75:5050) of nom_dns:port (bijvoorbeeld: mail.ineo.be:5050).
2. Beheer van de gegevens
Wanneer MercatorFidelService voor het eerst wordt opgestart, wordt automatisch de tabel CLI_FIDELSERV gecreëerd in de door de DATA-directory aangeduide SQL-databank (er moet geen speciale toestemming worden voorzien op het niveau van de SQL-server). Deze tabel bevat standaard de volgende velden:
- ID_CLI: primaire sleutel, identificatiecode van de klant
- C_FID_V1 à C_FID_V20: float, waarde van de aankopen of punten op de getrouwheidskaart, gaande van 1 tot 20
- C_FID_D1 tot C_FID_D20, datetime, datum van de respectieve inschrijving op de getrouwheidskaart.
Opmerking: alle velden behalve ID_CLI zijn optioneel. Het is dus mogelijk om een onbeperkt aantal velden te schrappen of toe te voegen. In principe zullen velden die aan deze tabel CLI_FIDELSERV zijn toegevoegd, in aanmerking worden genomen zodra ze hun overeenstemmende waarde terugvinden in de CLI-tabel van de Mercatorclient. Met andere woorden: als een veld zowel in CLI (op clientniveau, eventueel zelfs extern) als in de tabel CLI_FIDELSERV voorkomt en in de beide tabellen van hetzelfde type is, zal het MercatorFidel-proces de content van deze velden van de ene tabel naar de andere overbrengen.
Gevolg hiervan is dat er dus een centraal beheer kan worden aangeboden voor de uitwisseling van elk type gegevens gelinkt aan de klantenfiche. Dit biedt met name de mogelijkheid om positief te reageren op de integratie van diverse ontwikkelingen inzake getrouwheidskaartenbeheer die zich tot op heden hebben voorgedaan.
3. Beweging van de gegevens
De informatie-uitwisselingen tussen MercatorFidelServer en de Mercator-clients moeten per sequentie worden geactiveerd (enkel voor de verkoopsequenties). Daartoe moet het aanvinkvakje "MercatorFidelServer" op het tabblad "Evenementen" van elke betrokken sequentie aangevinkt zijn.
Als op sequentieniveau een standaardclient wordt gedefinieerd, wordt er slechts een verbinding gemaakt als de client van de verkoop verschilt van deze standaardclient. Op die manier voorkomt men dat deze methode ook wordt geactiveerd voor verkopen via de clientpost op de toonbank.
Als de variabele C_NON_FIDEL (bit) in het klanteninformatiebestand geïnstalleerd is, zal de verbinding pas worden uitgevoerd als het overeenstemmende aanvinkvakje voor deze variabele niet is aangevinkt.
Tot slot houdt het systeem ook rekening met de optie "Tools / Opties / Getrouwheid: enkel nieuwe documenten".
Als er op basis van de bovenstaande voorwaarden gegevens moeten worden uitgewisseld, gebeurt dat als volgt:
- helemaal bij het begin van de validatie van een verkoop stuurt Mercator een verzoek naar MercatorFidelServer en wordt de gevonden informatie in de overeenstemmende velden van CLI_V geplaatst;
- aan het eind van de validatie van de verkoop stuurt Mercator nogmaals een verzoek naar MercatorFidelServer en worden de waarden van de overeenstemmende velden in CLI_V naar de centrale tabel gestuurd.
Tussen deze 2 stappen zal
- ofwel het standaardsysteem van Mercator voor het getrouwheidskaartenbeheer
- ofwel een op maat gemaakte module voor gepersonaliseerd getrouwheidskaartenbeheer
- (ofwel de beide)
hebben gewerkt, op basis van de gegevens die ontvangen werden van MercatorFidelServer, en zullen ze eventueel zijn gewijzigd. Deze wijzigingen zullen hun weerslag hebben op MercatorFidelServer.
4. Gebruik per module in Aruba versie
Als men het MercatorFidelServer-systeem op andere plaatsen in het programma wil gebruiken, kunnen de onderstaande commando's rechtstreeks worden gebruikt.
Gegevens ontvangen = ReadDataFromServerToAruba
DataTable dt_from_server = Globals.FidelConnector.ReadDataFromServerToAruba(billingEngine.PIEDS["id_cli"].ToString(), MercatorUi.Globals.Langue);
if ((dt_from_server != null) && (dt_from_server.Rows.Count > 0))
MercatorUi.Dialogs.Stop("OK");
De ReadDataFromServerToAruba-methode vereist 2 parameters en geeft een datatable met dezelfde structuur als de tabel CLI_FIDELSERV :
- de identificatiecode van de klant,
- de taal van de gebruiker.
De methode vermeldt true bij succes en false bij een mislukking.
Gegevens verzenden = WriteDataToServerFromAruba
if (Globals.FidelConnector.WriteDataToServerFromAruba(billingEngine.PIEDS["id_cli"].ToString(), billingEngine.CLI.Table, MercatorUi.Globals.Langue))
MercatorUi.Dialogs.Stop("OK");
De WriteDataToServerFromAruba-methode vereist 3 parameters:
- de identificatiecode van de klant,
- een datatable (CLI) waar men de gegevens kan vinden,
- de taal van de gebruiker.
De methode vermeldt true bij succes en false bij een mislukking.
Opm.: zelfs voor een op maat gemaakte module voor getrouwheidskaartenbeheer tijdens het valideren van een verkoop is het niet noodzakelijk dat men deze functies gebruikt, want wanneer ze standaard worden opgeroepen door Mercator, zal rekening worden gehouden met de gegevens die door uw module zijn verwerkt.
Wij raden u aan om de beschikbaarheid van deze functionaliteit te testen door dit blok vooraan in uw code te plaatsen:
if (Globals.FidelConnector == null)
return
Opmerkingen
- Wanneer deze functionaliteit in een Mercatorversie is geïnstalleerd, verschijnt er een knop "Vernieuwen" op het tabblad "Getrouwheidskaart" van de fiche "Klanten". Hiermee kunnen de weergegeven getrouwheidskaartgegevens worden geactualiseerd op basis van de MercatorFidelServer-gegevens.
- De gegevensuitwisselingen tussen de Mercator-clients en MercatorFidelServer zijn gecodeerd. Deze gegevens kunnen dus op geen enkele manier "gestolen" worden bij hun overdracht via internet.
- Als de dienst moet na SQL Server opgestart worden, moet Udeze lijn in bet ini-bestand bijvoegen : depends_on = MSSQLSERVER
Te laden :
0000002592.zip (820 Kb - 17-10-2015)