Handleiding Publicatie Module Enquête Systeem
Inhoud 1. Inleiding... 3 SOAP... 3 Functieomschrijvingen... 3 ASP... 3 JSP... 3 soapui... 3 Trouble shooting... 3 2. SOAP... 4 3. Functie omschrijvingen... 5 3.1 Functie parameter overzicht... 5 3.2 Uw gegevens... 6 3.3 Functiebeschrijving: getallgroups... 6 3.4 Functiebeschrijving: getanswers... 7 3.5 Functiebeschrijving: getnumberofcompletedsurveys... 8 3.6 Functiebeschrijving: getscores... 8 4. ASP... 9 5. SoapUI... 10 5.1 Instellingen... 10 5.2 Functies testen... 11
1. Inleiding In dit document wordt u wegwijs gemaakt in het implementeren van een module waarmee u de resultaten van een enquête kunt publiceren. De verschillende functies worden met beknopte voorbeelden toegelicht. Enige kennis van PHP is vereist. Een overzicht van alle hoofdstukken: SOAP SOAP is het protocol dat wordt gebruikt voor de communicatie tussen de PHP code en de database. In dit hoofdstuk wordt de algemene betekenis van SOAP uitgelegd. Functieomschrijvingen Alle informatie omtrent de te gebruiken functies worden hier omschreven. ASP Alle voorbeelden in de functieomschrijvingen zijn geprogrammeerd in PHP. Het is daarnaast ook mogelijk om ASP (Active Server Pages) als technologie te gebruiken. JSP Alle voorbeelden in de functieomschrijvingen zijn geprogrammeerd in PHP. Het is daarnaast ook mogelijk om JSP (JavaServer Pages) als technologie te gebruiken. soapui Het programma soapui (www.soapui.org) helpt u bij het testen van functies. Trouble shooting Voordat u met problemen naar Kerninformatie stapt, kunt u controleren of de problemen niet opgelost kunnen worden met het hoofdstuk trouble shooting.
2. SOAP Bron: http://www.wikipedia.nl SOAP (aanvankelijk een afkorting voor Simple Object Access Protocol) is een computerprotocol dat wordt gebruikt voor communicatie tussen verschillende componenten. SOAP wordt ondersteund door een groot aantal bedrijven en organisaties waaronder Sun, IBM, Microsoft, BEA, Oracle, Apache Software Foundation. SOAP is een protocol dat Extensible Markup Language (XML)-berichten stuurt, meestal over HTTP, maar ook over SMTP, HTTPS of FTP. Het SOAP-protocol bestaat uit drie onderdelen: Een envelop die een raamwerk definieert voor het beschrijven van wat in een bericht staat en hoe het te verwerken. Een set van encodeerregels voor de expressie van 'instanties' van applicatiegedefinieerde datatypen. Een conventie voor de representatie van 'remote procedure calls' en antwoorden. SOAP kan in potentie worden gebruikt in combinatie met een grote verscheidenheid aan andere protocollen. Om e-commerce te kunnen bedrijven is het noodzakelijk dat verschillende bedrijven, hun systemen en hun applicaties met elkaar kunnen communiceren, onafhankelijk van besturingssysteem, programmeertaal en objectmodel. Idealiter zou een onderneming geen rekening hoeven moeten houden met de gebruikte technologieën van de andere. SOAP is het protocol dat in systeemonafhankelijkheid voorziet - onafhankelijkheid van taal, technologie, apparaat en technische implementatie. SOAP bundelde in eerste instantie het transport (HTTP) en de boodschap (XML). Naast HTTP kunnen in de huidige SOAP-specificatie (versie 1.1) ook andere protocollen als SMTP, FTP en MQ het transport van de boodschap vervullen. SOAP-implementaties zijn beschikbaar voor vele verschillende talen en omgevingen, zodat ontwikkelaars zich niet hoeven te bekommeren over het formaat van SOAP-berichten, over de wijze van versturen en hoe foutcorrectie moet worden toegepast. Bovendien maken vele producten het mogelijk om bestaande Java-, COM- of CORBA-componenten aan te passen tot SOAP webdiensten.
3. Functie omschrijvingen 3.1 Functie parameter overzicht Functiecall Parameters Opmerkingen getallgroups Username (string) Password (string) getanswers Username (string) LanguageId (string) QuestionId (int) Sort (int) 1 = Nederlands 2 = Engels 3 = Duits 1 = Vraag over verblijf 2 = Vraag over accommodatie 0 = Random 1 = Most recent first MaxNumberOfResults (int) 0 - All results TargetCompanyId (int) Het id van uw bedrijf UniversalObjectId (int[]) 1 = Toeristische kampeerplaatsen 2 = Huur tourcaravans / tenten / trekkershutten / overig 3 = Huur stacaravans (w.o. Chalets) 4 = Huurbungalows 5 = Seizoenplaatsen zonder sanitair 6 = Seizoenplaatsen met sanitair 7 = Jaarplaatsen zonder sanitair 8 = Jaarplaatsen met sanitair getnumberofcompletedsurveys Username (string) Password (string) TargetCompanyId (int) Het id van uw bedrijf getscores Username (string) Password (string) TargetCompanyId (int) Het id van uw bedrijf
3.2 Uw gegevens Om de functies aan te kunnen roepen heft u nog enige informatie nodig: WSDL-url: http://www.kerninformatie.nl/wshelper/service.php?class=questionnairepublicationmanager&wsdl Gebruikersnaam en wachtwoord: deze informatie wordt aangeleverd door KERN. Heeft u deze gegevens nog niet ontvangen, neem dan contact op met Peter Boskaljon (info@kernenquete.nl). 3.3 Functiebeschrijving: getallgroups Deze functie geeft u een overzicht van alle verschillende groepen vragen. Voorbeeld implementatie: De volgende implementatie geeft een lijst van alle GroupId s met de bijbehorende description (groepsnaam): <??> $client = new SoapClient("WSDL-url"); $username = 'username'; $password = 'password'; $simplexml = new SimpleXMLElement( $client->getallgroups($username,$password)); foreach($simplexml->data->groups->group as $group) { echo "Groep ".$group->id." ".$group->description."<br />"; }
3.4 Functiebeschrijving: getanswers Deze functie geeft de antwoorden op bepaalde vragen uit uw enquête. U definieert de groep met het GroupId en kunt uw vragen vervolgens nog filteren op type (ObjectType) en soort (ObjectSort). Voor TargetCompanyId vult u uw bedrijfs-id in. Voorbeeld implementatie: De volgende implementatie geeft een lijst van de laatste 100 antwoorden die door gasten zijn ingevuld. Bij elk antwoord wordt de naam en de woonplaats van de geënquêteerde weergegeven, evenals de datum. <? $client = new SoapClient("WSDL-url"); $username = 'username'; $password = 'password'; $companyid = 1234; // Uw eigen bedrijfs id $questionid = 1; $universalobjects = array( 1 ); $languageid = 0; // Alle talen $maxresults = 100; // 0 voor alle resultaten $sortrandom = true; // Willekeurige volgorde $getanswers = new SimpleXMLElement( $client -> getanswers( $username, $password, $companyid, $questionid, $universalobjects, $languageid, $maxresults, $sortrandom ) ); foreach( $getanswers -> answer as $answer ) { echo 'Datum: '. ( string ) $answer -> date. '<br>'; echo 'Opmerking: '. ( string ) $answer -> comment. '<br>'; echo 'Achternaam: '. ( string ) $answer -> guest -> lastname. '<br>'; echo 'Woonplaats: '. ( string ) $answer -> guest -> city. '<br>'; echo 'Aankomstdatum: '. ( string ) $answer -> guest -> arrival_date. '<br>'; echo 'Vertrekdatum: '. ( string ) $answer -> guest -> leave_date. '<br><br>'; }?>
3.5 Functiebeschrijving: getnumberofcompletedquestionnaires Deze functie geeft het aantal ingevulde enquêtes. Voorbeeld implementatie: De volgende implementatie geeft het aantal ingevulde enquêtes. <? $client = new SoapClient("WSDL-url"); $username = 'username'; $password = 'password'; // Number of completed surveys $completed = new SimpleXMLElement( $client -> getnumberofcompletedquestionnaires( $username, $password, $companyid ) );?> echo ( int ) $completed -> completed; 3.6 Functiebeschrijving: getscores Deze functie geeft de gemiddelde scores per groep. Voorbeeld implementatie: De volgende implementatie geeft het groepid, de groepsnaam en de gemiddelde beoordeling van die groep (met 2 decimalen) weer. <??> $client = new SoapClient("WSDL-url"); $username = 'username'; $password = 'password'; $companyid = 1234; // Uw eigen bedrijfs id $simplexml = new SimpleXMLElement( $client-> getscores($username,$password, companyid)); foreach($simplexml->data->groups->group as $group) { echo "Groep ".$group->id.": ".$group->description."<br />"; echo "Gemiddelde waardering: ".$group->score."<br /><br />"; }
4. ASP Bron: http://www.wikipedia.nl Active Server Pages (ASP) is een door Microsoft ontwikkelde technologie om dynamische webpagina's en complete websites te genereren. Met dynamisch wordt in dit verband bedoeld dat de pagina's zoals de gebruiker ze op z'n browser te zien zal krijgen elke keer opnieuw worden opgebouwd. Op deze manier kan actuele informatie deel uitmaken van een pagina. 'Actueel' kan betekenen dat de informatie pas beschikbaar komt nadat de html al bepaald is; het kan ook zijn dat de informatie pas bekend is nadat de gebruiker heeft aangegeven waarnaar hij op zoek is; denk aan snuffelen in een assortiment. Dit staat dan tegenover statische webpagina's waarbij de HTML code ooit is aangemaakt, de gebruiker krijgt steeds dezelfde versie te zien. Tegenwoordig wordt ASP verder ontwikkeld onder de naam ASP.NET. ASP.NET is een nieuwe taal, gebaseerd op ASP, waarin meer mogelijkheden zitten en waarbij gewerkt wordt binnen het.net-framework. Voor een voorbeeld hoe SOAP functies in ASP aangeroepen dienen te worden, verwijzen we u naar: http://nl.wikibooks.org/wiki/programmeren_in_asp.net/webservices
5. SoapUI Het programma soapui is gratis te downloaden van www.soapui.org. Met dit programma kunt u bepaalde functionaliteit testen. 5.1 Instellingen Om een nieuw soapui project aan te maken, klikt u op file -> new soapui project, het volgende venster verschijnt: Achter Project Name vult u een duidelijke titel voor uw project in (bijvoorbeeld Publicatie Manager ). Op de volgende regel vult u de WSDL-url in (zie ook
3.2 Uw gegevens). Als u vervolgens op OK klikt, is wordt het nieuwe project aangemaakt. Het volgende scherm verschijnt: 5.2 Functies testen In het linker gedeelte staan de functies. Als u een request van deze functies aanklikt, kunt u in het middelste gedeelte uw variabelen/testwaarden invullen. Met en klik op de groene knop ( ) krijgt u het resultaat van uw request in het rechter gedeelte van uw scherm. Als u een foutieve waarde in heeft gevuld, krijgt u vanzelfsprekend geen juist resultaat.