Hoe kun je de actuele set van eisen uit Relatics tonen in een ander softwaresysteem?

Projecten maken gebruik van verschillende systemen om hun informatie in te beheren. Bijvoorbeeld een DMS voor documentbeheer, CAD-software voor ontwerpen, GIS-software voor geo-informatie en een SE-tool voor eisen. Vaak is er de behoefte om informatie van het ene systeem via webservices te tonen in het andere systeem. Wat komt er kijken bij het maken van een webservice voor een ander systeem? En hoe zorg je ervoor dat specifiek de informatie wordt meegestuurd die het andere systeem nodig heeft?

 

Dit artikel beschrijft hoe je een webservice maakt, waarmee een ander systeem (bijv. CAD-software of GIS-software) met een parameter voor een systeemobject de gerelateerde eisen uit Relatics kan ontvangen.

Stap 1: Maak een report met alle eisen per systeemobject

De eerste stap is het maken van een report. Het is te adviseren om voor elk onderwerp (bijv. eisen, systeemobjecten, activiteiten, etc.) een aparte webservice te maken. Dit biedt keuzevrijheid aan het andere systeem en is qua performance sneller door de kleinere dataset per webservice. In onderstaande afbeelding is te zien dat er een report is gemaakt die, gegeven een systeemobject, de eisen toont. Belangrijk is om de OutputExtension op XML te zetten. De Relatics webservice werkt namelijk via het SOAP-protocol dat XML-berichten verstuurt.

Stap 2: Maak een webservice en koppel de report

Nadat de report klaar is, kan de webservice geconfigureerd worden. Dit wordt bereikt door een server for providing data webservice aan te maken en deze te koppelen aan de report. Belangrijk is om de OperationName in te vullen, omdat dit een vereiste in de webservice is. Het meest gebruikte authentication type is Entry code validation. Dit houdt in dat via een wachtwoord de data van de webservice ontvangen kan worden. Een tip is om een veilig wachtwoord met veel tekens te gebruiken. Via een (online) password generator kan een wachtwoord eenvoudig gegenereerd worden.

Stap 3: Benodigde gegevens verzamelen zodat het andere systeem de webservice kan aanspreken

Het is verstandig om vooraf alle gegevens te verzamelen die de beheerder van het andere systeem nodig heeft om via een SOAP-webservice de informatie uit Relatics op te vragen. Als eerste is dit de URL waarmee de webservice benaderd wordt:

Voorbeeld webservice: URL

https://my-environment.relaticsonline.com/DataExchange.asmx?wsdl

Hierbij dient het eerste gedeelte van de URL (https://my-environment.relaticsonline.com) aangepast te worden naar de URL waarop eindgebruikers Relatics gebruiken. Als tweede dient aangegeven te worden welke operation aangesproken moet worden. Voor het ophalen van informatie is dit altijd dezelfde operation:

Voorbeeld webservice: Operation

GetResult

Als laatste kan het beste een uitgewerkt soap-request voorbereid worden, waarin alle benodigde XML-nodes zijn ingevuld:

Voorbeeld webservice: SOAP request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rel="http://www.relatics.com/">

  <soapenv:Header/>

  <soapenv:Body>

    <rel:GetResult>

      <rel:Operation>Requirements per System Object</rel:Operation>

      <rel:Identification>

        <rel:Identification>

          <rel:Workspace>34dc8bac-2755-4682-aa8c-5b5b9c732bb0</rel:Workspace>

        </rel:Identification>

      </rel:Identification>

      <rel:Parameters>

        <rel:Parameters>

          <rel:Parameter Name="SystemObjectGUID" Value="7c48af84-1c84-e711-80ee-000af753dd43"/>

        </rel:Parameters>

      </rel:Parameters>

      <rel:Authentication>

        <rel:Authentication>

          <rel:Entrycode>7FBpAkStBCA1qwCigXT9gVh7</rel:Entrycode>

        </rel:Authentication>

      </rel:Authentication>

    </rel:GetResult>

  </soapenv:Body>

</soapenv:Envelope>

Er zijn 4 specifieke XML-nodes ingevuld:

  • Operation: De OperationName van de webservice (voorbeeld: Requirements per System Object)
  • Workspace: De ID van de Workspace, ook wel WID genoemd (voorbeeld: 34dc8bac-2755-4682-aa8c-5b5b9c732bb0)
  • Parameter: De naam van de parameter van de report (voorbeeld: SystemObjectGUID) en een ID van een systeemobject dat als voorbeeld wordt gebruikt (voorbeeld: 7c48af84-1c84-e711-80ee-000af753dd43)
  • Entrycode: De Entry code van de webservice (voorbeeld: 7FBpAkStBCA1qwCigXT9gVh7)

Stap 4: Test de webservice in een externe applicatie

Voordat de verzamelde gegevens met de beheerder van het andere systeem gedeeld worden, is het verstandig om de webservice eerst te testen. Hier zijn diverse tools voor beschikbaar op internet. In dit artikel gebruiken we SoapUI:

In het linkerscherm kan het request ingevoerd worden. Na het uitvoeren van de webservice is in het rechterscherm het resultaat te zien. Als in het resultaat de informatie uit Relatics getoond wordt, dan heb je de webservice succesvol getest. Scan door de data heen om te kijken of de webservice compleet is. Als dit niet het geval is, loop dan alle benodigde gegevens nog eens goed na.

Tip: Voor het aanroepen van een webservice uit een Relatics Environment die gehost wordt op relaticsonline.com, moet het andere systeem TLS 1.2 ondersteunen. Bij SoapUI is dit niet standaard. Dit is wel mogelijk door het ".vmoption"-bestand  in de "bin"-folder van SoapUI uit te breiden met de volgende regel:

-Dsoapui.https.protocols=TLSv1.2

Downloaden

Upload onderstaand rcs-bestand in je environment om de uitgewerkte voorbeelden van dit artikel te bekijken:

Contact

Heeft u hulp nodig bij het toepassen van de technieken en tips in uw eigen casus? Of heeft u vragen, opmerkingen of suggesties over dit artikel? Neem dan contact op met een van onze consultants.