Skip to content

Ketenprotocol SB

De beschrijving van de technische interface voor Statusgegevens is vastgelegd in het, in de onderliggende paragrafen beschreven, ketenprotocol-SG. Dit protocol is bedoeld om een beschrijving te geven hoe systemen DATEX II data met de payload van het type SituationPublication dienen uit te wisselen.

Binnen het ketenprotocol-SG worden er twee methodes voor data afname beschreven. Te weten de Push Methode en de Pull Methode.

Push Methode

Systemen binnen de SG keten hebben een interface beschikbaar om data te "pushen" naar een afnemende partij. Het systeem van deze partij moet gebouwd zijn om te werken met zowel "DATEX II NL SG Keten WSDL omschrijving"

De push methode bevat een aantal onderdelen die hier onder beschreven worden. Het gaat om:

  • Administratie;
  • Klaar voor levering;
  • Aanmelden voor levering;
  • Begin levering;
  • Onderhouden verbinding;
  • Herstart levering;
  • Afmelden voor levering;
  • Weigeren van afnemend systeem;
  • Weigeren van data.

Administratie

Zowel de aanleverende (Supplier) als de afnemende (Client) partij houden een offline administratie bij.

Hierin staat geregistreerd bij het aanleverend systeem:

  • End Point waarop het afnemende systeem de data wil ontvangen;
  • Gebruikersnaam en Wachtwoord waarmee het afnemende systeem zal registeren.

Hierin staat geregistreerd bij het afnemende systeem:

  • End Point waarop de het aanleverend systeem de registratie wil ontvangen.

Klaar voor levering

Het aanleverend systeem maakt kenbaar dat het klaar is voor levering door DATEX II Keep-Alive bericht te sturen naar het afnemend systeem. Het exchange element van dit DATEX II Keep-Alive bericht bevat de volgende waarden:

Elementen binnen exchange waarde
keepAlive true
--- ---
requestType subscription
deliveryBreak true
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
  <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" modelBaseVersion="2">
        <exchange>
          <deliveryBreak>true</deliveryBreak>
          <keepAlive>true</keepAlive>
          <requestType>subscription</requestType>
          <supplierIdentification>
            <country>nl</country>
          <nationalIdentifier>NLNDW</nationalIdentifier>
          </supplierIdentification>
        </exchange>
      </d2LogicalModel>
    </SOAP:Body>
  </SOAP:Envelope>

Om onderscheid te maken tussen een gewone keepAlive en een keepAlive voor klaar voor levering is in deze keepAlive het element deliveryBreak opgenomen. Er wordt namelijk nog geen data uitgewisseld op dit moment.

Als het afnemend systeem zo'n DATEX II Keep-Alive ontvangt zal het het een DATEX II acknowledge bericht sturen, en zich dan aanmelden voor levering.

Klaar voor levering

Aanmelden voor levering

Het afnemend systeem meldt zich bij het aanleverend systeem aan met het registerRequest conform de WSDL van de Subscription Webservice. Komt er van het aanleverend systeem binnen 10 minuten geen registerResponse dan wordt het register verzoek opnieuw gestuurd. Dit wordt iedere 10 minuten herhaald totdat er een registerResponse wordt ontvangen. Nadat het aanleverend systeem het registerResponse heeft gestuurd wordt er begonnen met de levering van data via de Push Data Webservice.

Het afnemend systeem moet hiermee beginnen ook als het aanleverend systeem nog niet kenbaar heeft gemaakt dat het klaar is voor levering. De procedure is verder het zelfde als hierboven beschreven.

Indien er na 3 pogingen geen reactie komt van het aanleverend systeem zal er een incident aangemeld moeten worden bij de servicedesk van de leverende partij. Dit geldt alleen als het aanleverend systeem kenbaar gemaakt heeft klaar te zijn voor levering doormiddel van het versturen van keepAlives.

De te gebruiken waardes binnen het registerRequest zijn:

registerRequest waarde
clientIdentification Afgesproken gebruikersnaam afnemend systeem
--- ---
clientPassKey Afgesproken wachtwoord afnemend systeem
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
  <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <registerRequestType xmlns="http://schemas.cns-ndw.nl/wsdl/Provider10/">
        <clientIdentification>exampleuser</clientIdentification>
        <clientPasskey>examplepass</clientPasskey>
      </registerRequestType>
    </SOAP:Body>
  </SOAP:Envelope>

De te gebruiken waardes binnen het registerResponse zijn:

Elementen binnen exchange waarde
clientIdentification Afgesproken gebruikersnaam afnemend systeem
--- ---
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
  <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <registerResponseType xmlns="http://schemas.cns-ndw.nl/wsdl/Provider10/">
        <clientIdentification>exampleuser</clientIdentification>
      </registerResponseType>
    </SOAP:Body>
  </SOAP:Envelope>

Aanmeld procedure

Begin levering

Nadat de aanmelding van het afnemend systeem bij het aanleverend systeem succesvol is verlopen kan er begonnen worden met de levering. Het aanleverend systeem stuurt een DATEX II bericht waarbij UpdateMethod gevuld is met waarde snapshot. Dit bericht wordt door het afnemend systeem beantwoord met een DATEX II bericht waarbij response gevuld is met acknowledge.

Het snapshot bericht van het aanleverend systeem moet de volgende waardes bevatten:

Elementen binnen Subscription waarde
operatingMode operatingMode1
--- ---
subscriptionState active
subscriptionStartTime datum en tijd van het startmoment van de subscription
updateMethod snapshot
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" modelBaseVersion="2">
        <exchange>
          <supplierIdentification>
            <country>nl</country>
            <nationalIdentifier>NLNDW</nationalIdentifier>
          </supplierIdentification>
          <subscription>
            <operatingMode>operatingMode1</operatingMode>
            <subscriptionStartTime>2016-03-02T12:34:17.590Z</subscriptionStartTime>
            <subscriptionState>active</subscriptionState>
            <updateMethod>snapshot</updateMethod>
            <target>
              <address>http://exampledomain.com/d2examplefeed</address>
              <protocol>HTTP</protocol>
            </target>
          </subscription>
        </exchange>
        <payloadPublication xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="SituationPublication" lang="nl">
          <publicationTime>2016-03-02T12:32:15.665Z</publicationTime>
          <publicationCreator>
            <country>nl</country>
            <nationalIdentifier>NLNDW</nationalIdentifier>
          </publicationCreator>
          <situation id="NLRWS_NL..." version="1">...</situation>
          <situation id="NLRWS_NL..." version="2">...</situation>
        </payloadPublication>
      </d2LogicalModel>
    </SOAP:Body>
</SOAP:Envelope>

Het acknowlegdement van het afnemend systeem moet de volgende waardes bevatten:

Elementen binnen exchange waarde
response acknowledge
--- ---
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
  <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" modelBaseVersion="2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <exchange>
          <response>acknowledge</response>
          <supplierIdentification>
            <country>nl</country>
            <nationalIdentifier>exampleuser</nationalIdentifier>
          </supplierIdentification>
        </exchange>
     </d2LogicalModel>
  </SOAP:Body>
</SOAP:Envelope>

Direct daarna wordt er door het aanleverend systeem een DATEX II bericht gestuurd waarbij updateMethode gevuld is met allElementUpdate, dit bericht bevat alleen het element exchange. De payloadPublication zal dus niet aanwezig zijn.

Het afnemend systeem beantwoordt dit bericht met een DATEX bericht waarbij response gevuld is met acknowlegde.

Het allElementUpdate bericht van de Supplier moet de volgende waardes bevatten:

