SQL-Updater 19/03/2012
Certified add-ons All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems - without the written permission of the publisher. Products that are referred to in this document may be either trademarks and/or registered trademarks of the respective owners. The publisher and the author make no claim to these trademarks. While every precaution has been taken in the preparation of this document, the publisher and the author assume no responsibility for errors or omissions, or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it. In no event shall the publisher and the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or indirectly by this document. Printed: maart 2012 in Ternat Nog even het volgende... We doen ons uiterste best deze manual up-to-date te houden maar gezien de snelle aanpassingen en verbeteringen van het programma DBFACTw is dit niet altijd mogelijk. Wij raden u dan ook aan om op regelmatige basis de online helpfile te consulteren voor de laatste informatie. Door de continue evolutie van DBFACTw raden wij u tenslotte nog aan om minimaal 1 k eer per jaar een update cursus te volgen zodanig dat u van de vele uitbreidingen op de hoogte blijft en via DBFACTw de werk ing van uw bedrijf k an blijven optimaliseren. Veel succes met DBFACTw.
Contents 3 Table of Contents Foreword Certified Add-Ons 0 4 1 SQL-Updater... 4 Configuratie... in DBFACT 4 Installatie SQL... Updater 7 Installatie... MySQL ODBC Driver 10 SQL Updater... 13 Technisch... 15 Structuur... 15 SQL Script... 20 Index 0
4 Certified add-ons 1 Certified Add-Ons 1.1 SQL-Updater U werkt met DBFACT en wenst de informatie over uw artikelen ter beschikking te stellen van uw website? Met onze Module DBFACT2SQL-updater is dat snel geregeld. Deze module stelt u namelijk in de mogelijkheid om uit een lijst van velden te kiezen welke informatie u periodiek wenst ter beschikking te stellen van de database van uw website. Wanneer u de juiste velden heeft aangeduid, bewaart u deze selectie en wordt er door DBFACT volautomatisch een script aangemaakt dat de data exporteert. Dit script wordt door de Windows Taakplanner uitgevoerd wanneer en met een periodiciteit die u zelf kan kiezen. Wenst u een tweede of meerdere scripts aan te maken, ook dat is een mogelijkheid. Zo kan je de stamgegevens van een artikel dagelijks en de voorraad om het uur laten updaten. Wie echter met real-time en berekende informatie wenst te werken, kan kiezen uit de vele beschikbare webservices die zowat alle mogelijke informatie uit DBFACT kunnen aanbieden aan uw e-business site. Verder meer over het gebruik van deze module... 1.1.1 Configuratie in DBFACT Licentie / Rechten Om een SQL Updater script te kunnen genereren dient u over de module SQL-updater te beschikken die u kan aanvinken in de licentie op het tabblad DBFACTw Certified Add-Ons.
Certified Add-Ons 5 Alsook dient de gebruiker over het juiste recht te beschikken. Dit kan aangevinkt worden in het Rechtenbeheer scherm op het tabblad Systeem en daar de optie Beheer SQL-updater configuratie.
6 Certified add-ons
Certified Add-Ons 1.1.2 7 Installatie SQL Updater Om deze applicatie te bekomen dien je contact op te nemen met onze helpdesk. Zij bezorgen u de installer alsook de bijhorende licentie.
8 Certified add-ons
Certified Add-Ons 9 Meerdere instanties Wanneer u meerdere instanties wilt installeren kan u de map sqlupdater in het dossier gewoon kopieren naar het andere dossier (binnen dezelfde DBFACT map). Hou er wel rekening mee dat het configuratiebestand (website_sql_settings.xml) van de sql updater ook in deze map zit (indien je dit al gegenereerd hebt). Werkwijze Vanuit DBFACTw hebt u de mogelijkheid om een script te laten genereren. Deze zal door DBFACTw voorgedefinieerde tabellen opvullen. Deze configuratie kan u beheren via het menupunt 1.G.5 SQL Updater (direct menu 1319). De DBFACTw-licentie dient hiervoor wel goedgekeurd te zijn. In het Database gedeelte dien je de verbindingsgegevens in te voeren. Bij driver dien je er wel rekening mee te houden dat je de driver effectief geinstalleerd hebt op de server. Het is handig om de connectie al eens te testen alvorens het script aangemaakt wordt.
10 Certified add-ons Onderaan vind je een overzicht van de soorten gegevens die doorgestuurd kunnen worden. Bij artikels kun je selecteren welke velden specifiek dienen opgenomen te worden en dit door ze te markeren. Via het zoekvak rechts kan je op een eenvoudige en snelle manier velden opzoeken in de lijst. Vooraleer het script te laten genereren laat je de verbinding alsook de database best eens testen, om zeker te zijn dat de database compatibel is met wat DBFACTw verwacht. Wanneer je op de knop Genereer script klikt dan wordt er een configuratie bestand (website_sql_settings.xml) aangemaakt in de submap sqlupdater van het dossier waarin je op dit moment aan het werken bent. In dien deze map niet bestaat dan zal deze aangemaakt worden. Wanneer u eenmaal een script gegenereerd hebt dan zullen de instellingen van deze configuratie opgelaan worden zodat u bovenstaande gegevens niet telkens opnieuw moet invoeren. 1.1.3 Installatie MySQL ODBC Driver Ongeacht of u over een 32 of een 64-bit Windows systeem beschikt dient u de 32 bit ODBC driver van MySQL te downloaden. Deze kan u terugvindin in de downloadsectie van onze website.
Certified Add-Ons 11
12 Certified add-ons
Certified Add-Ons 1.1.4 13 SQL Updater Het zogenaamde opvullen van de SQL-tabel kan uiteraard manueel maar het lijkt ons logisch dat dit via een getimed event gebeurt. Indien u deze actie getimed wenst uit te voeren dan dient u dit in te plannen via de taakplanner in Windows. Manueel starten Wanneer u de SQL updater opstart zal deze automatisch gegevens beginnen door te sturen. Belangrijk om te weten is dat de SQL Updater enkel de gegevens zal updaten die gewijzigd zijn (met uitzondering van de keywords).
14 Certified add-ons Logs Elke keer u deze applicatie opstart zal er een logfile worden weggeschreven naar de submap "logs". Taakplanner U kan de SQL updater in de taakplanner plaatsen zodat deze op geregelde tijdstippen(elke week/dag/uur) uitgevoerd wordt. Belangrijk is dat u "Beginnen in"-map instelt op de sql updater map (met voldoende rechten op de sql updater map en de dossier map) Protip U dient de UNC padnamen te gebruiken. (vb: geen "N:\dbfact\" maar "\ \server-data\dbfact\").
Certified Add-Ons 1.1.5 Technisch 1.1.5.1 Structuur De structuur van de tabellen die nodig zijn zien er als volgt uit: Artikel Veldnaam Datatype Verplicht veld artcode INT Ja artnummer VARCHAR(20) volgnummer VARCHAR(20) groep VARCHAR(5) soort VARCHAR(5) omschrijving VARCHAR(60) omschrijving2 VARCHAR(60) omschrijving3 VARCHAR(60) omschrijving4 VARCHAR(60) specificaties detailspecificaties type VARCHAR(20) merkid INT merk VARCHAR(25) stuknummer VARCHAR(30) opmerking VARCHAR(35) status VARCHAR(20) creatiedat VARCHAR(8) verwachtdat VARCHAR(8) stock minimumstock nominalestock stockcontrole VARCHAR(1) 15
16 Certified add-ons stockplaats VARCHAR(20) veldc1 VARCHAR(40) veldc2 VARCHAR(40) veldc3 VARCHAR(40) veldc4 VARCHAR(40) veldc5 VARCHAR(40) veldc6 VARCHAR(40) veldn1 veldn2 veldn3 veldn4 veldn5 website VARCHAR(1) topseller VARCHAR(1) veldl3 VARCHAR(1) veldl4 VARCHAR(1) veldl5 VARCHAR(1) boklant boleverancier btwpercentage DECIMAL(4,1) statist VARCHAR(6) kleur VARCHAR(10) maat VARCHAR(10) weblink VARCHAR(150) typeartikel INT typeartikelomsc VARCHAR(20) referentie VARCHAR(30) verkoopsverpakking verkoopsaantal minimumafname fabrikant VARCHAR(80) inhoud verpakkingsgewicht verpakkingslengte verpakkingsbreedte
Certified Add-Ons verpakkingshoogte artikellengte artikelbreedte artikelhoogte lotnummerartikel VARCHAR(1) m3 veldd1 VARCHAR(8) veldd2 VARCHAR(8) veldd3 VARCHAR(8) veldd4 VARCHAR(8) veldd5 VARCHAR(8) extrateksttaal2 extrateksttaal3 extrateksttaal4 extratekstleverancier brutogewichtinkg nettogewichtinkg veldm1 veldm2 veldm3 winkelincl winkelexcl dealer promoactief VARCHAR(1) promoprijsexcl promoprijsincl promoprijsdealerexcl promoprijsdealerincl promoprijsminverkexcl promoprijsminverkincl promoprijsvan VARCHAR(8) promoprijstot VARCHAR(8) aanbevolenincl basisexcl minimumverkoopexcl 17
18 Certified add-ons valutanetto valuta VARCHAR(5) prijs1 prijs2 prijs3 prijs4 prijs5 bebat recupel auteur reprobel fostplus leeggoed anderekost bebatinclbtw recupelinclbtw auteurinclbtw reprobelinclbtw fostplusinclbtw leeggoedinclbtw anderekostinclbtw webarticle VARCHAR(1) webpromo VARCHAR(1) webpromostartdate VARCHAR(8) webpromoenddate VARCHAR(8) webidentitynumber INT webcategoryoms1 VARCHAR(30) webcategoryoms2 VARCHAR(30) webcategoryoms3 VARCHAR(30) webcategoryoms4 VARCHAR(30) webcolor VARCHAR(10) websize VARCHAR(10) webweblink VARCHAR(150) webmemo1 webmemo2
Certified Add-Ons webmemo3 webmemo4 webhtmlmemo1 webhtmlmemo2 webhtmlmemo3 webhtmlmemo4 webicecatlink VARCHAR(200) garomschr1 VARCHAR(60) garomschr1 VARCHAR(60) garomschr1 VARCHAR(60) garomschr1 VARCHAR(60) garbasis VARCHAR(30) gardag INT garmaand INT garjaar INT Keywords Veldnaam Datatype artcode INT positie INT keyword VARCHAR(30) keyword2 VARCHAR(30) keyword3 VARCHAR(30) keyword4 VARCHAR(30) Verplicht veld Groepen Veldnaam Datatype Verplicht veld code VARCHAR(5) Ja desc1 VARCHAR(25) desc2 VARCHAR(25) desc3 VARCHAR(25) desc4 VARCHAR(25) verdich1 VARCHAR(20) verdich2 VARCHAR(20) 19
20 Certified add-ons visible VARCHAR(1) Soorten 1.1.5.2 Veldnaam Datatype Verplicht veld code VARCHAR(5) Ja desc1 VARCHAR(25) desc2 VARCHAR(25) desc3 VARCHAR(25) desc4 VARCHAR(25) visible VARCHAR(1) SQL Script De structuur van de tabellen die nodig zijn zien er als volgt uit: Artikel CREATE TABLE `dbfact_artikel` ( `artcode` INT NOT NULL, `artnummer` VARCHAR(20) NULL, `volgnummer` VARCHAR(20) NULL, `groep` VARCHAR(5) NULL, `soort` VARCHAR(5) NULL, `omschrijving` VARCHAR(60) NULL, `omschrijving2` VARCHAR(60) NULL, `omschrijving3` VARCHAR(60) NULL, `omschrijving4` VARCHAR(60) NULL, `specificaties` NULL, `detailspecificaties` NULL, `type` VARCHAR(20) NULL, `merkid` INT NULL, `merk` VARCHAR(25) NULL, `stuknummer` VARCHAR(30) NULL, `opmerking` VARCHAR(35) NULL, `status` VARCHAR(20) NULL, `creatiedat` VARCHAR(8) NULL, `verwachtdat` VARCHAR(8) NULL, `stock` NULL, `minimumstock` NULL, `nominalestock` NULL, `stockcontrole` VARCHAR(1) NULL, `stockplaats` VARCHAR(20) NULL, `veldc1` VARCHAR(40) NULL,
Certified Add-Ons `veldc2` VARCHAR(40) NULL, `veldc3` VARCHAR(40) NULL, `veldc4` VARCHAR(40) NULL, `veldc5` VARCHAR(40) NULL, `veldc6` VARCHAR(40) NULL, `veldn1` NULL, `veldn2` NULL, `veldn3` NULL, `veldn4` NULL, `veldn5` NULL, `website` VARCHAR(1) NULL, `topseller` VARCHAR(1) NULL, `veldl3` VARCHAR(1) NULL, `veldl4` VARCHAR(1) NULL, `veldl5` VARCHAR(1) NULL, `boklant` NULL, `boleverancier` NULL, `btwpercentage` DECIMAL(4,1) NULL, `statist` VARCHAR(6) NULL, `kleur` VARCHAR(10) NULL, `maat` VARCHAR(10) NULL, `weblink` VARCHAR(150) NULL, `typeartikel` INT NULL, `typeartikelomsc` VARCHAR(20) NULL, `referentie` VARCHAR(30) NULL, `verkoopsverpakking` NULL, `verkoopsaantal` NULL, `minimumafname` NULL, `fabrikant` VARCHAR(80) NULL, `inhoud` NULL, `verpakkingsgewicht` NULL, `verpakkingslengte` NULL, `verpakkingsbreedte` NULL, `verpakkingshoogte` NULL, `artikellengte` NULL, `artikelbreedte` NULL, `artikelhoogte` NULL, `lotnummerartikel` VARCHAR(1) NULL, `m3` NULL, `veldd1` VARCHAR(8) NULL, `veldd2` VARCHAR(8) NULL, `veldd3` VARCHAR(8) NULL, `veldd4` VARCHAR(8) NULL, `veldd5` VARCHAR(8) NULL, `extrateksttaal2` NULL, `extrateksttaal3` NULL, `extrateksttaal4` NULL, 21
22 Certified add-ons `extratekstleverancier` NULL, `brutogewichtinkg` NULL, `nettogewichtinkg` NULL, `veldm1` NULL, `veldm2` NULL, `veldm3` NULL, `winkelincl` NULL, `winkelexcl` NULL, `dealer` NULL, `promoactief` VARCHAR(1) NULL, `promoprijsexcl` NULL, `promoprijsincl` NULL, `promoprijsdealerexcl` NULL, `promoprijsdealerincl` NULL, `promoprijsminverkexcl` NULL, `promoprijsminverkincl` NULL, `promoprijsvan` VARCHAR(8) NULL, `promoprijstot` VARCHAR(8) NULL, `aanbevolenincl` NULL, `basisexcl` NULL, `minimumverkoopexcl` NULL, `valutanetto` NULL, `valuta` VARCHAR(5) NULL, `prijs1` NULL, `prijs2` NULL, `prijs3` NULL, `prijs4` NULL, `prijs5` NULL, `bebat` NULL, `recupel` NULL, `auteur` NULL, `reprobel` NULL, `fostplus` NULL, `leeggoed` NULL, `anderekost` NULL, `bebatinclbtw` NULL, `recupelinclbtw` NULL, `auteurinclbtw` NULL, `reprobelinclbtw` NULL, `fostplusinclbtw` NULL, `leeggoedinclbtw` NULL, `anderekostinclbtw` NULL, `webarticle` VARCHAR(1) NULL, `webpromo` VARCHAR(1) NULL, `webpromostartdate` VARCHAR(8) NULL, `webpromoenddate` VARCHAR(8) NULL, `webidentitynumber` INT NULL,
Certified Add-Ons `webcategoryoms1` VARCHAR(30) NULL, `webcategoryoms2` VARCHAR(30) NULL, `webcategoryoms3` VARCHAR(30) NULL, `webcategoryoms4` VARCHAR(30) NULL, `webcolor` VARCHAR(10) NULL, `websize` VARCHAR(10) NULL, `webweblink` VARCHAR(150) NULL, `webmemo1` NULL, `webmemo2` NULL, `webmemo3` NULL, `webmemo4` NULL, `webhtmlmemo1` NULL, `webhtmlmemo2` NULL, `webhtmlmemo3` NULL, `webhtmlmemo4` NULL, `webicecatlink` VARCHAR(200) NULL, `garomschr1` VARCHAR(60) NULL, `garomschr2` VARCHAR(60) NULL, `garomschr3` VARCHAR(60) NULL, `garomschr4` VARCHAR(60) NULL, `garbasis` VARCHAR(30) NULL, `gardag` INT NULL, `garmaand` INT NULL, `garjaar` INT NULL, PRIMARY KEY (`artcode`) ) ENGINE = InnoDB Keywords CREATE TABLE IF NOT EXISTS `dbfact_keyword` ( `artcode` INT NULL, `positie` INT NULL, `keyword` VARCHAR(30) NULL, `keyword2` VARCHAR(30) NULL, `keyword3` VARCHAR(30) NULL, `keyword4` VARCHAR(30) NULL ) ENGINE = InnoDB; Groepen CREATE TABLE IF NOT EXISTS `dbfact_groep` ( `code` VARCHAR(5) NOT NULL, `desc1` VARCHAR(25) NULL, `desc2` VARCHAR(25) NULL, `desc3` VARCHAR(25) NULL, `desc4` VARCHAR(25) NULL, `verdich1` VARCHAR(20) NULL, 23
24 Certified add-ons `verdich2` VARCHAR(20) NULL, `visible` VARCHAR(1) NULL, PRIMARY KEY (`code`) ) ENGINE = InnoDB; Soorten CREATE TABLE IF NOT EXISTS `dbfact_soort` ( `code` VARCHAR(5) NOT NULL, `desc1` VARCHAR(25) NULL, `desc2` VARCHAR(25) NULL, `desc3` VARCHAR(25) NULL, `desc4` VARCHAR(25) NULL, `visible` VARCHAR(1) NULL, PRIMARY KEY (`code`) ) ENGINE = InnoDB;