CDS List Records Filter Query using Flow

This week I needed to use the List Records function, and I realized that I had no idea how to use the filters. Thank you Jonas Rapp for creating the FetchXML Builder!! The function “Flow List parameters” saved my day:)

Simple filters

Let’s begin with the simple filters where I get a contact with the last name of Sandsør

Test your search result with the Execute button so see that anything is actually returned. Then open the Flow List Parameters

The tool converts the Fetch XML, and magically gives the correct filter to add in our FLOW query. It can’t get much simpler than that!!

Lookups

Lookups act a little bit different with the syntax, as lookups always to. This got me quite confused before finding this tool, because I was not getting match to my result.

I am searching for contacts with a given GUID. In my case I didn’t know what the GUID was, so I randomly generated a GUID for the formula. In FLOW I substituted the GUID part of query with a dynamic variable.

Filter Query with lookups, you need to add “_” as seen above. When working with lookup you won’t get at match without the “_LookupField_Value”.

Filter linked entity

The last filter is a little more complex, and might not get used due to some limitations of Odata (Must match on unique ID for related).

In this scenario I wanted to locate all contacts with last name “Sandsør” where the regarding accountID = GUID.

Choose the main entity on top, and add “link-entity”

Make sure you have the correct relationship here. Some Lookups support more than one entity, and therefore you make sure you have the correct one.

Again we find the magic with the “Flow List Parameters“.

In this scenario we also get Expand Query result that we need to copy/paste.

Apply to Each

Once you have figured out what filter to use, you can select the “Apply to Each” function, and add custom logic in here.

PowerApps Currency Formatting examples

So far I feel that currency formatting in PowerApps seems to be a little troublesome. Sure everything would be great if we all sold in $ and our offers were all huge! All of the examples out there are based on this. I needed to represent values at 1 NOK and up. In Norway we don’t use “,” for separating thousands.

I am sure there are simpler ways of doing this, and I am hoping someone can fill me inn:)

For US formatting I found this one:

Text(CurrencyField,"[$-en-US]$###,###")

For UK formatting I found this one:

Text(Value(Parent.Default),"[$-en-US]£#,###.00")

For me I need to format PowerApps currency NOK. I have tried manipulating all of the above with no luck at all. Have no idea what I am doing wrong, but that doesn’t matter. I finally found one that worked for me

NOK PowerApps Currency Formatting:

Text(ThisItem.'Est. Revenue',"[$-nb-NO]## ### kr", "nb-NO")

None of this is really making much sense to me. If you have more information about this, please do share!!:)

Flow – Create, Update or Delete trigger error

At the time of writing this post Microsoft Flow will throw an error when you create this flow with the trigger Create, Update or Delete, and the flow is standalone.

Error

This is the following error you will see when you try to create the flow (Create, Update, Delete) without any connection to a solution.

Sollution

All you have to do, is open this in a solution (for the time being).

PowerApps + CSS

I know the title be a little misleading. PowerApps doesn’t support CSS as of now (maybe sometime in future), but you can create a CSS light for simple tings while we await the custom Themes for PowerApps.

I find it extremely annoying when creating a large app and you need to customize visuals. If you make a change to one “screen” you have to make the same change over and over again.

In this example I declared a few variables in the beginning of the PowerApp, and one of these is the button color “RED”.

As you can see, my button color will be read when I choose to give them this color.

So at some point I decide that I want the color to be the same as my heading, and all I have to change is the color code in the app “onload”.

The result is matching buttons without having to manually change each color setting!:)

NB! after changes in the “onload”, you have to refresh the browser to see the effect.

Using Flow to copy Document Location

One confusing obstacle with a new CRM system, is the connection between Dynamics CRM and SharePoint. As a consultant I often have to demonstrate what is really happening behind the scenes to justify why this isn’t straight forward. We have to tell the customer about different folders, different entities etc, while they simply don’t care. They just want it to work together.

