Fabric And data.

A first time for everything. I want to learn new spells and want to try fabric and power BI for the first time.

Testing import data to Power BI desktop – With both data import and Direct Query.

Setting the Data source credentials to get the queried data to the Power Bi Service.

Test is working – Now lets wave the wand and build!

Fabric

HACK:

Got help from a team in the same house – HUFFLEPUFF POWER.

We can not get the trial to work in our tenant that we have for ACDC, so i had to create a service principal user in the ACDC tenant – and make it available multitenant. And then use this service principal in fabric in my work tenant to get the data in there.

We want to make a lakehouse with fabric, so after the data is clean, we can use it in Power BI and also share the data with other instances that needs to use the data.

Made a new Lakehouse: WizardData

Made the connection to the ACDC tenant

Cleaned the data:

Did this for all 7 tables.

I could not get compliant with the Power BI for my work tenant. So i decided to use Power BI desktop direct query to get the data from Dataverse and build a dashboard.

Start of dashboard: To be continued.

One last comment – We helped another team with the HACK to get the ACDC data into another tenant. COMMUNITY! – SHARING IS CARING!

Microsoft Magic

We have used a lot of different Microsoft products when developing our solution.

With this blog post we aim at getting points in the category “Magic Matric”, because that’s what it feels like to use Microsoft products and services.

We have planned our whole solution using Microsoft Whiteboard with a Surface Studio laptop and the Surface Studio Pen.

We use Microsoft Teams for collaboration and chat during the hackathon

And we have added Business Central to Teams directly to Teams to make collaboration on data easy.

Not to mention all the wonderful magical solutions we are building using Power Platform.

It truly feels like magic

Books And Cleverness – There Are More Important Things; Friendship And Bravery

Famous words spoken by Hermione Granger after they defeated the troll.

We have really felt the impact of this during this hackathon. When venturing into new territory and using tools and setting up applications that are new and unfamiliar, we often rely on documentation to get started. More often than not, at some point the documentation fails us and we are blocked from getting further. That’s when you need friends to help unblock you.

Like when Philip helped Emil to install the correct version of .NET on his new computer to enable him to finish setting up the tooling needed to build his first PCF component.

Ulrikke got help from Andy Wingate when she got stuck setting up Business Central as a virtual table in Dataverse. Andy jumped on a Teams call in the early morning hours to help unblock her.

Stig got help from unexpected sources when he got stuck setting up a trial for Fabric in our demo environmnent. Fredrik Engseth from another team – BUT the same Hufflepuff HOUSE as us, overheard our conversation and helped us figure our a smart hack to get Dataverse connected to a developer instance of Fabric, using a Service Principal with cross tenant permissions. Thank you Fredrik <3


Sharing really is caring, and like Hermione says,

“Books And Cleverness – There Are More Important Things; Friendship And Bravery”

Bravery to ask a friend for help

A Magical Start to Our Hackathon Day

Even before the sun was up, we were wide awake—coffee mugs in hand and Harry Potter costumes at the ready! Our team is determined to grab that Morning Glory badge for our early start, and we’re keeping the energy high to earn the Remarkable Teamspirit badge. We’ll snap plenty of photos (wands and laptops included) and share the excitement across our social channels. Here’s to a day of coding magic and unbreakable camaraderie!

Data model.

This is the first draft of or data model. Started looking at the Harry Potter Dataset and discussed in detail among us Wizards how the data should look like.

Pasted the tables below and this description into the Power Platform Plan Designer In our Ulrikke Potters Play Chamber environment – this environment is a play environment, because we do not want to use a preview feature in our other environments.

“Hello, we are building a way for wizards to collect Ingredients, and with the Ingredients they can make potions. When they make potions the wizards can go up levels, and spells gets available for them to use aswell. They will use a canvas app to scan the environment on spawn instances that will be created with power automate. The Ingredients will have a 3d model URL that will be used for the spawns. Could you please help me make the data model, below is what we have come up with.”

We also

Lets see what the plan designer comes up with – Scroll to the bottom of the tables.

Table: Contact(users) – Custom columns

Field NameData typeData type specification
LevelNumber

Table: Ingredient Inventory

Field NameData typeData type specification
IngredientLookupTable: Ingredient(1:N)
QuantityNumber
ContactLookupTable: Contact

Table: Potion Inventory

Field NameData typeData type specification
PotionLookupTable: Potion(1:N)
QuantityNumber
ContactLookupTable: Contact

Table: Spell Inventory

Field NameData typeData type specification
SpellLookupTable: Spells(1:N)
Masteredyes/no
ContactLookupTable: Contact

Table: Potion

Field NameData typeData type specification
PotionstringMain column
IngredientLookupTable: Ingredients(N:N)
EffectTextSinge line
CharacteristicsTextSingle line
Required LevelNumber
image columnimgPrimary image column

Table: Ingredient

Field NameData typeData type specification
IngredientstringMain column
RarityChoice
Image columnimgPrimary image column
Model UrlTestSingle line

Table: Spell