Elementen binnen Subscription waarde
operatingMode operatingMode1
--- ---
subscriptionState active
subscriptionStartTime datum en tijd van het startmoment van de subscription
updateMethod allElementUpdate
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" modelBaseVersion="2">
        <exchange>
          <supplierIdentification>
            <country>nl</country>
            <nationalIdentifier>NLNDW</nationalIdentifier>
          </supplierIdentification>
          <subscription>
            <operatingMode>operatingMode1</operatingMode>
               <subscriptionStartTime>2016-03-02T12:34:17.590Z</subscriptionStartTime>
               <subscriptionState>active</subscriptionState>
               <updateMethod>allElementUpdate</updateMethod>
               <target>
                 <address>http://exampledomain.com/d2examplefeed</address>
                 <protocol>HTTP</protocol>
               </target>
          </subscription>
        </exchange>
      </d2LogicalModel>
    </SOAP:Body>
</SOAP:Envelope>

Het acknowlegdement van het afnemend systeem moet de volgende waardes bevatten:

Elementen binnen exchange waarde
response acknowledge
--- ---
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
  <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" modelBaseVersion="2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <exchange>
          <response>acknowledge</response>
          <supplierIdentification>
            <country>nl</country>
            <nationalIdentifier>exampleuser</nationalIdentifier>
          </supplierIdentification>
        </exchange>
     </d2LogicalModel>
  </SOAP:Body>
</SOAP:Envelope>

Hierna wordt overgaan tot het onderhouden van de verbinding.

Begin levering

Onderhouden verbinding

De verbinding tussen het aanleverend systeem en het afnemend systeem zal worden onderhouden door het aanleverend systeem. Zolang er geen update op de data te versturen is zal het aanleverend systeem iedere 5 minuten een keep-alive bericht sturen, als er wel een update op de data is zal deze verstuurd worden doormiddel van een allElementUpdate bericht waarbij de data zich bevindt in een payloadPublication van het type situationPublication.

Het exchange element van het DATEX II Keep-Alive bericht bevat de volgende waarden:

Elementen binnen exchange waarde
keepAlive true
--- ---
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" modelBaseVersion="2">
        <exchange>
          <keepAlive>true</keepAlive>
          <supplierIdentification>
            <country>nl</country>
            <nationalIdentifier>NLNDW</nationalIdentifier>
          </supplierIdentification>
        </exchange>
      </d2LogicalModel>
    </SOAP:Body>
</SOAP:Envelope>

Het allElementUpdate bericht van het aanleverend systeem moet de volgende waardes bevatten:

Elementen binnen Subscription waarde
operatingMode operatingMode1
--- ---
subscriptionState active
subscriptionStartTime datum en tijd van het startmoment van de subscription
updateMethod allElementUpdate
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" modelBaseVersion="2">
        <exchange>
          <supplierIdentification>
            <country>nl</country>
            <nationalIdentifier>NLNDW</nationalIdentifier>
          </supplierIdentification>
          <subscription>
            <operatingMode>operatingMode1</operatingMode>
            <subscriptionStartTime>2016-01-02T11:14:16.512Z</subscriptionStartTime>
            <subscriptionState>active</subscriptionState>
            <updateMethod>allElementUpdate</updateMethod>
            <target>
                <address>http://exampledomain.com/d2examplefeed</address>
                <protocol>HTTP</protocol>
            </target>
          </subscription>
        </exchange>
        <payloadPublication xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="SituationPublication" lang="nl">
          <publicationTime>2016-01-11T03:01:30.988Z</publicationTime>
            <publicationCreator>
              <country>nl</country>
              <nationalIdentifier>NLNDW</nationalIdentifier>
            </publicationCreator>
            <situation id="GRT02_..." version="2">...</situation>
        </payloadPublication>
      </d2LogicalModel>
    </SOAP:Body>
</SOAP:Envelope>

De keep-alive of de AllElementUpdate wordt beantwoord met een acknowledgement door het afnemend systeem. Als deze acknowledgement niet binnen 3 minuten wordt ontvangen zal het aanleverend systeem het bericht opnieuw aanbieden. Het aanleverend systeem probeert een bericht maximaal drie maal te versturen naar een afnemend systeem.

Het acknowlegdement van het afnemend systeem moet de volgende waardes bevatten:

Elementen binnen exchange waarde
response acknowledge
--- ---
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
  <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" modelBaseVersion="2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <exchange>
          <response>acknowledge</response>
          <supplierIdentification>
            <country>nl</country>
            <nationalIdentifier>exampleuser</nationalIdentifier>
          </supplierIdentification>
        </exchange>
     </d2LogicalModel>
  </SOAP:Body>
