Si vous voulez utiliser le web service pour accéder à vos données Logistics, vous devez impérativement passer par l'Installation du Webservice SQL.
Le web service est constitué de plusieurs méthodes décrites ci-dessous.
Ces méthodes permettent par exemple de créer, modifier un utilisateur ou encore d'avoir le prix actuel d'un article donné pour un stock bien précis, etc...
La première chose à faire est d'initialiser le web service que vous voulez utiliser en appelant sa méthode WSLOGIN
. Cette méthode vous renverra différentes variables sous forme d'XML, ces variables vous serviront pour l'appel de vos méthodes (en vert ci-dessous). Tous les appels de méthodes se font par le biais de la méthode REQUEST dont voici les paramètres :
wsrequest (Nom de la procédure, LsPath, LsKey, LsLang, XmlHeader, XmlFile,XmlFooter)
Sur cette page:
WsLogin
Cette fonction WsLogin
renvoie trois paramètres (Path
, Key
, language
). Vous devez ensuite utiliser ces 3 paramètres pour faire appel aux autres fonctions du webservice.
Exemple en ASP
private function ConnectEdb LsUSER = "WSUSER" // Utilisateur Logistics LsPSWD = "987654" // Mot de passé de l'utilisateur Logistics LsCOMPANY = "DEMO" // Nom du dossier Logistics LsVERSION = "109" // Version du webservice LsPRGROOT = "\\server\winbooks\data\logistics\" // Chemin où se trouve le plugin (utilisé par le web service). Attention, comme le web service peut se trouver sur un autre serveur que celui des pages du site, il faut impérativement lui envoyer un chemin UNC. Le chemin dans le fichier Logistics.ini doit également être un chemin UNC. LsCTRL = "<?xml version = '1.0' encoding='Windows-1252' standalone='yes'?>" & _ "<VFPData><login>" & _ "<userid>" & LsUSER & "</userid>" & _ "<pswd>" & LsPSWD & "</pswd>" & _ "<compid>" & LsCOMPANY & "</compid>" & _ "<version>" & LsVERSION & "</version>" & _ "<PrgRoot>" & LsPRGROOT & "</PrgRoot></login></VFPData>" set soapclient = CreateObject("MSSOAP.SoapClient30") soapclient.ClientProperty("ServerHTTPRequest") = True soapclient.mssoapinit(WSPath) Lsresult = soapclient.login (LsCTRL) set oLogin = new clsLogin oLogin.XmlLoginResponse = LsResult session("edb_Path") = oLogin.DbPath session("edb_Key") = oLogin.DbKey session("edb_Lang") = oLogin.Language
Exemple en C#
String lsValue = ""; String lsName = ""; String LsCTRL = "<?xml version = '1.0' encoding='Windows-1252' standalone='yes'?>" + "<VFPData><login>" + "<userid>" + psUSER + "</userid>" + "<pswd>" + psPSWD + "</pswd>" + "<compid>" + psCOMPANY + "</compid>" + "<version>" + psVERSION + "</version>" + "<PrgRoot>" + psPRGROOT + "</PrgRoot></login></VFPData>"; WsFlex ws = new WsFlex(""); psResultLogin = ws.LOGIN(LsCTRL);
En C#, WsFlex doit être déclaré dans les WebRéférences de votre projet qui pointe vers le fichier WSDL de votre webservice.
Exemple en PHP
<?php // 1. Initialisation $client = new SoapClient("http://217.112.181.34/wsflexDotNet/ServiceFlexDotNet.asmx?wsdl", array('soap_version' => SOAP_1_2)); $LsUSER = "WSUSER"; // Utilisateur Logistics $LsPSWD = "987654"; // Mot de passé de l'utilisateur Logistics $LsCOMPANY = "DEMO"; // Nom du dossier Logistics $LsVERSION = "109"; // Version du webservice $LsPRGROOT = "\\server\winbooks\data\logistics\\"; $LsCTRL = "<?xml version = '1.0' encoding='Windows-1252' standalone='yes' ?> <VFPData> <login> <userid>".$LsUSER."</userid> <pswd>".$LsPSWD."</pswd> <compid>".$LsCOMPANY."</compid> <version>".$LsVERSION. "</version> <PrgRoot>".$LsPRGROOT."</PrgRoot> </login> </VFPData>"; try { $params = array("PcCtrl" => $LsCTRL); $Res = $client->__call('Login', array("parameter" => $params)); $language = "F"; $dbpath = $LsPRGROOT."".$LsCOMPANY."\\"; $dbkey = $Res->LOGINResult; //echo 'RESPONSE: ' .$client->__getLastResponse()."<br>"; //echo 'REQUEST : ' . $client->__getLastRequest()."<br>"; } catch (SoapFault $fault) { print_r($fault); throw new Exception($fault->getMessage()); } // 2. Request $xmlFile = '<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlreturn> <custid>WS00000003</custid> </xmlreturn> </VFPData>'; try { $param = array("PcFunc" => "WsGetCustInfo", "PcPath" => $dbpath, "PcKey" => $dbkey, "PcLang" => $language, "Pcxmlheader" => "a", "pcxmlfile" => $xmlFile, "pcxmlfooter" => "a"); $cust = $client->__call("WsRequest", array("parameter" => $param)); var_dump($cust); } catch (SoapFault $fault) { print_r($fault); throw new Exception($fault->getMessage()); } ?>
WsGetLogin
Dans toutes les versions inférieures à la version 5.5, le mot de passe ne doit pas dépasser 20 caractères. A partir de la version 5.5, il n'y a plus de limitation du nombre de caractères dans le mot de passe.
Exemple d'XML envoyé
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlresult> <chkmail>jfcu@spiritsystems.be</chkmail> <pswd>123</pswd> </xmlresult> </VFPData>
a
a
Exemple d'XML reçu
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlreturn> <name>Fauquet Sprl.</name> <name2>Fauquet Geoffrey</name2> <adrname /> <adrname2 /> <adrstreet /> <adrstreet2 /> <adrcountry /> <adrzip /> <adrcity /> <adrfax /> <adrphone /> <adrphone2 /> <userid /> <email /> <civility /> <title /> <customer>true</customer> <supplyer>false</supplyer> <groupid>WS00000001</groupid> <custid>P-WS00000003</custid> <custtype /> <vat /> <vatcountry /> <discount>0</discount> <saledelay>0</saledelay> <paydelay /> <paydisc>0</paydisc> <other>false</other> <paymode /> <web>true</web> <webpsw /> <webwhere /> <points>0</points> <errornr>ERROR 0</errornr> <language /> <dbkey /> <logmessage>Consumer is correct</logmessage> <displayinventory>0</displayinventory> <u_test /> <c_prenom>John.</c_prenom> <c_num>18</c_num> <ana1 /> </xmlreturn> </VFPData>
WsManageCustomer
Cette fonction permet d'ajouter ou de modifier un client.
Si aucun Custid n'est indiqué, le client sera alors créé sinon il sera modifié
Le mot de passe ne doit pas dépasser 20 caractères.
Exemple d'appel en CSharp
TextBox_XmlResult.Text = ws.WsRequest("WSMANAGECUSTOMER", TextBox_XmlHeaderSend.Text, TextBox_XmlFileSend.Text, TextBox_XmlFooterSend.Text);
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlresult> <name>Fauquet Sprl</name> <name2>Fauquet Geoffrey</name2> </xmlresult> </VFPData>
a
Exemple d'XML reçu
WsGetCustInfo
Cette fonction permet d'avoir les informations d'un client.
Exemple en ASP
set soapclient = CreateObject("MSSOAP.SoapClient30") soapclient.ClientProperty("ServerHTTPRequest") = True soapclient.mssoapinit(WSPath) LSresult = soapclient.wsrequest ("WSGETCUSTINFO",LsPath,LsKey,LsLang,"a",LsXMLFile,"a")
Exemple d'appel en CSharp
ws.WsRequest(PcProcName, pPath, pKey, pLang, pcXmlHeader, pcXmlFile, pcXmlFooter);
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlreturn> <custid>C-WS00000001</custid> </xmlreturn> </VFPData>
a
Exemple d'XML reçu
WsGetPrice_Stock
Cette fonction permet d'avoir le prix pour un article donné ainsi que le nombre d'article total et par stock spécifié.
Exemple d'XML envoyé
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <Customer> <custid>C-0100000009</custid> </Customer> </VFPData>
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <articles> <article> <artid>C2</artid> <color /> <size /> </article> <warehouses> <Warehouse>A</Warehouse> <Warehouse>B</Warehouse> </warehouses> </articles>
a
Exemple d'XML reçu
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <vatinc>.T.</vatinc> <xmlreturnst> <xartid>C2</xartid> <xcolor /> <xsize /> <xwarehouse> <Xname>A</Xname> <Qty>5000</Qty> </xwarehouse> <xwarehouse> <Xname>B</Xname> <Qty>3000</Qty> </xwarehouse> <xqty>8000</xqty> <xprice>0</xprice> <xstkinday>0</xstkinday> <xremark>x</xremark> </xmlreturnst> </VFPData>
WsGetDeliveryAdress
Cette fonction permet d'avoir les adresses de livraisons d'un client.
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlreturn> <custid>C-WS00000001</custid> </xmlreturn> </VFPData>
a
Exemple d'XML reçu
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlreturn> <name>Geo SPRL.</name> <adrstreet>Place du charbonnage, 2</adrstreet> <adrstreet2>Trazegnies</adrstreet2> <adrzip>6183</adrzip> <adrcity>Trazegnies</adrcity> <adrcountry>BE</adrcountry> <persid>P-WS00000001</persid> </xmlreturn> </VFPData>
WsGetContacts
Cette fonction permet d'avoir les contacts d'un client
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlreturn> <custid>C-WS00000001</custid> </xmlreturn> </VFPData>
a
Exemple d'XML reçu
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlreturn> <name>Geo SPRL.</name> <adrstreet>Place du charbonnage, 2</adrstreet> <adrstreet2>Trazegnies</adrstreet2> <adrzip>6183</adrzip> <adrcity>Trazegnies</adrcity> <adrcountry>BE</adrcountry> <persid>P-WS00000001</persid> </xmlreturn> <xmlreturn> <name>Test</name> <adrstreet>Rue du bois</adrstreet> <adrstreet2>Drogenbos</adrstreet2> <adrzip>1000</adrzip> <adrcity>Bruxelles</adrcity> <adrcountry /> <persid>P-WS00000002</persid> </xmlreturn> </VFPData>
WsManageContact
Cette fonction permet d'ajouter ou de modifier un contact. Pour cela, il faut envoyer le custID du client visé. Si le persid est spécifié et existant, alors le contact sera modifié sinon il sera ajouté.
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlreturn> <name>Spirit Systems sprl.</name> <name2>Cuylits Jean-François.</name2> <adrstreet>Fond Jean Paques 6C</adrstreet> <adrstreet2 /> <adrcountry>BE</adrcountry> <adrzip>1438</adrzip> <adrcity>Louvain-La-Neuve</adrcity> <adrfax /> <adrphone>010 45 12 44</adrphone> <adrphone2>0475 78 82 57</adrphone2> <email>jfcu@spiritsystems.be</email> <title>Monsieur</title> <vat>0437.109.813</vat> <vatcountry>BE</vatcountry> <web>true</web> <webpsw>123</webpsw> <language>F</language> <CustId>C-WS00000001</CustId> <persid>P-WS00000003</persid> </xmlreturn> </VFPData>
a
Exemple d'XML reçu
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlreturn> <name>Geo SPRL.</name> <adrstreet>Place du charbonnage, 2</adrstreet> <adrstreet2>Trazegnies</adrstreet2> <adrzip>6183</adrzip> <adrcity>Trazegnies</adrcity> <adrcountry>BE</adrcountry> <persid>P-WS00000001</persid> </xmlreturn> <xmlreturn> <name>Test</name> <adrstreet>Rue du bois</adrstreet> <adrstreet2>Drogenbos</adrstreet2> <adrzip>1000</adrzip> <adrcity>Bruxelles</adrcity> <adrcountry /> <persid>P-WS00000002</persid> </xmlreturn> </VFPData>
WsCheckOrder - WsPutOrder
Cette fonction permet de voir si l'ajout d'une commande est possible. Si oui, on peut utiliser WsPutOrder pour créer le document. Le header contient les champs correspondants aux informations du client et le File contient le détail de la commande.
Exemple d'XML envoyé
<?xml version="1.0" encoding="ISO-8859-1" ?> <order> <docdet> <thirdid>P-WS00000002</thirdid> <thirdname>Colin</thirdname> <basis1>1140490</basis1> <vatid1>21</vatid1> <vatpc1>21</vatpc1> <vatamt1>239503</vatamt1> <basis2 /> <vatid2 /> <vatpc2 /> <vatamt2 /> <basis3 /> <vatid3 /> <vatpc3 /> <vatamt3 /> <topay>1379993</topay> </docdet> </order>
<?xml version="1.0" encoding="ISO-8859-1" ?> <order> <docdet> <artid>DELL1700</artid> <artname>Dell 1700</artname> <qty>1000</qty> <unitprice>561980</unitprice> <amount>561980</amount> <vatid>21</vatid> <vatpc>21</vatpc> </docdet> <docdet> <artid>HPLASERCOLOR3000</artid> <artname>HP Color LaserJet 3000</artname> <qty>1000</qty> <unitprice>578510</unitprice> <amount>578510</amount> <vatid>21</vatid> <vatpc>21</vatpc> </docdet> </order>
a
Exemple d'XML reçu
WsGetArtInfo
Cette fonction permet de récupérer les informations d'un contact.
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlresult> <artid>RADIATOR</artid> </xmlresult> </VFPData>
a
Exemple d'XML reçu
WsGetPasswordFromEmail
Cette fonction permet de récupérer un mot de passé par rapport au login (adresse email)
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <xmlresult> <email>test@test.be</email> </xmlresult> </VFPData>
a
Exemple d'XML reçu
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <curres> <password>123</password> </curres> </VFPData>
WsArtGetItems
Cette fonction renvoie toutes les informations des articles cochés exportables sur le Web.
Ceci est bien sur un exemple, vous pouvez modifier la condition WEB = .T.
avec la condition que vous cherchez à avoir.
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <sql> <pccond>WEB = .T.</pccond> <pnFrom>0</pnFrom> <pnCount>0</pnCount> </sql> </VFPData>
a
Exemple d'XML reçu
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <curres> <artid>02W.MC.REMUS</artid> <buyartid /> <custid>1000000002</custid> <name1>Jeans Remus</name1> <name2>Jeans Remus</name2> <family /> <category>28</category> <coef>1.40</coef> <currid /> <buyprice>24.15</buyprice> <buyprice1>24.15</buyprice1> <buyprice2>24.15</buyprice2> <buyprice3>24.15</buyprice3> ...
WsArtGetArtIdComp
Cette fonction renvoie tous les ArtId
des composant d'un article.
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <artid>DELL1700</artid> </VFPData>
a
Exemple d'XML reçu
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <cres> <artpartid>MAXHD500</artpartid> </cres> </VFPData>
WsGetPriceArray
Cette fonction renvoie les prix spécifiques pour un client et un article donné sous forme de tableau.
Dans le cas d'un prix spécifique, vous pouvez spécifier le type de prix. Ici, le 4 représente les prix spécifiques par client.
Les 1 sont les prix par catégorie, 2 Prix d'achats...
Si le QtyMax
est égale à 0, cela indique que le Maximum est l'infini.
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <artid>TEST</artid> <custid>C-0100000001</custid> </VFPData>
a
Exemple d'XML reçu
WsGetStringQuery
Vous envoyez une requête dans le tag <query>
et indiquez le nom des tables (tag <table>
) à ouvrir pour que celle-ci fonctionne, la fonction vous exécute la requête.
Exemple d'XML envoyé
a
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <query>SELECT NAME1 FROM ART</query> <table>art</table> </VFPData>
a
Exemple d'XML reçu
<?xml version="1.0" encoding="Windows-1252" standalone="yes" ?> <VFPData> <curres> <name1>CORRECTION PRIX</name1> </curres> <curres> <name1>MOLDED,VELCRO,ANCHORS 25 MM X 25 M</name1> </curres> <curres> <name1>PARTICIPATION FORFAITAIRE AUX FRAIS DE TRANSPORTS</name1> </curres> <curres> <name1>FRAIS DE TRANSPORT 5KGS</name1> </curres> <curres> <name1>PARTICIPATION AUX FRAIS D'IMPRESSION TESA NET</name1> </curres> </VFPData>