Sluit Logo DX Solutions

Koppel uw webshop/e-commerce met Dave ERP pakket

6 april 2016 - Xavier
Budgetvriendelijke bedrijfssoftware op maat van een KMO

“Dave, dat is budgetvriendelijke geïntegreerde bedrijfssoftware op maat van de KMO.“

Meer informatie kan je vinden op hun website.

 

Deze blogpost gaat over het leggen van een connectie met Dave voor uw applicatie, zoals een webshop. Dave ERP pakket is een ERP software gemaakt door Just Software.

Alvorens te beginnen

Hou er bij het modelleren van uw database rekening mee dat je tussentabellen moet voorzien. Wanneer een connectie met Dave niet gemaakt kan worden, wil je ook niet dat de site ook plat ligt of er data verloren gaan.

 

Dave ERP pakket

 

fig 1. Data synchroniseren tussen Dave en uw applicatie door middel van tussentabellen

Via cronjobs zullen we dan de tussentabel data synchroniseren met het Dave ERP pakket.

 

Bijvoorbeeld:

Een gebruiker registreert zich op een webshop. Deze gebruiker slaan we op in de database voor de webshop, en komt ook terecht in een tussentabel die bedoeld is voor Dave. Via een cronjob die e.g. iedere minuut loopt, overlopen we iedere gebruiker die in de tussentabel aanwezig is en maken we een soap call om de data door te sturen naar Dave. Wanneer deze correct doorgestuurd is naar Dave, kunnen we hem uit de tussentabel verwijderen.

 

Wat is het nut hiervan en waarom zouden we niet rechtstreeks vanuit de website een soap call maken met Dave ERP pakket?

 

Zoals eerder aangehaald, indien er iets fout loopt bij de connectie met Dave, moet de site blijven werken. Het is niet onmogelijk dat er iets fout kan lopen bij deze connectie. Een aantal voorbeelden:

 

  • Connection time-out
  • Maintenance aan de server waar Dave opstaat
  • Een bug in uw code
  • Too many connections (hier komen we later op terug)

 

Wanneer je rechtstreeks een call maakt met het Dave ERP pakket bij een user-interaction (zoals de gebruiker die zich registreert op de website), en er loopt iets fout, dan heeft Dave dit niet kunnen opslaan. Om te garanderen dat de data wel nog terecht komt in Dave, kan er bij de volgende synchronisatie van de tussentabel opnieuw geprobeerd worden om dit door te sturen naar Dave.

 

SOAP Client

We kunnen Dave simpelweg aanspreken aan de hand van een soap client.

 

ERP pakket

fig 2. voorbeeld van het aanmaken van een soap client

De volledige SoapClient documentatie kan je vinden hier vinden.

 

ERP pakket

fig 3. Teaser image van de documentatie van Dave ERP pakket

Aan de hand van de documentatie die Just Software u zal aanleveren, kan je classes beginnen maken met de nodige parameters.

 

ERP pakket

fig 4. Teaser image van velden in uw class, die overeenkomen met de documentatie

Vul uw objecten op met de data vanuit uw webshop/portaal.

 

ERP pakket webshop

fig 5. Teaser image waarbij we een bestellingsobject opvullen met data vanuit de webshop

 

De properties CLIJNNUMMER, CAANTAL, … zijn properties die je kan vinden in de documentatie, en die Dave verwacht.

 

Let goed op dat de data die je meegeeft, wel de correcte format heeft. De regels zal je duidelijk te zien krijgen bij de aangeleverde Dave documentatie. Uit onze ervaring, waar je vooral moet op letten bij het invullen van de data, zijn dit decimalen. Sommige properties eisen bijvoorbeeld dat uw 4 variabele cijfers na de komma heeft. Aangezien PHP e.g. de variabele 14.0000 niet als float, maar als integer (14) zal zien, is de data niet correct en kan Dave erp hier soap exceptions op geven. In PHP is er helaas geen manier om een cijfer zoals 14.0000 door te geven (ook floatval(14.0000) zal 14 teruggeven). number_format kan dan weer wel 4 cijfers na de komma teruggeven, maar dit doet hij als string.

 

Controleer dus zeker als uw cijfer eindigt op .0000, en los dit op door bv 0.0001 bij te tellen, zodat hij float 14.0001 teruggeeft.

 

Maak uiteindelijk een soap call met de eerder aangemaakte soap client.

 

$this->soapclient->CreateBestelling($connectionID, $interneFirma, $interneFirmaVestiging, $order)

 

Waarbij de connectionID een token is die je krijgt bij het inloggen, interne firma de naam is van uw bedrijf, interne firma vestiging de naam van de vestiging (dit zijn gegevens die uit Dave komen), en uiteindelijk $order het object is die je opgevuld hebt met data van de bestelling.

 

Het aantal connection ID’s dat je kan hebben, hangt af van het aantal licenties die je aangekocht hebt. Alvorens je het Dave ERP pakket aanspreekt om data door te sturen (of omgekeerd, om data van Dave te synchroniseren met de webshop), moet je eerst hun “Logon” functie gebruiken. Hier geef je o.a. een username en password mee, wat je kan vinden in Dave zelf.

 

Een goede tip is om de "connection ID" op te slaan (in een lock file of in de database), om deze te hergebruiken. Een connection ID vervalt uiteraard snel, maar wanneer er een cronjob loopt die constant synchroniseert, kan je deze connection ID hergebruiken (iedere keer die gebruikt wordt, wordt zijn levensduur verlengd). Is de connection ID toch vervallen, dan vraag je gewoon een nieuwe aan.

 

Stel dat je maar 1 licentie hebt, en je logt 2x in (omdat er op hetzelfde moment 2 dingen gebeuren, zoals een bestelling en een user registratie), dan zal je de error “Too many users connected” krijgen, en is de data niet verstuurd naar Dave. Zoals eerder gezegd, kan je jezelf daartegen beschermen door tussentabellen te gebruiken.

 

Conclusie

Een koppeling bouwen met Dave is dus niets meer dan een gewone SOAP client bouwen.