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.
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.
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 👍💪
This post confused me way to much. Nothing seemed to make sense, and the only thing I could focus on was the extremely odd name Dataflex.
What about the name….
A quick online search shows that the name is already in use. Not only is it in use, but it is used by a competitive product offering low-code development! How on earth is it even possible to miss out on this?
This sounds like a whole new SkyDrive – OneDrive problem, so I’m going to wait a bit before I rebrand everything to Dataflex
The voice of reason
My mind has been twisting and turning to understand the reasoning of it all of this, and luckily we have Jukka. His post is what Microsoft should have posted originally. It explains everything I was wondering about….. Except the name 😂
Scottish summit was really impressive, and that is probably why you see everyone writing about it. There were so many sessions to attend, that it was impossible to be everywhere. That is why everyone has a different experience of the summit. That is just to say how extremely big it was!
Mark Christie and Iain Connolly…. Well Done!
Keynote – Jon Levesque
Kicking of the keynote was Jon Levesque entering the session on possibly the coolest way ever, and wearing a kilt accompanied by bagpipes
Jon is a great speaker. His talk was about personal transformation, and how he had gotten to where he was today. Believing in himself and setting a goal in his life. He wanted to get payed for talking. Given his current role in Microsoft, it is clear that he has come far with his goal.
He also time to talk about Samit from Heathrow (recent addition to the MVP family), and how his transformation from a security officer at the airport to one of the communities leading entrepreneurs in power platform.
He completed the keynote by talking about the community and the #PowerAddicts. The community is seeing a spike in participation that is just unreal. So many no-code / low-code enthusiast out there that love sharing knowledge. I have been in Dynamics since 2007 and I have never seen anything like it before. Sharing knowledge has never been so important, and I am glad I get to take part in it.
Tricia Sinclair – Omnichannel
Omnichannel is a fairly new product in the Dynamics family, and many people consider it USD’s little brother. I would say that the project is smaller than USD, but in functions it is amazing!
Smart Assist (really cool) on the right side of the panel reads the chat dialog and gives live suggestions to help the agent. In her example she mentioned a meeting, and the smart assist suggested to setup a meeting with the client. Things like this can be a major time saver and great help for the agents.
The best thing about this product is that many of the settings require very little configuration. Microsoft has produced something that is very similar to an actual product that delivers value from day one. I believe this product will fit both large and small companies because of the configurable setups. I would definitely set this on the “ONE TO WATCH” list for the next months.
Tricia is extremely knowledgeable about Dynamics, so it is just relaxing to hear her talk about it all. There is no doubt about what can or can’t be done.
Seriously, I really want a project where I can use this tool. Connect with me if you want to be a trial customer for a good price:)
Ben Volmer – Field Service Business Value
In Europe we wonder if Microsoft ever looks outside the USA to see how the rest of the world is in scale. During this talk I really got into the mind of Ben and what discussions he is having with his customers. In short terms, everything is bigger there.
While Ben is talking about optimizing operations to save millions, I am still at the ABC’s in teaching what Field Service can do for your organization. Attending his session made me realize that I have a long way to go in order have a similar conversation with potential customers regarding Field Service optimization.
I learned a lot by actually not being able to relate to any of the business decisions that a Field Service organization in the USA (and large organizations) have to make. If you ever have the chance to go to a Ben session, make sure he indulges you in the business perspective of Field Service, because it put’s a lot of things into perspective. Functions and features you can read about in the release notes:)
Business models are changing, and old cost centers are now potentially the best ways of increasing revenue. Rolce Royce is no longer just an engine manufacturer. They now sell engines based on running time. This way the customer is paying for an active engine, and not the typical maintenance and support contract. This increases the revenue stream for the company by a lot, because the hardware business has lower margins now than ever before
Chris Huntingford – Functional Awesome
Chris is one of those people you just believe was born to talk. I am sure he has worked his ass of to be where he is today, but if you meet him you will know what I mean. He is simply in the correct role for his personality, and I am sure he is one of the major contributors to the fact that UK has such a great community.
So what about his session? Well, it was mostly about momentum in the Power Platform, and how it has been moving the last year(s). Just look at the numbers under to be amazed.
The platform has transformed what used to be workers without power, to workers that now call themselves citizen developers. Microsoft has a goal to grow the number of citizen developers to 10 mill within a few years, and that means that you, me, and everyone out there will learn how to get more out of the data in the organization. This is good news.
Chris also has a smart way of defining the difference of Model Driven apps and Canvas Apps.
Model Apps is the Line of Business application that supports complex business scenarios.
Canvas Apps is not LOB, but is designed to support a specific workload for a specific role. This is where the citizen developer comes in. Instead of having to use developers to get great value, non technical people now get the power to create smart applications. We ended the session by creating a UFO Sighting app within 10 minutes, just to prove how quick it can be done. We managed to create both a Model driven app and a Canvas app in that time. Not many platforms in the world are capable of something like this.
Lucy Bourne – Surviving Networking
Lucy shared 20 great tips for getting better at networking. This session also related to the mental issues that some people struggle with when they are their own worst enemy.
20: Go get started, take the leap – Dare to do things you haven’t done before. What is the worst that can happen
19: Be ballsy, like Howie (ACDC) – Howie was a consultant wanting to participate at the ACDC hackathon in Oslo. He didn’t have a team, but gave it a shot anyway. He wanted to be a part of something where he could identify as “home”.
18: Make a plan for the year, sessions, meetups etc. What does it mean for you personally? – Being prepared helps you manage time better. Time is important, and when you improve your time skills, everyone around you benefits from this. Friends and Family should never be neglected when pursuing a dream. They should bee there as important assets in achieving a goal.
17: Work out where you want to start. – Find your clan. Find out where you want to belong, and what passions others share. Be inclusive and never think you are better than others.
16: Find your focus – You cant cover it all, and that is ok!!
Define topics and channels – Where is your passion? Work on it
15: Be Authentic – If people don’t like you for who you are, that is their problem. Don’t try to be something you are not. Unless you are an asshole, then you can change;)
14: Remember Empathy Not just listen, but actually listen #bekind
13: Meet people in their onlyness Everyone has their own story to tell, experience and challenge. Understand them and try to relate.
12: Dedicate time to research Figure out where people are talking, who the speakers are, topics they will be covering etc etc.
11: Follow up – Luise Freese has found ways of automating follow-up of contacts when at seminars. Using different tools to reach out while recording who you are. Find a method that works for you, so that you don’t forget.
10: Share the Love – Find something you like. Share it. Community is about sharing. Open up to others, and they will in turn open up to you.
9: Ask for help – Be the person who asks the question everyone is wondering about. There is always someone there that is wondering about the same.
8:Create your own mission statement How do you want to be perceived. Make it simple, but meaningful. That way it is easy for people to understand what your goal is.
7: Give it time One event wont make you famous. Tender love and care.
6: Find a Balance It can be overwhelming you being everywhere. Find inner peace knowing that not being at an event is OK.
5: Get the tools – About.me. Smart way of sharing your info. – Session questions (get customer interaction). Get the people in the audience activated
4: Remember inclusivity – Bring a friend – Be a friend – Be a matchmaker
3: Build your network – Talk to people, and figure out who they are. Don’t be afraid to approach people. At a community event they are mostly here for the same reasons.
2: Be a matchmaker. If you know people that might match, just try to help them meet.
1: Put your skills to the test Link up to local communities and try to be a part of it. All communities love receiving help. Most of the people are doing this at free will.
NORDIC SUMMIT is in October. Don’t miss out on this epic event…
Sarah and Marius were speaking of Equal Opportunity. A highly interesting topic that is as relevant today as ever before. One slide caught my eye that I really liked.
Take ownership of your own environment. Don’t wait for others to create an equal opportunity environment, and then complain if they don’t. If you see the chance to own a situation, take it.
If there is a table you want to sit at with a chair, take the chair and sit down. Don’t wait for others to offer you a place at the table. You take it if you want to be a part of it!
Sarah Critchley (quote as I could remember it)
I have grown up in a family where the women are strong, have great educations and excel at their jobs. I am sure they have faced issues along the way, but they keep claiming their place at the table every time they can.
Malin Martnes – Extending Talent
I am sure you all know how proud I am of Malin, so I couldn’t go without writing about her. Talent is not a product with lots of customers yet, but we are working on a lot of exciting opportunities at the moment. We are always in the challenger position when talking about this product going head to head with companies that have delivered HR for many years. This often ends up in a function feature comparison, but one thing we now can focus on is the ECO-System.
Talent integrates to the CDS, and therefore we can leverage all of the cool features of the PowerPlatform. Malin showed a lot of cool examples where PowerApps were assisting in the hiring process.
What I liked about this session was hot interactive it was, and how “low code” he was trying to make it. I gained some insights to the IOT challenges when gathering messages in different ways. Also I see the impact of having a device you can pass around in the room that is working while presenting. It was showing live data on the screen, presenting different messages to us as we were passing it along. He later posted the slides on Twitter
Jukka Niiranen – Canvas vs Model
I find it interesting to listen to Jukka. He is like a rapper’s lyrics when talking. There is often some deeper meaning to what he says if you listen closely. During this session he was open and honest about his view on the Canvas apps, and the battle Canvas vs Model is now facing. Will we ever get to the point where these 2 become 1? The answer is most probably, but how!! 🙂
He also had a wonderful slide with the great Scott Durrow in focus. I think we all agree that Canvas is absolutely becoming a code app, even though it might not be complex code. As a functional consultant I say code, but a developer says “cody” to the syntax;) hehe
The pictures bellow are from Mark’s session. I really loved this session because he made the participants work! The topic was CDS modeling and what you should think about. He made it clear what was out of the box, and how you should begin to think about creating new models not based on the standard applications.
Anything interactive like this is just AWSOME. The participants loved it, and had a great time while working together on the data model. Interactive learning is the best way to learn.
So in conclusion, I had a great time at this event. Hope to repeat this again next year in Oslo. I also hope to see you all again soon:)
So Power Platform Oslo was a unique experience for me, since it was the first time I was on stage at a community event. Marius Agur challenged me to create a presentation that would showcase my view of Dynamics from a business perspective. I am not the most technical person, so I try to create solutions based on simplicity for the end user within a “do it yourself approach”.
3 ways the Power Platform can increase user adoption
I was using our own company as example for this demo, and demonstrating the issues we have had when migrating from HubSpot to Dynamics 365. A journey with lots of bumps in the road, and long nights to figure out the best solution.
1. Connecting Flow to API
Part One showed how we can connect flow to an API and receive real time data from sources like Bisnode, Proff.no or in my case BRREG. I will blog about how to do this soon.
2. Creating a PowerApp for simplicity
Part 2 was showing how you can create a powerapp to simplify not only the user input, but also create a bridge between those who don’t like Dynamics CRM, but accept using a PowerApp, because it is new and fun. Blog about this will also come soon.
3. Integrating to onpremise data source
The last step was showing how we could integrate our CDS/CRM solutions to an onpremise ERP solution without a single line of code. Read more about hit HERE
People to thank
Chris Huntingford: @TattooedCRMGuy I would never have even thought of doing community or personal exposure if it were not for your exceptional outgoing personality motivating me when you where in Oslo. I know it sounds odd, but I wanted to be like you, and spread excitement and joy to others. Somehow you made something in my brain say “why not” create a blog and speak my mind! MASSIVE thanks..
Megan Walker: @MeganVWalker Getting to know you and understanding how you use the tools in regards of blog, wordpress, youtube has been very important. You were also so kind to be my first interview subject 🙂
Mark Smith: @nz365guy Thank you for hosting the 90 day Mentoring Challenge. Even though you were speaking to the masses, you make it personal to participants. I have also shared many conversations with you that mean a lot to me. Thank you for guidance in som many different levels in regards to creating a profile. I might not be the fastest at getting everything done, but I will get there.
Malin Donoso Martnes: @MalinMartnes Thank you for being persistent in your work. It inspires others to try:) You gave me the final push to submit my talk, and I don’t regret it!
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:)
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 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.
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 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
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.
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:)