MB-600 Solution Architect Exam

I haven’t really touched very much on any exams that I’ve taken so far during the lifetime of this blog. I’ve mentioned them a few times (ie how important they can be), but haven’t really gone into detail.

However, having seen various comments online recently around the MB-600 exam, I thought I’d do a post on it with my thoughts and comments!

So, what is the MB-600 exam? Well, it’s sort of the ‘Holy Grail’ for Dynamics 365/Power Platform. This is due to the actual full name for it – ‘Exam MB-600: Microsoft Power Apps + Dynamics 365 Solution Architect’. Indeed – assuming you pass it (and you’ve already passed the MB200, and either the MB210. MB220, MB230, MB240), you can officially refer to yourself as being a Microsoft certified ‘Solution Architect Expert’.

Impressive!

The exam was being talked about at the beginning of 2020, and went live (in beta) on Jan 27th 2020. If you’re wanting to book it, do so at https://docs.microsoft.com/en-us/learn/certifications/exams/mb-600.

I sat it several days after it went live, and to be honest found it quite challenging. Why was that? Well, when I sat it, there were no learning paths on Microsoft Learn for it at all. Thankfully that’s now changed – there’s a massive amount of great material at https://docs.microsoft.com/en-us/learn/certifications/power-apps-and-d365-solution-architect-expert. If you’re looking to go ahead and do the exam, I’d highly recommend you go through everything that’s there.

I’ve taken quite a few exams since early 2019, and have now taken the general approach to take exams in Beta. Although there can be some waiting until the results are announced, they’re cheaper, and give you an understanding of what’s going on.

I sat the exam through the Proctored option. I’m not going to say too much about that (you can look up online what this is about), other than to say that I feel that Microsoft really should be doing something about the proctored experience. Pearson Vue is in charge of this, but it can be really bad at times (having taken a dozen or so exams this way in the last year, I feel I’m quite qualified to be able to judge this!). I hope that things do get better for this.

So, to the exam itself. Well, I was lucky – there were no Labs in it (yet!). Several case studies, and lots of questions. Quite hard questions as well – make no mistake, they’re out to seriously test your knowledge.

The first thing that I ‘loved’ when starting the exam was the general briefing, which included something along the lines of this absolute gem (this isn’t word for word, as I’m not allowed to write it down during the exam, but it gives the gist of it):

Some question sets may have more than one solution, while others might not have a correct solution at all

Right. So tell me – if there’s no correct solution, what am I supposed to do? I’m still waiting for someone to enlighten me on this matter, as I haven’t found anyone who’s able to explain it….

Now, part of the exam rules state that it’s not allowed to share any of the exam questions. What I’ve therefore included below is an overview of the sorts of things that were covered for my exam (Note: exams are composed from question banks, so there could be many things that weren’t included in my exam, but could be included for someone else!).

  • Data imports – what they are, how to go about them, troubleshooting them, etc. Also covering different types of sources
  • Security models, permissions, security types (field level, role, user, team etc)
  • Teams integration. How it’s set up, configured & used
  • Solution patch types. What they are, how they’re applied, how they’re used, benefits & drawbacks
  • BCP (Business Continuity Planning and Disaster Recovery) processes. What option/s should you be considering to ensure your business is fully covered in a disaster situation, how are they configured
  • Portals. What they are, how they’re set up, security permissions
  • Business rules, Business Process Flows, Workflows. What each one does/doesn’t do, benefits & drawbacks, how they’re set up & configured
  • Systems – On Premise vs Cloud. The advantages and/or drawbacks of each type, and the different BCP methods (see above) for each one
  • Data integration. OData vs Custom Service for continuous data
  • SLA’s and KPI’s. What they are, when each is used, how to set up & configure them
  • System upgrade paths and compatibility. How you go about upgrading legacy systems, and the necessary path/s that you have to take for a given version number
  • Customer Service through multiple channels. Which option/s would you select for a given scenario, how would you set it up/configure it
  • CDM/CDM/PowerBI/Azure Service Bus/PowerApps. What is each one, what are the benefits/drawbacks of them, how is each one used, & set up/configuration
  • Licensing Types. What license/s would you need for a given scenario
  • D365 Sales Insights. What it is, what benefit/s it brings, how is it used
  • Data security. How is security used for Dynamics 365 & PowerBI data, how is it set up/configured
  • Field properties. For a given scenario, how would you change field properties and/or parameters?
  • Data Migration. Different options available for this, benefits/drawbacks, resolving issues
  • Form security. What is it, what are the different types of security that’s able to be used, how is it set up
  • Solution management. What are the different types of solutions, how is each one used, what are the associated risks, which option would you use for a given scenario

