Meten in LuckyTemplates: optimalisatietips en -technieken

Meten in LuckyTemplates: optimalisatietips en -technieken

In deze zelfstudie leert u hoe u een meting optimaliseert in LuckyTemplates. Het optimaliseren van maatregelen in uw rapport verbetert de prestaties van uw codes bij het produceren van waardevolle inzichten en gegevens. U leert ook over de verschillende evaluatiemethoden en hoe u deze kunt toepassen om uw rapport te optimaliseren. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.

Inhoudsopgave

1. Analyseer de prestaties van de code

In dit voorbeeld moet u dit rapport optimaliseren:

Meten in LuckyTemplates: optimalisatietips en -technieken

Dit is het gegevensmodel dat u gaat gebruiken:

Meten in LuckyTemplates: optimalisatietips en -technieken

De tabel Taken bevat alle informatie over elke taak die in een bepaalde periode is uitgevoerd.

Deze tabel is de basis van alle metingen die u gaat optimaliseren:

Meten in LuckyTemplates: optimalisatietips en -technieken

Eerst moet u de prestaties van het rapport testen.

Ga naar het tabblad Weergave en kies Performance Analyzer . Klik vervolgens op Start Recording and Refresh Visuals . Wacht tot de analysator de visual weergeeft.

Meten in LuckyTemplates: optimalisatietips en -technieken

Zodra dit is gebeurd, gaat u naar beneden in de lijst Incentive Breakdown en klikt u op Copy Query .

Meten in LuckyTemplates: optimalisatietips en -technieken

Selecteer vervolgens Externe tools om naar DAX Studio te gaan en de code te bekijken die LuckyTemplates heeft gegenereerd.

Meten in LuckyTemplates: optimalisatietips en -technieken

Plak vervolgens de gekopieerde query in de werkruimte.

Meten in LuckyTemplates: optimalisatietips en -technieken

Variabelen in de maat

De eerste variabele is DateClosed , de slicer op het dashboard. Het gebruikt een kolom uit de feitentabel om de waarden van bepaalde perioden in de slicer te krijgen.

De volgende variabele is JobLost , die controleert op False of Blank van de Job Lost-gegevens.

De laatste variabele is MatrixVisual . Dit is het hart van de code. Het toont de samengevatte kolom die door LuckyTemplates is gegenereerd om matrixvisuals te vullen. Het groepeert het type baanverlies in deze matrix en injecteert de filters die uit de slicers komen. Vervolgens voegt het uitgebreide kolommen toe.

Zodra de samenvattingskolom de uitvoering heeft voltooid, ziet u de resultaten in het deelvenster onder de code.

Meten in LuckyTemplates: optimalisatietips en -technieken

LuckyTemplates gebruikt het resultaat om matrixvisuals te vullen.

Koude cache voor DAX Studio

Vervolgens moet u controleren hoeveel tijd het kost om de hele code uit te voeren. Om dat te doen, schakelt u de Server Timings in en kiest u Cache wissen en vervolgens uitvoeren .

Meten in LuckyTemplates: optimalisatietips en -technieken

Wanneer u een meting in LuckyTemplates probeert te optimaliseren met DAX Studio , is het beter om te werken volgens het cold cache-scenario, zodat de tijd die u krijgt correct is. Druk daarna op F5 en wacht tot de bewerking is voltooid op het tabblad Server Timings .

Als het eenmaal is voltooid, kunt u zien dat de totale uitvoeringstijd 3,6 seconden is. Het bracht de meeste tijd door in de formule-engine en bracht 57 milliseconden door in de opslag-engine

Meten in LuckyTemplates: optimalisatietips en -technieken

U kunt ook zien dat er 383 query's voor de opslagengine zijn gevonden. Van al die vragen zijn er 327 die in het geheugen worden gegoten, zodat ze opnieuw kunnen worden gebruikt.

2. Analyseer een meting in LuckyTemplates

Vervolgens moet u deze 3 identieke maatregelen optimaliseren.

Meten in LuckyTemplates: optimalisatietips en -technieken

U moet deze metingen in een ander bestand extraheren en verbinden met het gegevensmodel dat u gebruikt.

Meten in LuckyTemplates: optimalisatietips en -technieken

Start daarna de Server Timings om de tijd te zien die nodig is voor de 3 metingen bij het vullen van visuals.

Uit de resultaten van de run blijkt dat de maatregelen 1,85 seconden nodig hebben om een ​​resultaat op te halen.

Meten in LuckyTemplates: optimalisatietips en -technieken