One particularly interesting point is when they move between entities. Why can you work with documents in the Lead, and when you navigate over to Opportunity, you no longer see your sales documents? Technically I understand why, but from a functional perspective I understand the customer.

Recently I ran into this scenario when implementing Field Service. Sales produced documents what were important throughout the whole cycle Sales -> WorkOrder -> Assett. Navigating between the entities takes to long, so the challenged me to find a solution.

FLOW TO THE RESCUE ❤

When the opportunity was done, we needed to create 1 or more WO in Field Service. Important factor was to maintain all the work done in Opportunity with the documents, so the Field Service Technicians could see everything in one entity (WO).

Challenge: When I create a new Work Order from Opportunity, I need to copy the document location from the originating Opportunity.

Flow begins with a simple trigger. When a WO is created.

Then I check to see if the related Opportunity contains data. This is just to make sure that the WO actually is created from a Opportunity.

Then I needed to get the document location regarding the Opportunity. As you can see here I am only returning 1. There won’t be any more document locations on Opportunity the way they are using it now. If you wonder how to filter, check my other post LIST CDS RECORDS IN FLOW

This is where I create a new Document location, and set the Work Order as regarding. Flow will automatically add “FOR EACH” to loop through. In my case it doesn’t matter, because I only have 1 document location from Opportunity.

What the user sees

This is a new Opportuinty

The opportunity has documents related to it.

I then convert the opportunity to Work Order via the button in ribbon. I get a message when this is complete.

I open the document location of Work Order, and VIOLA, the same documents.

Personally I love finding quick wins like this that mean a lot for simplicity. Any CRM application will be complex for the end user, so these parts help:)

PowerApps license change opening up for a 10$ CRM system?

Power Platform is maturing rapidly, and users are really loving the new platform for citizen development. The only natural thing to do for Microsoft was to alter the licensing model now that they see how users are working with the platform.

Normally I am the first one to hate on all changes, but this time I am not sure I hate it. I am actually seeing some opportunities here that I didn’t see before.

https://powerapps.microsoft.com/en-us/blog/new-licensing-options-for-powerapps-and-flow/ <– Read about the statement here.

I am seeing this from a Dynamics perspective, and not Office. There are 2 different ways of viewing this change.

From what I read, we can now setup a 10$ pr user pr month and create a sales app with both Model Driven and Canvas AND Portal. Within the app we are also capable to run as many flows as we want without the need for a FLOW plan.

You might still need one Enterprise or Proessional license in the bottom for the entities to be installed on the CDS, but after that you can create your own simple apps.

NB!
I am sure that Microsoft will introduce some other restrictions later on to separate the apps (Sales, Customer Service etc), but currently this is not the case.

Anyone share their ideas about this change? 🙂

Composite fields in PCF?

Ohhhh how I miss the Composite fields in dynamics<3

It was introduced in 2013, but was never given much love. It was one of those changes the customers loved, but always wanted to configure. This resulted in many strange javascripts that I personally refused to use. Now that the new UI is being forced upon us, the field will disappear it seems, and that is too bad. The new UI is fine, but it is not as efficient with screen space yet, fields like this actually make a lot of sense.

https://community.dynamics.com/crm/b/cosmanscrmjourney/posts/crm-composite-fields
https://community.dynamics.com/crm/b/cosmanscrmjourney/posts/crm-composite-fields

What about PCF?

First of you need to see that PCF controls can do. Free community examples have been release here: https://pcf.gallery/ – by Guido Preite

So can PCF controls be the answer to this? I have no idea, but would bee cool if someone with developer experience could answer me:)

Dynamics 365 – Teams. Love at first SITE (pun intended)..

The Team

Hi everyone, meet Knut and Kjetil.

Knut is a salesperson at Point Taken. He just came across a HUGE deal that he has registered in Dynamics 365. This deal is so big that Knut will need the assistance of several resources to deliver. One of these resources is Kjetil, a SharePoint consultant.