Field NameData typeData type specification
SpellstringMain column
RarityNumber
Required LevelNumber

Table: Spawn Instance

Field NameData typeData type specification
IngredientLookupTable: Ingredients
Spawn Pointtext/lookup?– Hva AI builder produserer

Accepted the user stories

The data model that came out of the plan designer – before doing changes.

The contact table should be used as the “wizard” table:

IT made a Contact table, a custom one. So that is a big big fail from the Planner.

Did not want any data in the tables. I asked the planner to remove the data, but it made the tables with the data anyways.

Another thing it did wrong, was to make an image column – it made it an URL column. I stated that it should be a primary image column. – So needed to do a clean up of the image columns in two tables.

Many to many relationship on potion to ingredients was not made

Added a model driven app to configure the Ingredients the potion needs to be made.

NEXT step – Export the solution out of the play environment and get it into or DEV environment.

Ok, so after import to the DEV environment – an unmanaged solution. We saw more problems with the data model. So we decided to Export a managed solution form the play environment and import that into the dev – delete, and do the process again.

Ok. So it does not work the way i want it to. It is almost there, but it can NOT change a URL column to an image column. And it can not use the standard contact table.

So decided to make it manually.

Hermione’s Beaded Bag

With this blog post we are claiming both

Hermione’s Beaded Bag

Hermione collects and stores lots of ingredients to use for potions and spells in her beaded bag. The bag has infinite capacity, so it’s a bit hard to keep track of it’s contents.

Canvas App
The solution to this is using our new interactive digital Bead Bag App that will allow you to scan items and store them to your digital bead bag. The also contains a spell book with spells and potions you can make from the ingredients you collect.

AI Builder and Power Automate
We use Object Detection Model in AI Builder will analyse the images and extract information and automatically store this information in the Bead Bag.

Power Pages and Model driven app
You can log on to a Power Pages site to get an overview of your inventory on a desktop view, and there is a Model Driven app back office app for admins, to view the inventory and manage all the ingredients and items in it.

Copilot Agents
A Copilot Agent will work autonomously in the background to match ingredients together and present you with potions and spells that are available to you with your current inventory.

Copilot Chat
You will also have a Copilot chat experience that allows you to prompt to learn what kind of potions and spells you can make with the ingredients you have in your inventory.

Power BI and Fabric
A Power BI dashboard will show statistics on where different ingredients are likely to appear, user statistics and the most commonly used potions and spells

Finance and Operations
After a while we expect the inventory to be quite full and you might want to sell some of the ingredients you have collected. This is where Finance and Operations come in. We want to connect Dataverse to F&O through Dual Write to access financial information, and also allow for transactions to enable selling and buying of ingredients.

Link Mobility
When you put an item up for sale you will be notified by SMS when a buyer shows interest

The whole picture looks like this:

Pipelines ALM – ACDC Craftsman

The ALM method of the Power Potters guild 🪄

Behold, the enchanted method of Application Lifecycle Management (ALM), where Power Platform Pipelines act as the Floo Network of solutions, transporting them safely from the cobblestone streets of Development to the bustling halls of Test and the grand castle of Production. Alas, our quest for a fourth environment—the illustrious Pipeline Host Environment—was thwarted by the restrictions of our trial license, which only permits the conjuring of three realms. As a result, we have cast a clever spell to install the pipeline application directly within the Development realm.

In the Development realm, solutions are left unmanaged, much like a young wizard’s first spell. By the time they graduate to Test and Production, they transform into managed solutions—properly polished and fit for their duties in the wizarding world.

With the ancient power of the run history scrolls, we shall keep an eye on the timeline of events, tracking mishaps and ensuring that the pipeline’s magic flows seamlessly. This vigilance allows for swift, safe development that races faster than a Firebolt broomstick

Realm Details

Realm NameTypeRegionLanguageCurrency
Dev – Power PottersTrialEUEnglish (US)EUR
Test – Power PottersTrialEUEnglish (US)EUR
Prod – Power PottersTrialEUEnglish (US)EUR
Pipeline Host RealmTrialEUEnglish (US)EUR

All realms are cloaked in the protective spells of “Managed” type and are set within the European Union’s borders. They share a common tongue (English, US) and currency (EUR), creating a unified magical system that prevents dependency conflicts, as if warding off a rogue boggart.

Let the Power Potters harness this method to charm their way to flawless, fast-paced development! 🧙‍♂️

The pipeline:

Naming conventions

WhatConventionExample
ColumnsPascal casepp_PowerPotters
SolutionsCapital letter for each word, short and descriptive namePower Potter Potion Solution
Forms
Views

Adding copilot to agent and moving across environments

Of course, because we developed the datamodel in DEV, we could also easily develop and train the Copilot Agent in DEV and move it to production using solutions and Power Platform Pipelines, as well as the AI Models, and the Power Pages site

Entra ID Security Groups

We use Entra ID / Azure AD Security groups to control who has access to the different environments.

The security group is linked to the environment.

A security team is linked to the security group in Entra ID, where security roles are assigned.