Het resultaat toont een tabel bestaande uit 10 rijen en 3 uitgebreide kolommen die thuishoren in de samengevatte kolommen.

Meten in LuckyTemplates: optimalisatietips en -technieken

De kolom Verliestype bevat 10 unieke waarden die de code berekent om de stimuleringspercentages te krijgen.

De tijd die de code in beslag neemt, is exponentieel hoog. Dit is waar en wanneer u ze moet optimaliseren.

De RB Incentive%-maatstaf in LuckyTemplates

Dit is een RB Incentive%-maatstaf in LuckyTemplates. Het is een van de 3 belangrijkste maatregelen die in dit voorbeeld worden gebruikt.

Meten in LuckyTemplates: optimalisatietips en -technieken

U kunt zien dat het probeert het stimuleringspercentage te berekenen.

Het heeft een variabele, JobType, die de waarde Lost Type ophaalt in de huidige filtercontext. Het controleert ook of er slechts één enkele waarde zichtbaar is in de huidige filtercontext. functie gebruiken  , zodat elke keer dat aan een voorwaarde wordt voldaan, het overeenkomstige resultaat wordt gegeven.

Deze meetcode genereert veel opslagmotorvet, waardoor de totale duur van de code toeneemt.

Ga nu terug naar DAX Studio om te controleren hoeveel query's voor de storage-engine de meting genereert.

Meten in LuckyTemplates: optimalisatietips en -technieken

U kunt zien dat het 600 milliseconden duurde om uit te voeren en 43 storage engine-query's om eenvoudig gegevens voor de 10 rijen op te halen.

Gegevens van de opslagengine

Controleer nu de gegevens die worden opgevraagd bij de opslagengine. In de eerste query is er een Jobs Loss Type en DCOUNT  van het Jobs Loss Type.

Meten in LuckyTemplates: optimalisatietips en -technieken

De volgende query heeft Jobs Datum Gesloten die afkomstig is uit de slicer in het rapport.

Meten in LuckyTemplates: optimalisatietips en -technieken

In de derde code ziet u een ander type banenverlies met de callback-gegevens-ID.

Meten in LuckyTemplates: optimalisatietips en -technieken

Op een andere regel ziet u de belangrijkste coderegels.

Meten in LuckyTemplates: optimalisatietips en -technieken

Het eerste dat u ziet, is de van de ontvangen opdrachtbetalingen, gefactureerde en werkelijke uitgaven.

Vervolgens is de WHERE-  functie die een voorwaarde en het bijbehorende resultaat vermeldt. Het resultaat zal variëren op basis van de slicer-selectie en de switch-instructie in de RB Incentive%-meting.

U zult ook merken dat de code op regel 12 en 14 hetzelfde is.

Meten in LuckyTemplates: optimalisatietips en -technieken

Als u naar rechts scrolt, ziet u dat er regels zijn met dezelfde vragen. De vragen op de regels worden gestuurd door de switch-instructie in de RB Incentive%-maatstaf.

Meten in LuckyTemplates: optimalisatietips en -technieken

Als u teruggaat naar de meting RB Incentive% in LuckyTemplates, kunt u zien hoe vaak een query wordt herhaald en hoe dit wordt weerspiegeld in de query's van de opslagengine.

Meten in LuckyTemplates: optimalisatietips en -technieken

De logica achter IF en Switch

 en SWITCH -functies begrijpen .

U moet ze afzonderlijk uitvoeren op een queryplan. Maar voordat u dat doet, moet u ervoor zorgen dat u verbinding maakt met de database en het queryplan inschakelt.

Voer de SWITCH-  instructie uit in het queryplan. Markeer vervolgens de  verklaring en druk vervolgens op Enter.

Meten in LuckyTemplates: optimalisatietips en -technieken

Dit genereert een logisch queryplan met verschillende bewerkingen.

Meten in LuckyTemplates: optimalisatietips en -technieken

Voer vervolgens de IF- instructie uit door de instructie te markeren en op enter te drukken.

Meten in LuckyTemplates: optimalisatietips en -technieken

U kunt zien dat het hetzelfde logische queryplan genereert.

Dit komt omdat wanneer u een SWITCH-functie gebruikt , de engine die functie intern converteert naar een IF- instructie. Maar een SWITCH- statement wordt aanbevolen omdat het de leesbaarheid van uw code vergroot.

Daarna moet u begrijpen hoe een code wordt uitgevoerd binnen de IF- of SWITCH -functie.

Dit is een voorbeeldcode met daarin een SWITCH- instructie.

Meten in LuckyTemplates: optimalisatietips en -technieken

