<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>XrmToolBox on LinkeD365 Blog</title><link>https://linked365.blog/tags/xrmtoolbox/</link><description>Recent content in XrmToolBox on LinkeD365 Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 07 Jan 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://linked365.blog/tags/xrmtoolbox/index.xml" rel="self" type="application/rss+xml"/><item><title>Flow Admin - Multiple Enable / Disable of Flows</title><link>https://linked365.blog/2024/01/07/flow-admin-multiple-enable-/-disable-of-flows/</link><pubDate>Sun, 07 Jan 2024 00:00:00 +0000</pubDate><guid>https://linked365.blog/2024/01/07/flow-admin-multiple-enable-/-disable-of-flows/</guid><description>&lt;img src="https://linked365.blog/images/2024/FlowAdmin-MultipleDisable.gif" alt="Featured image of post Flow Admin - Multiple Enable / Disable of Flows" />&lt;p>Just a quick post to highlight that the Flow Admin tool now allows you to enable and disable multiple flows at once.&lt;/p>
&lt;p>This update also aligns more with the OAuth login method and fixes some quirks with Solution selection.&lt;/p>
&lt;p>Get 1.2024.1.2 version of the tool at &lt;a class="link" href="https://www.xrmtoolbox.com/" target="_blank" rel="noopener"
>XrmToolBox&lt;/a> and let me know if you have any problems or think of things to add on &lt;a class="link" href="https://github.com/LinkeD365/Flow-Admin/issues" target="_blank" rel="noopener"
>GitHub&lt;/a>&lt;/p></description></item><item><title>Flow Administrator</title><link>https://linked365.blog/2023/12/18/flow-administrator/</link><pubDate>Mon, 18 Dec 2023 00:00:00 +0000</pubDate><guid>https://linked365.blog/2023/12/18/flow-administrator/</guid><description>&lt;img src="https://linked365.blog/images/2023/FlowAdmin.gif" alt="Featured image of post Flow Administrator " />&lt;p>This tool is a long time coming, and hope it helps anyone that is a clicky admin rather than PAC CLI&lt;/p>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>A new tool to administer your Power Automate flows - change owner, enable/disable etc.&lt;/p>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>The screen is split into 3 main areas, as highlighted below&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/1-FlowAdmin-MainScreen.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the main screen of Flow Admin Tool"
>&lt;/p>
&lt;ol>
&lt;li>
&lt;p>List of all the flows in your environment, either in dataverse or outside via the Power Automate API&lt;/p>
&lt;/li>
&lt;li>
&lt;p>List of the Flow Runs - select Running, Succeeded, Cancelled, Failed or All.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="https://linked365.blog/images/2023/2-RunsMenu.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the options for the Flow Runs"
>&lt;/p>
&lt;ol start="3">
&lt;li>List of the Flow Owners&lt;/li>
&lt;/ol>
&lt;p>To get to this point, you need the app to have access to your Power Platform instance (via Dataverse or Flow API), the Flow API (for owners and updating) and Graph API (to get new owners etc). This is detailed in the Connecting to the APIs section below.&lt;/p>
&lt;h2 id="changing-a-flow-owner">Changing a Flow Owner&lt;/h2>
&lt;p>Select a flow in the left hand side.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/3-OwnersFunctionality.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the options for the Flow Owner"
>&lt;/p>
&lt;p>Once connected, in the right hand pane (1) you will see the current owners, you can click on the dustbin to remove the owner. Only owners which you can remove (not the creator of the flow) will be enabled for removal.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/4-RemoveOwnerConfirmation.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the remove owner confirmation message box"
>&lt;/p>
&lt;p>If you need to add an owner, click on the Add Owner button&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/5-AddOwnerDialog.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the add owner message box"
>&lt;/p>
&lt;p>This little dialog allows you to add one or more owners, after you have confirmed you are happy with it.&lt;/p>
&lt;h2 id="enabledisable-a-flow">Enable/Disable a Flow&lt;/h2>
&lt;p>Frequently, there is a need to disable a flow. Troublesome flows or just those that you no longer need, can be disabled or re-enabled once you are in a position to do so.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/6-DisableCancelOptions.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the disable/enable button and Cancel Flow Runs"
>&lt;/p>
&lt;p>The Enable/Disable button (1) will toggle depending on the current state of the flow selected.&lt;/p>
&lt;h2 id="cancel-flow-runs">Cancel Flow Runs&lt;/h2>
&lt;p>Flow runs in them selves can be problematic. Recurring flows that run away from themselves creating thousands of runs. These can then be cancelled in a couple of clicks by pressing the Cancel button and choosing to cancel all &amp;ldquo;Running&amp;rdquo; runs or those you have selected in the Runs grid.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/7-CancelRunsSelection.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the Cancel Runs popup"
>&lt;/p>
&lt;h2 id="demo">Demo&lt;/h2>
&lt;p>&lt;img src="https://linked365.blog/images/2023/FlowAdmin.gif?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="GIF showing the various options for Flow Admin"
>&lt;/p>
&lt;h2 id="connecting-to-the-apis">Connecting to the APIs&lt;/h2>
&lt;p>Most XrmToolBox tools are directly connected to your Dataverse environment, with the Flow Admin, the tool is reliant on the Power Automate API (to enable/disable as well as flow runs) as well as the &lt;a class="link" href="https://developer.microsoft.com/en-us/graph/rest-api" target="_blank" rel="noopener"
>Graph API&lt;/a> to retrieve properties of the new owners.&lt;/p>
&lt;p>Utlising these APIs requires a little more work and potentially a friendly Azure Administrator. What ever happens, you are utlising OAuth credentials to connect, so any user will only see and administer the flows they have access to.&lt;/p>
&lt;h3 id="configure-access-to-flow-api">Configure access to Flow API&lt;/h3>
&lt;p>When you click on the Connect to Flow API button or if you select one of the Flows in a list from Dataverse, you are presented with the FLow API connection dialog. Each one of these fields filling to allow you to connect to your environment&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/8-FlowAPIConnectionDialog.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the Flow Admin Connection Dialog"
>&lt;/p>
&lt;ol>
&lt;li>
&lt;p>This adds a configuration to the list (or removes the current one). Once saved, these connections are saved in a config file to retrieve next time round.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The next is a label for the connection, as you can have more&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The next field is the Client or App Id. These can be configured if you want to non-dev settings by creating an app registration&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>This is documented &lt;a class="link" href="https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app" target="_blank" rel="noopener"
>Here&lt;/a>&lt;/p>
&lt;p>You do need Read access to all flows in your configuration (if you want to override th permissions a user has normally)&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-10.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the Read permissions for access to the Flow API"
>&lt;/p>
&lt;p>Once configured, back on the App registration, the image below highlights what needs mapping to the fields above&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/10-AzureConfig.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the values to fill in the Power Automate API"
>&lt;/p>
&lt;ol start="4">
&lt;li>
&lt;p>Tenant ID is in the list above too, if you are on that screen. Otherwise, it is on the main Azure Portal under Tenant Properties.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Environment ID is next, which is retrieval by selecting the Developer Resources panel in any environment&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="https://linked365.blog/images/2023/11-EnvId.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the Developer Information panel and the Environment ID"
>&lt;/p>
&lt;ol start="6">
&lt;li>
&lt;p>Return URL is part of the App Registration, and tends to be localhost&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Use Dev settings allows you to ease your pain and shortcut the issues somewhat. Highlighted &lt;a class="link" href="https://learn.microsoft.com/en-us/power-apps/developer/data-platform/xrm-tooling/use-connection-strings-xrm-tooling-connect" target="_blank" rel="noopener"
>here&lt;/a>, Microsoft allows you to their app registration, but then use OAuth to do the authentication. Makes life simpler and fills out the Return URL &amp;amp; App Id boxes. THis means you don&amp;rsquo;t need an app registration at all, if you have the appropriate admin rights on your system.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>Once you are set, you will be prompted to sign in using OAuth2, with a popup to add your credentials and MFA if enabled. Standard logging in stuff.&lt;/p>
&lt;h3 id="configure-access-to-graph-api">Configure Access to Graph API&lt;/h3>
&lt;p>Graph API is used to get the owner information and look for new owners. In Dataverse, this can be taken from the User table, but outside of Solutioned flows, you have to use Graph. This configuration is very similar to Power Automate API.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/12-GraphAPIConfig.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the values to fill in the Graph API"
>&lt;/p>
&lt;ol>
&lt;li>This adds a configuration to the list (or removes the current one). Once saved, these connections are saved in a config file to retrieve next time round.&lt;/li>
&lt;li>The next is a label for the connection, as you can have more&lt;/li>
&lt;li>This is the subsription we are working with. I am not sure this is needed, but need to check.&lt;/li>
&lt;li>This is the Client ID/ App Id, taken from when you register a App, as before.&lt;/li>
&lt;/ol>
&lt;p>You do need to ensure the app registration includes User.Read&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/13-GraphPermissions.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
alt="Image showing the permissions needed for app registration connected to the Graph API"
>&lt;/p>
&lt;p>&lt;style type="text/css">.notice{--root-color:#444;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#c33;--warning-content:#fee;--info-title:#fb7;--info-content:#fec;--note-title:#6be;--note-content:#e7f2fa;--tip-title:#5a5;--tip-content:#efe}@media (prefers-color-scheme:dark){.notice{--root-color:#ddd;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#800;--warning-content:#400;--info-title:#a50;--info-content:#420;--note-title:#069;--note-content:#023;--tip-title:#363;--tip-content:#121}}body.dark .notice{--root-color:#ddd;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#800;--warning-content:#400;--info-title:#a50;--info-content:#420;--note-title:#069;--note-content:#023;--tip-title:#363;--tip-content:#121}.notice{padding:18px;line-height:24px;margin-bottom:24px;border-radius:4px;color:var(--root-color);background:var(--root-background)}.notice p:last-child{margin-bottom:0}.notice-title{margin:-18px -18px 12px;padding:4px 18px;border-radius:4px 4px 0 0;font-weight:700;color:var(--title-color);background:var(--title-background)}.notice.warning .notice-title{background:var(--warning-title)}.notice.warning{background:var(--warning-content)}.notice.info .notice-title{background:var(--info-title)}.notice.info{background:var(--info-content)}.notice.note .notice-title{background:var(--note-title)}.notice.note{background:var(--note-content)}.notice.tip .notice-title{background:var(--tip-title)}.notice.tip{background:var(--tip-content)}.icon-notice{display:inline-flex;align-self:center;margin-right:8px}.icon-notice img,.icon-notice svg{height:1em;width:1em;fill:currentColor}.icon-notice img,.icon-notice.baseline svg{top:.125em;position:relative}&lt;/style>
&lt;div>&lt;svg width="0" height="0" display="none" xmlns="http://www.w3.org/2000/svg">&lt;symbol id="tip-notice" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet">&lt;path d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"/>&lt;/symbol>&lt;symbol id="note-notice" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet">&lt;path d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/>&lt;/symbol>&lt;symbol id="warning-notice" viewBox="0 0 576 512" preserveAspectRatio="xMidYMid meet">&lt;path d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/>&lt;/symbol>&lt;symbol id="info-notice" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet">&lt;path d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"/>&lt;/symbol>&lt;/svg>&lt;/div>&lt;div class="notice info" >
&lt;p class="first notice-title">&lt;span class="icon-notice baseline">&lt;svg>&lt;use href="#info-notice">&lt;/use>&lt;/svg>&lt;/span>Info&lt;/p>&lt;p>As with all access and configuration, check with your Entra Administrator first&lt;/p>&lt;/div>
5. Tenant ID is in the list above too, if you are on that screen. Otherwise, it is on the main Azure Portal under Tenant Properties.&lt;/p>
&lt;ol start="6">
&lt;li>
&lt;p>Return URL is part of the App Registration, and tends to be localhost&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Use Dev settings allows you to ease your pain and shortcut the issues somewhat. Highlighted &lt;a class="link" href="https://learn.microsoft.com/en-us/power-apps/developer/data-platform/xrm-tooling/use-connection-strings-xrm-tooling-connect" target="_blank" rel="noopener"
>here&lt;/a>, Microsoft allows you to their app registration, but then use OAuth to do the authentication. Makes life simpler and fills out the Return URL &amp;amp; App Id boxes. THis means you don&amp;rsquo;t need an app registration at all, if you have the appropriate admin rights on your system.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="next-steps">Next Steps&lt;/h2>
&lt;p>So, where does the tool go from here? I have plans to make the add/remove owners and disable multi flows at once. There is also lots of extra bits that you can do via the Power Platform CLI &lt;a class="link" href="https://learn.microsoft.com/en-us/power-platform/developer/cli/introduction" target="_blank" rel="noopener"
>descibed here&lt;/a> that I should be able to include. &lt;a class="link" href="https://twitter.com/laskewitz" target="_blank" rel="noopener"
>Daniel Laskewitz&lt;/a> is doing a great job on guiding the development, but I am more of a clicky person.&lt;/p>
&lt;p>&lt;a class="link" href="https://github.com/LinkeD365/Flow-Admin/issues" target="_blank" rel="noopener"
>Let me know&lt;/a> what feature you need as well. Can&amp;rsquo;t promise to do it, but hey, do it yourself and create a pull request so we can share with the world!&lt;/p></description></item><item><title>Flow to Visio - Run History and Cancel Active Runs</title><link>https://linked365.blog/2023/03/12/flow-to-visio-run-history-and-cancel-active-runs/</link><pubDate>Sun, 12 Mar 2023 00:00:00 +0000</pubDate><guid>https://linked365.blog/2023/03/12/flow-to-visio-run-history-and-cancel-active-runs/</guid><description>&lt;img src="https://linked365.blog/images/2023/FlowToVisio-Cancelling.gif" alt="Featured image of post Flow to Visio - Run History and Cancel Active Runs" />&lt;p>Now and again a mistake at work triggers a solution. I inadvertently created a flow that was triggering too often, creating thousands of runs which only materialised in a testing environment.&lt;/p>
&lt;p>I have then realised there is no easy way to cancel thousands of flow runs. The standard solution only allows you to cancel 20 at a time. There is a &lt;a class="link" href="https://www.cloudfronts.com/power-automate/cancel-the-running-flows-with-javascript-code/" target="_blank" rel="noopener"
>JavaScript&lt;/a> and &lt;a class="link" href="https://ashiqf.com/2021/05/16/cancel-all-your-running-power-automate-flow-runs-using-m365-cli-and-rest-api/" target="_blank" rel="noopener"
>via PowerShell&lt;/a> methods, but surely there should be a way with your indispensable Swiss Army Knife &lt;a class="link" href="https://www.xrmtoolbox.com" target="_blank" rel="noopener"
>XrmToolBox&lt;/a>&lt;/p>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>I have introduced a flow history button to allow display listing of the flow runs as well as the ability to cancel one or more runs.&lt;/p>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>If you have connected to Dataverse or Flow API, there is now a new History column on the grid view.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/FlowListwithHIstory.png"
loading="lazy"
alt="Image showing new History button on Flow To Visio tool"
>&lt;/p>
&lt;p>Clicking on the icon will prompt you to confirm the settings for access to the API. This is the same if you have looked at non-solutioned flows, the steps are show in the original article &lt;a class="link" href="http://linked365.blog/2020/10/14/flow-to-visio-xrmtoolbox-addon/#connect-to-power-automate-api" target="_blank" rel="noopener"
>here&lt;/a>&lt;/p>
&lt;p>Once you have connected, wait for the api to do it&amp;rsquo;s magic &amp;amp; retrieve all the runs (in the last 30 days).&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/LoadingRuns.png"
loading="lazy"
alt="Image showing loading runs"
>&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/FlowRunsDialog.png"
loading="lazy"
alt="Image showing all the flow runs"
>&lt;/p>
&lt;h3 id="cancelling-flow-runs">Cancelling Flow Runs&lt;/h3>
&lt;p>Select one or more flow runs, then hit the cancel button&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/CancelInstructions.png"
loading="lazy"
alt="Image showing instructions to cancel a flow"
>&lt;/p>
&lt;p>The main tool window will then show you progress,&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/CancelFlowProgress.png"
loading="lazy"
alt="Image showing cancelling flow progress"
>&lt;/p>
&lt;p>with the main window refreshed to display the current status&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/CancelledFlows.png"
loading="lazy"
alt="Image showing refreshed flow runs"
>&lt;/p>
&lt;p>I created a short gif highlighting the change&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/FlowToVisio-Cancelling.gif"
loading="lazy"
alt="GIF showing changes to the tool"
>&lt;/p>
&lt;h2 id="next-steps">Next Steps&lt;/h2>
&lt;p>This part of the tool is quite seperate to the Visio, only combined as I have done lots of the hard work in the original, easier to add than create again.&lt;/p>
&lt;p>I intend to split out and enhance the colour coding output. Any errors/enhancements, please log them on GitHub &lt;a class="link" href="https://github.com/LinkeD365/FlowToVisio/issues" target="_blank" rel="noopener"
>here&lt;/a>&lt;/p>
&lt;p>Thanks to Mohamed Ashiq Faleel and his &lt;a class="link" href="https://ashiqf.com/2021/05/16/cancel-all-your-running-power-automate-flow-runs-using-m365-cli-and-rest-api/" target="_blank" rel="noopener"
>article&lt;/a> highlight the API calls needed.&lt;/p></description></item><item><title>Flow to Visio - Solutions</title><link>https://linked365.blog/2023/02/19/flow-to-visio-solutions/</link><pubDate>Sun, 19 Feb 2023 00:00:00 +0000</pubDate><guid>https://linked365.blog/2023/02/19/flow-to-visio-solutions/</guid><description>&lt;img src="https://linked365.blog/images/2023/FlowSolutions.gif" alt="Featured image of post Flow to Visio - Solutions" />&lt;p>I have finally found some time to work on my tools, and have added a request from &lt;a class="link" href="https://www.linkedin.com/in/themarkchristie/" target="_blank" rel="noopener"
>Mark Christie&lt;/a> to the &lt;a class="link" href="https://linked365.blog/FlowToVisio" >Flow to Visio tool&lt;/a>.&lt;/p>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>I have added solution selection to the Flow to Visio tool &amp;amp; added a few new actions.&lt;/p>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>If you have connected to Dataverse, there is now a new selection listing all the solutions in your environment.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/FlowtoVisio-solutionselection.png"
loading="lazy"
alt="Image showing Solution selection in Flow to Visio Tool"
>&lt;/p>
&lt;p>The flow list is then restricted to those that are part of the solution file. Selecting the top left will select all that are part of that solution.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/FlowtoVisio-filtered.png"
loading="lazy"
alt="Image showing reduced list of flows"
>&lt;/p>
&lt;p>When you hit Create Visio, the default name is the name of the solution.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/FlowtoVisio-Filedialog.png"
loading="lazy"
alt="Image showing save dialog box"
>&lt;/p>
&lt;p>Finally, the Visio is created with each select flow in a new tab.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/FlowtoVisio-Visio.png"
loading="lazy"
alt="Image showing multiple tabs in Visio, one for each Power Automate selected"
>&lt;/p>
&lt;p>I created a short gif highlighting the change&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2023/FlowSolutions.gif"
loading="lazy"
alt="GIF showing changes to the tool"
>&lt;/p></description></item><item><title>BPFs to Visio - XrmToolBox tool</title><link>https://linked365.blog/2022/02/22/bpfs-to-visio-xrmtoolbox-tool/</link><pubDate>Tue, 22 Feb 2022 00:00:00 +0000</pubDate><guid>https://linked365.blog/2022/02/22/bpfs-to-visio-xrmtoolbox-tool/</guid><description>&lt;img src="https://linked365.blog/images/2022/bpftovisio.png" alt="Featured image of post BPFs to Visio - XrmToolBox tool" />&lt;p>You have &lt;a class="link" href="https://twitter.com/Themarkchristie" target="_blank" rel="noopener"
>@TheMarkChristie&lt;/a> to blame for this. I have shied away from creating a tool that documented your Business Process Flows for a while. You would think it was easier than Power Automate documentation but the inconsistencies and difficulties in the format of the XML that is the BPF is quite something. Persumambly, it is logic Microsoft has just added to over the years.&lt;/p>
&lt;p>But, yep, it is done. BPF to Visio! Available in &lt;a class="link" href="http://xrmtoolbox.com" target="_blank" rel="noopener"
>XrmToolBox&lt;/a> alongside other great tools and my own.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2022/bpftovisio-1024x481.png"
loading="lazy"
>&lt;/p>
&lt;h2 id="tldr">TLDR;&lt;/h2>
&lt;p>&lt;a class="link" href="https://twitter.com/Themarkchristie" target="_blank" rel="noopener"
>@MarkChristie&lt;/a> asked me to make a tool that created Visio documents out of a Business Process Flow and now you use it to hopefully save you minutes documenting your solutions.&lt;/p>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>On opening the tool, you will be presented with a list of BPFs that are in your environment. Select one or more BPFs and select the Create Visio button.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2022/bpftovisio2-1024x721.png"
loading="lazy"
>&lt;/p>
&lt;p>Select a file to save it as, and once it churns, it will prompt you if you want to open Visio.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2022/image.png"
loading="lazy"
>&lt;/p>
&lt;p>Opening Visio, you are presented with your BPF.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2022/image-1-1024x476.png"
loading="lazy"
>&lt;/p>
&lt;p>Like my other Visio Tools, there needs to be some adjusting once complete. It is very difficult to ensure in recursive code that you don&amp;rsquo;t have any children and I struggled to align accurately as you can see above.&lt;/p>
&lt;p>Take a little minute to adjust the alignment to suit your needs, including expanding some of the stages etc.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2022/image-2-1024x437.png"
loading="lazy"
>&lt;/p>
&lt;p>You can see I have documented the data, flow &amp;amp; workflow steps in each stage &amp;amp; the conditions.&lt;/p>
&lt;h2 id="next-steps">Next Steps&lt;/h2>
&lt;p>Download the tool via XrmToolBox and let me know your thoughts on the socials. I have only got limited access to BPFs so I am sure I have not covered all possibilities, so expect bugs.&lt;/p>
&lt;p>Raise bugs &amp;amp; enhancements on GitHub &lt;a class="link" href="https://github.com/LinkeD365/BPFToVisio" target="_blank" rel="noopener"
>here&lt;/a>.&lt;/p></description></item><item><title>PVA to Visio Builder - XrmToolBox Tool</title><link>https://linked365.blog/2021/12/24/pva-to-visio-builder-xrmtoolbox-tool/</link><pubDate>Fri, 24 Dec 2021 00:00:00 +0000</pubDate><guid>https://linked365.blog/2021/12/24/pva-to-visio-builder-xrmtoolbox-tool/</guid><description>&lt;img src="https://linked365.blog/images/2021/12-pva-flow2.png" alt="Featured image of post PVA to Visio Builder - XrmToolBox Tool" />&lt;p>Sorry, it has been quiet on the blog. When you create tools, as a hobby, the time to release new features or new tools is dictated by time spent and complexity. This means I don&amp;rsquo;t post as much as I want to.&lt;/p>
&lt;p>But, more importantly, I have a new tool available! Introducing PVA to Visio Builder!&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/12-pva-flow-1024x480.png"
loading="lazy"
>&lt;/p>
&lt;h2 id="tldr">TLDR;&lt;/h2>
&lt;p>I have created a tool for the XrmToolBox which enables you to document your Power Virtual Agents.&lt;/p>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>Install the tool, available in your XrmToolBox tools and open it up against your Dataverse environment where your PVA are.&lt;/p>
&lt;p>What you are presented with is a list of the Chat Bots that are in the system you have connected to.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/12-pva-flow1-1024x590.png"
loading="lazy"
>&lt;/p>
&lt;p>Select the PVA Bot you want to document, then choose one or more of the Topics associated with the bot. Here, you can see a lot of the out of the box ones that are created when you generate a new bot.&lt;/p>
&lt;p>Hit the Create Visio button. Choose where to save the file and hopefully you will get a prompt telling you it has been successful.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/12-image.png"
loading="lazy"
>&lt;/p>
&lt;p>Open Visio and you have a version of the Topic as Visio. Like the &lt;a class="link" href="https://linked365.blog/2020/10/14/flow-to-visio-xrmtoolbox-addon/" target="_blank" rel="noopener"
>Flow to Visio tool&lt;/a>, you may have to do some arranging, increasing size of boxes etc. but I hope I have saved you some time!&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/12-image-1-1024x641.png"
loading="lazy"
>&lt;/p>
&lt;p>Hopefully it is self explanatory, here you can see the Visio representation of the standard Lesson 4 - A topic with a condition, variables and custom entity.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/12-pva-flow2-1024x379.png"
loading="lazy"
>&lt;/p>
&lt;p>In the above image, you can see the comparison of the PVA on the left and what it produces in Visio on the right.&lt;/p>
&lt;ol>
&lt;li>The Trigger phrases are inluded (if any)&lt;/li>
&lt;li>The Question and any options are displayed, along with the variable that is populated. I have increased the length of this box.&lt;/li>
&lt;li>All of the routes from this question are mapped, with the value criteria. The Default condition is not displayed, as there is no child action in the original (which means it is not in the JSON).&lt;/li>
&lt;/ol>
&lt;h2 id="next-steps">Next Steps&lt;/h2>
&lt;p>Please let me know what you think, reach out on socials etc. I have only tested with topics I have generated, so I know there is a lot of complicated topics that I would love you to test.&lt;/p>
&lt;p>Let me know of any issues by logging them on GitHub &lt;a class="link" href="https://github.com/LinkeD365/BotToVisio/issues" target="_blank" rel="noopener"
>here&lt;/a>.&lt;/p></description></item><item><title>Nov 21 Updates to Flow To Visio</title><link>https://linked365.blog/2021/11/29/nov-21-updates-to-flow-to-visio/</link><pubDate>Mon, 29 Nov 2021 00:00:00 +0000</pubDate><guid>https://linked365.blog/2021/11/29/nov-21-updates-to-flow-to-visio/</guid><description>&lt;img src="https://linked365.blog/images/2021/11-image.png" alt="Featured image of post Nov 21 Updates to Flow To Visio" />&lt;p>I have been busy on a new job, actually socialising and living life recently, but got back to doing some updates for the Flow to Visio tool. The main description is updated &lt;a class="link" href="https://linked365.blog/2020/10/14/flow-to-visio-xrmtoolbox-addon/" target="_blank" rel="noopener"
>here&lt;/a> but I will just highlight the changes.&lt;/p>
&lt;h2 id="comments">Comments&lt;/h2>
&lt;p>Comments on Flows are a new, preview, a feature &lt;a class="link" href="https://cloudblogs.microsoft.com/powerplatform/2021/11/02/new-power-platform-capabilities-announced-at-microsoft-ignite/" target="_blank" rel="noopener"
>recently announced&lt;/a> at Ignite November 21. It only allows for comments in flows stored within a dataverse environment but is a great feature to collaborate with your fellow developers.&lt;/p>
&lt;p>I have introduced Comments as an option within the Options Menu, to allow you to add them or not.&lt;/p>
&lt;h2 id="community-updates">Community Updates&lt;/h2>
&lt;p>There is always that annoying friend, who thinks they are helping with coming up with good ideas. &lt;a class="link" href="https://twitter.com/D365Geek" target="_blank" rel="noopener"
>MCJ&lt;/a> is that friend for me. He created several requests for improvements and these, along with others were released altogether.&lt;/p>
&lt;p>This build includes&lt;/p>
&lt;ul>
&lt;li>Reduced the border to the bottom edge and corrected a few dimensions (&lt;a class="link" href="https://www.linkedin.com/in/ACoAAABuB8IBUzYf-_a2w9iIhX_i7O7zEqTZepU" target="_blank" rel="noopener"
>Jonas Rapp&lt;/a>) 🤘🏼&lt;/li>
&lt;li>SQL Actions with appropriate actions (&lt;a class="link" href="https://www.linkedin.com/in/ACoAAAChCqsBny4rLMFFJV07fEKmMmhO_z1YnNs" target="_blank" rel="noopener"
>Matt Collins-Jones&lt;/a>) 👏&lt;/li>
&lt;li>Append to String etc use proper icons (&lt;a class="link" href="https://www.linkedin.com/in/ACoAAAChCqsBny4rLMFFJV07fEKmMmhO_z1YnNs" target="_blank" rel="noopener"
>Matt Collins-Jones&lt;/a>) 😤&lt;/li>
&lt;li>Open file after creation (&lt;a class="link" href="https://www.linkedin.com/in/ACoAAAChCqsBny4rLMFFJV07fEKmMmhO_z1YnNs" target="_blank" rel="noopener"
>Matt Collins-Jones&lt;/a>) 🤬&lt;/li>
&lt;li>Multi-Select for creation of Visios (&lt;a class="link" href="https://www.linkedin.com/in/ACoAAARaDCoBtX0L-_xR0EiN44Z8npOacle1Fqc" target="_blank" rel="noopener"
>Michael LaMontagne&lt;/a>) 👍🏽&lt;/li>
&lt;li>Options drop-down for concurrent, tracked properties and many more 😍&lt;/li>
&lt;/ul>
&lt;p>P.S. Thanks to &lt;a class="link" href="https://twitter.com/CarinaMClaesson" target="_blank" rel="noopener"
>Carina&lt;/a> for nagging me to do this post.&lt;/p></description></item><item><title>Access Checker - XrmToolBox Tool</title><link>https://linked365.blog/2021/09/01/access-checker-xrmtoolbox-tool/</link><pubDate>Wed, 01 Sep 2021 00:00:00 +0000</pubDate><guid>https://linked365.blog/2021/09/01/access-checker-xrmtoolbox-tool/</guid><description>&lt;img src="https://linked365.blog/images/2021/09-access.jpg" alt="Featured image of post Access Checker - XrmToolBox Tool" />&lt;p>Frequently, my day job is inspiration to develop a tool and &lt;a class="link" href="https://www.xrmtoolbox.com/plugins/mscrmtools.accesschecker/" target="_blank" rel="noopener"
>Access Checker&lt;/a> was just that. Though not mine, the great &lt;a class="link" href="https://twitter.com/TanguyTOUZARD" target="_blank" rel="noopener"
>@Tanguy Touzard&lt;/a> did the original, I felt that I could update it to include how the user has access.&lt;/p>
&lt;p>The original tool allowed you to select a record, select a user and be presented with what access that user had to that record. My enhancement is to present to the user how they gained that access. This was because we have come across a situation where it was unclear how a user got access to a record.&lt;/p>
&lt;p>Microsoft has now given us a &lt;a class="link" href="https://docs.microsoft.com/en-us/powerapps/user/access-checker" target="_blank" rel="noopener"
>Check Access&lt;/a> button on a record form, but I feel that this is a little clunky, particularly if you want to check multiple records, and the Access Checker also adds, for records that are accessible by inheritance, a link to the record that was shared.&lt;/p>
&lt;h2 id="tldr">TLDR;&lt;/h2>
&lt;p>I augmented the Access Checker tool to provide an explanation of how access has been granted.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/09-image.png"
loading="lazy"
>&lt;/p>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>&lt;img src="https://linked365.blog/images/2021/09-access-1024x486.jpg"
loading="lazy"
>&lt;/p>
&lt;p>Open the tool and select the Entity (damn, missed the opportunity to change to Table). If you know the record id then just paste it in, otherwise, select the Search button to use a view and find your record.&lt;/p>
&lt;p>The Lookup record window allows the selection of a view and searching using * as a wildcard.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/09-image-2.png"
loading="lazy"
>&lt;/p>
&lt;p>When you have your record, return to the main window and select Browse. The User selection allows a search and selection of a user.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/09-image-3.png"
loading="lazy"
>&lt;/p>
&lt;p>Once done, select Retrieve Rights. The box at the bottom displays a grid showing you the rights that use has to the record. Standard Create, Read, Write, Delete, Append, Append To, Assign and Share derived by the Power Platform security principles.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/09-image-4.png"
loading="lazy"
>&lt;/p>
&lt;p>Red means that the user has not got permission to do the action.&lt;/p>
&lt;p>Green means they do. Also, there is an icon and words to define how they got access.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/09-shared.jpg"
loading="lazy"
>&lt;/p>
&lt;p>The user has the record directly shared with them&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/09-related-record-3.jpg"
loading="lazy"
>&lt;/p>
&lt;p>The user has access from a share with a related (parent or higher) record.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/09-user-role-1.jpg"
loading="lazy"
>&lt;/p>
&lt;p>The user has access due to the role indicated&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/09-role-from-team.jpg"
loading="lazy"
>&lt;/p>
&lt;p>The user has a role from the team displayed giving them access&lt;/p>
&lt;h2 id="video-walkthrough">Video Walkthrough&lt;/h2>
&lt;div class="video-wrapper">
&lt;video
controls
src="https://linked365.blog/images/2021/09-accesschecker.mp4"
>
&lt;p>
Your browser doesn't support HTML5 video. Here is a
&lt;a href="https://linked365.blog/images/2021/09-accesschecker.mp4">link to the video&lt;/a> instead.
&lt;/p>
&lt;/video>
&lt;/div>
&lt;p>Please let me know what you think &amp;amp; log an enhancement/issue on GitHub &lt;a class="link" href="https://github.com/MscrmTools/MsCrmTools.AccessChecker" target="_blank" rel="noopener"
>here&lt;/a>.&lt;/p></description></item><item><title>Role Replicator - XrmToolBox Tool</title><link>https://linked365.blog/2021/06/22/role-replicator-xrmtoolbox-tool/</link><pubDate>Tue, 22 Jun 2021 00:00:00 +0000</pubDate><guid>https://linked365.blog/2021/06/22/role-replicator-xrmtoolbox-tool/</guid><description>&lt;img src="https://linked365.blog/images/2021/06-Role-Replicator.gif" alt="Featured image of post Role Replicator - XrmToolBox Tool" />&lt;p>Santosh, he of &lt;a class="link" href="https://linked365.blog/2020/12/22/role-documenter-xrmtoolbox-tool/" target="_blank" rel="noopener"
>Role Documenter&lt;/a> fame, highlighted to me that one of his tools has fallen by the wayside. He is a busy man and has not found time to keep this tool up to date. XrmToolBox and the underlying Microsoft tooling, has changed quite significantly over the years; like any software project, it needs to be updated regularly to keep in line. I have helped him out bring the tool back and this post is a walkthrough of it in use.&lt;/p>
&lt;p>&lt;a class="link" href="https://www.xrmtoolbox.com/plugins/RoleReplicator/" target="_blank" rel="noopener"
>Role Replicator&lt;/a> allows a user (If you have the correct &lt;a class="link" href="https://docs.microsoft.com/en-us/power-platform/admin/security-roles-privileges#assigning-security-roles" target="_blank" rel="noopener"
>permissions&lt;/a>) to select a user and duplicate their roles, teams and queues to one or more other users.&lt;/p>
&lt;h2 id="tldr">TLDR;&lt;/h2>
&lt;p>&lt;a class="link" href="https://www.xrmtoolbox.com/plugins/RoleReplicator/" target="_blank" rel="noopener"
>Role Replicator&lt;/a> is an XrmToolBox that has not been updated for a while, I brought it back to life.&lt;/p>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>Open the tool and select the source user. On the left side, each list shows the roles, teams and queues for the selected user.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/06-2021-06-22_16-08-44.jpg"
loading="lazy"
>&lt;/p>
&lt;p>Select one or more users to copy the role to using the Select check boxes. Define what you want to copy, using the option buttons highlighted in red. Then finally, hit the Run Copy button.&lt;/p>
&lt;p>You will be prompted to confirm the change, listing who you are going to be updating and what you are going to do.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/06-image-1.png"
loading="lazy"
>&lt;/p>
&lt;p>After a while of watching the spinning blue circle, you will get a prompt that is all succesful!&lt;/p>
&lt;p>Make sure you check the changes you have made to confirm we didnt break anything!&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/06-Role-Replicator-1024x643.gif"
loading="lazy"
>&lt;/p></description></item><item><title>Site Map Documenter</title><link>https://linked365.blog/2021/04/20/site-map-documenter/</link><pubDate>Tue, 20 Apr 2021 00:00:00 +0000</pubDate><guid>https://linked365.blog/2021/04/20/site-map-documenter/</guid><description>&lt;img src="https://linked365.blog/images/2021/04-SiteMap-Export.gif" alt="Featured image of post Site Map Documenter" />&lt;p>In my never-ending journey to document everything in the Power Platform, I thought I would take a crack at Site Maps. You know, the list of stuff on the left-hand side of a model-driven app. Again, as a consultant, it needs documenting and Microsoft doesn&amp;rsquo;t provide a tool to do so.&lt;/p>
&lt;p>&lt;a class="link" href="https://twitter.com/TanguyTOUZARD" target="_blank" rel="noopener"
>Tanguy Touzard&lt;/a>, the wizard behind XrmToolBox has already got an app to edit Site maps, which I piggy backed on, as there is no point reinventing the wheel and most of the work will have already been done this way.&lt;/p>
&lt;p>The tool is now available by XrmToolBox &lt;a class="link" href="https://www.xrmtoolbox.com/plugins/MsCrmTools.SiteMapEditor/" target="_blank" rel="noopener"
>here&lt;/a>.&lt;/p>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>Walkthrough of the new capability added to Site Map Editor XrmToolBox tool to export Site Maps to Excel.&lt;/p>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>First of all, what is a Site Map? It is the fancy name for the navigation you see when you open any Model Driven App.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/04-image.png"
loading="lazy"
>&lt;/p>
&lt;p>The Red area is the site map. Each yellow area is the group, which is just the secondary headings. The green are called Sub Areas but are the actual menu items that drive users to content within your app. Finally, other areas can be defined, shown in purple at the bottom.&lt;/p>
&lt;p>In the Site Map editor within a Model-driven app, the same Site Map looks like this, with the colour boxes denoting the same parts.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/04-image-1-1024x290.png"
loading="lazy"
>&lt;/p>
&lt;p>Each Sub Area is associated with a dashboard, table (still labelled entity), Web Resource or URL. Further, you can configure properties depending on what you choose.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/04-image-2.png"
loading="lazy"
>&lt;/p>
&lt;p>Under Advanced Parameters, you can see the configuration for privileges (visibility of the item depending on access to a table), different translations for an item and other properties. Not the subject of the article, but just to note that the configuration can be complex, and documenting what you have done is paramount in a lot of scenarios.&lt;/p>
&lt;h2 id="site-map-editor">Site Map Editor&lt;/h2>
&lt;p>Site Map Editor does what it says on the tin (and also exports to Excel now!). It allows you to edit, save and import a site map from the comfort of your XrmToolBox, great for when you have to clone them or do significant editing.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/04-image-3-1024x526.png"
loading="lazy"
>&lt;/p>
&lt;p>More importantly, you can save and export the map as an Xml file to allow you to clone Sitemaps between environment. This also allows manual editing within the Xml file itself if you need to do more copy/paste of functionality between site maps.&lt;/p>
&lt;h2 id="export-to-excel">Export to Excel&lt;/h2>
&lt;p>The bit I have added is the little Export To Excel button on the main menu bar.&lt;/p>
&lt;p>Clicking on the button prompts for a file to save the Excel as and once done, you are prompted whether to open the Excel file.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/04-SiteMap-Export.gif"
loading="lazy"
>&lt;/p>
&lt;p>Each sheet in the Excel file represents an Area within the application. Each sheet contains a listing of the groups, the sub-areas that form part of the group and the properties of both the sub-area and the groups.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/04-image-4-1024x463.png"
loading="lazy"
>&lt;/p>
&lt;p>Let me know of any issues with this tool on GitHub &lt;a class="link" href="https://github.com/MscrmTools/MscrmTools.SiteMapEditor/issues" target="_blank" rel="noopener"
>here&lt;/a> and hope it saves you some time now or in the future.&lt;/p></description></item><item><title>Mockaroo Data Munger - Data Sets</title><link>https://linked365.blog/2021/03/08/mockaroo-data-munger-data-sets/</link><pubDate>Mon, 08 Mar 2021 00:00:00 +0000</pubDate><guid>https://linked365.blog/2021/03/08/mockaroo-data-munger-data-sets/</guid><description>&lt;img src="https://linked365.blog/images/2021/03-Munger-Sets-sml.gif" alt="Featured image of post Mockaroo Data Munger - Data Sets" />&lt;p>Working with demo or test data, you normally need a set of data rather than one table. For instance, for a Customer Insights demo, I would want hundreds of accounts, thousands of contacts associated with those accounts and tens of thousands of cases associated with the contacts. This will have to be realistic, randomised data that shows the last 3-6 months rather than a stale set of data. The same with Opportunities - create a realistic data set of accounts, contacts, opportunities, orders and the associated product lines. Rinse and repeat next time you need a new demo as your trial has expired.&lt;/p>
&lt;p>With this in mind, I created Data Sets for the &lt;a class="link" href="https://linked365.blog/2020/08/27/mockaroodatamunger/" target="_blank" rel="noopener"
>Mockaroo Data Munger tool&lt;/a> for the XrmToolBox. It is available with the rest of the great tools &lt;a class="link" href="https://www.xrmtoolbox.com/" target="_blank" rel="noopener"
>here&lt;/a>.&lt;/p>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>I have updated the Mockaroo Data Munger with Data Sets. This article walks through how to use this new bit of functionality.&lt;/p>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>Firstly, you need to create and save your data inserts. Let us assume that we want the scenario above, Accounts, Contacts and Cases. Creating the Account is straight forward, with standard options.&lt;/p>
&lt;p>Contacts are where it becomes tricky, as you want to create contacts associated with the newly created Accounts. For this, I have created From Set option. This will populate the field with the GUID of the primary key of any record created previously in the set. So the contacts will be associated with one of the accounts we created in the set. This will use the whole of the selected table if you don&amp;rsquo;t use it as part of a set.&lt;/p>
&lt;p>For Contact, there is a Customer Type field, which allows you to associate with a Contact or Account, so I give you both options here.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/03-image.png"
loading="lazy"
>&lt;/p>
&lt;p>The same applies with Case, it too has a Customer field, which can be both Account or Contact.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/03-image-1.png"
loading="lazy"
>&lt;/p>
&lt;h2 id="create-your-set">Create your Set&lt;/h2>
&lt;p>Once I have created my maps, with all the relevant options, I need to create the Set. This is available via the Create Data Set button in the tool bar&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/03-image-3.png"
loading="lazy"
>&lt;/p>
&lt;p>Up pops the data set creation tool.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/03-image-4.png"
loading="lazy"
>&lt;/p>
&lt;p>On the left are all your saved maps. Bring them into your set by selecting one and choosing the Right arrow, remove it from the set by choosing the left arrow. Re-arrange the maps in the set by using the up/down buttons.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/03-Sets.gif"
loading="lazy"
>&lt;/p>
&lt;p>Once you are happy with the configuration, hit OK and you are ready to run. This screen also allows you to update an existing set as well.&lt;/p>
&lt;h2 id="creating-the-data">Creating the Data&lt;/h2>
&lt;p>Now you are ready, hit the Play Set button.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/03-image-5.png"
loading="lazy"
>&lt;/p>
&lt;p>This can take a while, depending on the amount of data you are creating, but you should get a success message and the data will be created in your environment.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2021/03-Munger-Sets-sml.gif"
loading="lazy"
>&lt;/p>
&lt;h2 id="whats-next-for-the-munger">What&amp;rsquo;s next for the Munger?&lt;/h2>
&lt;p>Like with the &lt;a class="link" href="https://linked365.blog/2020/07/06/erd-visio-builder-xrmtoolbox-addon/" target="_blank" rel="noopener"
>ERD tool&lt;/a>, I want to allow export/saving of maps and data sets. Other feature requests are being accepted over at &lt;a class="link" href="https://github.com/LinkeD365/MockarooDataMunger/issues" target="_blank" rel="noopener"
>GitHub&lt;/a>&lt;/p></description></item><item><title>Logic Apps to Visio - XrmToolBox Tool</title><link>https://linked365.blog/2021/02/06/logic-apps-to-visio-xrmtoolbox-tool/</link><pubDate>Sat, 06 Feb 2021 00:00:00 +0000</pubDate><guid>https://linked365.blog/2021/02/06/logic-apps-to-visio-xrmtoolbox-tool/</guid><description>&lt;img src="https://linked365.blog/images/2021/02-Logic-App.gif" alt="Featured image of post Logic Apps to Visio - XrmToolBox Tool" />&lt;p>So, we all know Power Automate Cloud Flows are basically Logic Apps right? Which means I should be able to document them and convert to Visios in the same way as my &lt;a class="link" href="https://linked365.blog/2020/10/14/flow-to-visio-xrmtoolbox-addon/" target="_blank" rel="noopener"
>Flow To Visio Tool&lt;/a> right?&lt;/p>
&lt;p>Actually, it is true! After numerous requests, I finally got round to doing it.&lt;/p>
&lt;h2 id="tldr">TLDR;&lt;/h2>
&lt;p>I have included the ability to document Logic Apps in the Flow to Visio tool.&lt;/p>
&lt;h3 id="document-logic-apps-beta">Document Logic Apps (BETA)&lt;/h3>
&lt;p>First, let me stress this is VERY BETA. I do not have many (any) Logic Apps I can point this at. If you come across any issues with it, please let me know by raising issues on GitHub &lt;a class="link" href="https://github.com/LinkeD365/FlowToVisio/issues" target="_blank" rel="noopener"
>here&lt;/a>.&lt;/p>
&lt;p>To connect to the Azure Logic Apps, there is a new button available in the toolbar. But first, you need to amend or add an app registration to allow access to Logic Apps.&lt;/p>
&lt;p>Register or amend an App registration. API Permissions required are Azure Service Management/user impersonation&lt;/p>
&lt;p>&lt;a class="link" href="https://user-images.githubusercontent.com/43988771/107113837-75a41e00-6859-11eb-954c-aecbdc253857.png" target="_blank" rel="noopener"
>&lt;img src="https://linked365.blog/images/2021/02-107113837-75a41e00-6859-11eb-954c-aecbdc253857.png"
loading="lazy"
>&lt;/a>&lt;/p>
&lt;p>In the application, select the Connect to Logic Apps button&lt;/p>
&lt;p>&lt;a class="link" href="https://user-images.githubusercontent.com/43988771/107113888-c9af0280-6859-11eb-9bae-327743f74da2.png" target="_blank" rel="noopener"
>&lt;img src="https://linked365.blog/images/2021/02-107113888-c9af0280-6859-11eb-9bae-327743f74da2.png"
loading="lazy"
>&lt;/a>&lt;/p>
&lt;p>Populate the API connection pop up with the appropriate settings. &lt;/p>
&lt;p>Firstly, the Subscription Id can be found on your Logic App Overview, the purple box here&lt;/p>
&lt;p>&lt;a class="link" href="https://user-images.githubusercontent.com/43988771/107113966-4d68ef00-685a-11eb-850e-fbbfe0e9740d.png" target="_blank" rel="noopener"
>&lt;img src="https://linked365.blog/images/2021/02-107113966-4d68ef00-685a-11eb-850e-fbbfe0e9740d.png"
loading="lazy"
>&lt;/a>&lt;/p>
&lt;p>Next, the Application Id and Tenant Id both are available on the App Registration page, the red and yellow items here&lt;/p>
&lt;p>&lt;a class="link" href="https://user-images.githubusercontent.com/43988771/107114017-a5075a80-685a-11eb-9723-b4686c7e11c7.png" target="_blank" rel="noopener"
>&lt;img src="https://linked365.blog/images/2021/02-107114017-a5075a80-685a-11eb-9723-b4686c7e11c7.png"
loading="lazy"
>&lt;/a>&lt;/p>
&lt;h2 id="httpsgithubcomlinked365flowtovisiothe-return-url-needs-to-be-specified-as-a-mobile-and-desktop-application-1the-return-url-needs-to-be-specified-as-a-mobile-and-desktop-application">&lt;a class="link" href="https://github.com/LinkeD365/FlowToVisio#the-return-url-needs-to-be-specified-as-a-mobile-and-desktop-application-1" target="_blank" rel="noopener"
>&lt;/a>&lt;strong>The Return URL needs to be specified as a Mobile and Desktop application&lt;/strong>&lt;/h2>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>&lt;img src="https://linked365.blog/images/2021/02-Logic-App.gif"
loading="lazy"
>&lt;/p></description></item><item><title>Role Documenter - XrmToolBox Tool</title><link>https://linked365.blog/2020/12/22/role-documenter-xrmtoolbox-tool/</link><pubDate>Tue, 22 Dec 2020 00:00:00 +0000</pubDate><guid>https://linked365.blog/2020/12/22/role-documenter-xrmtoolbox-tool/</guid><description>&lt;img src="https://linked365.blog/images/2020/12-RoleDocumenter.gif" alt="Featured image of post Role Documenter - XrmToolBox Tool" />&lt;p>As you can see from the various &lt;a class="link" href="https://linked365.blog/tag/xrmtoolbox/" target="_blank" rel="noopener"
>tools&lt;/a> I have produced this year, documentation is the bane of my life. I love developing, coding and producing solutions, but invariably end up at a customer with the unenviable task of documenting either the solution we have developed or one that has been in situ for a while.&lt;/p>
&lt;p>One of those daunting documentation tasks is security roles. Imagine being able to click a button and get an excel spreadsheet of a role you have just published, allowing you to stop taking screenshots or spending half a day losing the will to live in filling out a spreadsheet. This is where the Role Documenter comes in.&lt;/p>
&lt;p>This tool is different from the rest, as there was a tool in existence. Santosh Bhagat, a wonderful D365 developer from Gurgaon had created the &lt;a class="link" href="http://dotnetdeveloper2012.blogspot.com/2018/09/dynamics-crm-export-security-role.html" target="_blank" rel="noopener"
>Role Documenter&lt;/a> back in 2018, and for lots of reasons, was not kept up to date. So, rather than recreating the wheel, I reached out to Santosh, asked to help him bring his tool back to the masses and this is the result. I am grateful to Santosh for allowing me to continue with his brilliant idea and expand it&amp;rsquo;s capabilities.&lt;/p>
&lt;p>If you have any requests or bugs, please let us know on GitHub &lt;a class="link" href="https://github.com/santoshCRM/Export-Security-Role" target="_blank" rel="noopener"
>here&lt;/a>.&lt;/p>
&lt;h2 id="tldr">TLDR;&lt;/h2>
&lt;p>I brought back a Security Role documenter to the XrmToolBox to allow documentation of the Security Roles in your Dataverse projects.&lt;/p>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>Load the tool from XrmToolBox, under Role Documenter. Connect to your environment and select a role.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/12-image-1.png"
loading="lazy"
>&lt;/p>
&lt;p>At the top are 2 buttons, Export will create an Excel file with all the tables and miscellaneous privileges in 2 tabs.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/12-image-2-1024x497.png"
loading="lazy"
>&lt;/p>
&lt;p>Selecting the other button, Export D365 Layout (I realise this should be Dataverse nowadays) an Excel with the tabs that mimic those available in the Dataverse role screen is generated.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/12-image-3-1024x682.png"
loading="lazy"
>&lt;/p>
&lt;p>As simple as that!&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/12-RoleDocumenter.gif"
loading="lazy"
>&lt;/p>
&lt;p>There is also options to toggle between Display names and logical names.&lt;/p>
&lt;p>I hope this helps those that are stuck with documentation and all the praise needs to go to Santosh!&lt;/p></description></item><item><title>Flow to Visio - XrmToolBox Addon</title><link>https://linked365.blog/2020/10/14/flow-to-visio-xrmtoolbox-addon/</link><pubDate>Wed, 14 Oct 2020 00:00:00 +0000</pubDate><guid>https://linked365.blog/2020/10/14/flow-to-visio-xrmtoolbox-addon/</guid><description>&lt;img src="https://linked365.blog/images/2020/10-FlowToVisio.gif" alt="Featured image of post Flow to Visio - XrmToolBox Addon" />&lt;p>Sorry, the blog has been quiet, there is only so much time to spend on out of work activities, and this tool has been my time sink in the last 6 weeks. Not complaining, loved getting back to my routes.&lt;/p>
&lt;p>Documentation for many consultants is the worst part. Implementing stuff is fun, taking the same amount of time documenting what you have delivered is not. With this in mind, I created the &lt;a class="link" href="https://linked365.blog/2020/07/06/erd-visio-builder-xrmtoolbox-addon/" target="_blank" rel="noopener"
>ERD Visio Builder – XrmToolBox addon&lt;/a>. After this, and knowing that creating Visio was pretty straight forward, I turned to another part of the Power Platform that looks a bit like a Visio diagram - Power Automate Flows.&lt;/p>
&lt;p>When you store Flows in Solutions (and you should) they are kept in the CDS environment as a JSON text field. This allows me to parse the JSON, generate appropriate Visio shapes and give you a copy of a Flow as a document you can use as a snapshot in time of what the flow was like. Obviously doesn&amp;rsquo;t replace the editor, but gives you all the information you coded as a reference which is certainly better than a bunch of screenshot images.&lt;/p>
&lt;p>In addition, for those flows not in solutions, or environments that there is no CDS, there is the option to connect directly with the Flow API, using an App and tenant ID as well as an OAuth token. Not the prettiest of solutions, but required to get at the flows that are not in solutions.&lt;/p>
&lt;p>The tool can be found &lt;a class="link" href="https://www.xrmtoolbox.com/plugins/LinkeD365.FlowToVisio/" target="_blank" rel="noopener"
>here&lt;/a>.&lt;/p>
&lt;h2 id="tldr">TLDR;&lt;/h2>
&lt;p>I created a tool to generate Visio diagrams from your Power Automate Flows.&lt;/p>
&lt;h2 id="new-features-170223">New features 17/02/23&lt;/h2>
&lt;p>As highlighted &lt;a class="link" href="https://linked365.blog/2023/02/19/flow-to-visio-solutions/" >here&lt;/a> I have added Solutions to the tool, so that you can select a solution &amp;amp; create a Visio with all the flows in it in a couple of clicks.&lt;/p>
&lt;p>This update also added more actions that were missing appropriate images.&lt;/p>
&lt;h2 id="new-features-281121">New Features 28/11/21&lt;/h2>
&lt;p>The ability to document any Comments, a preview feature from the Power Automate team. has been added.&lt;/p>
&lt;p>Also, several Community features including&lt;/p>
&lt;ul>
&lt;li>Reduced the border to the bottom edge and corrected a few dimensions&lt;/li>
&lt;li>SQL Actions with appropriate actions&lt;/li>
&lt;li>Append to String etc use proper icons&lt;/li>
&lt;li>Open file after creation&lt;/li>
&lt;li>Multi-Select for creation of Visios&lt;/li>
&lt;li>Options drop-down for concurrent, tracked properties&lt;/li>
&lt;/ul>
&lt;h2 id="walkthrough">Walkthrough&lt;/h2>
&lt;p>Load the tool and you should be present all the flows in your environment that are solution-based. This is reading from the WorkFlow entity in CDS.&lt;/p>
&lt;p>Choose a file to save the flow as.&lt;/p>
&lt;p>Hit Create Visio and that&amp;rsquo;s it. All being well, should get a prompt telling you it has generated your Visio. Go find the file and open it.&lt;/p>
&lt;h2 id="demonstration">Demonstration&lt;/h2>
&lt;p>The flow I created for connecting Alexa to Field Service looks like this.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image.png?fit=1024%2C661&amp;amp;ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>If you expand the first Scope, there is a condition in there&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-1.png?fit=1024%2C553&amp;amp;ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>The detail for the second condition statement has a Switch statement within it, each setting a variable before responding to the user.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-2.png?fit=1024%2C349&amp;amp;ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>As Flows go, this is not that complicated, but documenting it, opening up each of the actions, taking screenshots, is painful, and as you can see by the last screen shot, requires a magnifying glass.&lt;/p>
&lt;p>With my tool, I generate a Visio diagram. The equivalent is shown with some highlights here. Each shape is made up of several other shapes to allow me to template them. In the HTTP Request, you can see that the schema is truncated. I have &amp;ldquo;stolen&amp;rdquo; the shape to prevent overflow here &lt;a class="link" href="http://visguy.com/vgforum/index.php?topic=7997.0" target="_blank" rel="noopener"
>http://visguy.com/vgforum/index.php?topic=7997.0&lt;/a>. Thanks to Yacine for the assist.&lt;/p>
&lt;p>You can change each shapes size to fit your data, and drag that yellow dot up or down depending on whether the information is relevant to you.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-5.png"
loading="lazy"
>&lt;/p>
&lt;p>As you can see from the next picture, if you expand some of the shapes, they can contain a lot of information, in this case, the schema of the triggering call. Up to you if you want to include this, but the data is there if you do.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-6.png"
loading="lazy"
>&lt;/p>
&lt;p>Each action in the flow is documented, either with a template or generic action (no pretty colours or logo) where I have not managed to go through all the actions and possibilities. I do believe this will be like painting the Forth bridge, a never ending task.&lt;/p>
&lt;p>There are some special ones, Scope is the first. In Flow, it is a box around your actions. I decided to just place a Scope marker at the top and bottom of the actions that are grouped together. In this image, you can also see the If condition. I document both sides and have an end If action to show you where the actions for each stop, bringing together connections.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-7.png"
loading="lazy"
>&lt;/p>
&lt;p>In the next image, you can see a switch statement. This also highlights one of the limitations. If you have lots of actions, not connected, on the same line, they can overlap. Easily fixed in Visio by using Design/Re-Layout Page option. I have options to resolve this but will take a little more time.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-8.png"
loading="lazy"
>&lt;/p>
&lt;p>Pre Re-layout page, with overlap&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-9.png"
loading="lazy"
>&lt;/p>
&lt;p>Post Re-layout page, no overlap&lt;/p>
&lt;p>Each case statement has the condition that it is matching on and comes together with a closure action.&lt;/p>
&lt;h2 id="connect-to-power-automate-api">Connect to Power Automate API&lt;/h2>
&lt;p>Not everyone uses solutions, not everyone can as Solutions are only available on those environments with a CDS backing it. That is why I have also provided an option to connect to the Power Automate API.&lt;/p>
&lt;p>Firstly, you need to register an Application in your Azure tenant. This is documented &lt;a class="link" href="https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app" target="_blank" rel="noopener"
>here&lt;/a>. The only caveat is that the permissions required is Read on Flow, using the Flow service.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-10.png"
loading="lazy"
>&lt;/p>
&lt;p>When you click on connect to Flow API, you get a little popup box where you populate the guids from the configuration. As you can have many environments, you also have the ability to add multiple connections. Hit the + to add your first, or select one of the saved ones to edit. The label is a name for the connection.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-2.png"
loading="lazy"
>&lt;/p>
&lt;p>In Azure, Client / App Id is the yellow redacted line, Tenant is the red&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-14.png"
loading="lazy"
>&lt;/p>
&lt;p>The Environment comes from your URL that is shown when editing a flow, the purple bit below.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-4.png"
loading="lazy"
>&lt;/p>
&lt;p>Lastly, the Return URL is the one listed against an App configuration. You can use any url, even localhost.&lt;/p>
&lt;p>WARNING&lt;/p>
&lt;p>This needs to be a desktop application, rather than a web application!&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-17.png"
loading="lazy"
>&lt;/p>
&lt;p>Once you are done, populated all the fields something like this. The&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-3.png"
loading="lazy"
>&lt;/p>
&lt;p>Hit OK, where you will be presented with an OAuth screen, asking to login with an account.&lt;/p>
&lt;p>Choose the appropriate account or use another account and login. If all is well, you will be presented with a list of flows not in a solution.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/10-image-5.png"
loading="lazy"
>&lt;/p>
&lt;p>And then you are able to document those flows too!&lt;/p>
&lt;p>You can also use the dev App Config. This is for development/testing only, so don&amp;rsquo;t use to connect to production environment, but eases the complexity. You only need the Environment and Tenant Id for this.&lt;/p>
&lt;h2 id="connect-to-logic-apps">Connect to Logic Apps&lt;/h2>
&lt;p>As Logic Apps are the big brother of Power Automate Flows, you can also use this tool to document Logic Apps.&lt;/p></description></item><item><title>Mockaroo Data Munger - XrmToolBox Addon</title><link>https://linked365.blog/2020/08/27/mockaroo-data-munger-xrmtoolbox-addon/</link><pubDate>Thu, 27 Aug 2020 00:00:00 +0000</pubDate><guid>https://linked365.blog/2020/08/27/mockaroo-data-munger-xrmtoolbox-addon/</guid><description>&lt;img src="https://linked365.blog/images/2020/08-Munger-1.gif" alt="Featured image of post Mockaroo Data Munger - XrmToolBox Addon" />&lt;p>Another tool I am pleased to announce - Mockaroo Data Munger!&lt;/p>
&lt;p>This tool is an interface between &lt;a class="link" href="https://mockaroo.com/" target="_blank" rel="noopener"
>Mockaroo&lt;/a> and your CDS environment. Mockaroo is an excellent random data generator which has been my go to source for data over the last couple of years for building demo or test data sets. I found myself regularly configuring Mockaroo data exports, creating Excel spreadsheets and then importing them to the latest demo environment.&lt;br>
As Mockaroo has an API, the next logical step is to bring this API to the XrmToolBox. This is so I can cut out the middle man - no need to do the export to Excel, map the data in a CDS import and wait for the import, let a tool do it for me.&lt;/p>
&lt;p>(Blame &lt;a class="link" href="https://twitter.com/TATTOOEDCRMGUY" target="_blank" rel="noopener"
>Chris Huntingford&lt;/a> for the name)&lt;/p>
&lt;h2 id="tldr">TLDR;&lt;/h2>
&lt;p>I created a tool to allow creation of random data using the Mockaroo API available in XrmToolBox &lt;a class="link" href="https://www.xrmtoolbox.com/plugins/LinkeD365.MockarooDataMunger/" target="_blank" rel="noopener"
>here&lt;/a>.&lt;/p>
&lt;h3 id="walkthrough-of-the-tool">Walkthrough of the Tool&lt;/h3>
&lt;p>First of all, you will need a Mockaroo Key. Go &lt;a class="link" href="https://mockaroo.com/users/sign_up" target="_blank" rel="noopener"
>here&lt;/a> and sign up. A Mockaroo account is free, if you can cope with 200 requests a day, 1000 rows per request. Pretty impressive for free. In all my testing, I have never scratched these limits. As Mockaroo paid plans are intended to be used by testers, calling the api for a single record multiple times etc, for our usage, the free plan is more than enough.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/08-image-1.png"
loading="lazy"
>&lt;/p>
&lt;p>Once you have an account, go to My Account and grab your API Key.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/08-image-2.png"
loading="lazy"
>&lt;/p>
&lt;p>In the Tool, enter this in the toolbar.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/08-image-3.png"
loading="lazy"
>&lt;/p>
&lt;p>You can save this key along with your map by hitting the Save Current Map button.&lt;/p>
&lt;p>Next, select an entity. The fields that are displayed are those that are available for entry when a record is created. Certain fields aren&amp;rsquo;t, like the Create and modified Dates and users. Others are calculated/roll up fields.&lt;/p>
&lt;h2 id="choose-your-mock-types">Choose your Mock Types&lt;/h2>
&lt;p>Mockaroo provides various types of data, from address information to car makes, MAC addresses and other useful information. Useful to someone, maybe not you. These are listed &lt;a class="link" href="https://mockaroo.com/api/docs#request_body:~:text=One%20of%20Mockaroo%27s%20143%20data%20types%3A" target="_blank" rel="noopener"
>here&lt;/a>. I have transitioned those to selectable types in the grid.&lt;/p>
&lt;p>Choose a row and hit the checkbox. This will populate the mock types that are relevant to your selection - even I try to prevent text going into numbers. If there is any options for you to choose from or configuration of the type, the Options field is populated with the defaults. You can change these defaults by clicking on the little grey box (not to self, add an icon).&lt;/p>
&lt;p>A small form will pop up, allowing you to make modifications to the default selections. This could be selecting one or more choices for a picklist, setting the minimum or maximum for numbers or the number of paragraphs of random text you need for your memo.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/08-Munger2.gif"
loading="lazy"
>&lt;/p>
&lt;p>Once you are happy with your data configuration, it is time to call the API. Select the number of records you desire and hit Get Mockaroo Data.&lt;/p>
&lt;h3 id="mocked-data">Mocked Data&lt;/h3>
&lt;p>After hitting the button, the Results tab becomes available. This lists the data that has been generated for you, before you insert it in your environment.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/08-image-5.png"
loading="lazy"
>&lt;/p>
&lt;p>The raw values are displayed, as in the numeric value for any picklists and guids for any lookups. On the road map to show the friendly versions of these records.&lt;/p>
&lt;p>If you are happy, hit Create Data. This will insert the data and present any issues that are returned in doing so.&lt;/p>
&lt;p>Creating data has a lot of issues, most are down to the data. You can not assign records to users without the appropriate security rights for example. There are a multitude of rules that CDS has, particularly when using the first party apps like Sales or Field Service. These are not usually for data integrity reasons, but business logic, fired prior to the record being created.&lt;br>
Unfortunately, all I can do is present the issues to you so you can fix the data.&lt;/p>
&lt;h3 id="next-steps">Next Steps&lt;/h3>
&lt;p>I want to add Resolving cases and other business logic that is done after the record is created normally to allow simple creation of these records. I am also looking for suggestions how it can be improved, particularly around the types of data you need to generate - combining fields for example.&lt;/p>
&lt;p>Go over to the GitHub page to raise an issue &lt;a class="link" href="https://github.com/LinkeD365/MockarooDataMunger/" target="_blank" rel="noopener"
>https://github.com/LinkeD365/MockarooDataMunger/&lt;/a> and let me know what you think.&lt;/p></description></item><item><title>ERD Visio Builder - XrmToolBox addon</title><link>https://linked365.blog/2020/07/06/erd-visio-builder-xrmtoolbox-addon/</link><pubDate>Mon, 06 Jul 2020 00:00:00 +0000</pubDate><guid>https://linked365.blog/2020/07/06/erd-visio-builder-xrmtoolbox-addon/</guid><description>&lt;img src="https://linked365.blog/images/2020/07-ERD-Visio.gif" alt="Featured image of post ERD Visio Builder - XrmToolBox addon" />&lt;p>As with my &lt;a class="link" href="https://linked365.blog/2020/06/18/d365-org-db-settings-xrmtoolbox-addon/" target="_blank" rel="noopener"
>Org Settings&lt;/a> tool, creating Visio diagrams to represent and document your entities and relationships in Dynamics has long been on my list to find a better solution than making them yourself.&lt;/p>
&lt;p>There is already a couple of Entity visualisers in the XrmToolBox suite, but non that output to Visio.&lt;/p>
&lt;p>The project is available in &lt;a class="link" href="https://www.xrmtoolbox.com/plugins/LinkeD365.ERDVisioBuilder/" target="_blank" rel="noopener"
>XrmToolBox&lt;/a>, source &lt;a class="link" href="https://github.com/LinkeD365/ERDVisioBuilder" target="_blank" rel="noopener"
>here&lt;/a> and I am indebted to &lt;a class="link" href="https://twitter.com/saveenr/" target="_blank" rel="noopener"
>Saveen Reddy&lt;/a> for his code to automate the creation of Visio diagrams, &lt;a class="link" href="https://github.com/saveenr/VisioAutomation.VDX" target="_blank" rel="noopener"
>here&lt;/a>. Also, &lt;a class="link" href="https://twitter.com/rappen" target="_blank" rel="noopener"
>Jonas Rappen&lt;/a>, again, supported me. We have discussed bring Visio to his &lt;a class="link" href="https://jonasr.app/uml/" target="_blank" rel="noopener"
>UML Diagram Generator&lt;/a> and merge the two. When I say merge, I mean I piggyback on all his more excellent work with the bit I did.&lt;/p>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>I created a tool to allow users to document their entities and relationships within the Common Data Service producing Microsoft Visio documents.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/07-image-38.png"
loading="lazy"
>&lt;/p>
&lt;h2 id="update-9223">Update 9/2/23&lt;/h2>
&lt;p>It seems that it takes me a while to update tools (well, significant change) and I am writing 18 months after the last update to tell you of a new change.&lt;/p>
&lt;p>This one brings 2 new features, brought about by Dani Kahil. He did a great article on how you can make use of my tool to improve the requirements &amp;amp; design process of your app.&lt;/p>
&lt;p>&lt;a class="link" href="https://danikahil.com/2022/07/making-entity-relationship-diagrams-erd-easier-to-understand.html" target="_blank" rel="noopener"
>Making “Entity Relationship Diagrams (ERD)” easier to understand – Mastering requirements, ideation and design for Microsoft Business Applications (danikahil.com)&lt;/a>&lt;/p>
&lt;p>To support some of the change Dani has asked for, it was necessary to update my code to the same way the &lt;a class="link" href="https://linked365.blog/2020/10/14/flow-to-visio-xrmtoolbox-addon/" target="_blank" rel="noopener"
>Flow to Visio – XrmToolBox Addon&lt;/a> works and use the new Visio XML document format. This is now visible as an option under&lt;/p>
&lt;p>In the article, Dani creates areas around his tables to make the ERD clearer to read, I have added that as containers.&lt;/p>
&lt;p>In the top of the app is the Containers tab, where you can establish a name &amp;amp; colour (hex only for now). Once done, the container can be selected in the list of tables you have added.&lt;/p>
&lt;p>When you create the Visio, Containers now appear with the selected tables inside of them.&lt;/p>
&lt;p>Comments &amp;amp; criticism always welcome!&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/07-ERD-Builder-1024x576.gif"
loading="lazy"
>&lt;/p>
&lt;h2 id="update-1721">Update 1/7/21&lt;/h2>
&lt;p>Wow, looking at this blog post I realise how long this tool has been around! It was in desperate need of a re-vamp, learning from my experiences over the last year. I was pushed to deliver asks from the community (well, nags from &lt;a class="link" href="https://twitter.com/D365Geek" target="_blank" rel="noopener"
>MCJ&lt;/a>) I have added Columns to the output as well as tidying up the interface to work more like you would expect.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/07-ERD-Visio-1024x643.gif"
loading="lazy"
>&lt;/p>
&lt;p>I also realise the Save Config / Export and Import are not documented. This was done back in February, so my bad for not documenting it.&lt;/p>
&lt;p>Simply put, Save a configuration (your current selections) with the Save Config button. You can also Export a settting as an XML file, which can then be brought into your tool with the import button.&lt;/p>
&lt;p>I have updated the content of the walkthrough to match the new version.&lt;/p>
&lt;h2 id="update-29720">Update 29/7/20&lt;/h2>
&lt;p>I have added a few things to the application. Firstly, swapped the Entity selection to separate buttons and added some icons. I have also added a search at the top. There is a Select All toggle as well, that was a feature request, can you believe! (just excited people are using it really!)&lt;/p>
&lt;p>Many-To-Many relationships are now available. I have also added Custom Properties to document the relationships. In Visio, under View/Task Panes should be Shape Data. Enable this to display a little panel. In it are details of what is linking up the lines, showing you parent/child/field/relationship date for one-to-many and many-to-one and the entities and the navigation for many-to-many.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/07-image-39.png"
loading="lazy"
>&lt;/p>
&lt;p>I have also added App Insights, for my own gratification, which is monitoring the number of Visio diagrams created as well as the number of entities that were documented for my little tool. This can be seen in the &lt;a class="link" href="https://linked365.blog/tools/" target="_blank" rel="noopener"
>Tools - Statistics&lt;/a> page.&lt;/p>
&lt;p>Finally, I have prefixed each of the fields with Primary Key (PK) or Foreign Key (FK) notation.&lt;/p>
&lt;h2 id="walkthrough-of-the-application">Walkthrough of the Application&lt;/h2>
&lt;p>The app is pretty basic looking to start, I wanted to get the core ability out there without bells and whistles, like any good Agile project. To get started, you need to load the entities you are interested in. Choosing From Solution allows you to choose one or more solutions to retrieve Entities from.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/07-image.png"
loading="lazy"
>&lt;/p>
&lt;p>If you choose All Entities, the list is populated with all the entities in your environment.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/07-image-1-1024x510.png"
loading="lazy"
>&lt;/p>
&lt;p>In the left Tables grid, you can then choose one or more tables. The ones you choose are highlighted in Selected Tables. As you select a table, the right grid will update to show you the Columns for that table. As you select columns, the Selected Tables grid is updated to indicate which columns will also be added to your ERD.&lt;/p>
&lt;p>Top right of this window is where you decide which relationships to document. Only Between Selected Entities does what it says on the tin, it will only document the relationships between the entities you have selected.&lt;/p>
&lt;p>Above that is a selection on the number of levels you want to go down. Only applies when you select One-To-Many or Many-To-One or Many-To-Many selections. This means, if you select 2 levels, it will document the table selected, any child tables and any child tables of those child tables. Be careful here, as you can get lots of tables and lots of relationships!&lt;/p>
&lt;p>There is also a toggle switch at the top of the toolbar, which will exclude a list of entities that are associated with an entity by default. There are relationships for the created user and modified user for example, which are probably not relevant to your documentation.&lt;/p>
&lt;p>When you select Create Visio, with a file chosen, a VDX file will be created. This is the XML format of the previous version, superseded by VSDX. As VSDX is also XML, there are components available that can create these directly, but the library Saveen created wraps up all the stuff I need in a package I can understand.&lt;/p>
&lt;h2 id="show-and-tell">Show and Tell&lt;/h2>
&lt;p>&lt;img src="https://linked365.blog/images/2020/07-ERD-Visio-1-1024x643.gif"
loading="lazy"
>&lt;/p>
&lt;h2 id="saving-configs">Saving Configs&lt;/h2>
&lt;p>Once you are happy with what you have got, and to save you re-doing all those clicks, you can Save Config. Hit the button to be prompted for a name.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/07-image-3.png"
loading="lazy"
>&lt;/p>
&lt;p>Give it a name to create a new map or update an existing map. This will save the map to your XrmToolBox settings and be there when you re-open the application.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/07-2021-07-02_10-00-40.jpg"
loading="lazy"
>&lt;/p>
&lt;p>Also, you can select Export. Choose one of your configurations and this will create an XML file in the given place for you to pass to whoever you want!&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/07-image-4.png"
loading="lazy"
>&lt;/p>
&lt;p>Import will prompt for an XML file and add it into your current configs. Simples!&lt;/p>
&lt;h2 id="next-steps">Next steps&lt;/h2>
&lt;p>My immediate priority is to add a better interface, to allow for more detail selection of the properties the code generates,. I also need to display Many-To-Many relationships effectively. Also, allow users to select all the attributes and maybe generate them more like the UML versions Jonas has made. Done!&lt;/p>
&lt;p>Please let me know of your suggestions too, particularly bugs, and I will do my best to correct them. Create an issue on the GitHub page &lt;a class="link" href="https://github.com/LinkeD365/ERDVisioBuilder/issues" target="_blank" rel="noopener"
>here&lt;/a> or pull the code and help me out!&lt;/p></description></item><item><title>D365 Org DB Settings - XrmToolBox addon</title><link>https://linked365.blog/2020/06/18/d365-org-db-settings-xrmtoolbox-addon/</link><pubDate>Thu, 18 Jun 2020 00:00:00 +0000</pubDate><guid>https://linked365.blog/2020/06/18/d365-org-db-settings-xrmtoolbox-addon/</guid><description>&lt;img src="https://linked365.blog/images/2020/06-OrgSettings.gif" alt="Featured image of post D365 Org DB Settings - XrmToolBox addon" />&lt;p>Regular readers (Hi Mum) will remember I have done several articles on Org DB Settings. I have got 2 pages in the top bar dedicated to a description of each setting, the &lt;a class="link" href="https://linked365.blog/2019/10/01/d365-org-db-settings-email/" target="_blank" rel="noopener"
>first&lt;/a> all about the various Email Settings you can tweak, the &lt;a class="link" href="https://linked365.blog/2019/11/03/d365-org-db-settings-other/" target="_blank" rel="noopener"
>second&lt;/a> covering the rest of them. Both articles continue to be readily used by people, assume looking for a better understanding, as the Microsoft documentation is a little slim.&lt;/p>
&lt;p>I also did a project to bring the setting of the options to a &lt;a class="link" href="https://linked365.blog/2019/10/16/d365-org-db-settings-canvas-app/" target="_blank" rel="noopener"
>Canvas app&lt;/a>. This is also one of the most visited posts. The only issue is that you need a custom connector, and this needs installing separately and then configuring. It isn&amp;rsquo;t a simple install process.&lt;/p>
&lt;p>Since that second project, I have meaning to create a new version of the application but use the &lt;a class="link" href="https://www.xrmtoolbox.com/" target="_blank" rel="noopener"
>XrmToolBox&lt;/a> framework. It has taken a while, as unlike Power Apps &amp;amp; Power Automate, I can not turn development on and off, I need to sit and focus, so finding a dedicated couple of hours to work on it has been a struggle. Thanks to COVID-19, my commute has disappeared and I purposefully dedicated this time to sitting down and working through my project.&lt;/p>
&lt;p>The project is now available in XrmToolBox, source &lt;a class="link" href="https://github.com/CooksterC/OrgSettings" target="_blank" rel="noopener"
>here&lt;/a>.&lt;/p>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>I created a tool for updating Org Setting available on &lt;a class="link" href="https://www.xrmtoolbox.com/" target="_blank" rel="noopener"
>XrmToolBox&lt;/a>. It allows updating of Org Settings on any D365 instance and includes the ability to back up current options and copy from other systems.&lt;/p>
&lt;h2 id="update-031020">Update 03/10/20&lt;/h2>
&lt;p>I have added the ability to compare your settings with another environment. This also allows copying between the primary and the secondary environment.&lt;/p>
&lt;h2 id="update-290920">Update 29/09/20&lt;/h2>
&lt;p>I have been working on this a little bit. First of all, I added a search just above the grid of settings. I have also added App Insights, which is just for my satisfaction really to see who is using the tool and where. The &lt;a class="link" href="https://linked365.blog/tools/" target="_blank" rel="noopener"
>Tools - Statistics&lt;/a> page shows this.&lt;/p>
&lt;p>Finally, I have added a second description tab. My documentation on Org settings for &lt;a class="link" href="https://linked365.blog/2019/10/01/d365-org-db-settings-email/" target="_blank" rel="noopener"
>Email&lt;/a> and &lt;a class="link" href="https://linked365.blog/2019/11/03/d365-org-db-settings-other/" target="_blank" rel="noopener"
>Other&lt;/a> is available on the blog, but I thought it would be an idea to get this information into the app to support the official description from Sean. My description includes images as well as an alternative explanation of what the setting does. As there is a lot of settings, I am using App Insights to work out which settings people are editing to highlight which settings I should ensure I put a description in first.&lt;/p>
&lt;h2 id="walkthrough-of-the-application">Walkthrough of the Application&lt;/h2>
&lt;p>The use of my tool comes without any warranty or support. Please ensure you have a copy of your current configuration before altering any settings. Also, only change a setting that you have a specific reason for, as altering a setting may have a detrimental outcome on your environment.&lt;/p>
&lt;p>The app is split into two main panes. On the left is a grid showing all the available settings for you to tweak. This is taken directly from Sean McNellis&amp;rsquo;s &lt;a class="link" href="https://github.com/seanmcne/OrgDbOrgSettings" target="_blank" rel="noopener"
>GitHub&lt;/a> repository for his tool, the original OrgDbOrgSettings. By re-using Sean&amp;rsquo;s file, I can ensure when an update to the settings is made or added, my app will reflect it as well. A big thank you to Sean for providing this resource openly.&lt;/p>
&lt;p>It is also filtered by the min and max version of the setting as defined by Sean. I have not got an on-premise version to connect to test but would look forward to work with anyone who wants to be a guinea pig.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/06-OrgSettings.gif?fit=1024%2C720&amp;amp;ssl=1"
loading="lazy"
>&lt;/p>
&lt;p>This grid is sortable, useful to quickly see the current changes or those that you have made or those that you are making. Current values are highlighted in green, uncommitted changes are red.&lt;/p>
&lt;p>On the right is where you can set the value. The control available changes depending on what the type of change is. You can also remove the value, clearing out the configuration for an individual setting.&lt;/p>
&lt;p>Down the bottom is also a documentation section, taken from Sean&amp;rsquo;s file, linking back to a Microsoft KB article or another page if available. It also shows the default, type of field, min &amp;amp; max versions. The big area is the description taken from file to give the Microsoft version of the setting.&lt;/p>
&lt;p>At the top, are simple Refresh and Commit buttons. If you have a change, hit the Commit to update your configuration.&lt;/p>
&lt;p>There is also a Add Connection button which establishes a second connection and displays the settings for the second environment. Commit buttons are now labelled to highlight which environment you are adding to.&lt;/p>
&lt;p>Once connected to a second environment, you can clone the settings of the primary to the secondary.&lt;/p>
&lt;h3 id="manual-update">Manual Update&lt;/h3>
&lt;p>On numerous occasions, when you have multiple systems, you want to copy org settings between environments. Using Sean&amp;rsquo;s tool, that would mean installing the application in multiple environments. In my tool, you can copy settings between environments.&lt;/p>
&lt;p>&lt;img src="https://linked365.blog/images/2020/06-image-67.png"
loading="lazy"
>&lt;/p>
&lt;p>You can also manually create your own xml configuration, but please use the tool. I don&amp;rsquo;t want to be blamed for corrupt systems!&lt;/p>
&lt;h2 id="next-steps">Next Steps&lt;/h2>
&lt;p>I have started this project to learn XrmToolBox and get back to my roots for Windows App development. I plan to elaborate this with the ability to compare two systems and copy configuration between environments.&lt;/p>
&lt;p>I would also like to incorporate my explanations for each setting to elaborate the impact of each change.&lt;/p>
&lt;p>Please let me know via &lt;a class="link" href="https://twitter.com/LinkeD365" target="_blank" rel="noopener"
>Twitter&lt;/a> if this tool is useful and raise bugs or enhancements in &lt;a class="link" href="https://github.com/CooksterC/OrgSettings" target="_blank" rel="noopener"
>GitHub&lt;/a>.&lt;/p>
&lt;p>A final thought, I have checked, double and triple-checked my spelling and capitalisation of XrmToolBox throughout this article. Please report to &lt;a class="link" href="https://twitter.com/rappen" target="_blank" rel="noopener"
>Jonas Rapp&lt;/a> if you find any incorrect ones.&lt;/p></description></item></channel></rss>