Met de mei 2025 update van Power BI Desktop is het nu mogelijk om User Data Functions (UDF’s) uit Microsoft Fabric direct aan te roepen vanuit je Power BI-rapport. Microsoft noemt dit zelf “Translytical task flows”. Een term die goed klinkt, maar wat kun je er écht mee?
Wat zijn User Data Functions?
Een User Data Function is een Python-script dat je vanuit Power BI of een andere omgeving kunt aanroepen om een actie uit te voeren, zoals het toevoegen, aanpassen of verwijderen van records in een database. Je kunt parameters meegeven vanuit je rapport, waarmee je gegevens doorstuurt naar de functie.
UDF’s draaien op een Fabric-capacity. Binnen je werkruimte maak je een UDF aan waarin je de Python-code definieert. Deze code kan communiceren met een Fabric SQL Database, een Fabric Lakehouse of een Fabric Warehouse (de laatste lijkt op dit moment nog niet volledig ondersteund voor writes).
UDF’s aanroepen vanuit Power BI
Nieuw in Power BI is dat je aan een button in je rapport nu een UDF als actie kunt koppelen. Je kunt dynamisch parameters meegeven op basis van de huidige context in het rapport, bijvoorbeeld de geselecteerde rij in een tabel of invoer via een text slicer. Zo kun je een invoerscherm bouwen, waarmee gebruikers gegevens kunnen invoeren en opslaan.
Praktijkvoorbeeld: toelichtingen toevoegen in de P&L
In ons voorbeeld gebruiken we een UDF om toelichtingen toe te voegen bij posten in de winst- en verliesrekening. Gebruikers selecteren een bedrag in het rapport (dat hoort bij een bepaalde grootboekrekeningen en periode), voeren een toelichting in, en met één klik wordt deze opgeslagen in een Fabric SQL Database. Omdat het rapport met DirectQuery is gekoppeld, zijn wijzigingen direct zichtbaar in Power BI.
Een vergelijkbare functionaliteit was voorheen al mogelijk met Power Apps, maar dat vereist extra kennis en aparte licenties van Power Apps. Met UDF’s werk je volledig binnen je bestaande Fabric-omgeving. Je hebt wel wat kennis van Python nodig, maar dankzij de documentatie en voorbeelden van Microsoft is die leercurve goed te overzien.
Belangrijke aandachtspunten
- User Data Functions vereisen een Fabric capacity.
- Voor het wegschrijven van data heb je een Fabric SQL Database nodig. Hoewel Fabric Warehouses in de documentatie ook worden genoemd, kregen we een melding dat schrijven naar een Warehouse niet ondersteund wordt.
- UDF’s zijn op dit moment nog in preview (status juni 2025).