Het heeft metingen voor brutowinst, totale schatting en totaal gefactureerd, die allemaal de SOM van verschillende kolommen zijn. Het heeft ook een functie over de van het type banenverlies en een SWITCH- en TRUE- verklaring.

Wanneer u deze code uitvoert, ziet u de logica achter de functies.

De eerste query haalt het verschillende type banenverlies op uit de tabel Taken.

Meten in LuckyTemplates: optimalisatietips en -technieken

Afgezien van het type banenverlies, krijgt het ook de som van de geschatte banen.

Binnen de WHERE- voorwaarde kunt u ook de waarden zien die bestaan ​​in de kolom Type banenverlies.

Meten in LuckyTemplates: optimalisatietips en -technieken

3. Gebruik code-evaluatiemethoden

In DAX zijn er 3 methoden voor het evalueren van codes:

  • Strikte evaluatie
  • Enthousiaste evaluatie
  • IF.Eager Evaluatie

Deze methoden helpen u bij het optimaliseren van een code of meting in LuckyTemplates.

1e methode: strikte evaluatie

In het onderstaande voorbeeld wordt de strikte evaluatiemethode gebruikt.

De logica erachter is dat als de context van het type banenverlies gelijk is aan A, dit de brutowinst oplevert. Anders geeft het de totale schatting. De code doet dit voor elke rij in het type banenverlies.

Dit is een andere voorbeeldmaatregel in LuckyTemplates die Strikte Evaluatie gebruikt.

Meten in LuckyTemplates: optimalisatietips en -technieken

Wanneer u deze code uitvoert, genereert deze 5 opslagengine-query's.

Meten in LuckyTemplates: optimalisatietips en -technieken

Bij strikte evaluatie levert de code de totale schatting als de brutowinst vermenigvuldigd met 1,4 groter is dan de gemiddelde schatting. Anders geeft het de brutowinst.

Het gebruik van Strikte Evaluatie produceert meer query's voor de opslagengine omdat de IF-  instructie de concurrentie van de brutowinst meerdere keren controleert en uiteindelijk de prestaties van de hele operatie zal belemmeren.

2e methode: enthousiaste evaluatie

Dit is dezelfde code als het vorige voorbeeld.

Maar in plaats van de maten binnen de  IF- instructie te berekenen, berekende het alles in de vóór RETURN .

Meten in LuckyTemplates: optimalisatietips en -technieken

Dit betekent dat het, voordat het de verklaringen controleert, alle waarden van de brutowinst en de totale schatting voor alle soorten banenverlies krijgt.

Wanneer u deze code uitvoert, wordt het aantal storage-engines teruggebracht tot 3.

Meten in LuckyTemplates: optimalisatietips en -technieken

Het verbetert de prestaties van de hele operatie.

In de eerste bewerkingsquery krijgt het het type banenverlies en de som van de geschatte banen en de brutowinst.

Meten in LuckyTemplates: optimalisatietips en -technieken

De volgende query haalt de som op van de Jobs Estimate van de Jobs Stable. Dit wordt gebruikt bij het berekenen van de gemiddelde schatting.

Meten in LuckyTemplates: optimalisatietips en -technieken

De laatste query geeft het afzonderlijke Jobs Loss Type voor de waarden die in de ADDCOLUMNS zijn geschreven .

Meten in LuckyTemplates: optimalisatietips en -technieken

Het gebruik van de Eager Evaluation krijgt alles in één enkele datacache. De gegevens worden ook geëvalueerd en herhaald op de formule-engine. De IF-  instructie retourneert de totale schatting of de brutowinst, afhankelijk van de juiste of onwaar-evaluatie.

Eager Evaluation is niet altijd de beste methode om uw codes te optimaliseren. Strikte evaluatie zal resulteren in betere prestaties als u complexe codes heeft. Het hangt allemaal af van de functies die u gebruikt in de DAX-code.

De keerzijde van Eager Evaluation is dat als u kostbaarheden creëert vóór een IF-  of  SWITCH-  instructie en die variabelen in de instructie gebruikt die nooit zouden moeten worden uitgevoerd, de engine die variabelen nog steeds zal berekenen.

Eager Evaluatie Nadelen

Hier is een voorbeeld van de keerzijde:

Idealiter, als het type banenverlies gelijk is aan A, zou het brutowinst moeten krijgen. Anders krijgt het Total Estimate.

Meten in LuckyTemplates: optimalisatietips en -technieken

