figuur 1. De suite in ReadyAPI voor het genereren van een bestand met aansluitgegevens.
Voorbeeld 2: Genereren van importbestanden
Een van de functionaliteiten van het gebouwde systeem was de mogelijkheid om adressen met aansluitgegevens te importeren, om zo in bulk aanvragen te verwerken. Het zoeken naar één specifieke aansluiting duurt al lang, laat staan 50 tot 200 aansluitingen. We hadden een specifieke dataset nodig, namelijk van adressen met één aansluiting in gebruik in de regio van een bepaalde vestiging. Handmatig zoeken naar deze aansluitingen en een importbestand maken, was zeer arbeidsintensief en dus geen optie. Bovendien maakten meerdere partijen tegelijkertijd gebruik van de testomgeving, waardoor de kans groot was dat de gegevens tussentijds veranderden.
Het was relatief eenvoudig om de suite uit het voorgaande voorbeeld aan te passen zodat deze gebruikt kon worden voor het genereren van importbestanden. Hiervoor moest er een extra service aangeroepen worden die verantwoordelijk was voor het controleren van de ligging van de adressen binnen een bepaalde vestiging. Bovendien controleerde twee extra toegevoegde condities of er slechts één aansluiting aanwezig was op een adres en of deze ook daadwerkelijk aangesloten was. De laatste aanpassing die nodig was, betrof de datasink, oftewel het doelbestand. Dit bestand was gebaseerd op een template voor het importbestand.
Voor het verkrijgen van een lijst met zo’n 200 aansluitingen die voldeden aan de criteria, was een dataset van ongeveer 5.000 adressen nodig. Het kostte ReadyAPI tussen de 10 en 30 minuten, in plaats van vele uren, om door de lijst heen te gaan en het importbestand klaar te zetten.
In mijn voorbeeld maak ik gebruik van excel maar natuurlijk hebben tools zoals ReadyAPI ook de mogelijkheid om andere bestandsformaten te gebruiken als bron- en doel bestand, zoals json en xml. Dit geeft je een stukje flexibiliteit mocht de format van de interface veranderen naar een ander bestandsformaat.
figuur 2. De suite in ReadyAPI voor het genereren van een importbestand.
Voorbeeld 3: Controleren van testdata
Periodiek werden er ook regressietesten uitgevoerd. Hiervoor was een redelijke set aan testdata nodig. Het klaarzetten van deze testdata gebeurde vaak meer dan een week van tevoren, met het risico dat de testdata in de tussentijd gewijzigd was omdat meerdere partijen op dezelfde omgeving aan het werk waren. In het Excel document beschreef ik de scenario’s voor de regressietest met een tabblad met de testdata.
Met de data uit de Excel sheet en de services was het relatief eenvoudig om te controleren of de data nog geldig was. Om de data op te halen hoeft ReadyAPI slechts de naam van het tabblad in Excel te weten en de range van cellen. Op basis van EAN, een uniek identificerend nummer, was het mogelijk om de aansluitgegevens op te halen. In het testdata tabblad stond welke waarden verwacht werden, zoals de status van de aansluiting of wat voor een soort meter aanwezig was.
De waarden uit de Excel sheet werden in de datasource geladen, vervolgens toegewezen aan properties en deze werden vergeleken met de response van de service. In veel tools, en in dit geval in ReadyApi, kun je een aantal validaties toevoegen aan een soap request. Wanneer voldaan wordt aan de criteria is de check succesvol (en groen), als dat niet het geval is faalt de test (en wordt deze rood). Met de rapportage in een tool kun je snel zien voor welke scenario’s uit de regressieset de data nog valide is en welke scenario’s extra aandacht behoeven. Het is natuurlijk ook mogelijk om de resultaten van de controles weg te laten schrijven in een doelbestand zodat snel inzichtelijk is welke testdata corrupt is en welke nog valide. Bij een grote dataset is dit zeker aan te raden vanwege de overzichtelijkheid.
Voorbeeld 4: Aanmaken orders en aanvragen
Zoals bij veel procesketens bestaat ook het aanvragen van aansluitingen uit een flink aantal processen en stappen. Het is dan handig om halverwege zo’n keten te kunnen beginnen, zonder dat de voorgaande gecheckt hoeven te worden. De uitgangssituatie vanuit stap X in het proces goed hebben, is dan vaak voldoende.
Voordat een order vanuit een klant in SAP kwam te staan, waren er al een aantal stappen afgerond. De aanvraag moest eerst worden aangevuld, daarna moest er een offerte gegenereerd en verstuurd worden. Handmatig kostte dit per order toch al snel 10 minuten, als je geen fout maakte. Voor het aanmaken van een order bestond ook een service. Dus in plaats van de order in 3 stappen te realiseren hebben we de tijd genomen om uit te zoeken wat de order precies nodig heeft en wat optioneel is. Daarna was het opbouwen van het soap request relatief eenvoudig. Door direct de service aan te roepen werd het aanmaken van een order teruggebracht van 10 minuten naar minder dan 1 minuut.
Tot slot
Mijn voorbeelden beperken zich tot een specifiek systeem en één tool. Uiteraard zijn de voorbeelden breder toepasbaar. Er zijn meerdere tools in de markt die hetzelfde doen als ReadyAPI en waar dus een soortgelijke functionaliteit te realiseren is. De kans is groot dat je niet met een SAP-systeem werkt, maar in veel gevallen is het systeem wel onderdeel van een grotere keten waardoor het loont om uit te zoeken hoe je halverwege de keten een proces kan starten.
Er zijn legio scenario’s denkbaar waarbij er veel voorbereidend werk nodig is om tot een uitgangssituatie te komen. Mijn tip: ga eens met een ontwikkelaar samen zitten! Zij kunnen vaak helpen met het bedenken van een oplossing en een API openstellen. Zodat je direct een service kunt aanroepen of een tool kunt inzetten, die je in staat stelt halverwege in een proces in te prikken.