Wow. That’s a LOT of stuff. Like…an incredible amount. Some of it touches on parts of the system that I’ve never used before (like PowerBI). Other parts are extremely familiar.

I can’t tell you if I’ve passed it or not…YET!. Results aren’t yet out, as it’s still in beta (and from what I’m hearing, it’s likely to be remaining in beta for several months still.

So, if you’re aiming to take it – I wish you the very best of luck, and let me know your experience!

Channel Integration Framework (I)

So for starters, the title is somewhat of a mouthful, right? Try saying ‘Channel Integration Framework’ several times fast, and you’ll end up with some VERY interesting sounding words. Thankfully, people and organisations working with it usually shorten it to ‘CIF’. So that’s what I’m going to do as well (which will also hopefully prevent any RSI whilst I’m typing this all out).

The definition of CIF according to Microsoft is:

The Dynamics 365 Channel Integration Framework is a cloud-to-cloud extensible framework to integrate third-party channel providers with Dynamics 365 model-driven app using a browser-based JavaScript API library.

Now, for the technically minded (isn’t that all of us?), CIF is a set of API’s (methods, events & protocols) that enable developers to build their own solutions, and integrate them with Dynamics 365.
Examples of these would be a communication widget that’s running on a 3rd party provider cloud system, but that can surface and interact with Dynamics 365.

There are multiple partners out there who are doing this, such as Solgari. The immediate benefits of this is that additional functionality can be provided for customers that Microsoft hasn’t built into the system (yet!). An example of one of the functionalities provided by Solgari is the ability to dial a number directly from the Contact record (telephony):

Before CIF was available, it was usually an immense headache to integrate a 3rd party application solution into the system. It could be done of course, but was something that you had to be REALLY dedicated to doing, with all of the time, efforts and costs that it would involve.

With it being launched, many people breathed a massive sigh of relief, and then started to look around for partners who had solutions that supported it. There are now several Microsoft partners who offer solutions that integrate with CIF, and through this extend the functionality.

The CIF framework offered the following benefits:

  • It provides an extensible framework to integrate third-party cloud-based channel providers or channel aggregators with Dynamics 365 model-driven app (not Canvas)
  • It’s channel agnostic. Ie channels such as voice, video, chat, co-browse etc can be built as long as there’s a Javascript-based widget available
  • It’s not just a single direction flow of data; it allows two way communication. This therefore allows both inbound and outbound data
  • It exposes Javascript API’s (note the item above about it being a Javascript based widget)
  • Deployment is easy (well, as easy as any deployment can be!). Deployment is also the same across all apps/widgets – it follows a standard process
  • Plug & Play! It’s now very easy to have multiple different providers integrated, rather than being limited to a single provider
  • Dynamics 365 model driven app agnostic – once the channel has been built and deployed, you can then enable it on the model-driven app that you’re wanting to use it with, based on business requirements
  • Not reliant on operating system or web browser – it’s not reliant on a specific hardware/OS/browser configuration (obviously the browser needs to have the appropriate Javascript security settings enabled, or else it won’t work)
  • Screen pop! Popouts are available to display customer information that can help agents with their customer conversations and service.

The architecture behind CIF is as follows:

High-level architecture diagram of Dynamics 365 Channel Integration Framework
  1. The Dynamics 365 environment is where the CIF app is present to create and manage the required configurations
  2. The single-session Dynamics 365 model-driven app exposes the CIF panel to host the 3rd party widget
  3. The CIF Adapter enables the communication between a single-session model-driven app and the channel provider solution
  4. The web-based communication channel (2rd party) is hosted in the widget that the CIF provides. This is multi-purpose; it’s possible to host chat, email, or telephony channels of your choice
  5. The Channel Provider is the service that you want to integrate and interact with using the CIF. Channel capabilities are specific to the channel provider (ie a 3rd party solution that only supports chat won’t be able to support telephony etc!)

So essentially by using 3rd party solutions that integrate with CIF, it’s possible to have customer service offerings covering things like:

  • Telephony
  • SMS
  • Chat
  • Social media

This is really great, and is really the starting point for taking customer service to the next level. Companies want to be able to easily and quickly support their customers across all possible channels, as forcing them into using a specific channel doesn’t always work well, and can in fact be counter-productive.

Now, all of the above is of course amazing, and really great. The MAIN drawback is that this was CIF 1.0…..and it’s not possible to load a CIF 1.0 widget into Omnichannel! Aarghhh!!! It’s only possible to use 1.0 widgets with model-driven apps, which Omnichannel is not (more on that another time). So it’s possible to have chat or telephony integrating with Accounts, Contacts etc.

However, don’t despair yet. Microsoft has released CIF 2.0, which DOES integrate with Omnichannel. So stick around, and I’ll be putting up a post around how that works (I know – such a teaser!).

Bus Apps At Speed Day

Today I attended a ‘BusApps@Speed’ day (BusApps refers to Business Applications) at the Microsoft campus in Reading. The aim of the day was to give a whistlestop tour through many different applications, including some that I’m not that familiar with (in terms of the functionality and integration). Organised by Chris Huntingford (who also took most of the pictures that I’ve used below), it was really great to learn & broaden my knowledge and understanding of the different applications/functionality that can be used

A quick summary is below:

Image

Chris kicked off the day in his usual style, talking about how the landscape has changed and evolved. Quickly covering abilities that are now present in Power Apps, Power Automate and Power BI with quite some finesse, we were immediately entranced and ready for the rest of the day.

Image

Ruth Forster-Towne from FourVision gave a presentation about Human Resource, which is what Talent has been rebranded to (along with some changes). There were some gaps in the functionality, so FourVision brought several HR ISV solutions to the table to fill these gaps, which is really great to see. The ability to have a standard integration for payroll gives the option for companies to use a local payroll provider in order to be compliant with the necessary legislation (as this can change extensively from country to country!)

Chris Haley spoke about Project for Web, Project Online and PSA. Covering some of the architecture and how best to use each one, it was quite informative as I’ve never used any of them. It was also interesting to hear that DevOps could be included alongside as a project tool, and I’m going to be doing some research into how this would work best.

Image

Afshan Ipsen blew us away with talking about ‘One Version’ for FinOps – we couldn’t believe it’s the first time she’s carried out a speaking engagement at one of these events. Talking through the continual development of the platform, and how to efficiently handle testing the new releases (minor as well as major) on a regular on-going basis. Some really amazing thoughts which can apply to all technology projects really.

Image

Thomas Carroll absolutely wowed us with his presentation on the different Reality series that Microsoft has. Augmented, Virtual and Mixed all bring amazing solutions for being able to help us get better, as well as troubleshoot situations.

Dynamics 365 Guides in particular together with HoloLens can bring the amount of time needed to skill up in a particular area down by a massive amount

Image

Jack Lewis came to talk to us about Microsoft Teams, and the amazingly cool stuff that it’s now able to do. Benefits to people using it obviously include auto-creating Sharepoint sites in the background, but what was amazing to hear was that it’s possible to surface some Power Platform capabilities within Teams itself! Imagine having a Power App right there in the Teams channel.

Paul Henwood gave an amazing session on Power BI and AI capabilities. Demonstrating some of the functionality that Power BI can bring to the table (along with some of the noticeable limits when it comes to data sizes and processing), it was great to learn how AI can really feature. I’ve only played around with Power BI a little bit, and it’s definitely on the list of things that I’d like to take a further look into!

Image

Ana Demeny talked to us about integration architecture, and pointed out very clearly that the ‘right solution’ will always depend on the exact circumstances of the project. It was very clear that it’s vitally important to clearly understand all of the different components that could be used from the entire platform, and apply them in the right way for handling the business scenario, as well as licensing/cost considerations.

Pavlos Vasileiadis talked to us about the importance of having a Centre of Excellence for Power Platform objects (ie Power Apps). Unfortunately I was too engrossed in his session to take any pictures, as it was so excellent! Covering what’s needed to enable a CoE to run and function, as well as how it should be structured for success.

Image

Kaila Bloomfield led the final session, showing how wonderful everything would be if it were all pink! This talked about the capabilities of the different options of Power Platform versus Azure functionality, and that it’s not always a case of just being able to use Power Platform components without running into issues.

Microsoft and the Not-For-Profit Sector

This is a slightly different post to the ones that I usually do, for a number of reasons. Firstly, it’s something that I’ve been wanting to do a post on for a while. Secondly, the release notes for Wave 1 2020 drops today, and I’m obviously wanting to do a write-up on the details from it as soon as I can!

So, the Not For Profit (NFP) sector. Well, organisations within this sector can vary, of course. There are classic examples such as Greenpeace and the National Trust (for those people outside of the UK, take a look at http://www.nationaltrust.org.uk/ for more information on what this is, and what it does.

There are also many other examples, namely charities. Now there are a great many types of charities, ranging from the Great Ormond Street Children’s Charity (Great Ormond Street Hospital, or GOSH as it’s known for short, as a world-renowned children’s hospital based in London, UK) to local small community charities.

Where am I going with all of this? Well, it’s quite simple actually. Microsoft provides low cost access to their software and offerings, as well as some free items as well. In fact it’s incredible how extensive this can be! (there are of course other organisations that provide similar offerings too, which shouldn’t be forgotten).

As part of my involvement in my local community, I’m the IT administrator for several community charities/organisations (yes – I’m the one they call to reset their password when they’ve forgotten it!!). In my role for them, I’ve used Microsoft offerings such as Office 365, as well as PowerPlatform apps sitting on the CDS to get things working more efficiently.

I had known for a while about the discounted software offerings that were available, such as Office (desktop & cloud versions) and other software.

There’s a global company called Techsoup (https://www.techsoup.org/) who’s mission is to build a dynamic bridge that enables civil society organisations and social change agents around the world to gain effective access to the resources they need to design and implement technology solutions for a more equitable planet. Companies such as Microsoft partner with Techsoup, and once a charity is qualified and confirmed by Techsoup as meeting all of the necessary criteria, they can sign up for and purchase software. It’s really amazing to see the extensive catalogue available, and can really help the smaller organisations (who otherwise would be paying a lot for software licensing).

However, Microsoft takes this to another level. There’s a specific Microsoft NFP website (https://nonprofit.microsoft.com/) at which NFP organisations can sign up for, to gain access to resources that they wouldn’t necessarily find elsewhere.

Microsoft states there that ‘Microsoft is dedicated to making the benefits of world-class cloud technology accessible and affordable for nonprofits. We offer discounted and donated industry-leading solutions for nonprofits.’

There are currently 5 areas that are offered against:

  • Productivity Applications – this covers Office 365, Dynamics 365 & PowerBI
  • Azure credits – there’s an annual credit available for $3,500
  • Hardware – devices such as the Surface that are available to purchase at a discounted rate
  • LinkedIn for nonprofits – a greatly reduced subscription rate available, along with working directly with the LinkedIn team for fundraising and marketing solutions to drive relationships and awareness of the mission at scale
  • GitHub for nonprofits – including eligibility for a Team account with unlimited private repositories and unlimited users

This is all really great and amazing. What’s even more amazing is that there’s special licensing available around things like Dynamics 365 & the Power Platform, where I’ve been seeing so much growth recently in.

NFP organisations knowing about all of these things could then work forward to use the technology to enable & empower them (yes, this is sort of a catchphrase of me, I know…). They could do this either themselves, with their existing IT people, or super/power users who understand technology. These people could quite easily start learning the skills to use such tools as PowerBI, PowerApps, etc, and see how they could bring the technology to the best usage cases for the organisation.

Alternatively, they could partner (if they’re not doing so already, of course) with implementation providers who specialise in the NFP sector. In the UK, one of the main ones in the Microsoft solutions space is m-hance (https://m-hance.com/). They are well known within the UK for their attention to detail, and their passion for the NFP sector.

Note: For sake of clarity, I have not/do not work for/with m-hance, nor gain anything from any work that they carry out, nor from any company that may wish to engage with them from having read this post

I also personally know one of the people who work there – Mike Hartley (oh yes Mike, I am indeed mentioning you on my blog!). I’ve known Mike for a while now, and he’s one of the most passionate people that I’ve met within the Microsoft communities. I’ve chatted with him one-on-one around both technical and non-technical concepts, and have always been really impressed with how he approaches things. I’ve also attended sessions that he’s presented on, and always walked out with new ideas in mind! He’s just one example of the way in which passion and drive can really TRULY help with social and community items – we’re not even talking major scale, but rather on a local scale to help the people around us.

I have spoken to several organisations that have benefited greatly through services from Microsoft partners who work in this space, and heard how incredible the journey has been. It’s really a wonder to see their technological journey, and see how they’re making people’s lives better, one day at a time.

So….if you work in a charity, or know a charity that you think might benefit from this – speak to your company, mention this to them, and spread the word. One of the concepts that I try to practice daily is the concept of ‘pay it forward’ – do/help someone else, not because you’re wanting them to then do something for you, but altruistically. This can have an immeasurable effect over time!

Microsoft Ignite The Tour (2020): London

Well, firstly this isn’t about Omnichannel. Or any specific deep dive into technology. What is IS about is the first time I’ve gone to a Microsoft conference/exhibition. And it was amazingly awesomely wonderful.

Having seen several other write-ups from people who visited it, I thought I’d write my own, to share my perspectives and thoughts on it.

The queues to get in!

Now, it’s not the first time I’ve been to exhibitions and/or conferences. Far from it – I go to several each year (in fact these are usually where I get my t-shirts and pens/pencils from – I rarely buy these at all! My wife despairs sometimes of my very ‘tech-orientated’ t-shirt collection). I’ve frequented Service Desk (https://www.servicedeskshow.com/) for over a decade, as well as InfoSec (https://www.infosecurityeurope.com/), Counter Terror (https://www.ctexpo.co.uk/) and DsEI (https://www.dsei.co.uk/) as well.

I’ve even been to CES (https://www.ces.tech/) in Las Vegas a few years back. Now if there’s ever a place where consumer technology is showcased, that is truly the place for it. I even managed to get myself upgraded to a Press Pass there, which came with a cool backpack, early access to the exhibition floor, and free WiFi.

Ignite was different. True, it included people speaking about Microsoft technology (and these were really and truly awesome people, some of whom I know personally), showcasing and demoing it.

EOfVQ4qWsAA3ecx (1024×768)
The famous Keith ‘I’m a Ginger’ Whatling

But what it also included, and had a deep emphasis on was Community. There were many different User Groups present, talking about how we can all enable and support each other. There were mini-sessions by speakers, un-conferences, Q&A sessions, etc. Many people from all over the UK, as well as abroad, took part in this. It really emphasised for me just how important our technical communities are, and how much we can learn from each other from them!

Of course, I attended many of the sessions that were happening. I tried to mix these up, aiming to attend both professional learning as well as personal development learning. My schedule was as follows:

Day 1:

  • Enabling everyone to digitize apps and processes with Power Apps and the Power Platform
  • Intelligent automation with Microsoft Power Automate
  • #HumansofIT with Tech Superpowers: How Heathrow’s Security Officer Launched 12 #PowerApps
  • Connecting Power Apps, Microsoft Power Automate, Power BI, and the Common Data Service with data
  • Practicing Kindness in Tech: 5 Steps to Build a Culture of Giving Back and Helping Others in the Community
  • Supervisor experiences in Omnichannel

Day 2:

  • PowerPlatform London User Group sessions
  • Humans of IT Empower Breakfast Panel – Interconnected Data for an Interconnected Planet: The Future of Agritech
  • Imposter Syndrom Banishing Spell
  • Azure AI & Dynamics 365 Virtual Agent for Property and Real Estate Market use case: Delivering significant cost reduction and tangible revenue growth
  • The Power People of London Town: Power Apps and Power Automate
  • Configuring and managing Dynamics 365 Sales and Dynamics 365 Marketing – Establish connected Sales and Marketing
  • Responding to incidents
  • From Geek to Chic: Build Your Brand & Elevate Your Career in 5 Steps

There were fabulous speakers – really too many to mention (especially as I also managed to network with various others). From FINALLY meeting Samit Saini (it’s only taken 6 months) in person to hearing Dona Sarkar and Dux Raymond, from Rory Neary to Mark Wilcock, it truly was a pleasure to listen to what they had to say.

Dona, Samit & Duc

The networking opportunities available were also unbelievable. With an estimated 5000 people attending, I met up with others who I had only corresponded with digitally to date. Even more wonderful was meeting new people, sharing ideas and concepts, and already keeping in touch and corresponding with in the short time since Ignite finished here.

The sense of community involvement was indescribable. People were sharing resources, suggesting who to follow online, and who to reach out to if they had any questions about anything.

Don’t worry – someone added me to this later on!

It was also truly great to see the launch of the #PowerPlatypus. I’m going to unashamedly take full credit for this marvellous creature coming to fruition (well, until anyone official from Microsoft can prove otherwise), due to the Twitter poll that I put out last year:

I’ve come away with so much learned in such a short space of time, and many notes on much more that I need to look into. Best of all, I’ve come away with many further connections, and I’m really looking forward to seeing what we can all come up with.

One really useful thing to note as well about Ignite – everyone who attended gets a free Microsoft Exam voucher that they can use to take any exam with!. To redeem this, find the exam you’d like to take, log in to schedule it, and then you should be given an option to use it:

This is so wonderful, and I really do appreciate Microsoft providing this (especially as Ignite the Tour is free to attend!).

I’ve already made a note to attend the tour next year (as I won’t be able to attend the main Ignite conference), and are looking forward to seeing what it brings, and who I’ll be able to meet there. Perhaps even, I might apply to speak at a session!

Required fields on forms – what did you forget to fill in?

Well, somewhat of a mouthful of a title for this article, but I couldn’t think of a better way to put it!

You know the scenario – we’ve all been there. There’s a custom form (for a system entity, or even a custom entity). Multiple sections, tabs, and multiple fields that are required. Users are going through data entry, but SOMEHOW have forgotten to fill one (or more???) in, and they’re just not able to save the form!

Well, Microsoft has now upped the quality of the user experience, and OH BOY was I SO excited to see this!

Previously when you clicked the Save button, it just wouldn’t allow you to save. It told you that it was missing required information, and you had to go search to see WHICH field(s) you had missed out on.

But search no longer. For now the notification bar has a whole new behaviour:

Firstly, it tells you that there are notifications, and to select to view (Note: If you’ve only missed out one field, just skip to step 2!)

Then when you click on it, it tells you which (required) fields have data missing from them!

Even better, if you click on the notification for a specific missing field, it even takes you to that field – no longer do you have to try to find where it is!

This is truly amazing, and will help enable users (and relieve their frustration) so much!

Canvas Apps & Lookup Fields (CDS)

Canvas apps are amazing. Seriously so. I’ve been developing my knowledge around them, and it’s incredible what you’re able to do with them. Clients are loving them as well, with how quickly it’s possible to develop something that’s visually appealing.

From a licensing perspective when looking at using data into/out of D365, I’m usually using the CDS as the datasource. This means that apart from a handful of scenarios, users would be licensed with a PowerApps licence, rather than a D365 one.

With all of the wonders and benefits that canvas apps brings, there still are some limitations. One of them I came across earlier today pertains to lookup fields.

Using Contact as an example, we see that ‘Currency’ is a lookup field:

When inserting a Gallery control, it’s possible to choose up to 3 fields to be displayed (depending on the layout selected). However, when we go set the value to a lookup field from the entity, they’re not there – it’s not possible to select a lookup field to be displayed. As you can see below, there’s no possibility to select ‘Currency’ (which we saw above):

I have no idea why Microsoft chose to do this, as it is possible to select a lookup field when connecting using a D365 datasource (though admittedly even then it only seems to work in limited situations, such as for Opportunities)

So, ways to work around it:

  1. Don’t! Accept the situation for what it is, and hope that Microsoft allows it in the future
  2. Create a custom text field for the entity. Create behaviour (eg with Flow, though keep in mind scalability of the solution and Flow run limits – you don’t want to be burning through all of them!) to copy the value of the lookup field to this new field (ensure that if the value is changed, it updates the custom field value as well). You can then use this field to be shown on the gallery control
  3. For lookup fields that are actually lookups (see item 4 below), it’s possible to change the ‘Text’ property for the field. Using the example above of Currency, the formula needed would be ‘LookUp(Currencies,’Currency Name’ = ThisItem.Currency.’Currency Name’) (without the extra quotation marks). See left side image below for example of this
  4. For lookup fields that are actually of type ‘Customer’ (yup – special behaviour…thanks Microsoft!) there’s a different way that you’ll need to do this. You have to use the AsType function to declare  the type (i.e. account) of the relationship (this can also work for Owner fields, where the owner can be a user or a team). The formula needed to show the Account name would be AsType(ThisItem.’Company Name’,[@Accounts]).’Account Name’. See right side image below for the example of this

I’d also like to give thanks to Jason Almeida for his help and assistance with finding solutions – he’s an amazing guy!

What are your thoughts on this?

Canvas Apps – Changing field order

Image result for field order

In Model Apps, it’s extremely easy to set out the fields on the form as you wish to. It’s a simple case of drag and drop.

However when looking at Canvas Apps, it’s not so straightforward (at least not initially!).

When adding a form to the app, you can then select which fields you’d like to appear (assuming you’ve connected it to a data source with fields, eg a CDS entity). These then show up, but aren’t always in the order that you’re wanting them to.

You can’t drag and drop the fields on the form itself – the interface doesn’t allow you to! So how exactly is this done then?

It’s actually done on the field selector slide out – you click the field that you want to change the placement of, and move it up (or down) the list.

This will then change where the field is then displayed on the form (you can also do some clever stuff with the number of columns being used etc). Quite a nice way to easily update them.

Happy layout placing!!

PowerPlatform & Commenting

The thinking behind this came out of a conversation I was having with someone last week. I had asked them to briefly document their thinking behind what they were creating on the PowerPlatform (especially with PowerApps). This would help me (and others) when reviewing the created item/s, to understand the thought processes and logic paths.

Image result for code comments

I mentioned to them that traditionally when coding, developers would include comments in the code itself. This would help other developers in reading through it, understand why things had been done in a specific way, and not in another way. Heck – even though I have minimal coding experience (mostly SQL), even I’ve done that.

Apparently they had NEVER heard of this. Somewhat surprising, as they’re from a technical background.

This got me to thinking – with the shift from Microsoft to LowCode/NoCode, it would be great if there was somewhere where comments could be loaded when doing PowerPlatform stuff. This is especially true when trying to follow a line of thinking from people who are more orientated towards the business side of things, rather than the tech side.

Image result for code comments

So – how/what would YOU suggest to handle this? Please comment!

Scaling up to Enterprise Level

Image result for enterprise level

In my previous post (Creating a Flow to set record image), I created a way to bring an image into the CDS from an external source. This works well (obviously!).

There are 3 stages involved in the process:

The next stage of thinking is if we would be doing this in an enterprise environment, how would we do things differently? Talking to Mike Carlton, there are a number of things that we’d need to take into consideration, including (but not limited) to:

  • Security
  • Storage
  • Compatibility
  • Classification
  • Record management & lifespan

Let’s talk about these, and go into more detail for each

Security. There are a number of ways in which people try to hide attacks. One of these ways are in images – it’s possible to include a .exe file (or similar) – the user downloads a normal looking image, which is actually an attach vector onto the computer. To minimise the risk of this occuring, the image file would need to be scanned by appropriate antivirus/antimalware first (which is a Flow action, using Azure Security for this purpose). Incidentally Microsoft use the same heuristic engine across all of their estate, so some people would want to also incorporate a second one as well

Storage. As everyone knows, storage is important! And depending on what type of storage is being used, pricing can vary greatly (anyone who’s costed D365 storage against Sharepoint storage against Azure Blob storage will know this). It’s therefore important to keep on top of this, as otherwise it’s very possible that the storage costs will increase rapidly! It would therefore be rational to include a file size check, to avoid someone trying to use an image file that’s hundreds (or thousands) of MB’s.

Compatibility. In the scenario here, we’re using an image. There are many different image types, and when scaling up we should implement checks to ensure that the image type is indeed one that’s supported (by whatever system we’re pushing the image into). In scenarios for other data types, it would also be important to check (and enforce when required).

Classification. When bringing data into a system from external resources, it’s essential that correct classification (ie metadata) is stored against the data. This ensures that the system is kept

Records Management & Lifespan. When scaling up functionality, it’s important to start considering who should have access to the data, and if any necessary security controls should be put in place to manage this. It’s also important to understand how long data should be kept with the system, and if processes should be implemented in order to redact and/or remove the data after a specified period of time (this is extremely relevant with GDPR now being in place)