</SOAP:Envelope>

Mocht het hierna nog steeds niet gelukt zijn om het bericht af te leveren wordt er een deliveryBreak bericht gestuurd en gaat het aanleverend systeem naar de modus klaar voor levering.

Als het afnemend systeem langer dan 11 minuten geen berichten van het aanleverend systeem heeft ontvangen zal deze naar de afmeld methode gaan.

Het deliveryBreak bericht van het aanleverend systeem bevat de volgende waardes:

Elementen binnen exchange waarde
deliveryBreak true
--- ---
requestType subscription
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" modelBaseVersion="2">
        <exchange>
          <deliveryBreak>true</deliveryBreak>
            <supplierIdentification>
              <country>nl</country>
              <nationalIdentifier>NLNDW</nationalIdentifier>
            </supplierIdentification>
        </exchange>
     </d2LogicalModel>
   </SOAP:Body>
</SOAP:Envelope>

Onderhouden verbinding

Herstart levering

Het afnemend systeem kan het aanleverend systeem een verzoek sturen om een nieuw snapshot. Hiervoor is het bericht requestSituationUpdatesRestartRequest van de Subscription Webservice. Nadat het aanleverend systeem het bericht ontvangen heeft zal deze naar de begin levering procedure gaan.

XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <requestSituationUpdatesRestartRequestType xmlns="http://schemas.cns-ndw.nl/wsdl/Provider10/">
        <clientIdentification>exampleuser</clientIdentification>
        <clientPasskey>examplepass</clientPasskey>
      </requestSituationUpdatesRestartRequestType>
    </SOAP:Body>
</SOAP:Envelope>

Herstart levering

Afmelden voor levering

Het afnemend systeem kan zich bij het aanleverend systeem afmelden voor de levering. Hiervoor kan een unRegisterRequest worden verstuurd. Nadat het aanleverend systeem deze heeft ontvangen zal deze antwoorden met een AllElementUpdate met daarin SubscriptionState op suspended.

XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <unregisterRequestType xmlns="http://schemas.cns-ndw.nl/wsdl/Provider10/">
        <clientIdentification>exampleuser</clientIdentification>
        <clientPasskey>examplepass</clientPasskey>
      </unregisterRequestType>
    </SOAP:Body>
</SOAP:Envelope>

Nadat het aanleverend systeem deze heeft ontvangen zal deze antwoorden met een AllElementUpdate met daarin SubscriptionState op suspended.

XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" modelBaseVersion="2">
        <exchange>
          <supplierIdentification>
            <country>nl</country>
            <nationalIdentifier>NLNDW</nationalIdentifier>
          </supplierIdentification>
          <subscription>
            <operatingMode>operatingMode1</operatingMode>
            <subscriptionStartTime>2016-03-02T13:12:14.746Z</subscriptionStartTime>
            <subscriptionState>suspended</subscriptionState>
            <updateMethod>allElementUpdate</updateMethod>
            <target>
              <address>http://exampledomain.com/d2examplefeed</address>
              <protocol>HTTP</protocol>
            </target>
          </subscription>
        </exchange>
      </d2LogicalModel>
    </SOAP:Body>
</SOAP:Envelope>

Het afnemend systeem zal zich opnieuw moeten aanmelden wil deze data ontvangen van het aanleverend systeem. Indien de afmelding gedaan wordt na het weigeren van data zal het afnemend systeem wachten met aanmelden totdat het aanleverend systeem kenbaar gemaakt heeft klaar te zijn voor levering.

Afmeld procedure

Indien UnregisterRequest, die verstuurd wordt nadat er 11 minuten geen data is ontvangen en ook geen deliverybreak is ontvangen, niet beantwoord wordt door het aanleverend systeem moet er een incident ingemeld worden bij de servicedesk van de aanleverende partij.

