2004-09-28

WebQuery batch interface

Op verzoek van Peter heb ik, op basis van de scripts die ik op de HP3000 gebruikte voor het testen van WebQuery, een script gemaakt waarmee je WebQuery redelijk eenvoudig in een shellscript kunt aanroepen. Het staat in /usr/local/bin op de lx1 en is dus zonder enige aanpassing voor iedereen bruikbaar.
De aanroep is: WebQueryGet <webqueryservice><query>Of : WebQueryPost <webqueryservice><query>
(inderdaad, twee namen voor één script, de eerste voor een GET, de tweede voor een POST)
In beide gevallen zijn de zelfde twee parameters nodig:
Met <webqueryservice>bedoel ik de naam die in de websituatie gebruikt wordt na /WebQuery/ . De query moet op dezelfde manier gegeven worden als in een normale GET.
Cookies worden vastgehouden in een tijdelijk bestand waarvan de naam is afgeleid van de het procesnummer van de shell van waaruit je het script aanroept. Dat betekent dat je die kunt terugvinden via die shell. Vanuit die shell is die file bereikbaar is met de naam "/tmp/WQ$$.cookie". Het script gebruikt uit die file het WebQueryDatabase cookie, zodat je ook secured databases kunt benaderen via een username. Geef daarvoor de volgende twee opdrachten binnen dezelfde shell:
1) WebQueryPost "" "@=login&A=<denaamvandegebruiker>&B=<zijnofhaarpassword>"
Waarbij de < > en wat er tussen staat vervangen worden door resp. gebruikersnaam en password.
2) de WebQueryPost of WebQueryGet waarmee je de database raadpleegt of wijzigt.

De uitvoer van het script verschijnt in stdout, eventuele foutmeldingen in stderr. Het is dus verstandig om die met redirects en/of een pipe verder te verwerken.
Een voorbeeld dat het resultaat neerzet in de file resultaat en fouten meldt in de file foutmeldingen is:
WebQueryGet "clcwww" "ti=water&ti=oil" >resultaat 2>foutmeldingen

Age Jan