DDC BC 22 juni 2021 - De Business Central Performance Toolkit - Technisch

Dinsdag, 22 juni 2021, door Bert Verbeek, Danny Hellemons en Olaf Jorritsma

Danny trapt af met een top down overzicht van de Businsess Central Performance Toolit (BCPT) en haar mogelijkheden. Belangrijk om mee te beginnen is wat ze wel en vooral niet kan of is. Dit blijkt nog niet zo’n eenvoudige vraag om te beantwoorden. Al snel wordt duidelijk dat de BCPT verder gaat dan de stelling ‘zolang het loopt, komt het goed’ of ‘bij ons gaat het wel snel, dus de code is goed’. Volgens de documentatie van Microsoft kan de BCPT vragen beantwoorden als: “Ondersteund mijn oplossing voor BC een X aantal gebruikers die deze en deze taak tegelijkertijd uitvoeren?”
De BCPT beantwoordt géén vragen als: “Hoeveel orders in BC kan ik per uur boeken?”
Danny vult aan dat het tevens geen unit test, integratietest of performance load is. Derhalve is het met de BCPT dus niet mogelijk als bewijslast voor het voldoen aan bepaalde SLA afspraken.

Tot zover wat de BCPT niet kan, over naar wat wél kan, en het is duidelijk te merken dat Danny zijn enthousiasme wil overbrengen en mensen wil aanmoedigen de BCPT te gaan gebruiken omdat het handvatten biedt om performance beter te leren begrijpen. Immers: “meten is weten”.

Bedrijfsprocessen te simuleren

In een notendop ben je met de BCPT in staat om bedrijfsprocessen te simuleren en uit te voeren met parameters die er in werkelijkheid ook zijn. Gebruikers hebben verschillende rollen, voeren verschillende soorten data in en boeken of registreren diversie soorten documenten. Allemaal in dezelfde database, in een bepaalde hoeveelheid en met een bepaalde wachttijd (zgn. UserWait) tussen de handelingen.
Olaf ligt een voorbeeld toe van een shop-floor proces waarin een user of 30 tegelijk aan het werk is met rollen die uiteen lopen van productieplanner tot productiemedewerker. Per rol wordt vastgesteld welke handelingen worden uitgevoerd met welke frequentie.
Dus wanneer alle condities gelijk blijven maar in een bepaald deel van het bedrijfsproces wijzigt iets, bijvoorbeeld het aantal medewerkers of aantal transacties, dan kan daarvan het effect in het grotere geheel in kaart gebracht worden. Des te meer gegevens beschikbaar zijn over de werkelijkheid des te beter zullen de testresultaten zijn. Tegelijkertijd is het advies: hou het simpel. Tussen de letters door is mijn interpretatie: niet direct met de stopwatch de werkvloer op (maar het kan wel).

Coderen van bedrijfsprocessen

Zijn de processen in kaart gebracht? Dan kan overgegaan worden op het ‘echte werk’, het schrijven van code die de processen gaan uitvoeren. Wetende welke processen gesimuleerd gaan worden kan bepaald worden welke dataset ten grondslag ligt aan de test runs, welke stappen geprogrammeerd moeten worden, en welke parameters ingesteld moeten worden in de setup velden.

Zodra Bert aan het woord komt zitten we er allemaal klaar voor, hoe gaat dat nou in zijn werk in BC? Hoe ziet die code eruit? Kleine teleurstelling merkbaar in de ‘zaal’ als Bert begint met een Excel spreadsheet waarin de scenario’s zijn vastgelegd. Het mogen duidelijk zijn, wil je performance beter leren begrijpen moet een laboratoriumjas aangetroken worden en alleen onder de juiste omstandigheden zul je tot nieuwe inzichten komen.

Het framework 

Het framework an sich is recht toe recht aan. Bert laat aan de hand van een simpel proces, klant aanmaken à verkoopfactuur maken à verkoopfactuur boeken, alle stappen zien die je moet doorlopen om een succesvolle testrun te kunnen starten. Van UserWaits tot App Registration en alles wat daar tussen zit.
Bert geeft voldoende informatie en uitleg om de drempel om aan de slag te gaan met de BCPT te verlagen. In de test codeunits laat hij enkele voorbeelden uit de Libraties van het framework zien waaruit blijkt hoe de uiteindelijke logging tot stand komt.

De drie heren benadrukken allen dat het effect van caching altijd meegenomen moet worden. In de simulaties moet daarom altijd een warming-up ingebouwd worden, of juist niet als je geïnteresseerd ben in het effect van caching.

Ben je tot zover gekomen? Dan staat er een mooie tabel met log-records op je te wachten waarmee je je uit kunt leven in Excel of PowerBI om de resultaten te bekijken. Tevens worden de resultaten zichtbaar in de Application Insights.

Make sure you don’t keep your queries running too long to ensure a happy flow!

Verslag: Rick van Erp
Foto's: Kevin O'Garro en Vincent van Rens

« Naar het overzicht

Events

06 februari 2024 - Dynamics 365 Event, 6 Februari 2024
Van der Valk Tiel, Laan van Westroijen 10, 4003 AZ Tiel
Datum: 06 februari 2024
Meer informatie »

14 november 2023 - Dynamics 365 Event, 14 november 2023
Van der Valk Breukelen, Stationsweg 91, 3621 LK Breukelen
Datum: 14 november 2023
Meer informatie »

13 juni 2023 - DDC Jaarevent 13 juni 2023
Oud London, Woudenbergseweg 52, 3707 HX, Zeist
Datum: 13 juni 2023
Meer informatie »


Nieuws

Intwo nieuwe Gold sponsor
07 augustus 2023
Lees bericht »

Dutch Dynamics Community - Nieuwsflits * Mei 2023 * 2
31 mei 2023
Lees bericht »

Dutch Dynamics Community - Nieuwsflits * Mei 2023
12 mei 2023
Lees bericht »


Blog

DDC-avond Nuland 4 april 2023
04 april 2023
Lees blog »

DDC 4 april 2023 - Business Central Apps verkopen via AppSource - kan dat?
04 april 2023
Lees blog »

DDC 4 april 2023 - Azure Data Lake de extensie voor al je data
04 april 2023
Lees blog »

Eventdata seizoen 2023-24

  • dinsdag 14 november 2023
  • dinsdag 6 februari 2024
  • dinsdag 16 april 2024
  • dinsdag 18 juni 2024

 

Wat is de Dutch Dynamics Community?

Ons doel is het delen van kennis en ervaringen rondom Microsoft Dynamics software.

We bieden de mogelijkheid aan alle Microsoft Dynamics Professionals om met elkaar in contact te komen en deel te nemen aan presentaties en discussies.

Laagdrempelig, onafhankelijk, diepgaand en altijd actueel.

Om iedereen op de hoogte te houden kun je je inschrijven voor een van onze nieuwsbrieven:

Schrijf je hier in voor de onze nieuwsbrief

Platinum sponsors


Gold sponsors

 

Sapphire sponsors


Silver sponsors


Club van 100

c100