Het aanleverende systeem kan zich ook zelf afmelden voor levering bij het afnemende systeem. Hiervoor dient er vanuit het aanleverende systeem een AllElementUpdate met daarin SubscriptionState op suspended gestuurd te worden.

XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" modelBaseVersion="2">
        <exchange>
          <supplierIdentification>
            <country>nl</country>
            <nationalIdentifier>NLNDW</nationalIdentifier>
          </supplierIdentification>
          <subscription>
            <operatingMode>operatingMode1</operatingMode>
            <subscriptionStartTime>2016-03-02T13:12:14.746Z</subscriptionStartTime>
            <subscriptionState>suspended</subscriptionState>
            <updateMethod>allElementUpdate</updateMethod>
            <target>
              <address>http://exampledomain.com/d2examplefeed</address>
              <protocol>HTTP</protocol>
            </target>
          </subscription>
        </exchange>
      </d2LogicalModel>
    </SOAP:Body>
</SOAP:Envelope>

Weigeren van afnemend systeem

Indien het afnemend systeem zich aanmeld met verkeerde gebruikersnaam of wachtwoord zal het aanleverend systeem een bericht terug sturen dat voldoet aan de DATEX2-specificaties naar het adres van de webservice waarop de client de SituationPublication wil ontvangen. Dit bericht bevat een D2LogicalModel element met daarin een Exchange element waarvan de elementen de volgende waarden hebben:

Elementen binnen exchange waarde
denyReason wrongPartner
--- ---
XML Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
      <d2LogicalModel xmlns="http://datex2.eu/schema/2/2_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" modelBaseVersion="2">
        <exchange>
          <denyReason>wrongPartner</denyReason>
          <response>requestDenied</response>
          <supplierIdentification>
            <country>nl</country>
            <nationalIdentifier>NLNDW</nationalIdentifier>
          </supplierIdentification>
        </exchange>
      </d2LogicalModel>
    </SOAP:Body>
</SOAP:Envelope>

Weigeren client

Weigeren van data

Er zijn twee momenten waarop het afnemend systeem de data die verstuurd is door het aanleverend systeem kan weigeren:

  1. Bij het ontvangen van een snapshot.

  2. Hierbij zal het afnemend systeem zicht afmelden voor de levering.

  3. Bij het ontvangen van een allElementUpdate.

  4. Hierbij zal het aanleverend systeem naar de modus begin levering gaan.

Binnen het Nederlandse profiel zijn er twee manieren om een weigering van data op te nemen. Via het element denyReason en het element ExtendedDenyReason.

Bij het weigeren van data moet het element denyReason altijd gevuld zijn. Indien ExtendedDenyReason gebruikt wordt dient denyReason met unkownReason gevuld te worden.

Pull procedure

Een aanleverend systeem is tevens uitgerust met functionaliteit om gegevens, op verzoek van het afnemend systeem te publiceren.

De pull methode is geïmplementeerd op basis van het "simple http server-profile", wat betekent dat de afnemer een HTTP-request doet en in de body van de response de gegevens krijgt.

Deze gegevens worden in hetzelfde formaat aangeboden als bij de push methode. Om interoperabiliteit te behouden tussen deze twee methoden wordt de data bij de pull methode ook in een SOAP enveloppe verpakt.

If-Modified-Since

Een aanleverend systeem kan ook de mogelijkheid ondersteunen om naast het publiceren van snapshots via het Pul mechanisme, ook berichten te publiceren met daarin alleen veranderingen ten opzichte van een datum en tijdstempel.

Hierbij geldt dat er de eerste keer een normale pull gedaan wordt, waarmee een snapshop wordt angeboden. Wil het afnemend systeem nadat een snapshot of update ontvangen is gebruik maken van het pull mechanisme kan dit gedaan worden door gebruik te maken van de http-header If-Mofified-Since. Deze moet dan gevuld worden met de datum en tijd van de http-header Last-Modified van het ontvangen snapshot of update. Hierbij worden alleen de berichten ontvangen die gewijzigd zijn.

Image title

1 WSDL omschrijvingen zijn hier te vinden.

Go back to the previous page