Power Apps Pay As you GO!!💸

When Microsoft introduced Azure for the Microsoft public, it was a new way of thinking. We were suddenly paying for what we needed and when we needed it. Amazon had been there for a long while, but for Microsoft customers this was a new way of thinking. After a skeptical start, this model has really become somewhat of a system standard.

As of today Power Platform will be available on Azure subscription! It is being introduced as a “Pay as you go” model. It is important that you don’t mistake this for the same as Azure. In Azure you actually only pay for the compute time used (in most cases), but here you will pay for a license once you use an application.

WOW THIS IS SOOOO COOL … Well, is it really?

Let’s just think about the following first. Just a few weeks ago Microsoft dropped the prices to half of what they used to cost. They are now only 5$ and 20$ for the different plans. When you think about the value you get from a Dataverse OOTB that is a BARGAIN already.

So why am I not overly excited about the “Pay as you Go” PAYGO model? Well, I don’t really see the big impact yet. Most of my customers are on the CSP agreement, and can flex as much as they feel for. Planning ahead for apps is also hard, and is counter intuitive for innovation. By releasing a plan as PAYGO, you essentially need to plan financially for all users that might use an app, while you silently hope that not all users actually use the app that month. For every user that didn’t use the app, you save some money.

I am sure that the plan makes sense for many scenarios, but I just don’t really see them yet. The good thing is that “limitations/possibilities” for the new plan will be monitored closely in the beginning to find the correct levels for all types of use cases. Remember to voice your opinion if you see some great opportunity. Microsoft will be listening😀

Pricing comparison

Standard Pricing App and User Plan

Standard Pricing Storage

PAYGO Pricing app

https://docs.microsoft.com/en-us/power-platform/admin/powerapps-flow-licensing-faq#add-ons

PAYGO Storage

https://docs.microsoft.com/en-us/power-platform/admin/powerapps-flow-licensing-faq#add-ons

Personal Thoughts

The only thing that we know for sure is that licensing will always be a situation where we as consumers want changes. We want more more more, and want to pay less less less. Microsoft will continuously find new license models to adapt to our wishes while finding ways to keep profits. Don’t get me wrong. I am all about Microsoft being able to charge what they want. After all it’s a great product!!! I’m just saying that you need to look behind the shining stuff before you automatically assume that everything new is automatically better.

What you need to do as a customer is get help to assess assess your licensing situation. Not only is licensing complex from a rules perspective, but the applications can be modified to adapt to licensing changes. I am not saying PAYGO is bad, but I’m not jumping on the PAYGO train quite yet. Most of my customers are CSP customers and have a lot of freedom with licensing (Up and Down). Just going to see what happens first 😁

I might also have misunderstood quite a lot in regards to the benefits received from this model, and if so I would love feedback to learn new ways of thinking!👌

GIF Custom Connector

In my last post I wrote about Adaptive Cards in Teams, but a vital factor for that adaptive card to be interesting is the content on the card. Dynamics 365 Sales Adaptive Card🚀.

One of the technical bits last time was connecting with an HTTP GET request to the API. I will be using the same information to create a custom connector so that anyone can reuse for the future 😁

Creating the Connector

Step one.. open https:///make.powerapps.com .

Step 2.. Break down the URL from the first picture like this

Step three… If you don’t really know how to do this, ask a friend!! 🙂

Step three again.. Enter the security settings. When entering the security settings and providing something more than blank, you will be prompted with the credentials first time you create a connection to the connector.

I broke the URL down further with the “api_key” as a query, so that it would show in the URL like the example on the first picture.

Step four.. Create a search tag like the one I had in the URL from the first picture

Step five.. Get the URL from the first picture with your API key, and add this to the import sample

Choose the GET in this case, and add the full URL

Your request should look something like this:

Step 6.. Add a connection to the connector and test with a tag. It should return some info like this:

Result

When you are done, you have a custom connector you can reuse from Power Apps, Flow or any other tool that can use custom connectors.

Connector Gallery 🌌

What better thing to do than release this to the https://connector.gallery when you are done creating a new connector?? :😁💪🥇

The rise of the Galleries🌌

By now I hope most people know the https://pcf.gallery (run by Guido Preite). A great page for sharing community components (PCF) and exposing awesome contributions to the rest of the world. 🌎