The setup

Knut enters the details needed for the Dynamics 365 deal

Knowing that this opportunity is HUGE, Knut starts by creating a new channel in the Offers Team (name is “General” for demo purposes).

The connection

Knut has now setup the structure for collaboration, and is ready to connect Teams and Dynamics 365 together.
Well done KNUT!! 🙂

Add the Dynamics 365 connection for the tab in the channel

Knut chooses the correct opportunity record.

When Knut is done, he can see the newly created connection message in Teams. The above message indicates that Teams and Dynamics successfully connected.

The harmony begins

Kjetil begins right away with the PowerPoint they will need to win this deal. Kjetil does not have a license for Dynamics, so he creates the PowerPoint in Teams because this is the natural place for collaboration.

Knut can now choose to navigate Teams or Dynamcis 365, because the systems are working with the same document location.

Knut and Kjetil represent 2 different work processes, but are harmonizing well when referring to the ONE TRUTH document. Well done you to!!!

Dynamics and Teams in perfect harmony!

Dynamics 365 – Teams Configuration

The configuration of the client is pretty straight forward. A typical office product, and that is a good thing:) FYI, it does not install a solution file within Dynamics, and I like that a lot… Never been a fan of the overcrowding of solution files (Hint hint portals.. hehe).

Start på opening the system settings from Dynamics and locating the “Enable Dynamics and Teams integration”.

NB! Before starting, I would create a new Team and a new channel just for the sake of simplicity. Also create a new record in CRM that you want to connect to.

It took me about 3 minutes before I received my complete message, so be patient!

Open teams and locate the App Store within teams and search Dynamics. You will find it on the “…” menu on the left side.

Add to the team you created. In my case “Tilbud” and then click Open

Next step is connecting it to the channel in the team, and hit “Set up”.

Now it will ask you for an entity to connect to, so I am going to choose the Opportunity I created before I started the configuration “Teams Opportunity”.

If it all went well, you will now see a new tab in your channel with the name of the record. You also see a message that the record is connected.

The result

Dynamics and Teams working together

CDS vs Dynamics Connector Power Platform

There are several discussions regarding the use of CDS connector VS the Dynamics connector in the Power Platform. Recently I have been updating my knowledge a lot on PowerApps, PowerBI and Flow. The odd thing is that these environments behave quite different even thought they are so closely connected in regards to connectors.

how much longer will they co exist, and why are they even different?

So here are my thoughts about the current state April 2019 (this might be outdated in one month 😂)

Flow CDS vs Dynamics 1 – 0

https://crmtipoftheday.com/1177/use-the-cds-connector-when-you-go-with-the-flow/
When using Flow, the CDS connector seems to be the correct choice. I personally feel that the action advanced settings is the most important reason why the CDS would be the correct choice.

CDS connector will only run the flow if country is changed saving you the flow, and the Dynamics connector will run no mater what costing you 1 flow.

PowerBI CDS vs Dynamics 2 – 0


https://www.inogic.com/blog/2018/10/connect-to-the-power-bi-using-common-data-service-cds/
There are maybe many reasons why you would choose the CDS connector over the Dynamics connector for API reasons, but the most important one I like to focus on is the Option Set (Pick List) from Dynamics.

Look at the Yellow columns. They show the display name of the Options Set, so no more need for hacks to convert the fetch from numbers to names. Obviously a huge benefit that this solution will update when the Option Set values update also!

PowerApps CDS vs Dynamics 2 – 1

But wait… It might not be over yet. While tampering with lookup controls for PowerApps I found out that CDS simply doesn’t have the lookup fields in the data!

CDS connector (Simply doesn’t have any lookups):

Dynamics Connector (With lookups):

Data presented is still in a GUID state, but there is a workaround for that:)

https://www.inogic.com/blog/2018/07/working-on-lookup-field-of-dynamics-365-in-powerapps/ <– How to fix GUID in PowerApps