Vážení zákazníci, na straně ABACUS.CZ je webová služba vracející XML dokument: http://www.ABACUS.CZ/i6ws/. Stručný popis najdete v tomto článku nebo zde: http://www.ABACUS.CZ/i6ws/ReadMe.txt. Tam se přihlásíte logovacími údaji, které vám byly zaslány. Pokud je ještě nemáte, napište si o ně na i6@abacus.cz, uveďte, prosím, vaše IČO a do kopie dejte vašeho prodejce. Vaše běžné loginy do ABACUS.CZ nemají níže popsanou funkčnost, je nutné vytvořit pro webové služby nový login.
Excel:
Pro stažení použijte níže odkaz v internetovém prohlížeči a dejte uložit jako XML soubor.
Vzorová URL adresa pro stažení souboru XML: http://JMENO:HESLO@www.abacus.cz/i6ws/default.asmx/GetResultByCode?resultType=X-StoItemListEx&Code=ScaId=65 Slova JMENO a HESLO nahradíte vašimi přihlašovacími údaji nebo je napíšete ve vyskakovacím okně.
Po otevření odkazu v Google Chrome
uvidíte výpis, který uložíte jako soubor .xml v nabídce prohlížeče anebo stisknutím kláves CTRL + S.
Po otevření odkazu v Internet Explorer
uvidíte výpis, který uložíte jako soubor .xml v nabídce prohlížeče anebo stisknutím kláves CTRL + S.
Uložený soubor otevřete v programu Microsoft Excel a pokračujete dále:
Zaškrtněte 3 možnost v okně Otevřít XML.
V okně Zdroj dat XML klikněte na StoItem
StoItem přetáhněte do libovolné buňky v Sešitu Excel a po té stiskněte ALT + F5 (aktualizovat).
Na stránce:
http://www.ABACUS.CZ/i6ws/ResultTypeInfo.ashx je seznam selectů, které služba vrací + povolené časy, kdy lze data čerpat (vetší objemy jen mimo hlavní prac. dobu). XML lze stahovat všemi metodami (GET/POST/SOAP). Služba umí vrácená data komprimovat (gzip, deflate), pokud se požadavek vyšle s hlavičkou: Accept-Encoding: gzip, deflate.
Níže je ukázka jednoduchého scriptu, který stáhne a uloží XMLko.
Jsou tam zakomentované různé ukázky voláni webové služby. Stejně tak pro stáhnutí můžete použít wget nepo pod. utility.
K webové službě lze také přistoupit přes prohlížeč:
http://www.ABACUS.CZ/i6ws/ kde je jednoduché grafické rozhraní pro "ruční" vyzkoušení služby. V XML nejsou pro úsporu velikosti kompletní linky, ale musí se dotvořit (např. export: StoItemBase).
V kořenovém elementu jsou konstantní části linku, např.:
Link pro detail produktu: UrlBase="http://www.ABACUS.CZ/?cls=stoitem&stiid=" Link pro velký obrázek produktu: UrlBaseImg="http://www.ABACUS.CZ/img.asp?stiid=" Link pro náhled produktu: UrlBaseThumbnail="http://www.ABACUS.CZ/img.asp?attname=thumbnail&attpedid=52&attsrcid=" Výsledný link se pak vytvoří, že se nakonec zřetězí hodnota z attributu Id. Že produkt má obrázek říkají bitové(0x1) attributy: ImgIs, ThumbnailIs. V exportech se záruka (WarDur) převádí přepočtena na dny (v systému je vedena jako doba+jednotka) MAXINT=2147483647 znamená doživotní záruku. Pokud je vedena v měsících, tak vyjde přepočet: /31, pokud v rocích tak /365.
Stručný popis exportu:
SCategorySys - číselník kategorii StoItemBase - základní informace o produktech StoItemPriceOrd - ceny (včetně speciálních) StoItemQtyFree - export stavu skladu StoItemSiv - export všech údajů do I6 modulu dodavatele/odběratele produktu SPresentTree - stromova struktura StrStiSync - stromová struktura + produkty (pro synchronizaci mezi I6 systémy) Order - export objednávek (včetně B2C informací) ZCompany - export B2C uživatelů
Ukázkový jednoduchý script na stažení XML výstupu webové služby ve VBScriptu strUrl se píše ve tvaru:
strUrl = "http://JMENO:HESLO@www.ABACUS.CZ/i6ws/default.asmx/NAZEV_METODY?resultType=NAZEV_RESULTU&PRIPADNE_PARAMETRY" NAZEV_METODY + PRIPADNE_PARAMETRY GetResult + resultType GetResultByCode + resultType, code GetResultByFromTo + resultType, from, to Ukázka pro stažení základních informací o produktu s kódem: 123456. Kód níže uložte např. jako i6ws_client.vbs a následně spusťte přes: cscript.exe i6ws_client.vbs (JMENO + HESLO se musí přepsat zaslanými údaji)
Option Explicit Main Private Sub Main Dim strUrl, strFile strUrl = "http://JMENO:HESLO@www.SERVER.cz/i6ws/default.asmx/GetResultByCode?resultType=StoItemBase&code=123456" strFile = "StoItemBase.xml" With CreateObject("MSXML2.XMLHTTP") WScript.Echo "Opening url: " & strUrl .Open "GET", strUrl, False .Send If .Status <> 200 Then Err.Raise vbObjectError + 1, "GetResponseXml", "Bad response status: [" & .Status & "] " & .StatusText & vbCrLf & .ResponseText WScript.Echo "Saving file: " & strFile .ResponseXml.Save strFile WScript.Echo "Done." End With End Sub
Ukázky dalších URL:
základní vlastnosti všech produktů: ... default.asmx/GetResult?resultType=StoItemBase základní vlastnosti produktu 600623: ... default.asmx/GetResultByCode?resultType=StoItemBase&code=600623 info o skladu produktu 600623: ... default.asmx/GetResultByCode?resultType=StoItemQtyFree&code=600623 info o ceně produktu 600623: ... default.asmx/GetResultByCode?resultType=StoItemPriceOrd&code=600623 základní vlastnosti produktu, ke kterým došlo ke změně mezi 13.06.2005-06.06.2079: ... default.asmx/GetResultByFromTo?resultType=StoItemBase&from=2005-06-13&to=2079-06-06 http://www.cybersoft.cz/helpdesk/?cls=News&NewId=4375 K dispozici nový script WSHi6JobISiv.wsf pro stahování údajů z I6 Web Service (viz. novinka 4371) a aktualizaci stažených dat do modulu Odběratelé/Dodavatelé produktů. Script nyní umí pracovat s výsledky volání těchto procedur: StoItemSiv, StoItemQtyFree, StoItemPriceOrd. Typický scénář: 1x denně stáhnout komplet data (StoItemSiv) + případně dále v intervalech stahovat stavy skladu (StoItemQtyFree).
Seznam parametrů scriptu je možno vypsat pomocí:
cscript.exe i6JobISiv.wsf /? /ServiceUrl:" url webove sluzby " ve tvaru: http://jmeno:heslo@www.dodavatel.cz/i6Ws/Default.asmx/GetResult?resultType=Nazev_metody /SivComId:" ... " se zadá číslo odběratelé/dodavatelé jehož produkty se mají aktualizovat /ModeIns:" 0x1 " lze specifikovat jestli se mají zakládat nové záznamy. 0.. ne, 1 ano. Vazba se provádí přes SivCode. (Ostatní parametry se týkají přístupu na SQL Server) Script posílá výstup na standardní výstup, takže jej lze přesměrovat do souboru a mít tak k dispozici prováděcí log. Tento log je ve formátu HTML (jsou tam změnové tabulky a pod.). Pomocí SendMail.wsf je si jej možno nechat posílat mailem.
Ukázka dávky s odesláním logu:
REM ********************************** @ECHO OFF SET LogFile=%0.htm cscript.exe //NoLogo i6JobISiv.wsf /DataSource:"SQL" /Catalog:"DB" /SivComId:"123" /ModeIns:"1" /ServiceUrl:"http://JMENO:HESLO@DODAVATEL.CZ/I6.Web.WebService/Default.asmx/GetResult?resultType=StoItemSiv" >%LogFile% 2>&1 IF NOT %ERRORLEVEL%==0 ( SET MailType=Err ) ELSE ( SET MailType=Log ) cscript.exe "SendMail.wsf" //NoLogo /MOutput:"SMTP.FIRMA.CZ" /MFrom:"automail@cybersoft.cz" /MTo:"automail@cybersoft.cz" /MSubject:"AutoMail; Source: localhost#ISiv@DODAVATEL.CZ; Type: %MailType%Msg" /MBody:"%LogFile%" /MNoLogo:1 REM **********************************