Aangezien er geen waarde in de kolom Type baanverlies is die gelijk is aan A, moet deze altijd Total Estimate krijgen. Het biedt echter nog steeds de brutowinst in de datacache.

Als u naar de eerste query kijkt, krijgt deze het type banenverlies en de som van de brutowinst en schatting van de baan.

Meten in LuckyTemplates: optimalisatietips en -technieken

In de volgende query krijgt het een afzonderlijk type banenverlies uit de tabel Taken.

Meten in LuckyTemplates: optimalisatietips en -technieken

3e methode: IF.EAGER-evaluatie

De volgende methode is de  IF.EAGER-  functie-evaluatie die het gedrag van de Eager-evaluatie repliceert.

Hiermee kunt u een code schrijven die de Strict Evaluation vertegenwoordigt en deze uitvoeren met Eager Evaluation.

Als u naar deze voorbeeldcode kijkt, is deze precies hetzelfde als de strikte evaluatiecode. Het enige verschil is dat dit de  functie IF.EAGER gebruikt in plaats van IF .

Meten in LuckyTemplates: optimalisatietips en -technieken

Voordat u de code uitvoert, moet u verbinding maken met het LuckyTemplates-model en de servertiming inschakelen. Als u klaar bent, drukt u op F5.

U kunt zien dat het 3 query's voor de opslagengine heeft gegenereerd.

Meten in LuckyTemplates: optimalisatietips en -technieken

De eerste query haalt het type banenverlies op en de som van de geschatte banen en de brutowinst.

Meten in LuckyTemplates: optimalisatietips en -technieken

De tweede query haalt de som op van de Jobs Estimate.

Meten in LuckyTemplates: optimalisatietips en -technieken

De laatste query haalt het verschillende type banenverlies op uit de tabel Taken.

Meten in LuckyTemplates: optimalisatietips en -technieken

U zult merken dat het hetzelfde gedrag heeft uitgevoerd als de Eager Evaluation.

Samenvatting evaluatiemethoden

Om de prestaties van uw berekeningen te verbeteren, moet u het volgende onthouden:

  • Strikte evaluatie wordt gebruikt voor complexe codes. Het is ook van toepassing als u niet alle waarden wilt evalueren die door de tabel worden geleverd.
  • Eager Evaluation is beter te gebruiken als uw codes eenvoudig zijn.
  • Gebruik IF.EAGER als u codes wilt schrijven met behulp van de Strict Evaluation en deze wilt uitvoeren met Eager Evaluation.

Houd er echter rekening mee dat u deze drie methoden moet testen om erachter te komen wat u echt het beste kunt gebruiken in uw rapport.

4. Optimaliseer een maatregel in LuckyTemplates

De belangrijkste les in deze zelfstudie is het optimaliseren van uw codes.

Ga terug en kijk naar de RB Incentive% -maatstaf die wordt uitgevoerd met Strict Evaluation. Probeer het vervolgens te evalueren met behulp van Eager Evaluation.

Begin met het maken van variabelen en het invoeren van de  RETURN- functie.

Meten in LuckyTemplates: optimalisatietips en -technieken

Wijzig de maatreferenties met de variabelen.

Meten in LuckyTemplates: optimalisatietips en -technieken

Bevestig daarna de maatregel en ga naar de DAX Studio om te zien of het de prestaties heeft verbeterd.

Het laat zien dat de totale tijd 642 milliseconden is en dat het totale aantal query's voor de storage-engine is teruggebracht tot 39.

Meten in LuckyTemplates: optimalisatietips en -technieken

Maak nu de variabelen voor alle gegevens en wijzig alle maatreferenties in hun overeenkomstige variabelen.

Meten in LuckyTemplates: optimalisatietips en -technieken

Bevestig vervolgens de meting en voer de code uit in de DAX-studio.

De totale uitvoeringstijd en het totale aantal query's voor de storage-engine zijn teruggebracht van respectievelijk 600 milliseconden naar 170 milliseconden en 43 query's naar 15 query's.

Meten in LuckyTemplates: optimalisatietips en -technieken

Je kunt ook zien dat er geen duplicaten zijn. Het hebben van variabelen in uw code verbetert hun leesbaarheid en prestaties.

Geavanceerde optimalisatie voor een maatregel in LuckyTemplates

Vervolgens moet u uw DAX-codes verder optimaliseren.

Gebruik in plaats van  .

Meten in LuckyTemplates: optimalisatietips en -technieken

HASONEVALUE  telt het aantal beschikbare waarden in de filtercontext, wat een zeer intensieve operatie is. Ondertussen controleert ISINSCOPE of de kolom die wordt geleverd wordt gebruikt voor groepering of niet.