What I like about the PCF Gallery is the simplicity of the site only being about PCF components. This is why I asked Guido if we could create a similar site for other components regarding the Power Platform. He was so kind to share his code for the project, so Matt Beard and I decided to give it a go. 🤗

Connector Gallery

First out in list of future galleries is the CONNECTOR gallery . This site will contain all sorts of custom connectors for Power Platform that you can share with the community. If you want to contribute to this gallery, you only have to share the custom connector file you have on GitHub, and we will post it out!

Dynamics / Power Apps + Office App Launcher

Launching a new app or launching a new CRM system always leaves the users with the same question. Where do I find the application? At first I didn’t really understand the question, because I thought it was natural to bookmark the URL to your application ie https://www.company.crm4.dynamics.com/***** etc.

Eventually I realized that most users are actually using the waffle menu in office 365 when navigating to applications that they don’t use continuously.

They were expecting to see the application in the list when you clicked the waffle menu, because this would save them time.

Luckily this is not a problem 😊 Open the all apps, and locate the app you are looking for

And just like that you now have a quick navigation to your CRM or Power App application in the Microsoft 365 app launcher👊

ACDC 2021 – Final delivery

My last post described the ACDC hackathon and what it’s all about, but this post is what our company ended up delivering for the Arctic Cloud Developer Challenge after 2 1/2 days of pure geeking 💪

Meet the Team

Area: Microsoft 365, SharePoint, Developer, Power Apps

Areas: Dynamics 365, Power Apps, Developer,

Areas: Microsoft 365, Azure, Developer

Areas: Power BI, Data Platform, Power Apps

Areas: Dynamics 365, Power Apps, Power Platform

Welcome to LEGO CITY

Our idea was to create an interconnected city with bleeding edge technology for monitoring the status quo of the citizens safety. The City is built next to a mountain that recently has been showing signs of activity. Geologist say that it could blow at any time. Luckily the city has invested heavily in technology that could help them save lives ❤

The city has a train track surrounding a lake. The Train track is crucial for transporting the LEGO’s around, and providing transportation for factories producing parts. In the city you have a Mayor’s office, LEGO factory, houses, and THE MOUNTAIN OF DOOM!! 🔥 Based on this drawing, or mission was to create the technology needed to make the city a safe place to live.

On the day of the event we started building right away, and this is what we created within a few hours😅

But since this is a technical blog, I will get into the makings of the Connected Lego City details, that made this project on of the coolest city concepts I have seen in a while!

The technology

Mountain of DOOM!!🔥

Let’s start at the top near the mountain. We placed 2 IOT sensors for monitoring temperature, and movement. We used the Azure IOT dev kit sensors for this purpose. Both IOT sensors were pushing data to Azure IOT hub, and then over to Stream Analytics. The constant changes were reported to the Majors office. The impressive part here was

Train Track Switch

On the top left we connected an Arduino device with a servo Switch connected. This was used to change the train track from long track, to short track.

By sending a boolean to the device, it would mechanically change the trains direction. You can barely see the device hidden beneath the track with a wire for power under the blue “water”. To see it in action, just watch the video on top.

Majors Office – Command Central

In the bottom left we had the majors office (aka command central), where the major could minor all thigs happening in his city. This is where we were looking at the output from the city sensors, and reporting via Stream Analytics to Power BI.

We included Dynamcis 365 information on the left to give a status on all ongoing city work orders (fixing problems), and on the right side we had live data from the mountain. One of the charts were showing the constant temperature, and others were measuring movement. Below we connected to the Norwegian weather API, so that we could understand what potential conditions would effect our emergency response the next days.

Train conductor – remote worker

During these Corona times we wanted to give the Train Conductor the possibility to work from home. Therefore we mounted a camera on the train, and connected it to a Raspberry PI. The Raspberry PI was also running a piece of software that could control the USB part of the LEGO Boost. For this we combined projects from:
1: https://motion-project.github.io/motion_config.html
2: https://github.com/virantha/bricknil

We also created a webserver running the live feed of the camera with the controls. The conductor could then log in and power the train in any direction needed 🚆🚂

Citizen Self Service

When there was an issue in the City, the citizens could report this via porta to Dynamics Customer Service. We connected with The Portal Connector for this scenario.

Submitting the case would deliver the case to Dynamics 365 Customer Service, where we used a few PCF components from pcf.gallery for picture rendering in CRM.

LEGO Factory – Field Service

Once the case had been evaluated, we would create a work order for booking our trusted technician for the job. For this case we used Field Service OOTB, and the technician would used the new mobile app for service delivery. We also connected the warehouse for picking parts from the factory based on the initial pictures that the technician would have seen.

Payment – Vipps

The technician fixed the broken houses, he would then send an invoice via the Norwegian payment service Vipps. The awesome thing about this was that it was all done by using a Power Automate Flow for the job! Once the Work Order was complete, we simply created a payment for the Vipps API, and received our money.

Crisis team

If the IOT sensors detected crisis, they would start a flow that the mayor would have to approve.

From this flow we would also trigger sending of SMS notification to the citizens that were in dataverse.

ACDC 2021 – Hackathon summary

WOW… Simply WOW. It’s the best way to summarize this years hackathon.

Normally this 3 day hackathon is situated in the beautiful hill of Holmenkollen, but this year we were forced to go online for obvious reasons. One little difference we did do was to open up for teams to gather locally at their companies offices. This way we could add a social factor within safety regulations without having to keep everyone 100% at home office.

We decided to have a participation fee for the event, and everything that was extra would be given to children’s cancer www.barnekreftforeningen.no

This project has consumed most of my time the last few months being a part of the committee, and getting it all together has not been easy.

We were 5 teams total and almost 40 participants that dedicated 3 whole days of fun where this years topic was LEGO.

ACDC 2021 (arcticclouddeveloperchallenge.net) <- Homepage for the hackathon with the live scores

Teams were from:
Point Taken (Point Taken Brixters)
Avanade (Orange Panthers)
Albatross (The Merge Conflict)
Skill (Klossmajorene)
Felleskjøpet (Cowders)

Arctic Cloud Developer Challenge Submissions (acdc.blog) <- The blog showing most things that were created during the 3 days.

Our team decided to create a Lego City where IOT sensors controlled it all. I will write more about the geek stuff in my next post, but this might give you some hint:

Winner of the tournament was Felleskjøpet, that simply were superior in this years technical setup and performance. Read more about their solutions in the ACDC BLOG!! 🙂

Final delivery – Cowders | Arctic Cloud Developer Challenge Submissions (acdc.blog)

Charity

While everything is fun and games, we were able to raise some money as well! 🙌✨🙌

This event just really made my day, and I am thankful for the People that made it happen. Amazing what community can do when we work together!

Ulrikke Akerbæk (Skill)
Carlos Briceno (Bouvet)
Marius Børresen (Felleskjøpet)
Jarle Engseth (Skill)
Ragnhild Baumann (Infoworker)
Thomas Sandsør (Point Taken)

DataFlow – Merge Queries (aka Join Tables)

A long while Back Carina Claesson wrote about joining data with DataFlows. I had created a dataflow with 2 tables and used a specialized “behind the scenes” connecting several “CRM Keys” together. It was a little buggy, so I thought I would give it a try to follow her blog: Combining information from multiple data sources with Power Platform Dataflows – Carina M. Claesson (carinaclaesson.com)

Scenario

In our system for billing, we have the following structure. A debitor (aka Account), can potentially have lots of projects connected. The only way to connect data in DataFlow is via KEY’s in the Dynamics configuration. In our case we have a key “AccountVAT”. This ID is a unique organization number used in Norway.

Both tables know AccountID, but only the Account table holds the AccountVAT number. As you see on the image above, the Project doesn’t know what AccountVAT to connect to. Lets fix that.

DataFlow

So I load up my 2 tables in dataflow. If you wonder how this is done, check my other posts on DataFlow.

Select the MERGE QUERIES option

Here we match the 2 tables based on AccountID. As you see here there are lots of options for matching, but now you also get a nice visual for matching status at the bottom.

Next step is choosing what data to “join” into the projects table.

So I select the AccountVAT number as the field to join.

As you see in the picture below, the Debitor.Foretaksnr is now visible. This column is now joined from the Debitor table to the Project table.

The selected row below is a special field. You see that the Debitor.foretaksnr is a field in another table, and you see the destination field being special. The destination field is of type Lookup, and is expecting “AccountNumber” as matching.

The result is projects record linked to the correct account in CRM 👍💪

Dynamics 365 Storage Changes coming your way

A while back I posted my worries about storage and the DB being eaten up by system tables that we as consultants can’t do anything about.

Have you checked you storage lately?

I created an Idea in the hope that we could come together as a community and make a change, and they have listened!:)

https://experience.dynamics.com/ideas/idea/?ideaid=2d9d1f2f-e56c-ea11-b698-0003ff68dcfc

I applaud Microsoft for listening and moving in the right direction🙏🙌👍, but they seem to still be missing the point of SAAS for Dynamics 🤷‍♂️.

Some argue:

Think of Dynamics like a phone with storage. The OS takes up parts of the storage and you can freely use the rest of the storage.

I argue:

The whole point of SAAS is that I am paying for a service. I am not buying any hardware and installing something from scratch. I am a part of a larger shared solution, where I pay for what I use. Either include the system tables in the price, or reduce the storage included in Dynamics. Either way it is only reasonable for a customer in SAAS to pay for what they produce of data.

Thank you

Thank you for all the votes and the attention that this received, because it only goes to show that Microsoft does actually listen if we come together. In the future I hope we use our voices more often, because the number of votes on these issues are nothing compared to the number of consultants out there. We need to come together in numbers 🙂

Dataverse for teams DV4T – Exploring Data Migration

I will keep calling it CDS Lite in the smallest hope that this one day might get the name CDS Lite. It just makes perfect sense to give it a name like this. Allright, enough about the hope for a better naming future…

I know the system is only in preview and many things will change in the next months, but I thought I would give it a go at importing data from CDS to CDS Lite. I had no idea if this was possible, but I was curious to see how it would react.

At the moment there is no connecting to the database through normal tools I have had before

  1. XRM Toolbox
  2. SSIS – KingsWaySoft
  3. Excel Import

Every time I try to connect I get the response saying that I have to use an Oauth method to connect.

PS: Notice how Microsoft has put “LITE” in the error message? It’s a small hope, but it’s a hope 😂

So the only way I found out how to insert data in the Preview was via flow

Flow to the rescue

I am pretty sure that the current doc recommends using Flow for data to CDS Lite (Oakdale), but I am sure this will change in the future somehow. How else are you going to fill 2 million records (estimates from docs on the 2 gig DB size). Flow is not intended for data migration, but I had to use the tools I had available at the time 🙂

First I imported 5694 accounts to my CDS database (top row headings)

The CDS Lite (Oakdale) was empty for accounts, and only included the following columns.

The flow was a little tricky. I actually had to create the flow from the CDS Lite (Oakdale) environment. It did not work otherwise. Current environment connector was fine for writing to CDS – Lite (Oakdale).

The flow will only do 512 records if you don’t open up the paging. Go to settings of the connector and increase the threshold.

I started the flow and patiently waited.

27 minutes later the accounts had been migrated with a warning. I could only find 1 error in the migration, so I consider that a success. All of my accounts were now over to the CDS Lite (Oakdale).

What next

This is all just a beginning of a longer journey for the CDS Lite (Oakdale). Everything is in preview, so there are many things that will change once this is released, and a few years from now. I just wanted to see how to get data in to the system. The reason why might be more clear in a later post where I describe what I see in a future customer scenario for CDS and CDS Lite.

If Gus creates a top 10 PCF components, I hope this one makes it ;)

If you ever had a problem with navigating between entities for updating data, this PCF component will absolutely save a lot of time.

Clement Olivier
https://stuffandtacos.azurewebsites.net/
@Clement0livier – Twitter
https://github.com/carfup/PCFControls – download the tool

He created a PCF component for quick updating related entities without having to leave the record.

Updating related LOOKUP

Internally we have all of our active projects in a list. For every project we have a customer contact registered for continuous surveys (Power Automate, Forms Pro, SMS.. Cool Stuff). For the system to work correctly we need to make sure we have both the phone number and email address updated at any given time for the automated surveys to work.

What would we do without devs!!:)