(vervolg webservices)
De Telefoongids is niet de eerste die daarmee komt. De Gouden Gids bv heeft een tijd lang aan de weg getimmerd met haar "Research"optie bestemd voor Micosoft Office 2003.
In feite ging het om een standaard webservice waar je - zoals eerder in dit forum gedemonstreerd - met een standaard webservice-methode terecht kon. Maar Gouden Gids bv hield vol dat deze “Bedrijvengids” alleen maar comfortabel ontsloten kon worden door klanten van Microsoft in het bezit van Office 2003. Dat is jammer want nu ze opeens geen vriendjes meer zijn ziet het er een beetje troosteloos uit: bij Microsoft Nederland resteert alleen nog een niet werkende instructies
http://office.microsoft.com/nl-be/FX010947991043.aspx]link
naar een verdwenen pagina. Op deze pagina werd vroeger door Microsoft gelinkt naar een Goudengids-pagina met [url=http://www.goudengids.nl/static05.asp?pg=landingspagina_office2003.html[/url] voor de setup in Office.
Die pagina is er nog wel maar is nu voorzien van de waarschuwing
Onder die mededeling toch weer een link naar Microsoft's [url=http://office.microsoft.com/nl-nl/marketplace/default.aspx]Office Marketplace[/url] en daar aangekomen vind je onder "Adreslijstservices" een link naar [url=http://office.microsoft.com/nl-nl/marketplace/EM012252191043.aspx?CategoryID=CE010306091043[/url] van TPG-dochter Cendris, het bedrijf waarvoor de Gouden Gids het veld heeft moeten ruimen, tenminste daar lijkt het op.
“Heu”, om met Lambiek te spreken, maar die webservice doet het toch gewoon? Zoekvraag “Microsoft”:
[code]Const URL = “http://www.goudengids.nl/msoffice2003/query.asmx?wsdl”
Const service = “QueryProcessor”
Const wsml = “”
Const port = “QueryProcessorSoap”
Const namespace = “urn:Microsoft.Search”
Set sc = CreateObject(“MSSOAP.SoapClient30”) ’ zie hieronder
sc.MSSoapInit2 URL, wsml, service, port, namespace
Query = “/B=Microsoft” ’ /B= alleen op Bedrijfsnaam
Set hz = CreateObject(“HtmlZap.HtmlZap”) ’ HtmlZap HTML Parsing component
With hz
.Loadbuffer sc.Query(Query) ’ lijst ophalen
Do
If .Tagname = “newquery” Then ’ per vermelding details ophalen
With CreateObject(“HtmlZap.HtmlZap”)
.Loadbuffer sc.Query(hz.Param(“query”)) ’ bijv. /I=480391/C=141850/R=13-2
Do
istreffer = .Tagname = “data”
.Next
If istreffer Then WScript.Echo .Text
Loop Until .EOF
WScript.Echo
End With
End If
.Next
Loop Until .EOF
End With[/code]
Geeft:
[quote]Microsoft BV
Nyverheidspln 21a
3771 MR Barneveld
Tel: 020 5001500
Fax: 020 5001999
URL: http://www.microsoft.nl
Microsoft BV
Boeingavenue 30
1119 PE Schiphol Ryk
Tel: 020 5001500
Fax: 020 5001999
URL: http://www.microsoft.nl
Microsoft Office Specialist
Filosofentuin 2
2908 XB Capelle ad Yssel
Tel: 010 2459469
Fax: 010 2459467
URL: http://www.office-specialist.nl[/quote]
Wat betreft het script, er zijn meer wegen naar Rome maar om zout in de wond te strooien nog één keertje de hulp ingeroepen van Microsoft’s SOAP Toolkit
http://www.microsoft.com/downloads/details.aspx?familyid=c943c0dd-ceec-4088-9753-86f052ec8450&displaylang=en
, die vanwege .NET ‘retired’ is.
De verkregen adresgegevens worden hier uit de XML gefilterd om ze wat leesbaarder te presenteren maar eigenlijk was dat net de clou van een webservice: vanwege die XML-tags kan een applicatie zonder mankeren de verschillende opgevraagde elementen terugvinden.