Bevestig na het wijzigen van de functies de meting en voer deze uit in DAX Studio.

Je ziet dat het aantal storage engine queries nu 12 is. De totale uitvoeringstijd is ook 105 milliseconden geworden.

Meten in LuckyTemplates: optimalisatietips en -technieken

In de 2e query ziet u een Callback-gegevens-ID.

Meten in LuckyTemplates: optimalisatietips en -technieken

Dit gebeurt soms wanneer u SELECTEDVALUE gebruikt met het tekstveld. Wanneer u Callback-gegevens ziet, roept de opslagengine de formule-engine aan om de complexiteit van de code op te lossen. Dit vertraagt ​​de prestaties van uw meting.

Verwijder terugbelgegevens

U moet de callback-gegevens verwijderen om betere prestaties in uw rapport te krijgen. Om dat te doen, moet u een configuratietabel maken in het datamodel.

Ga naar de optie Gegevens invoeren en plak de gegevens. Noem de tabel LossTypeConfigTable .

Meten in LuckyTemplates: optimalisatietips en -technieken

Klik vervolgens op Bewerken om het gegevenstype te wijzigen van de kolom die u gaat importeren.

Het gegevenstype van de Loss Type ID moet een leraarwaarde zijn, zodat deze kan worden gebruikt binnen de functie SELECTEDVALUE .

Nadat het in het model is geladen, maakt u een relatie tussen de tabel Jobs en de tabel LossTypeConfigTable op basis van het type verlies.

Meten in LuckyTemplates: optimalisatietips en -technieken

Ga na het maken van een relatie naar de tabel Taken en voeg een nieuwe kolom toe. Noem het Loss ID en voer vervolgens de formule in.

Meten in LuckyTemplates: optimalisatietips en -technieken

Gebruik de functie  voor de configuratietabel en extraheer vervolgens de Loss Type ID.

Ga vervolgens terug naar de RB Incentive%-meting en verwijs naar het numerieke veld in plaats van het tekstveld. Binnen SELECTEDVALUE vervangt u Loss Type door Loss ID.

Meten in LuckyTemplates: optimalisatietips en -technieken

Wijzig vervolgens alle maatregelen in de code. Gebruik een geheel getal in plaats van tekstwaarden bij het controleren op het taaktype.

Meten in LuckyTemplates: optimalisatietips en -technieken

Nadat u de code heeft gewijzigd, bevestigt u de meting en voert u deze uit in DAX Studio.

De callback-gegevens-ID wordt geëlimineerd in de query en de uitvoeringstijd van de code wordt teruggebracht tot 93 milliseconden.

Meten in LuckyTemplates: optimalisatietips en -technieken

De RB Incentive%-maatstaf is nu volledig geoptimaliseerd.

5. Optimaliseer andere maatregelen in LuckyTemplates

U moet ook de maatregelen WR Incentive% en QB Incentive% optimaliseren.

Kopieer en plak de exacte code die wordt gebruikt in de RB Incentive%-meting. Voer vervolgens de 3 maten samen uit.

De totale uitvoeringstijd is geoptimaliseerd en teruggebracht van 1855 milliseconden naar 213 milliseconden. Er zijn ook slechts 12 query's voor de opslagengine.

De eerste twee query's creëren de filtercontext en de rest vertegenwoordigt het exacte aantal waarden in de kolom Type banenverlies.

Meten in LuckyTemplates: optimalisatietips en -technieken

Aangezien alle metingen zijn geoptimaliseerd, voert u de originele code uit en ziet u hoe de prestaties zijn veranderd. Uit de gegevens blijkt dat het nu in 1,9 seconden wordt berekend.

Meten in LuckyTemplates: optimalisatietips en -technieken

De prestaties van de hele code zijn nu geoptimaliseerd, waardoor uw rapport sneller en beter wordt.


Optimaliseer DAX-functies met deze nieuwe cursus
Eenvoudige LuckyTemplates-transformaties voor meer geoptimaliseerde gegevens
LuckyTemplates-formules optimaliseren met geavanceerde DAX

Conclusie

In LuckyTemplates-rapporten moeten maatregelen worden geoptimaliseerd om ervoor te zorgen dat uw DAX-codes soepel verlopen. Dit verbetert ook de algehele prestaties van uw rapport.

Je hebt de verschillende methoden geleerd om je meting in LuckyTemplates te optimaliseren en je hebt geleerd hoe je kunt beoordelen welke je moet gebruiken, afhankelijk van de context van je rapport.


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten