Wanneer u met big data werkt, bevindt u zich soms in situaties waarin u de mogelijkheden van business intelligence moet benutten, maar wordt belemmerd door een gebrek aan automatische hiërarchiedetectie. Momenteel ondersteunt relatiemanager in Power BI niet direct ouder-kind hiërarchieën voor zelfverwijzingstabellen. Hierdoor kunt u zich vaak afvragen hoe u het systeem uw gewenste relatie kunt laten herkennen.

Gelukkig heeft de formuletaal binnen Power BI, DAX, functies waarmee de gebruiker zelfverwijzende kolommen in tabellen kan ontwikkelen, waardoor interne hiërarchieën kunnen worden gemaakt. In de blog van vandaag zullen we overwegen hoe DAX te gebruiken om deze moeilijke hiërarchie-informatie uit te werken en te visualiseren. We zullen verschillende strategieën en hun beperkingen bespreken.

Uitdaging:

Opportunity management is een typisch onderwerp dat organisaties graag beter willen begrijpen met business intelligence. Wanneer gegevens worden opgevraagd en in Power BI worden ingevoerd, worden relaties met records - zoals bovenliggende accounts en onderliggende contactpersonen - doorgaans begrepen en automatisch ingesteld. In dit geval willen we het veld 'Eigenaar' in opportunityrecords in Dynamics bekijken. Dit veld komt voort uit een één-op-veel-relatie tussen de entiteit Systemuser en de entiteit Opportunity.

Overweeg een Sales Executive die zijn rapport wil filteren op basis van de Manager of Opportunity Owners. Bovendien wil de Executive nog een niveau hoger in de hiërarchie (en filteren op de Manager van de Manager). Er zijn twee manieren om dit op te lossen.

Oplossing 1: opzoekingen

De eerste is het gebruik van alleen opzoekkolommen.

We zullen onze opzoekkolommen maken in de tabel van de Systemuser. Bij het ophalen van gegevens uit Dynamics 365 bevat de entiteit Systemuser kolommen voor systemuserid en _parentsystemuserid_value. Met behulp van deze velden kunnen we een self-referential lookup in DAX maken waarmee we de volledige naam van de manager kunnen weergeven.

  • Manager FullName = LOOKUPVALUE (systeemgebruikers [volledige naam], systeemgebruikers [systeemgebruiker], systeemgebruikers [_parentsystemuserid_waarde])

Nadat we de kolom Manager volledige naam hebben gemaakt, kunnen we de kolom maken om de manager van de manager weer te geven.

  • Met deze DAX: Manager Manager FullName = LOOKUPVALUE (systeemgebruikers [FullName], systeemgebruikers [systemuserid], LOOKUPVALUE (systeemgebruikers [_parentsystemuserid_value], systeemgebruikers [volledige naam], systeemgebruikers [Manager Volledige naam]))

Op deze manier kunnen we met succes meerdere niveaus van een interne hiërarchie in Power BI weergeven. Maar het gebruik van een Lookup binnen een Lookup als deze vereist veel verwerkingskracht. Het kan het systeem vertragen en de wachttijden verlengen. Daarom moet het spaarzaam worden gebruikt.

Oplossing 2: Indexkolom en padfunctie

De tweede methode omvat het maken van een indexkolom en het gebruik van de padfunctie.

Wij set een indexkolom in de dataset van de systeemgebruikers in Query Editor.

En we hernoemen de kolom.

Van hieruit kunnen we de berekende kolommen in de tabel sysemusers maken.

Met behulp van de volgende DAX:

MgrPathIndex = LOOKUPVALUE (systeemgebruikers [UserPathIndex], systeemgebruikers [systeemgebruiker], systeemgebruikers [ManagerID])

We maken een numerieke indexkolom voor gebruikers in deze stap voor managers met de [systemuserid] en de [ManagerId]. Deze id-velden zijn tekst-GUID's in CRM, dus we moeten ze converteren naar numerieke ID-kolommen om de PATH-functie in DAX te kunnen gebruiken.

Met behulp van deze vergelijking in DAX:

UserPath = PATH (systeemgebruikers [UserPathIndex], systeemgebruikers [MgrPathIndex])

De functie PATH retourneert de gebruikersindex en de gebruikersindexen van de gebruiker vanaf het hoogste punt van de hiërarchie. Als je in de 3 zitrd positie van de hiërarchie, ontvangt u een waarde in de kolom als "0 | 1 | 2 ”waarbij 0 niveau 1 (het hoogste) is, 1 is het 2nd niveau, en 2 is de 3rd niveau. Deze methode legt minder stress op het systeem en is gemakkelijker te gebruiken met een grote hiërarchie. Het is de meest efficiënte methode en moet als een best practice worden beschouwd.

Er is inderdaad een oplossing of een oplossing voor alles in Dynamics 365 en Microsoft Business Applications. Zorg dat je Abonneer je op onze blog voor meer tips en trucs!

Happy Dynamics 365'ing

Avatar voor Joe D365

Joe D365

Joe D365 is een Microsoft Dynamics 365 superheld die op pure Dynamics adrenaline draait. Als het gezicht van PowerObjects, is de missie van Joe D365 om innovatieve manieren te onthullen om Dynamics 365 te gebruiken en de toepassing naar meer bedrijven en organisaties over de hele wereld te brengen.