<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4275472536327744994</atom:id><lastBuildDate>Sat, 26 Sep 2026 14:59:33 +0000</lastBuildDate><category>Dynamics 365</category><category>Dynamics CRM</category><category>PowerApps</category><category>JavaScript</category><category>Power Platform</category><category>C#</category><category>user experience</category><category>UCI</category><category>Portal</category><category>Workflow</category><category>custom control</category><category>web resource</category><category>BPF</category><category>browser extension</category><category>subgrid</category><category>webapi</category><category>Business Rules</category><category>Solution</category><category>fetchxml</category><category>plugins</category><category>Advanced Find</category><category>Web Interface</category><category>data import</category><category>ribbon</category><category>Auto Number</category><category>Custom Action</category><category>Email template</category><category>Navigation Area</category><category>OAUTH</category><category>Relationship</category><category>Trial Environment</category><category>app for outlook</category><category>calculated fields</category><category>cumulative update</category><category>event handler</category><category>link entity</category><category>onpremise</category><category>power automate</category><category>reference panel</category><category>saved query</category><title>Dynamics 365 Education and Knowledge</title><description></description><link>https://charlesabikhirs.blogspot.com/</link><managingEditor>noreply@blogger.com (Charles Abi Khirs)</managingEditor><generator>Blogger</generator><openSearch:totalResults>117</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-5793396341327829131</guid><pubDate>Wed, 06 Aug 2025 19:25:00 +0000</pubDate><atom:updated>2025-08-13T00:04:20.875+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>How to Remove an Active Unmanaged Layer from the Ribbon in Power Apps (Dynamics 365 CRM) Using ribbondebug=true</title><description>&lt;div&gt;
    &lt;p&gt;
        Customizing the ribbon (command bar) in Dynamics 365 CRM via Power Apps can be a powerful way to tailor the user interface
        to your business needs.
        &lt;br /&gt;&lt;br /&gt;
        However, during development or testing, and over time, customizations can pile up and it&#39;s common that you might have unmanaged customizations.
        &lt;br /&gt;&lt;br /&gt;
        Therefore, if you&#39;re working in an environment with both managed and unmanaged layers, you may run into issues where an
        &lt;b&gt;active unmanaged layer&lt;/b&gt; causes unexpected behavior or UI inconsistencies.
        &lt;br /&gt;&lt;br /&gt;
        One of the most frustrating issues is when a ribbon behaves incorrectly due to an &lt;b&gt;active unmanaged layer&lt;/b&gt;,
        often created outside of a solution.
        &lt;br /&gt;&lt;br /&gt;
        Fortunately, there’s a powerful tool to inspect and resolve this: the &lt;b&gt;&lt;code&gt;ribbondebug=true&lt;/code&gt; URL parameter&lt;/b&gt;.
    &lt;/p&gt;
    &lt;p&gt;
        In this post, we&#39;ll walk through how to &lt;b&gt;identify and remove an active unmanaged layer from the ribbon&lt;/b&gt;
        in Power Apps for a model-driven Dynamics 365 CRM app using the &lt;code&gt;ribbondebug=true&lt;/code&gt; diagnostic tool.
    &lt;/p&gt;
    &lt;hr /&gt;
    &lt;h2&gt;🔍 What Is an Unmanaged Layer?&lt;/h2&gt;
    &lt;p&gt;In the context of Power Platform, customizations are stored in layers:&lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;
            &lt;b&gt;Managed layers&lt;/b&gt; come from imported managed solutions.
        &lt;/li&gt;
        &lt;li&gt;
            &lt;b&gt;Unmanaged layers&lt;/b&gt; are changes made directly in an environment, typically during development.
        &lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;
        Unmanaged layers take precedence over managed ones. If an unmanaged layer exists, it will override the behavior of any
        managed customizations underneath it. This is especially true for ribbon (command bar) customizations.
    &lt;/p&gt;
    &lt;hr /&gt;
    &lt;h2&gt;🎯 Why Remove the Unmanaged Layer?&lt;/h2&gt;
    &lt;p&gt;You might want to remove an unmanaged layer when:&lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;
            You accidentally made changes outside your managed solution.
        &lt;/li&gt;
        &lt;li&gt;
            The ribbon behaves differently than expected in higher environments.
        &lt;/li&gt;
        &lt;li&gt;
            You want to ensure consistency across environments by eliminating ad-hoc UI changes.
        &lt;/li&gt;
    &lt;/ul&gt;
    &lt;hr /&gt;
    &lt;h2&gt;
        🧠 What Is &lt;code&gt;ribbondebug=true&lt;/code&gt;?
    &lt;/h2&gt;
    &lt;p&gt;
        Appending &lt;code&gt;&amp;amp;ribbondebug=true&lt;/code&gt; to your Dynamics
        365 URL enables the &lt;b&gt;Command Checker Ribbon debugger&lt;/b&gt;,
        which provides insights into:
    &lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;
            Command definitions.
        &lt;/li&gt;
        &lt;li&gt;
            Custom actions.
        &lt;/li&gt;
        &lt;li&gt;
            JavaScript functions.
        &lt;/li&gt;
        &lt;li&gt;
            Button locations and behaviors.
        &lt;/li&gt;
        &lt;li&gt;
            And more importantly — unmanaged layers!
        &lt;/li&gt;
    &lt;/ul&gt;
    &lt;hr /&gt;
    &lt;h2&gt;⚠️ When to Use This&lt;/h2&gt;
    &lt;p&gt;Use this technique when:&lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;
            You&#39;re unsure where a ribbon customization is coming from.
        &lt;/li&gt;
        &lt;li&gt;
            The Power Apps UI doesn’t show all ribbon commands.
        &lt;/li&gt;
        &lt;li&gt;
            You suspect an unmanaged layer is overriding managed behavior.
        &lt;/li&gt;
    &lt;/ul&gt;
    &lt;hr /&gt;
    &lt;h2&gt;
        🛠️ Steps to Identify and Remove an Unmanaged Ribbon Layer&lt;/h2&gt;
    &lt;h3&gt;Step 1: Open Your Model-Driven App with Debug Mode Enabled&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;
            Log into &lt;a href=&quot;https://make.powerapps.com&quot; target=&quot;_blank&quot;&gt;https://make.powerapps.com&lt;/a&gt;.
        &lt;/li&gt;
        &lt;li&gt;
            Open your &lt;b&gt;model-driven app&lt;/b&gt;.
        &lt;/li&gt;
        &lt;li&gt;
            In the address bar, &lt;b&gt;append the following to the URL&lt;/b&gt;:
            &lt;pre&gt;https://yourorg.crm.dynamics.com/main.aspx?appid=XXXXXX&amp;amp;ribbondebug=true&lt;/pre&gt;
        &lt;/li&gt;
        &lt;li&gt;
            Press &lt;b&gt;Enter&lt;/b&gt; to reload the app in ribbon debug mode.
        &lt;/li&gt;
    &lt;/ol&gt;
    &lt;hr /&gt;
    &lt;h3&gt;Step 2: Inspect the Ribbon&lt;/h3&gt;
    &lt;p&gt;
        Once in debug mode, click on the ... of the ribbon and scroll down until you reach the Command Checker.
        You’ll see extra debug details like:
    &lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;
            Button IDs.
        &lt;/li&gt;
        &lt;li&gt;
            Command names.
        &lt;/li&gt;
        &lt;li&gt;
            Enable rules and display rules.
        &lt;/li&gt;
        &lt;li&gt;
            Ribbon source file.
        &lt;/li&gt;
    &lt;/ul&gt;
    &lt;br /&gt;
    &lt;div style=&quot;text-align: center;&quot;&gt;
        &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNPpE1x829QffaAJZBvmrZ7BfjeDG0_EkVJWOhBcVRQujz-xT-EWfDh3dTadslqAYEJFhxsxF2qh6CH0QVM-MGM7MoANAGzaHqxXVCsRJVwlu5X9CONPiy0-w0xczfs1yDFzocnK4CimqqGDVhnfn1qKaK8vebxoKpB1EYWXunm4gcAHvBEw_6xbXHCx4/s16000/0.png&quot; /&gt;
    &lt;/div&gt;
    &lt;br /&gt;
    &lt;hr /&gt;
    &lt;h3&gt;Step 3: Command Checker pane&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;
            The command checker pane will open and display all the buttons available for the entity.
        &lt;/li&gt;
        &lt;li&gt;
            Search for your specific ribbon button and click on it.
        &lt;/li&gt;
        &lt;li&gt;
            The button properties with its command will be displayed within the command checker pane.
        &lt;/li&gt;
    &lt;/ol&gt;
    &lt;br /&gt;
    &lt;div style=&quot;text-align: center;&quot;&gt;
        &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibEZ1k-QQpzaEX8QypiYi7kuA-CTjmkvsMkyUSUW4cPb5cd8qivNCxTHDXTDwzmlR_tAo-1A-gtV69k95YTxVsT2iZRyotSB-EM-eG7K-2Jp2pBKZtQ6USpZCMphlyipwmyy_LS1AJe6JTMc70BE0sTwQe40n1lnMj3v8cE3lU4kXJVakwL3DDWK36LVU/w406-h324/1.png&quot; /&gt;
    &lt;/div&gt;
    &lt;br /&gt;
    &lt;h3&gt;Step 4: Check the Unmanaged Layer&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;
            In the Button or Command Properties tab, click on &lt;b&gt;View button solution layers&lt;/b&gt; or &lt;b&gt;View command solution layer&lt;/b&gt; link.
        &lt;/li&gt;
        &lt;li&gt;
            You will have this option on all the elements that could have unmanaged layer.
        &lt;/li&gt;
        &lt;li&gt;
            Once you click on the link, you will be able to see the layers of this corresponding button element.
        &lt;/li&gt;
    &lt;/ol&gt;
    &lt;br /&gt;
    &lt;div style=&quot;text-align: center;&quot;&gt;
        &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtch7nIpc3nXKxwbiWa1U3TwwLPtSyx_OvbhZqFgNTkip4bvxJ9_VMdON5ecB6oI_P_uMs2dcBtuduE6RAJJOi4f8MwTv_O3UQeF_F6zVXXqSm6lAFlwYNqy8z2dj-PhwXf25Czx0jIHUssg_Qab7UxeBvy7jjsOW2B0vgi4YBO1i-heAaO34i9BgqBtA/s16000/2.png&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
    &lt;/div&gt;
    &lt;hr /&gt;
    &lt;h3&gt;Step 5: Remove the Unmanaged Layer&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;
            In case the ribbon button property contains an unmanaged layer, it will be displayed.
        &lt;/li&gt;
        &lt;li&gt;
            Click &lt;b&gt;Remove active component layer&lt;/b&gt; link to delete the unmanaged layer.
        &lt;/li&gt;
        &lt;li&gt;
            Confirm the removal to revert the ribbon to its managed version — effectively &quot;cleaning up&quot; customizations.
        &lt;/li&gt;
    &lt;/ol&gt;
    &lt;br /&gt;
    &lt;div style=&quot;text-align: center;&quot;&gt;
        &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCU1z9_hxCeL2Nn5zPxW14Ev-GU0AayWz9XlSrSZSOONCVmMXIAG4vy4TQ8KLeSW3FVV20feirfPqOb9meggIBC-_IFAUOj7azJjT5KVFZ1vH7y2UxXVxaLADJ52smVw9xXR_SMtWLxA3WTz4kgDnTkmWs9Zltakot50afz44CFFVT8sCjL3JmruMsYhY/s16000/3.png&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
        &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Vl3GHdb7vPoO1Zu3gSFbFU9Z1zOURvgXr-ia9DUvWkCfy_VK0SRjkmw6-XNfBm8yiuvzjBHcDaIPi4t4GvD8nnT73bS6UxT_pngMxdTuY1Ac5yOUb0LRH8FQ9aXzjYe_4FYW8Ge2-CHlw5SaI1AXBCVNLm4TIbYIyN7q46mxhnFIJh0f8TaPa8jM8Fo/s1600/4.png&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
    &lt;/div&gt;
    &lt;hr /&gt;
    &lt;h3&gt;Step 6: Regenerate ribbon metadata&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;
            Once the unmanaged layer is removed, it will disappear.
        &lt;/li&gt;
        &lt;li&gt;
            Now, you have to click &lt;b&gt;Regenerate ribbon metadata&lt;/b&gt; button.
        &lt;/li&gt;
        &lt;li&gt;
            This action will take around 15 minutes to finish.
        &lt;/li&gt;
        &lt;li&gt;
            Reload the app with and without &lt;code&gt;ribbondebug=true&lt;/code&gt; to confirm everything behaves correctly.
        &lt;/li&gt;
    &lt;/ol&gt;
    &lt;br /&gt;
    &lt;div style=&quot;text-align: center;&quot;&gt;
        &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsNFaQibjUX07Gqp1UJ1-30gPMnVfWwRN_u1BhhkDBqWl50WpkBJvDM4kSxbHNqjDKJqlY0ykCgG88w0bsOH_Dwq7lorVd4E5UqrXNfR9m1ACKgrzpxdDZUePOC-mTeqaH8AKIEwLL0s6zKeSijH7jLVWjHaqMGBQr8cjjfspzmmBstl6et74SOi_Eoao/s16000/5.png&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
        &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7z2jMNgkb649mHiyRzVfebjMBHTlEvqicnVeeyZ5zjc_ocSaI8LA6v4uIMmpI7uqAVq4_GYeZIN_ym7QmxaYWpazT5P3jEV6BiPybLKyQosQGJGA3fetQ-wRpQa7z62fBfz-t6ev1O3xstx-mFiLcYPf8V3vGjelZ8hV6qM6hfhvDQijf-DKOq4Gq0mI/s16000/6.png&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
    &lt;/div&gt;
    &lt;hr /&gt;
    &lt;h2&gt;💡 Best Practices&lt;/h2&gt;
    &lt;ul&gt;
        &lt;li&gt;Always work in &lt;b&gt;solutions&lt;/b&gt;, not directly in the default layer.&lt;/li&gt;
        &lt;li&gt;Keep unmanaged changes only in development environments.&lt;/li&gt;
        &lt;li&gt;Regularly export and back up your solutions.&lt;/li&gt;
        &lt;li&gt;Use &lt;b&gt;source control&lt;/b&gt; or ALM (Application Lifecycle Management) tools when possible.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;ul&gt;
    &lt;/ul&gt;
    &lt;hr /&gt;
    &lt;h2&gt;🧪 Example Use Case&lt;/h2&gt;
    &lt;p&gt;
        Imagine you deployed a managed solution that hides a &quot;Delete&quot; button for a custom entity. But in your test environment,
        the &quot;Delete&quot; button still appears. 
        &lt;br /&gt;By using &lt;code&gt;ribbondebug=true&lt;/code&gt;, you discover there&#39;s an &lt;b&gt;unmanaged display rule&lt;/b&gt; that&#39;s overriding your 
        managed rule. Removing the unmanaged layer resolves the issue immediately.
    &lt;/p&gt;
    &lt;hr /&gt;
    &lt;h2&gt;✅ Summary&lt;/h2&gt;
    &lt;p&gt;
        The &lt;code&gt;ribbondebug=true&lt;/code&gt; flag is a powerful (and underused) tool to diagnose and clean up ribbon issues in
        Dynamics 365 CRM. Use it to expose and identify unmanaged layers that affect the ribbon and then remove them.
        &lt;br /&gt;
        Removing an active unmanaged layer from the ribbon in Power Apps is an important step for maintaining clean and predictable
        UI customizations across environments.
    &lt;/p&gt;
        &lt;br /&gt;&lt;br /&gt;
        &lt;div&gt;
            Hope This Helps!
        &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2025/08/how-to-remove-active-unmanaged-layer.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNPpE1x829QffaAJZBvmrZ7BfjeDG0_EkVJWOhBcVRQujz-xT-EWfDh3dTadslqAYEJFhxsxF2qh6CH0QVM-MGM7MoANAGzaHqxXVCsRJVwlu5X9CONPiy0-w0xczfs1yDFzocnK4CimqqGDVhnfn1qKaK8vebxoKpB1EYWXunm4gcAHvBEw_6xbXHCx4/s72-c/0.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-5009396246908067669</guid><pubDate>Wed, 16 Jul 2025 17:06:00 +0000</pubDate><atom:updated>2025-07-16T20:06:20.910+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>DYNAMICS 365 CRM ADDING ENTITY METADATA  AFTER ADDING THE TABLE TO A SOLUTION</title><description>&lt;div class=&quot;separator&quot;&gt;
    &lt;div style=&quot;color: #171717; font-family: arial; font-size: medium; margin-left: 1em; margin-right: 1em;&quot;&gt;
        &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
            In Microsoft Dynamics 365 CRM, solutions function as the fundamental units for packaging, deploying, and managing system customizations across environments.
            &lt;br /&gt;&lt;br /&gt;
            By default, when a table is added to a solution, only a subset of its components is included.
            &lt;br /&gt;&lt;br /&gt;
            This can lead to deployment failures or functional discrepancies if dependent components (such as views, forms, or metadata) are omitted.
            &lt;br /&gt;&lt;br /&gt;
            To ensure consistency and completeness during solution transport, it&#39;s often necessary to explicitly include additional components within the solution.
            &lt;br /&gt;&lt;br /&gt;
            One such critical component is the &lt;strong&gt;table’s metadata&lt;/strong&gt;, which governs schema-level definitions and behaviors essential for proper execution in target environments.
            &lt;br /&gt;
        &lt;/h3&gt;
        &lt;div&gt;
            This article covers how to manually add only the entity metadata after including the table in a solution:
            &lt;br /&gt;&lt;br /&gt;
            🧠 Key insights into metadata and why it matters:
            &lt;ul&gt;
                &lt;li&gt;
                    &lt;strong&gt;🧱 Table Segmentation:&lt;/strong&gt;
                    &lt;br /&gt;
                    In Dynamics 365, you can segment tables by including specific components or metadata when adding them to a solution.
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;strong&gt;🔍 Including Metadata:&lt;/strong&gt;
                    &lt;br /&gt;
                    When segmenting a table, you have the option to include &quot;table metadata&quot; that encompasses properties like auditing, duplicate detection, change tracking etc...
                    without including the table&#39;s individual components like columns, views, forms, or other components.
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;strong&gt;💡 Why Include Metadata?&lt;/strong&gt;
                    &lt;br /&gt;
                    This is useful when you need to apply changes to the table&#39;s core settings or behaviors without needing to include all the table&#39;s components in the solution.
                    &lt;br /&gt;
                    For example, if you enabled auditing or change tracking in your development environment and want these changes to be deployed to another environment, you must include the table metadata.
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;strong&gt;🧩 Including metadata ensures:&lt;/strong&gt;
                    &lt;ul&gt;
                        &lt;li&gt;
                            Consistency across environments.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Completeness of the table’s configuration.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Avoidance of manual rework or patching missing components post-deployment.
                        &lt;/li&gt;
                    &lt;/ul&gt;
                    By explicitly including entity metadata after adding the table, you avoid pitfalls and ensure that your solution behaves reliably across environments.
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;strong&gt;🎯 All or Nothing:&lt;/strong&gt;
                    &lt;br /&gt;
                    Currently, it&#39;s an &quot;all or nothing&quot; approach when including metadata; you can&#39;t selectively choose which metadata to include.
                    However, Microsoft says they are aware of the need for selective metadata inclusion.
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
            &lt;/ul&gt;
            ✅ If you&#39;ve already added a table and forgotten to include metadata, here are the steps to do it &lt;i&gt;without removing the entity from the solution&lt;/i&gt;:
            &lt;ul&gt;
                &lt;li&gt;
                    &lt;strong&gt;Using Classic Interface:&lt;/strong&gt;
                    &lt;ul&gt;
                        &lt;li&gt;
                            Go to Settings &amp;gt; Solutions and open your existing solution.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Click Add Existing &amp;gt; Entity to verify if the table is already added.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Open the Solution and locate the table already included.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Click on the table name to open its configuration screen within the solution.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Once inside the table&#39;s configuration window, click &quot;Add Subcomponents&quot; button.
                            &lt;br /&gt;
                            &lt;img border=&quot;0&quot; data-original-height=&quot;404&quot; data-original-width=&quot;724&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRcxJTsRarsvVmFF_4fe3CG193ThfvbExspna2akqmi7rYmVluzhq05_oc2bhx-qSpAMuib62j2OW9_P7k2EOUBSGH53VVzQZlTdDSxyKHng6ax4pZ1unhkYSX5g0dCqtkz62J_CRlbggYLlcCPiLRuBvLGMg0dfzXqb5vXlNI7f6FdcpGXx-KAR3R3N4/s16000/2.png&quot; /&gt;
                            &lt;br /&gt;&lt;br /&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            In the Add components pop-up, you’ll see tabs for Forms, Views, Fields etc. To specifically include the metadata, tick the &quot;Include entity metadata&quot; checkbox.
                            &lt;br /&gt;
                            &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAZVKm1a8vTboj7hLnoi6xl2y2BJprVXdcnVHyYtgLKXJDfC35pvMPnRwiL-Gc3tPpEsknk_x28zRa9oyzh-p2pwO-bQdfnlYwPz97Hq-sVxeMPMPgJO_xzRIj5cvfdurslJz7fEgin0UMKGydooLLYjelv-c6IRVtFqRJibrt2tX9VchjNuAQjoRIFZc/s16000/3.png&quot; /&gt;
                            &lt;br /&gt;&lt;br /&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            Click Finish after including the necessary metadata.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Back in the solution window, Publish All Customizations to ensure changes take effect.
                            &lt;br /&gt;&lt;br /&gt;
                        &lt;/li&gt;
                    &lt;/ul&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;strong&gt;Using Power Apps Maker Portal&lt;/strong&gt;
                    &lt;ul&gt;
                        &lt;li&gt;
                            Open the Power Apps Maker Portal and select the appropriate Environment.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Go to Solutions, and open your existing solution.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Click Add Existing &amp;gt; Table to verify if the table is already added.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Locate the table already included.
                        &lt;/li&gt;
                        &lt;li&gt;
                            Click on the table name to open its settings screen within the solution.
                        &lt;/li&gt;
                        &lt;li&gt;
                            From the ribbon, click Advanced &amp;gt; Table Segmentation Properties.
                            &lt;br /&gt;
                            &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtxZTNx-gNV1lD2NWKvbp2W9YwsJkP1vrp5pasVGfDDMeBg2YYvvPwXHkfW-udEbODxOwmNtrSdPzhVogH7_ycKyaiNMnVP69DsA8iApCXupg6NCBVq-pxou-Bfd8MBwSAB28pjemDXwHEi4c5Nh7wUFNJnEvq1GPvSOFAR42aazyK7PjwQ4SOPVKR8qk/s16000/0.png&quot; /&gt;
                            &lt;br /&gt;&lt;br /&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            In the Table Segmentation Properties pane, tick the &quot;Include table metadata&quot; checkbox.
                            &lt;br /&gt;
                            &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJl4WS-EKsABEETLPvNjMDO95fLkHJAaZF2Th0L3u3GKcxgbWoNWT2pxhOeUNFiqRv9R0qAru6rDOVsVxv7iYrRzlojsNVQkVwEwZfmB5e7xtbXQ-KBBwZhQIS9eGqA7zrlZUFM3nS7Uh-8z4Um9x0fPQK2P8WzxpimdJHw1RjWh7yJw3XflakLkLwqrc/s16000/1.png&quot; /&gt;
                            &lt;br /&gt;&lt;br /&gt;
                        &lt;/li&gt;
                        &lt;li&gt;
                            Click Save and publish customizations to ensure changes take effect.
                        &lt;/li&gt;
                    &lt;/ul&gt;
                &lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;
        &lt;br /&gt;&lt;br /&gt;
        &lt;div&gt;
            Hope This Helps!
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2025/07/dynamics-365-crm-adding-entity-metadata.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRcxJTsRarsvVmFF_4fe3CG193ThfvbExspna2akqmi7rYmVluzhq05_oc2bhx-qSpAMuib62j2OW9_P7k2EOUBSGH53VVzQZlTdDSxyKHng6ax4pZ1unhkYSX5g0dCqtkz62J_CRlbggYLlcCPiLRuBvLGMg0dfzXqb5vXlNI7f6FdcpGXx-KAR3R3N4/s72-c/2.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-6539265936318786407</guid><pubDate>Mon, 07 Jul 2025 17:52:00 +0000</pubDate><atom:updated>2025-07-07T20:52:45.999+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><category domain="http://www.blogger.com/atom/ns#">Solution</category><title>DYNAMICS 365 CRM HOW TO CHECK THE IMPORT SOLUTION PROGRESS</title><description>&lt;div class=&quot;separator&quot;&gt;
    &lt;div style=&quot;color: #171717; font-family: arial; font-size: medium; margin-left: 1em; margin-right: 1em;&quot;&gt;
        &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
            Importing solutions to the DEV, TEST, UAT or PROD environments in Dynamics 365 CRM is a common activity for system administrators and developers.
            &lt;br /&gt;&lt;br /&gt;
            However, when importing large or complex solutions, it can be frustrating to sit and wonder: How far along is the import? or Is it stuck?
            &lt;br /&gt;&lt;br /&gt;
        &lt;/h3&gt;
        &lt;div style=&quot;text-align: center;&quot;&gt;
            &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmhF-N0gQW9p24LiN5EWKSB7mFvVeKGhKZ8VtuKcHBUmafz65E-lPU5PLJp6uHRzTP5KH2tyPSBvO2OWyc7v76t_2kw3Qh-keAYCDb36lxxZjgj_7sD0VMpF6-WGxhVeuo5aeDSj5ybg5hVw-pTi5ABsvzYCXr3e1njZDkTfPXeLeGIzTOr0e859wm9Ws/s16000/00.png&quot; /&gt;
            &lt;br /&gt;&lt;br /&gt;
            &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJg8TBBgN6KEF_X-0X0_a-n1UHmXGvghsTX1yiswwQw3WNy19v4a8o2e281MhPp-qsiiLQqdOQZh8zbYhaZhu0-Dc3wEz6tnfIdZcj7rpG1uHz_digTp74lcyXiVCYiM-bBxQBqrndUdFJ_9Tjf7nO8AEZJQ0j5CJV5RTgSo5cVkmwSzfwtmPT8tSjo24/s16000/0.png&quot; /&gt;
            &lt;br /&gt;&lt;br /&gt;
        &lt;/div&gt;
        Luckily, with the right tools, you can track the progress of a solution import job with actual percentages — giving you more visibility and control over your deployment processes.
        &lt;br /&gt;&lt;br /&gt;
        &lt;div&gt;
            In this post, we’ll explore the steps needed to see the solution import progress:
            &lt;ul&gt;
                &lt;li&gt;
                    &lt;strong&gt;Step 1:&lt;/strong&gt; Open Dynamics CRM Advanced Find, where the solution is being imported.&lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;strong&gt;Step 2:&lt;/strong&gt; In Look for: Select &lt;i&gt;Import Jobs&lt;/i&gt; entity and give the condition &lt;i&gt;Created On = Today&lt;/i&gt; to narrow down the result.
                    &lt;br /&gt;
                    &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOyo9QUMf5p4qRKY80SqHBbrLwOL4vDvAwEt381Of456AuhHg_9coB1zcLplkFaZs7DLic8MISgXjO3xr023Wvv8GFMPpbJHJIKBd2hqrcv_j9kDUkhnPAuDcro2dHVmZucSk4X_IxJ2CN2QyjV4PwWPCnnqU3KvDeONeMrQOohecYHJ6aLjgmqQZErPI/s16000/1.png&quot; /&gt;
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;strong&gt;Step 3:&lt;/strong&gt; Make sure that the column &lt;b&gt;Progress&lt;/b&gt; is added to the view.
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;strong&gt;Step 4:&lt;/strong&gt; Identify your Solution Name and check the Progress (%) column in percentage.
                    &lt;br /&gt;
                    &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrlFpy0jfucRkHdCKdM8cnpMY7m6ZoB_JoSAs4LXSh3Mi9Z1rcPF_09JthaXAJ6Qu4OBETRCVxIesc6TJTp7ckuK0cw6XqSxkcqOB52PSvAKWMzuEwprCjHBX1rpQVHVux9ebPbSdAq4Y_kASsy4Z8-RoznX7HSETl1HAoFTXUzQVDVP_cbc4vbEgIsEU/s16000/2.png&quot; /&gt;
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;strong&gt;Step 5:&lt;/strong&gt; Once the import is done, you can verify that the progress is now 100.
                    &lt;br /&gt;
                    &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf-FlDPi9ksnvnF0ZSKJw02JDUibcVL1Ocw1-4e_WcqfxXkhOpjhPSbeCcHbAR4SzmazcMIAn96cUQ92PBjG3auhjfHx016JP5QGk5d9vx2yV-QuEh1lRqvQu-hfwuJBYcf9JqNX0EAggvRQPNmRnCh7lxhMthRBt4Tkl4Jnl48rFJxDqSxfnDiUzbAM8/s16000/3.png&quot; /&gt;
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;b&gt;&lt;u&gt;Bonus Tips:&lt;/u&gt;&lt;/b&gt;
            &lt;br /&gt;
            &lt;ul&gt;
                &lt;li&gt;
                    You can use the &lt;strong&gt;Solution Transfer Tool&lt;/strong&gt; in XrmToolBox to help tracking the progress of solution imports.
                &lt;/li&gt;
                &lt;li&gt;
                    You can use &lt;strong&gt;Web API&lt;/strong&gt; calls, to monitor the import status by querying the importjob table in Dataverse.
                    &lt;br /&gt;
                    You can query it directly using Web API tools or Power Automate.
                    &lt;i&gt;[EnvironmentURL]/api/data/v9.2/importjobs?$select=progress,statuscode,name&lt;/i&gt;
                &lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;
        &lt;div&gt;
            Hope This Helps!
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2025/07/dynamics-365-crm-how-to-check-import.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmhF-N0gQW9p24LiN5EWKSB7mFvVeKGhKZ8VtuKcHBUmafz65E-lPU5PLJp6uHRzTP5KH2tyPSBvO2OWyc7v76t_2kw3Qh-keAYCDb36lxxZjgj_7sD0VMpF6-WGxhVeuo5aeDSj5ybg5hVw-pTi5ABsvzYCXr3e1njZDkTfPXeLeGIzTOr0e859wm9Ws/s72-c/00.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-337140231921505434</guid><pubDate>Thu, 11 Apr 2024 21:10:00 +0000</pubDate><atom:updated>2024-04-12T00:10:23.367+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>HOW TO GET MICROSOFT DYNAMICS 365 FORM TYPE IN JAVASCRIPT</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        When working with forms, you have the ability to create different types of forms based on your needs : Main Form, Quick View Form, Quick Create Form, or Card Form.
        &lt;br /&gt;
        &lt;img alt=&quot;Form type 0&quot; border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipRcRNL7fIwz18ExvmkFiGBBuQimAmqxqbjPW8WQcius-X0DdS85YjrhkYMRLXoIXAEHa526v967y0Tar1aY8vhfW5sCm5KPfRDe0IT2Ca8dYO_CtMpqUR5mvTtXZrjjFpw0q59SYTiauUhn05e1PloOQNNgcwAiWEbPC3B2aiEplQ1LuOasYMH2WvTR0/w614-h640/0.png&quot; title=&quot;Form type 0&quot; width=&quot;384&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
        The most common type is the Main Form which is the form where most of time the users work.
        The main form itself has different status that represents specific functionality or use, this is known as well as form type .
        &lt;br /&gt;&lt;br /&gt;
        The purpose of this post is &lt;b&gt;to know what are the different types of the Main form and how to get it using JavaScript&lt;/b&gt;,
        so you will have the ability to change its behavior based on its type that will be reflected for end users.
        &lt;br /&gt;&lt;br /&gt;
        Getting the type of form can be done in JavaScript using the function &lt;i&gt;formContext.ui.getFormType()&lt;/i&gt;.
    &lt;/h3&gt;
    &lt;div&gt;
        The following JavaScript function will display a popup message with the form type:
        &lt;br /&gt;
        &lt;i&gt;
            &lt;br /&gt;function getFormType(context) {
            &lt;br /&gt;var formContext = context.getFormContext();
            &lt;br /&gt;var formType = formContext.ui.getFormType();
            &lt;br /&gt;var messageToDisplay = &quot;&quot;;
            &lt;br /&gt;switch (formType) {
            &lt;br /&gt;case 1:
            &lt;br /&gt;messageToDisplay = &quot;Create / Quick Create form&quot;;
            &lt;br /&gt;break;
            &lt;br /&gt;case 2:
            &lt;br /&gt;messageToDisplay = &quot;Update form&quot;;
            &lt;br /&gt;break;
            &lt;br /&gt;case 3:
            &lt;br /&gt;messageToDisplay = &quot;Read Only form&quot;;
            &lt;br /&gt;break;
            &lt;br /&gt;case 4:
            &lt;br /&gt;messageToDisplay = &quot;Disabled form&quot;;
            &lt;br /&gt;break;
            &lt;br /&gt;case 6:
            &lt;br /&gt;messageToDisplay = &quot;Bulk Edit form&quot;;
            &lt;br /&gt;break;
            &lt;br /&gt;default:
            &lt;br /&gt;messageToDisplay = &quot;Undefined form&quot;;
            &lt;br /&gt;}
            &lt;br /&gt;var alertMessage = { text: messageToDisplay };
            &lt;br /&gt;Xrm.Navigation.openAlertDialog(alertMessage, null);
            &lt;br /&gt;}
        &lt;/i&gt;
        &lt;br /&gt;
        &lt;img alt=&quot;form type 1&quot; border=&quot;0&quot; height=&quot;490&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQxQTRLs9nREdhck9TTH4Xg6MWD5buz2a-8xz7k94EX0CCR9ig23UwwUkS3VkpSIzk9KHhNhm71QOpUgTrVysDxRNYW2ZjtZcLR3j-trVa9yDZaXm_8t3Sb3l8Zl5OH19gdzWpRv_HDaccF6jsAR01fAESqDvcAc2KZfPQ3VxOFJ7P5F4_7PwPJq8JLDg/w640-h490/1.png&quot; title=&quot;form type 1&quot; width=&quot;640&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
        &lt;img alt=&quot;form type 2&quot; border=&quot;0&quot; height=&quot;528&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikNnMkT0k-lNvwX2fvrVJkLyhLfhyphenhyphendOrG2oShhflLdnr3b5k8HKyK_cHnYJI3HsKG_0p2oniTaesFyKmYAapOkvfU-34jS-Sa0EbZHikJBbM63UCQp2e-K7doipb3ShhjWKmiF3_hS1Q-y35Qc-KBWgdC4ZYmXCTxX_rNRCZeFZNc0PBQKsOK11tIKMu0/w640-h528/2.png&quot; title=&quot;form type 2&quot; width=&quot;640&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;

        The below table lists the different Dynamics 365 form types and their respective JavaScript return values:
        &lt;br /&gt;
        &lt;strong&gt;Type&lt;/strong&gt;: Number
        &lt;br /&gt;
        &lt;strong&gt;Description&lt;/strong&gt;: Form type. Returns one of the following values
        &lt;br /&gt;&lt;br /&gt;
        &lt;table border=&quot;0&quot;&gt;
            &lt;thead&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Values&lt;/b&gt;&lt;/td&gt;&lt;td width=&quot;10px&quot;&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Form type&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;&lt;td align=&quot;center&quot;&gt;0&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Undefined&lt;/td&gt;&lt;/tr&gt;
                &lt;tr&gt;&lt;td align=&quot;center&quot;&gt;1&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Create / Quick Create&lt;/td&gt;&lt;/tr&gt;
                &lt;tr&gt;&lt;td align=&quot;center&quot;&gt;2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Update&lt;/td&gt;&lt;/tr&gt;
                &lt;tr&gt;&lt;td align=&quot;center&quot;&gt;3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Read Only&lt;/td&gt;&lt;/tr&gt;
                &lt;tr&gt;&lt;td align=&quot;center&quot;&gt;4&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;/tr&gt;
                &lt;tr&gt;&lt;td align=&quot;center&quot;&gt;6&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Bulk Edit&lt;/td&gt;&lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
        &lt;br /&gt;&lt;br /&gt;
    &lt;/div&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2024/04/how-to-get-microsoft-dynamics-365-form.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipRcRNL7fIwz18ExvmkFiGBBuQimAmqxqbjPW8WQcius-X0DdS85YjrhkYMRLXoIXAEHa526v967y0Tar1aY8vhfW5sCm5KPfRDe0IT2Ca8dYO_CtMpqUR5mvTtXZrjjFpw0q59SYTiauUhn05e1PloOQNNgcwAiWEbPC3B2aiEplQ1LuOasYMH2WvTR0/s72-w614-h640-c/0.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-5931228768316380290</guid><pubDate>Fri, 29 Dec 2023 13:56:00 +0000</pubDate><atom:updated>2023-12-29T15:56:42.135+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>DISABLE ALL FORM FIELDS IN DYNAMICS 365 USING JAVASCRIPT</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        To make the form read-only in Dynamics 365 you have 3 options: changing record status to Inactive, Business rule, JavaScript.
        &lt;br /&gt;&lt;br /&gt;
        The purpose of this article is to know how to make all form fields disabled with JavaScript.
    &lt;/h3&gt;
    &lt;div&gt;
        Changing record status to Inactive might not very suitable for some cases where cascading rules might be applied to children records.
        &lt;br /&gt;&lt;br /&gt;
        On the other hand, even though it is a low code solution, using business rule to make all fields read-only will be very time consuming
        especially if a field is removed from the form or a new field is added to the form.
        &lt;br /&gt;&lt;br /&gt;
        However, using JavaScript will allow you to set all form fields to read-only dynamically with a small piece of code and you can do it
        based on a certain condition of an attribute value.
        &lt;ol&gt;
            &lt;li&gt;
                Make read-only the whole fields of a form based on a certain condition
                &lt;br /&gt;
                &lt;img alt=&quot;Form readonly&quot; border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJCHl7ALoBG8Hq_pAAxjoD9Lh30gojLJya6KZ8i95oxaU8jSVKFeB98Csyh8ePOOpq3cpGTgVAaNNsCh72gmJDHMHYAi9aXgbWGlw40F1-emW8c_ReJJkCGSR2pNLJlOXYPTcfk3cirreft2B3xghMaKfr6D8jRbU0A1DIF7lDRDMmHt5xuY1TOQBGf2A/w576-h640/1.png&quot; title=&quot;Form readonly&quot; width=&quot;576&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                The below function can be called on the event you need and will loop through all the fields to make them read-only
                &lt;br /&gt;
                &lt;i&gt;
                    &lt;br /&gt;// Disable all form fields
                    &lt;br /&gt;function disableAllFormFields(context) {
                    &lt;br /&gt;var formContext = context.getFormContext();
                    &lt;br /&gt;formContext.ui.controls.forEach(function (control, i) {
                    &lt;br /&gt;if (control &amp;&amp; control.getDisabled &amp;&amp; !control.getDisabled()) {
                    &lt;br /&gt;control.setDisabled(true);
                    &lt;br /&gt;}
                    &lt;br /&gt;});
                    &lt;br /&gt;}
                &lt;/i&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2023/12/disable-all-form-fields-in-dynamics-365.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJCHl7ALoBG8Hq_pAAxjoD9Lh30gojLJya6KZ8i95oxaU8jSVKFeB98Csyh8ePOOpq3cpGTgVAaNNsCh72gmJDHMHYAi9aXgbWGlw40F1-emW8c_ReJJkCGSR2pNLJlOXYPTcfk3cirreft2B3xghMaKfr6D8jRbU0A1DIF7lDRDMmHt5xuY1TOQBGf2A/s72-w576-h640-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-3669470625509173492</guid><pubDate>Wed, 06 Dec 2023 21:03:00 +0000</pubDate><atom:updated>2023-12-06T23:03:54.306+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>CHANGE ROLLUP FIELD RECURRENCE SCHEDULE IN DATAVERSE / DYNAMICS 365</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        One of the features in Dynamics 365 is the rollup field type where you can perform aggregation and calculation of data in a parent record based on child records.
        &lt;br /&gt;&lt;br /&gt;
        You create a rollup field by adding a new field, choosing the field and data type, and building the logic for the calculation.
    &lt;/h3&gt;
    &lt;div&gt;
        One of the important consideration of a rollup field is the frequency of its calculation where, for each entity that contains a rollup field,
        a recurring system job will be automatically created in order to calculate the rollup field.
        This calculation is done asynchronously based on a frequency set.
        &lt;br /&gt;&lt;br /&gt;
        By default, it is set to 1 hour, however, you can change this frequency by following the below steps.
        &lt;ol&gt;
            &lt;li&gt;
                In the environment, go to Settings page and under &lt;i&gt;Audit and logs&lt;/i&gt; menu, click on &lt;i&gt;System jobs&lt;/i&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;rollup field 0&quot; border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjFE2LEA3pLbZkBWYYbY7y-mf7_JBb6l-49dbP3yjyStRuOlmTfEXGHv5i_E21ymkZ6DshTOJ3UyJ13JHW8oSjQ53f4bc7wVHby917ZjEGidIo6sPnwm2uhEJKa1nITmP0nVKXDYMT8EerWI1oDusyEDQSmvbCcK5tspR4TTcl4St-MaY31UIPTUvH_3s/w482-h640/0.png&quot; title=&quot;rollup field 0&quot; width=&quot;482&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Choose the view &lt;i&gt;All Rollup Fields Calculation Jobs&lt;/i&gt; and open the calculate rollup fields job which contains the entity name.
                For this article, the entity is account.
                &lt;br /&gt;
                &lt;img alt=&quot;rollup field 1&quot; border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvR6JPArU8mig83qgghSSuMl1NFsMW1oPNDcRL6apYfIGwvUhrSnyLrc1cCfHJHAKt50onW31MnfzI-go02JPRwsYPMTFrRo34t5DdxuTEyA7mA37Hz8xGpBVpYmJf8FqRHlGCV592ylgUS9SHxMIN4JuNSBKjVY1nwgrRYWukom6I4Gnc3kpmHDfaRl8/w640-h192/4.png&quot; title=&quot;rollup field 1&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;&lt;li&gt;
                Open the Job and click on Actions -&amp;gt; Modify Recurrence
                &lt;br /&gt;
                &lt;img alt=&quot;rollup field 2&quot; border=&quot;0&quot; height=&quot;212&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkVzxJntQe2c-SWRPuVlS4kRShnC6Bz1gUD4dozyfikPqKAKWInQPdzsLGjeP-iHvSrIL3cgMFFJHLs_l5w4N2zUw7q8qmY8uy7NPJZioltD4G8pbD55PrKUM_IbtCH7rlHTu4TQaEpc16uLVqLlQt3YyE83A9uzHHv7Qj_pKHbOu319n8DA5E6JSr5Bw/w640-h212/2.png&quot; title=&quot;rollup field 2&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt; &lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                In the Modify Recurrence page, adjust the frequency as per needed and click &lt;b&gt;OK&lt;/b&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;rollup field 3&quot; border=&quot;0&quot; height=&quot;454&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaX0sKlnV9wTA1vW9G8TGDcgQolvXkxocFWU4tqSJRljZBObebsuy9SCfZhK7qycY_-8ES7E-6yG6-938TQgi3-nY8T5I2P9ZIkpvJirv92_LfLmg-mSmVitc4PX7QtOicqOZlGZbiJ2wrcB7Sxe9yMz0QdBIwb_zy5TvqkC3YZNOt916egVwD5heQes8/w640-h454/3.png&quot; title=&quot;rollup field 3&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
        On the other hand, you might have scenarios where you need that the calculation to be done immediately, therefore, you can force the calculation of a rollup field using JavaScript or C# as per
        &lt;a href=&quot;https://charlesabikhirs.blogspot.com/2019/08/crmd365-how-to-recalculate-rollup.html&quot; target=&quot;_blank&quot;&gt;this article&lt;/a&gt;
        &lt;br /&gt;&lt;br /&gt;
    &lt;/div&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2023/12/change-rollup-field-recurrence-schedule.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjFE2LEA3pLbZkBWYYbY7y-mf7_JBb6l-49dbP3yjyStRuOlmTfEXGHv5i_E21ymkZ6DshTOJ3UyJ13JHW8oSjQ53f4bc7wVHby917ZjEGidIo6sPnwm2uhEJKa1nITmP0nVKXDYMT8EerWI1oDusyEDQSmvbCcK5tspR4TTcl4St-MaY31UIPTUvH_3s/s72-w482-h640-c/0.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-7867110035123411907</guid><pubDate>Wed, 25 Oct 2023 20:46:00 +0000</pubDate><atom:updated>2023-10-25T23:46:45.198+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>OPEN DYNAMICS 365 ADVANCED FIND BY DEFAULT IN DETAILED MODE</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        To the ones who use Advanced Find, today&#39;s article is related to how you can optimize its usage.
        &lt;br /&gt;&lt;br /&gt;
        By default, and when you open the Advanced Find page, it will display the current view you are seeing, with the conditions predefined.
        &lt;br /&gt;
        For example Active accounts or Active contacts will display the condition &lt;b&gt;Status&lt;/b&gt; | &lt;b&gt;Equals&lt;/b&gt; | &lt;b&gt;Active&lt;/b&gt;.
        &lt;br /&gt;&lt;br /&gt;
        In addition, you will notice that you will not be able to apply more filters in the Advanced Find, unless you click the &lt;b&gt;Details&lt;/b&gt; button.
    &lt;/h3&gt;
    &lt;div&gt;
        In this article, we will see &lt;b&gt;how to open the Advanced Find in detailed mode&lt;/b&gt; and directly change the filters without clicking additional button
        &lt;ol style=&quot;text-align: left;&quot;&gt;
            &lt;li&gt;
                &lt;b&gt;Advanced Find&lt;/b&gt; is by default opened in &lt;b&gt;Simple&lt;/b&gt; mode
                &lt;br /&gt;
                &lt;img alt=&quot;Advanced find 1&quot; border=&quot;0&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBdniDjM5Hh4tCzfyKI0svbaeGrlX4P-gWcIXwtDa1wB_wENtZIk5V8KUME4Ttshy4hRhreqyN8aAMLyp9wgeWGj4INb7ntKL6ZDz5ubs3OMFvQMyy_d7PLn4N1VUOHIK8CLKXsOLlkWwP5-0TRIu9pqnjH4M2GsOMUGgyYrTpFvY30TisPF1KSK1Q2l4/w640-h214/1.png&quot; title=&quot;Advanced find 1&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Once you click &lt;b&gt;Details&lt;/b&gt; button, you can change the existing filters and add new ones if needed
                &lt;br /&gt;
                &lt;img alt=&quot;Advanced find 2&quot; border=&quot;0&quot; height=&quot;222&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRaXuDps1nvw085fzTnr1yhZS4e4rzL5GzucZZ-Dut_bfjmd8UhyphenhyphenPY6Q9XFtRleJQp5IAh9FQEDi4vuQZSR-mcjDRkWaycHfkMmGuiKqzacQvJKy6_kpHFr5ib60xMb1z-HRIwH8Jky9AXTwyz7DM5GrYOKjchET-u7bBv7VaXg5a3lROBZrXEd3o-8Bw/w640-h222/2.png&quot; title=&quot;Advanced find 2&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;Changing default mode&lt;/b&gt; of the Advanced Find
                &lt;br /&gt;
                The user can change the default mode of the Advanced Find by going to his personal options under &lt;b&gt;Personalizations Settings&lt;/b&gt; menu
                &lt;br /&gt;
                &lt;img alt=&quot;Advanced find 3&quot; border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEiSvTOME-tdDWXkGur7qaRsRbShH2-ME5KnE7oTUvmuP7uDK82K9Fx71QAj2yDXUyRPz0iHIGj06-nnN3f17QOIvuhaHOFNsADWHTZ2QfPR6HXwU8cZacvgAOrRAq7Ldq9uMKGOZzCPBKFgZdZ-oFrNzmYDXBkGTlTlJlxusg1wcLIkivYXUfWuhKSBw/w338-h640/3.png&quot; title=&quot;Advanced find 3&quot; width=&quot;338&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                In the Personal Options page, under the General tab, set the &lt;b&gt;Select the default mode in Advanced find&lt;/b&gt; to &lt;b&gt;Detailed&lt;/b&gt; instead of &lt;b&gt;Simple&lt;/b&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;Advanced find 4&quot; border=&quot;0&quot; height=&quot;270&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjF3Obxx3iB9pYVYwoAbyhgsg81OOagI_j3t6cTCDdQ2_AMztg72V-t2t7YHYOPEow-HuWkeAnhgvcKLefCTtazKFfYldLXxzyqXopl96nJw8VtBe0fzhgnKQEGQtWjHAMvmDFQdmmQgGn8576CYYSCbdhpPTT-72Dr0jwRUjup_P_1EKvnSxrn-vWQf4/w640-h270/4.png&quot; title=&quot;Advanced find 4&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;Advanced Find opened in Detailed mode&lt;/b&gt;.
                Once the setting is changed, the Advanced Find will open in Detailed mode where the user can directly change or apply more filters
                &lt;br /&gt;
                &lt;img alt=&quot;Advanced find 5&quot; border=&quot;0&quot; height=&quot;228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf2WCRc3xeV-6pPN-JGSyeHeaJRfekrlnz351tZWP-7nF4QQh0hVzUBgx9pIzNSzlWiiAIrzQwcrJOnuzHiDnp1fuhskd1WWzfSiBY03RBIekbpqW00VbxyA2CMSRx4rinr9n9vFlD-juTQ9b35hqOVHJPNNMH9ElzVbawgzW501XTOstXIrgkEpNyO98/w640-h228/5.png&quot; title=&quot;Advanced find 5&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2023/10/open-dynamics-365-advanced-find-by.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBdniDjM5Hh4tCzfyKI0svbaeGrlX4P-gWcIXwtDa1wB_wENtZIk5V8KUME4Ttshy4hRhreqyN8aAMLyp9wgeWGj4INb7ntKL6ZDz5ubs3OMFvQMyy_d7PLn4N1VUOHIK8CLKXsOLlkWwP5-0TRIu9pqnjH4M2GsOMUGgyYrTpFvY30TisPF1KSK1Q2l4/s72-w640-h214-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-5552805998160668017</guid><pubDate>Wed, 20 Sep 2023 19:59:00 +0000</pubDate><atom:updated>2023-10-11T23:40:02.082+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>SEARCH BY GUID IN DYNAMICS 365</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        Is it possible to search for a CRM record using its GUID ?
        &lt;br /&gt;&lt;br /&gt;
        Well, &lt;b&gt;NO&lt;/b&gt; it is not possible and &lt;b&gt;YES&lt;/b&gt; it is possible!!!
    &lt;/h3&gt;
    &lt;div&gt;
        As always has been, it is not possible to search for a record by its guid in Advanced Find and in the Quick view search.
        &lt;br /&gt; &lt;br /&gt;
        However, in the model-driven app &lt;b&gt;Edit filters&lt;/b&gt; functionality, it is possible to search for a record by its Guid.
        &lt;br /&gt;&lt;br /&gt;
        How it works, let&#39;s check the 3 different places where we can search for a records.
        &lt;ol style=&quot;text-align: left;&quot;&gt;
            &lt;li&gt;
                &lt;b&gt;Advanced Find search&lt;/b&gt;
                &lt;br /&gt;
                Using the Advanced find feature, you cannot put a GUID value to search for.
                You will directly receive an error notification eventhough when you download the fetchXml, the Guid of the record will be there.
                &lt;br /&gt;
                &lt;img alt=&quot;Guid search 1&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwmJgWAu1RLgq9p1tNkOdJBxuvXuM4EzJXMvPcXgP8u8PwbjzmXYrPZGRmIL0IeV5STp6u3-Nn_mTLePH6beDpNOO5Si08zzau6FNe0O7g_kOSk5kxvcS32zdh_-gN5a-GTUkfHru8rz3UNVRF-tT2jlJ4xZ2PDE7oOfaEbDj0UjFrFjaMYwQUyHz-zig/w640-h254/1.png&quot; title=&quot;Guid search 1&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;Quick view search&lt;/b&gt;
                &lt;br /&gt;
                Using the search box on top of the view, you can enter a GUID value,
                but you will not have any data in the result since it will search for the guid value within the columns selected in the quick find view.
                &lt;br /&gt;
                &lt;img alt=&quot;Guid search 2&quot; border=&quot;0&quot; data-original-height=&quot;355&quot; data-original-width=&quot;1158&quot; height=&quot;196&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU1NGXS-tE3Mui-KlcCgvEEqh4LGmvnOXPTqOubrJH1MgQijNa4uLdvM25zJSOOLZR5sOU3q3qxbOt-9VjrPsE2KbGfz7HUD01ietN8SE7kxcFKa8KTd9Pm1D0QGZweotLYpXdtdfMV9ilVjM1Xrfb0fY4J829PYKM55sDVTcrBqXpU7vC84D-nbxRJjo/w640-h196/4.png&quot; title=&quot;Guid search 2&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;Edit the view with advanced filter queries&lt;/b&gt;
                &lt;br /&gt;
                Using this functionality, you can search by GUID for a record and it will be automatically reflected in the search criteria
                if the record with the specified GUID exists in the table.
                &lt;br /&gt;
                &lt;img alt=&quot;Guid search 5&quot; border=&quot;0&quot; data-original-height=&quot;202&quot; data-original-width=&quot;1191&quot; height=&quot;108&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiruyFgMRelE_eHaGPMng25cJKiFQiQPDGQ39ZZk22WKAgCm8q-dZE5yYXfltu77uvYbWSRZAlFOGeb5Bu4eVNmSjN4xgb-38MBl9qqAy4cPda0QiddBvVpg74k6thSCFrycZgUKAxhuq34s3UCcobFJCCZVobuV4XtHW9E0D6aSnFEQEH3Il9MnmNp0wY/w640-h108/5.png&quot; title=&quot;Guid search 5&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
                &lt;img alt=&quot;Guid search 4&quot; border=&quot;0&quot; data-original-height=&quot;546&quot; data-original-width=&quot;1257&quot; height=&quot;278&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfMvS22AjON_GotCoxURZQaOufb48KXBvU5RGBeO7OZmSvjqgFqhSb7ynG1R4d7gdkdTIiBLTcLvOvVLsxbM-QTxV0oeupTLF9GF4Oh9i-J8tcVzNdhxPRXF46Tp9X5ifZMlLAh3YUBv5ZiIro7Jn_UqmIZSqGo_2RZvm5gc_S79BJN-ZeFSMH9iIkqpY/w640-h278/2.png&quot; title=&quot;Guid search 4&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
                &lt;img alt=&quot;Guid search 3&quot; border=&quot;0&quot; data-original-height=&quot;556&quot; data-original-width=&quot;1282&quot; height=&quot;278&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAlyyKydUbTJd3HXgaKhsFpmJfzTHVcjk4sYCkp3XDaVwjidsKGlZOZD23vkQd6WTbworQK32ZA--9Ydj_EFRQDt_cMxvt9NV-aHbAL-CyaNfR40qITnbgLYscydV0Je53Uvp4fUolz0kyJXtdFAHn9-b2E0Ws3wjB3kf1H4NdoUInc3VGmtD6wcKjbAs/w640-h278/3.png&quot; title=&quot;Guid search 3&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2023/09/search-by-guid-in-dynamics-365.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwmJgWAu1RLgq9p1tNkOdJBxuvXuM4EzJXMvPcXgP8u8PwbjzmXYrPZGRmIL0IeV5STp6u3-Nn_mTLePH6beDpNOO5Si08zzau6FNe0O7g_kOSk5kxvcS32zdh_-gN5a-GTUkfHru8rz3UNVRF-tT2jlJ4xZ2PDE7oOfaEbDj0UjFrFjaMYwQUyHz-zig/s72-w640-h254-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-3601779149614655431</guid><pubDate>Tue, 22 Aug 2023 20:31:00 +0000</pubDate><atom:updated>2023-08-23T09:54:15.535+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>SAVE FORM IN DYNAMICS 365 JAVASCRIPT</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        In Dynamics 365, you may need to save a CRM form automatically in JavaScript upon a specific action on the form.
        &lt;br /&gt;
    &lt;/h3&gt;
    &lt;div&gt;
        In order to do that, the function &lt;i&gt;formContext.data.save(saveOptions).then(successCallback, errorCallback);&lt;/i&gt;
        can be used to save the record asynchronously with callback functions to be executed after the save operation is completed.
        &lt;ol&gt;
            &lt;li&gt;
                The following example will display a successful message if the save operation is completed, and a failure message if not.
                &lt;br /&gt;
                &lt;i&gt;
                    &lt;br /&gt;formContext.data.save(1).then(
                    &lt;br /&gt;function () {
                    &lt;br /&gt;alert(&quot;Successfully Saved!&quot;);
                    &lt;br /&gt;},
                    &lt;br /&gt;function () {
                    &lt;br /&gt;alert(&quot;Failed while saving!&quot;);
                    &lt;br /&gt;});
                &lt;/i&gt;
                &lt;br /&gt;&lt;br /&gt;
                &lt;img alt=&quot;form save 1&quot; border=&quot;0&quot; height=&quot;326&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTISrAWi2lR9c1j5IZou2R1c1mhImRG2w0KAXDF9uY-aZTWUOPyjB5Q74IJGlYOGjQlGkqPeaq3CXS_Tf1xlZl7axKhG-7aVNY_VGGTeHY-i3XvDd46q9zYv8sftkJBCealxuUAVVCny0sox2IVJlAv4kBGGmC8AsVQ8dVcrEaJdjex7_D2Ai2LroY9Nc/w640-h326/1.png&quot; title=&quot;form save 1&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
                &lt;img alt=&quot;form save 2&quot; border=&quot;0&quot; height=&quot;278&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNRVgL9lKMx20Q5i5u63lfGtgj3MrK6RnrJ3po1PezFx_hKZ9g5D6HWBzpXNjNbyZif6PiCAervv_Qs1n9_3mA0qzv4EFbpn6QbgVuB_MjiZCVd5h1nc5suCvjAhn9d_fw4OcOFb6yPKSwxDcUldPUW1sfXmS7-DtcgX6kXYfVMp3b9oO3fMFVKwvx0jg/w640-h278/2.png&quot; title=&quot;form save 2&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                The save function takes &lt;i&gt;saveOptions&lt;/i&gt; as a parameter to specify options for saving the record and has the following properties:
                &lt;br /&gt;
                - saveMode: (Optional) Specify a value indicating how the save event was initiated. Noting that setting the saveMode does not actually take the corresponding action;
                &lt;br /&gt;
                For a list of supported values, see the return value of the getSaveMode method as per following
                &lt;a href=&quot;https://learn.microsoft.com/en-us/power-apps/developer/model-driven-apps/clientapi/reference/save-event-arguments/getsavemode&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt;
                &lt;br /&gt;
                For a full list of the properties, check the following
                &lt;a href=&quot;https://learn.microsoft.com/en-us/power-apps/developer/model-driven-apps/clientapi/reference/formcontext-data/save&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;successCallback&lt;/b&gt;: This function will be called when the operation succeeds.
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;errorCallback&lt;/b&gt;: This function will be called when the operation fails and the following properties will be passed:
                &lt;br /&gt;
                - errorCode: The error code
                &lt;br /&gt;
                - message: A localized error message
            &lt;/li&gt;
        &lt;/ol&gt;
        Previously, we were able to synchronously save the record using the following script &lt;i&gt;formContext.data.entity.save(saveOption);&lt;/i&gt;
        with the option to close the form or open a new form after the save is completed.
        &lt;br /&gt;
        However, this method is now deprecated and it is not recommended to use it anymore.
        &lt;ol&gt;
            &lt;li&gt;
                If no parameter for the save options is passed, the record will simply be saved. This is the same of using the Save command.
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;saveandclose&lt;/b&gt;: This is the same of using the Save and Close command &lt;i&gt;formContext.data.entity.save(&quot;saveandclose&quot;);&lt;/i&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;saveandnew&lt;/b&gt;: This is the same of using the Save and New command,
                a new form will be after the save is completed &lt;i&gt;formContext.data.entity.save(&quot;saveandnew&quot;);&lt;/i&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2023/08/save-form-in-dynamics-365-javascript.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTISrAWi2lR9c1j5IZou2R1c1mhImRG2w0KAXDF9uY-aZTWUOPyjB5Q74IJGlYOGjQlGkqPeaq3CXS_Tf1xlZl7axKhG-7aVNY_VGGTeHY-i3XvDd46q9zYv8sftkJBCealxuUAVVCny0sox2IVJlAv4kBGGmC8AsVQ8dVcrEaJdjex7_D2Ai2LroY9Nc/s72-w640-h326-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-7820593569854162602</guid><pubDate>Fri, 26 May 2023 20:31:00 +0000</pubDate><atom:updated>2023-05-26T23:31:33.231+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>CHANGE CONTROL LABEL DURING RUNTIME IN DYNAMICS 365 USING JAVASCRIPT</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        In Dynamics 365, we might have to change CRM control label at runtime for specific needs.
        &lt;br /&gt;&lt;br /&gt;
        This can be easily done through JavaScript code by calling the function &lt;b&gt;setLabel()&lt;/b&gt; that sets the label of the control.
        &lt;br /&gt;&lt;br /&gt;
    &lt;/h3&gt;
    &lt;div&gt;
        One function, several ways you can use to change the label based on the control type.
        &lt;ol&gt;
            &lt;li&gt;
                &lt;b&gt;Dynamically change a tab label&lt;/b&gt;
                &lt;br /&gt;
                Using the function &lt;i&gt;setLabel&lt;/i&gt;, you can change a tab label during runtime as per the below code snippet.
                &lt;br /&gt;&lt;br /&gt;
                &lt;i&gt;
                    var runtimeTabLabel = &quot;Runtime Tab Label&quot;;
                    &lt;br /&gt;
                    formContext.ui.tabs.get(&quot;&amp;lt;tabName&amp;gt;&quot;).setLabel(runtimeTabLabel);
                &lt;/i&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;Dynamically change section label&lt;/b&gt;
                &lt;br /&gt;
                Using the function &lt;i&gt;setLabel&lt;/i&gt;, you can change a section label during runtime as per the below code snippet.
                &lt;br /&gt;&lt;br /&gt;
                &lt;i&gt;
                    var runtimeSectionLabel = &quot;Runtime Section Label&quot;;
                    &lt;br /&gt;
                    formContext.ui.tabs.get(&quot;&amp;lt;tabName&amp;gt;&quot;).sections.get(&quot;&amp;lt;sectionName&amp;gt;&quot;).setLabel(runtimeSectionLabel);
                &lt;/i&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;Dynamically change field label&lt;/b&gt;
                &lt;br /&gt;
                Using the function &lt;i&gt;setLabel&lt;/i&gt;, you can change a field label during runtime as per the below code snippet.
                &lt;br /&gt;&lt;br /&gt;
                &lt;i&gt;
                    var runtimeFieldLabel = &quot;Runtime Field Label&quot;;
                    &lt;br /&gt;
                    formContext.getControl(&quot;&amp;lt;fieldName&amp;gt;&quot;).setLabel(runtimeFieldLabel);
                &lt;/i&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;Dynamically change subgrid label&lt;/b&gt;
                &lt;br /&gt;
                Using the function &lt;i&gt;setLabel&lt;/i&gt;, you can change a subgrid label during runtime as per the below code snippet.
                &lt;br /&gt;&lt;br /&gt;
                &lt;i&gt;
                    var runtimeSubgridLabel = &quot;Runtime Subgrid Label&quot;;
                    &lt;br /&gt;
                    formContext.getControl(&quot;&amp;lt;subgridName&amp;gt;&quot;).setLabel(runtimeSubgridLabel);
                &lt;/i&gt;
                &lt;br /&gt;&lt;br /&gt;
                &lt;img alt=&quot;Change Control label&quot; height=&quot;228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQOt_YYnXI7MNmozoGaoBVzOEl7q3FcYbY5BUXCgYkYNz-L-YXSQO46FWiNVwZ-ycXP8oomM9f-cHK0-T1q8bVqXNXGffR_HhlGEmDn9tKVQkcFbhNNJfd8epHCSeqzGd_uGjDQkJpJIwPGlkknEkMOTccV74STrSy09eJrC3yhML_NDfAb4dfaTxw/w640-h228/1.png&quot; title=&quot;Change Control label&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                On the other hand, you can use the function &lt;b&gt;getLabel()&lt;/b&gt; to return the label for the control
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2023/05/change-control-label-during-runtime-in.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQOt_YYnXI7MNmozoGaoBVzOEl7q3FcYbY5BUXCgYkYNz-L-YXSQO46FWiNVwZ-ycXP8oomM9f-cHK0-T1q8bVqXNXGffR_HhlGEmDn9tKVQkcFbhNNJfd8epHCSeqzGd_uGjDQkJpJIwPGlkknEkMOTccV74STrSy09eJrC3yhML_NDfAb4dfaTxw/s72-w640-h228-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-943516699727344684</guid><pubDate>Tue, 21 Mar 2023 22:17:00 +0000</pubDate><atom:updated>2023-05-26T00:39:20.128+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>CHECKING DIRTY FIELDS IN DYNAMICS 365 USING JAVASCRIPT</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        In Dynamics 365, there is a common need to identify which fields have been modified on the form during an update.
        &lt;br /&gt;&lt;br /&gt;
        One way is by creating a Plugin that will receive data of the modified fields in the current update event.
        &lt;br /&gt;&lt;br /&gt;
        However, the purpose of this article is to check &lt;b&gt;how to identify the modified fields through JavaScript&lt;/b&gt;.
        &lt;br /&gt;&lt;br /&gt;
        It is done by verifying if the form or fields are in a &lt;b&gt;dirty&lt;/b&gt; state which indicates if they have been changed.
        &lt;br /&gt;&lt;br /&gt;
    &lt;/h3&gt;
    &lt;div&gt;
        Three methods are available that you can use to get if the form or specific fields are dirty.
        &lt;ol&gt;
            &lt;li&gt;
                &lt;b&gt;Check if form is dirty&lt;/b&gt; to verify if any field on the form has been changed.
                &lt;br /&gt;
                Using the function &lt;i&gt;getIsDirty&lt;/i&gt;, you can check if any field on the form has been modified.
                &lt;br /&gt;
                &lt;b&gt;
                    &lt;i&gt;
                        formContext.data.entity.getIsDirty();
                    &lt;/i&gt;
                &lt;/b&gt;
                &lt;br /&gt;
                This function will return true if the form is dirty, false otherwise.
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;Check if a field is dirty&lt;/b&gt; to verify if a specific field on the form has been changed.
                &lt;br /&gt;
                &lt;b&gt;
                    &lt;i&gt;
                        formContext.getAttribute(&quot;schema-field-name&quot;).getIsDirty();
                    &lt;/i&gt;
                &lt;/b&gt;
                &lt;br /&gt;
                This function will return true if the field is dirty, false otherwise.
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;Display all the modified fields&lt;/b&gt; to verify what fields on the form have been changed.
                &lt;br /&gt;
                &lt;b&gt;
                    &lt;i&gt;
                        formContext.data.entity.getDataXml();
                    &lt;/i&gt;
                &lt;/b&gt;
                &lt;br /&gt;
                This function will get the list of attributes that have been modified on the form with the values of each field.
                &lt;br /&gt;&lt;br /&gt;
                A Xml result having a parent tag and inner elements where the root tag contains the entity logical name and the inner tags contain the fields&#39; logical name with the current value of each field.
                &lt;br /&gt;
                &lt;img alt=&quot;Dirty fields&quot; height=&quot;272&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwcWF_fZ4vhOedDZ0XgMDQ3ak2_O1VE2hqJuktK5AUhE881cXPhZfzskSYZcGkvxhuaWkfl1Oe9OwhFVAQ8LIzL25teiP22hH24vVvm9qmjfPjczb6ySudKcg1U5ydGQSr9b53vuM3P0mo7v0N4-Anbu4ws39f-t3ygzXqCMAh2vkF4m8yM3lpWdoM/w640-h272/1.png&quot; title=&quot;Dirty fields&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2023/03/checking-dirty-fields-in-dynamics-365.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwcWF_fZ4vhOedDZ0XgMDQ3ak2_O1VE2hqJuktK5AUhE881cXPhZfzskSYZcGkvxhuaWkfl1Oe9OwhFVAQ8LIzL25teiP22hH24vVvm9qmjfPjczb6ySudKcg1U5ydGQSr9b53vuM3P0mo7v0N4-Anbu4ws39f-t3ygzXqCMAh2vkF4m8yM3lpWdoM/s72-w640-h272-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-7841394289549371766</guid><pubDate>Sun, 19 Feb 2023 17:05:00 +0000</pubDate><atom:updated>2023-02-19T19:05:32.042+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>SET DYNAMICS 365 MULTISELECT OPTIONSET FIELD IN C#</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        As known, Multi-Select Option set field helps you select more than one option.
        &lt;br /&gt;&lt;br /&gt;
        Sometimes, you want to dynamically select one or more option in the multiselect field.
        &lt;br /&gt;&lt;br /&gt;
        In another post, we saw how to
        &lt;b&gt;
            &lt;a href=&quot;https://charlesabikhirs.blogspot.com/2022/08/select-all-options-of-multiselect.html&quot; target=&quot;_blank&quot;&gt;
                set a value of a multiselect option set field in JavaScript
            &lt;/a&gt;
        &lt;/b&gt;
        &lt;br /&gt;&lt;br /&gt;
        In this post, we will see &lt;b&gt;how to set options of a multiselect option set field in C#&lt;/b&gt;
    &lt;/h3&gt;
    &lt;div&gt;
        &lt;ol&gt;
            &lt;li&gt;
                The below code snippet can be used to add the needed options you want to set for the multi select option set field
                &lt;i&gt;
                    &lt;br /&gt;OptionSetValueCollection osvc = new OptionSetValueCollection();
                    &lt;br /&gt;osvc.Add(new OptionSetValue(&amp;lt;integerValueOptionSet&amp;gt;));
                &lt;/i&gt;
                &lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Once the needed options are added to the &lt;i&gt;OptionSetValueCollection&lt;/i&gt;, you can add it to the list of attributes of the entity record
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2023/02/set-dynamics-365-multiselect-optionset.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-4029323962383784360</guid><pubDate>Sun, 15 Jan 2023 13:05:00 +0000</pubDate><atom:updated>2023-01-15T15:05:51.769+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>SETSUBMITMODE IN DYNAMICS 365  JAVASCRIPT</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        In Dynamics 365, there are some scenarios where you want to always submit or never submit the value of a column into the database.
        &lt;br /&gt;&lt;br /&gt;
        To do this, you have to use the JavaScript method &lt;b&gt;setSubmitMode&lt;/b&gt; that will control whether the data for a column is submitted when a record is created or saved.
        &lt;br /&gt;&lt;br /&gt;
        In case you have a column that you are not interest to capture its data, use the &lt;i&gt;never&lt;/i&gt; parameter for the &lt;b&gt;setSubmitMode&lt;/b&gt; method.
        &lt;br /&gt;&lt;br /&gt;
        While, if you want to force a column value to be submitted whether it has changed or not, use the &lt;i&gt;always&lt;/i&gt; parameter for the &lt;b&gt;setSubmitMode&lt;/b&gt; method.
    &lt;/h3&gt;
    &lt;div&gt;
        Use one of the below three options for the setSubmitMode function as per the below.
        &lt;ol&gt;
            &lt;li&gt;
                &lt;b&gt;always&lt;/b&gt;: The data is always sent with a create/save event and can be captured within the entity attributes in a plugin
                &lt;i&gt;
                    &lt;br /&gt;function setSubmitModeField(context) {
                    &lt;br /&gt;var formContext = context.getFormContext();
                    &lt;br /&gt;formContext.getAttribute(&quot;primarycontactid&quot;).setSubmitMode(&quot;always&quot;);
                    &lt;br /&gt;}
                &lt;/i&gt;
                &lt;br /&gt;&lt;br /&gt;
                Column&#39;s data always captured in the plugin: &lt;i&gt;throw new Exception(account.Contains(Account.Fields.PrimaryContactId).ToString());&lt;/i&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;Set submit mode 1&quot; height=&quot;410&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYgMyxpHsDT_DDUsdb2xedT-BUWlU4ERCBmzwUKd3J4t_fWm6oCCZ0CSMQGX68bisf7QpkWx86kopC0PJa7lq3EmCoIBdZi6Sisjn7pH55anyBcohXTJVKtIhKM4IUVdwcwxOTJB38Om5OdrBCt6ylSUctewee0lp9eqND9ei9vzO1sIiFCiTUqVsB/w640-h410/1.png&quot; title=&quot;Set submit mode 1&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;never&lt;/b&gt;: The data is never sent with a create/save event and cannot be captured within the entity attributes in a plugin
                &lt;br /&gt;
                For example, if the column is modified and after saving the form, the column&#39;s value will be replaced with the old value and will not be submitted.
                &lt;i&gt;
                    &lt;br /&gt;function setSubmitModeField(context) {
                    &lt;br /&gt;var formContext = context.getFormContext();
                    &lt;br /&gt;formContext.getAttribute(&quot;primarycontactid&quot;).setSubmitMode(&quot;never&quot;);
                    &lt;br /&gt;}
                &lt;/i&gt;
                &lt;br /&gt;&lt;br /&gt;
                Column&#39;s data never captured in the plugin: &lt;i&gt;throw new Exception(account.Contains(Account.Fields.PrimaryContactId).ToString());&lt;/i&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;Set submit mode 2&quot; height=&quot;410&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2OrDMTbFdWef5sktUCS3IWV4KCknF6DTNy00AV5d7sDJhGrxrIOxVUnnLtYJYVEyzlZn-zdWp8MXinqL9MpIkJxhS8G21YYRNoTCsEHjkWKyC4fvzhZkyaK3g2a1D3WepSu8XJWR_iKekv80bHtLU_S5QlIgMxCdM0E4nZWdwc7H7OFWwOKpRNxAQ/w640-h410/2.png&quot; title=&quot;Set submit mode 2&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;b&gt;dirty&lt;/b&gt;: This is the default behavior where the data is submitted with the create/save event when the value of the column has changed
                &lt;i&gt;
                    &lt;br /&gt;function setSubmitModeField(context) {
                    &lt;br /&gt;var formContext = context.getFormContext();
                    &lt;br /&gt;formContext.getAttribute(&quot;primarycontactid&quot;).setSubmitMode(&quot;dirty&quot;);
                    &lt;br /&gt;}
                &lt;/i&gt;
                &lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                On the other hand, use the function &lt;b&gt;getSubmitMode&lt;/b&gt; to return the option indicating when data from the column will be submitted when the record is created/saved
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2023/01/setsubmitmode-in-dynamics-365-javascript.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYgMyxpHsDT_DDUsdb2xedT-BUWlU4ERCBmzwUKd3J4t_fWm6oCCZ0CSMQGX68bisf7QpkWx86kopC0PJa7lq3EmCoIBdZi6Sisjn7pH55anyBcohXTJVKtIhKM4IUVdwcwxOTJB38Om5OdrBCt6ylSUctewee0lp9eqND9ei9vzO1sIiFCiTUqVsB/s72-w640-h410-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-6926541853273732915</guid><pubDate>Fri, 06 Jan 2023 19:52:00 +0000</pubDate><atom:updated>2023-01-06T21:52:24.260+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>ACCESS FIELDS OF QUICK VIEW FORM THROUGH JAVASCRIPT IN DYNAMICS 365</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        As known, quick view controls are associated to lookup fields that are included in a form
        and they are added to display specific information about the selected record in the lookup field.
        &lt;br /&gt;
        This will increase user experience where the users do not need to navigate to a different record to see the information needed.
        &lt;br /&gt;&lt;br /&gt;
        However, you might have requirements where you want to check a field value of the quick view form control in order to apply specific behavior on the main form.
        &lt;br /&gt;&lt;br /&gt;
        In this post, we will see &lt;b&gt;how to access Quick View Form fields through JavaScript in Dynamics 365&lt;/b&gt;.
    &lt;/h3&gt;
    &lt;div&gt;
        For the sake of this post, we will work with a contact quick view form control on the account form.
        &lt;br /&gt;&lt;br /&gt;
        Based on the primary contact &lt;i&gt;Relationship Type&lt;/i&gt; field, a specific section on the account form will be displayed.
        &lt;ol&gt;
            &lt;li&gt;
                Relationship Type field of the contact = Employee =&gt; Employee section on the account form will be displayed
                &lt;br /&gt;
                &lt;img alt=&quot;Quick view form 1&quot; height=&quot;292&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWIdNkJkMJtJzsB2l4P73uh5eo5f1tzNXBcTEmhtrKWL1IVpcH2qOWSxJ2QxS3sPHAeSD64l1KAvqGEGhaD-dBDZFvGEgbHAzNordblFQL1t3RQlA_JmyoXHTGoREPc4RUeGSvFzQGC36v5-aNeT74Fw_u7EjSptA8E29EAADmZtF7eNikRNsYrujB/w640-h292/3.png&quot; title=&quot;Quick view form 1&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Relationship Type field of the contact = Partner =&gt; Partner section on the account form will be displayed
                &lt;br /&gt;
                &lt;img alt=&quot;Quick view form 2&quot; height=&quot;292&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRSTouTuJDkBmgE_6PjWVxfMxb2k7Mhsc2CI5yzGk1kZ5enH48xmg7pYCmWTYrnIBVyYD9HpZhsX6JKRFUP2Is3x_8Bq5SO35XK7V9qXQAS9SrlqiY934GFqp6a2bwa8UKSLpP2DoX7U2Mnn-Lt6ZyFKc8iNC71RxxccemA5cNZGHiRs4HGfjIBSgv/w640-h292/2.png&quot; title=&quot;Quick view form 2&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Relationship Type field of the contact = Client =&gt; Client section on the account form will be displayed
                &lt;br /&gt;
                &lt;img alt=&quot;Quick view form 3&quot; height=&quot;292&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjkhjOInhyT-YAeZaslwAGSU9wTsshaGijdMWlJn2PXIN-qdwQj5VuadT4JWFE_Oh-DkryzezWZR2y1_lFo-Zdck6Y3jlUfDPd_5NspkFjHP5_OJZYqOSXOUrabcbf6veKTbyiLzEQvolLOEiVFZoCKbKhPHXH-nphDiXIbAA-j-k_jwCtWPC4S_PW/w640-h292/1.png&quot; title=&quot;Quick view form 3&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Finally, the following JavaScript function can be used to manage the access of the Quick Find form fields and called on the account’s form onload
                and primary contact field onchange events
                &lt;br /&gt;
                &lt;i&gt;
                    &lt;br /&gt;function showHideSectionsBasedOnQuickViewField(context) {
                    &lt;br /&gt;var formContext = context.getFormContext();
                    &lt;br /&gt;var contactQuickViewControl = formContext.ui.quickForms.get(&quot;account_contact_quickview&quot;);
                    &lt;br /&gt;if (contactQuickViewControl !== undefined) {
                    &lt;br /&gt;if (contactQuickViewControl.isLoaded()) {
                    &lt;br /&gt;var relationshipType = contactQuickViewControl.getControl(&quot;customertypecode&quot;).getAttribute().getValue();
                    &lt;br /&gt;switch (relationshipType) {
                    &lt;br /&gt;case 1: // Employee
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_employee&quot;).setVisible(true);
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_partner&quot;).setVisible(false);
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_client&quot;).setVisible(false);
                    &lt;br /&gt;break;
                    &lt;br /&gt;case 2: // Partner
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_employee&quot;).setVisible(false);
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_partner&quot;).setVisible(true);
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_client&quot;).setVisible(false);
                    &lt;br /&gt;break;
                    &lt;br /&gt;case 3: // Client
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_employee&quot;).setVisible(false);
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_partner&quot;).setVisible(false);
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_client&quot;).setVisible(true);
                    &lt;br /&gt;break;
                    &lt;br /&gt;default:
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_employee&quot;).setVisible(false);
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_partner&quot;).setVisible(false);
                    &lt;br /&gt;formContext.ui.tabs.get(&quot;SUMMARY_TAB&quot;).sections.get(&quot;SUMMARY_TAB_section_client&quot;).setVisible(false);
                    &lt;br /&gt;}
                    &lt;br /&gt;}
                    &lt;br /&gt;else {
                    &lt;br /&gt;setTimeout(showHideSectionsBasedOnQuickViewField, 10, context);
                    &lt;br /&gt;}
                    &lt;br /&gt;}
                    &lt;br /&gt;}
                &lt;/i&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2023/01/access-fields-of-quick-view-form.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWIdNkJkMJtJzsB2l4P73uh5eo5f1tzNXBcTEmhtrKWL1IVpcH2qOWSxJ2QxS3sPHAeSD64l1KAvqGEGhaD-dBDZFvGEgbHAzNordblFQL1t3RQlA_JmyoXHTGoREPc4RUeGSvFzQGC36v5-aNeT74Fw_u7EjSptA8E29EAADmZtF7eNikRNsYrujB/s72-w640-h292-c/3.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-5789554701645704951</guid><pubDate>Sun, 06 Nov 2022 17:08:00 +0000</pubDate><atom:updated>2022-11-06T19:08:22.291+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>FILTER LOOKUP IN DYNAMICS 365 BASED ON CONDITION IN JAVASCRIPT WITH ADDCUSTOMFILTER AND ADDPRESEARCH</title><description>&lt;div&gt;
    &lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
        &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
            Working with lookups provide you many possibilities regarding filtering the records displayed in the lookup.
            &lt;br /&gt;&lt;br /&gt;
            You can do it by using the out of the box related records filtering in the lookup field properties, however and  in some scenarios, this approach
            does not provide what you need.
            &lt;br /&gt;&lt;br /&gt;
            Therefore, writing JavaScript code is mandatory to achieve what you want, which is the topic of this post
            &lt;br /&gt;&lt;br /&gt;
            In other post, we saw
            &lt;b&gt;
                &lt;a href=&quot;https://charlesabikhirs.blogspot.com/2019/03/crmd365-how-to-filter-lookup-based-on.html&quot; target=&quot;_blank&quot;&gt;
                    how to filter lookup field in JavaScript using the function &lt;i&gt;addCustomView&lt;/i&gt;
                &lt;/a&gt;
            &lt;/b&gt;
            &lt;br /&gt;&lt;br /&gt;
            In this post, we will see &lt;b&gt;how to filter a lookup field in JavaScript using &lt;i&gt;addPreSearch&lt;/i&gt; and &lt;i&gt;addCustomFilter&lt;/i&gt; functions&lt;/b&gt;.
        &lt;/h3&gt;
        &lt;div&gt;
            For the sake of this post, we will filter the Parent Account lookup in the account form based on the category field
            &lt;ol&gt;
                &lt;li&gt;
                    We have to create a fetch Xml, where we are going to use the filter part only and not the whole fetch Xml
                &lt;/li&gt;
                &lt;li&gt;
                    In our example, we will use the account category as the condition to filter the list of available accounts in the parent account lookup
                &lt;/li&gt;
                &lt;li&gt;
                    Call the below function on form load and use the &lt;i&gt;addPreSearch&lt;/i&gt; that takes a function as a parameter where the filter is done using &lt;i&gt;addCustomFilter&lt;/i&gt;
                    &lt;i&gt;
                        &lt;br /&gt;&lt;br /&gt;function applyParentAccountPreSearch(context) {
                        &lt;br /&gt;var formContext = context.getFormContext();
                        &lt;br /&gt;formContext.getControl(&quot;parentaccountid&quot;).addPreSearch(applyParentAccountFilter);
                        &lt;br /&gt;}
                    &lt;/i&gt;
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    Below is the function where the &lt;i&gt;addCustomFilter&lt;/i&gt; is used to filter the lookup based on the condition you set
                    &lt;i&gt;
                        &lt;br /&gt;&lt;br /&gt;function applyParentAccountFilter(context) {
                        &lt;br /&gt;var formContext = context.getFormContext();
                        &lt;br /&gt;var filter = &#39;&amp;lt;filter type=&quot;and&quot;&amp;gt;&#39;;
                        &lt;br /&gt;filter += &#39;&amp;lt;condition attribute=&quot;accountcategorycode&quot; operator=&quot;eq&quot; value=&quot;2&quot; /&amp;gt;&#39;;
                        &lt;br /&gt;filter += &#39;&amp;lt;/filter&amp;gt;&#39;;
                        &lt;br /&gt;formContext.getControl(&quot;parentaccountid&quot;).addCustomFilter(filter);
                        &lt;br /&gt;}
                    &lt;/i&gt;
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    You can now go to an account record and click to select a record from the Parent Account lookup,
                    you will notice that the accounts are now filtered based on the condition you have added
                    &lt;br /&gt;
                    &lt;img alt=&quot;Lookup prefilter 1&quot; height=&quot;632&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9d4VWAOuTXLJi0juCKoWT6dMVU18mLuixokBCn6PrdgoxGHITo9l_ItO_cvLzpE6Kc1EE4My2h1_eLqRb9djaU5sMQSTplIrrsOgEO95R5zz6cjnEjx5B4riAU2wl-VdUU9BXwaljSs8NFWipzKLg5cBxXua7d6wwVtFa-th7D_tC-v40PgY27UCy/w640-h632/1.png&quot; title=&quot;Lookup prefilter 1&quot; width=&quot;640&quot; /&gt;
                    &lt;br /&gt;&lt;br /&gt;
                    &lt;img alt=&quot;Lookup prefilter 2&quot; height=&quot;632&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMfDbjllLvdn17V6LRlWRLPkPZ_HWZai9Y7by4J9q-6NcsR84qOhLPauQjxO_e6mBahRqCtNPbL4gG1DvQvQea6zrx643O3zrCp8CiVdZG8vt6MSAb4P8820_tBCgFhD0OSRpagVkPszjCWsDzFfhlAApleEPF4__r2KB8jUgqOmIGdsVqHzmhEBP0/w640-h632/2.png&quot; title=&quot;Lookup prefilter 2&quot; width=&quot;640&quot; /&gt;
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;
                    In the above example, we put the condition as a static value but of course you can do it to be dynamically set based on your needs
                &lt;/li&gt;
                &lt;li&gt;
                    Another optional parameter can be passed to the &lt;i&gt;addCustomFilter&lt;/i&gt; function which the entity that the view will look up to
                &lt;/li&gt;
                &lt;li&gt;
                    The new filter will be added to the default filter already applied of the lookup view with the AND operator
                &lt;/li&gt;
                &lt;li&gt;
                    In case you didn&#39;t use the filter element, you will get the following error
                    &lt;i&gt;&quot;Invalid Child Node, valid nodes are filter, order, link-entity, attribute, all-attributes, no-attrs&quot;&lt;/i&gt;
                &lt;/li&gt;
            &lt;/ol&gt;
        &lt;/div&gt;
        &lt;br /&gt;&lt;br /&gt;
        &lt;div&gt;
            Hope This Helps!
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/11/filter-lookup-in-dynamics-365-based-on.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9d4VWAOuTXLJi0juCKoWT6dMVU18mLuixokBCn6PrdgoxGHITo9l_ItO_cvLzpE6Kc1EE4My2h1_eLqRb9djaU5sMQSTplIrrsOgEO95R5zz6cjnEjx5B4riAU2wl-VdUU9BXwaljSs8NFWipzKLg5cBxXua7d6wwVtFa-th7D_tC-v40PgY27UCy/s72-w640-h632-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-8348221990189435785</guid><pubDate>Sun, 11 Sep 2022 21:09:00 +0000</pubDate><atom:updated>2022-09-12T00:09:14.264+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>DISABLE SECURITY DEFAULTS FOR DYNAMICS 365 ENVIRONMENT</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        When creating a Dynamics 365 Trial environment, each time you want to login, you will be promted by a security message.
        &lt;br /&gt;
        &lt;img alt=&quot;disable security 1&quot; height=&quot;636&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY5i09HQEMZLzAfG82WlNVCYmAE62aWcXyUkv0cxLQ6En1M5TWoc-I-sMQIFYRFZ9Y-s4-J43QuC0lOMJKaUliYOGVDb9v_Pel4fFE6Nl6-mpILJyBuXmj4pz0Befn04xi3k7VeQk7OcmtY7PUDOhNtAnaeFjiCbak4ikHGXXs6JCUZZL0TGXcCmE0/w640-h636/1.png&quot; title=&quot;disable security 1&quot; width=&quot;640&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
        Security Defaults are a series of settings enabled by default on your Microsoft Office 365 account, to provide better security
        where every user is required to log in using Multi-Factor Authentication (MFA).
        &lt;br /&gt;&lt;br /&gt;
        To know more information about the Security Defaults, check
        &lt;a href=&quot;https://docs.microsoft.com/en-gb/azure/active-directory/fundamentals/concept-fundamentals-security-defaults&quot; target=&quot;_blank&quot;&gt;Microsoft&#39;s documentation&lt;/a&gt;.
        &lt;br /&gt;&lt;br /&gt;
        In this post, we will see &lt;b&gt;how to disable Security Defaults message when logging in&lt;/b&gt;.
    &lt;/h3&gt;
    &lt;div&gt;
        You can change the security defaults from Office 365 Admin center or from the Azure Portal
        &lt;ol&gt;
            &lt;li&gt;
                Log into your &lt;i&gt;Office 365 management area &gt; Admin &gt; Azure Active Directory&lt;/i&gt; or from the &lt;i&gt;Azure portal &gt; Azure Active Directory&lt;/i&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Under &lt;b&gt;Azure Active Directory&lt;/b&gt;, click &lt;i&gt;Properties&lt;/i&gt; and then &lt;b&gt;Manage Security Defaults&lt;/b&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;disable security 2&quot; height=&quot;548&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP51aLzCSuMw4klPzmKpQBqKVCc6wmDWmphC_VXLHj_OtFC9-dILgjX7BFSpRYYPVphKprrv6CnI02KjuFxRrVJP8W_PcITRihJ9W1krkJ25n7R8tCAb-gJIlrO7eXboS4RiR-Hzyv0lHQ4vOh4gJCZdCrsAbm7MNGPo1yHTgdqsb88--UrxkCwhsi/w640-h548/2.png&quot; title=&quot;disable security 2&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                In the right pane, select &lt;b&gt;No&lt;/b&gt; for &lt;b&gt;Enable security defaults&lt;/b&gt;, and click &lt;b&gt;Save&lt;/b&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;disable security 3&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbmb--N5xGFx35_H609ZEok0IS_ac923F8VIeRB4p8CFMMQ1Jj_Jda_el39hfx0NErXIMEAkYn-aKQzt9BYRNF_nye1vydyo3QvtPyN6u7qP1Adx2Vvx2aQJEn9Jb7vO0U_xHejbqEFDdcvWrpE9wz4WEnCorEnmpOTlWO5BOWDW_gQlcLPl9rDhII/w450-h640/3.png&quot; title=&quot;disable security 3&quot; width=&quot;450&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                A Success message will appear indicating that Security Defaults changes have been saved
                &lt;br /&gt;
                &lt;img alt=&quot;disable security 4&quot; height=&quot;122&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJA0-E82ySWCuDqPop62L4nk8AtPA6thRXmYez-a4NLG6qo7lrvDx68v29qNLkgIJ437pbIVMqsXbNzA2fWifeGMe61NqwpyITwdexhlgW9xLP7LezzLJFM4R7PwNH0rguE05eQDDdVfWszvBLBd0KODPLvUYkbsMfRtVZsW4Yg4xIEZ4_HzIY-bYw/w640-h122/4.png&quot; title=&quot;disable security 4&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Click &lt;i&gt;Save&lt;/i&gt; again to publish the changes on the tenant
                &lt;br /&gt;
                &lt;img alt=&quot;disable security 5&quot; height=&quot;114&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7r6uWD3fIsk54iLI_ke8kqkOaIx-uy8_G8gF9T7_Mq1WMnYrmYdnAj0ZNBrm9bK98E9NShqAhnaXodV8PSipZ1ToqJHJoHzZN06TH1E6mJJnhID5ERHjGl-KdeMUC9Y1-UN0MR0jx1eLwtrDtLLFwO3V-aKaAHw7lJn7HgKfeB3T6QuAjsl-XinBD/w640-h114/5.png&quot; title=&quot;disable security 5&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Once done, you will no longer be prompted to set up Security Defaults when logging in
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/09/disable-security-defaults-for-dynamics.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY5i09HQEMZLzAfG82WlNVCYmAE62aWcXyUkv0cxLQ6En1M5TWoc-I-sMQIFYRFZ9Y-s4-J43QuC0lOMJKaUliYOGVDb9v_Pel4fFE6Nl6-mpILJyBuXmj4pz0Befn04xi3k7VeQk7OcmtY7PUDOhNtAnaeFjiCbak4ikHGXXs6JCUZZL0TGXcCmE0/s72-w640-h636-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-6786780718928730569</guid><pubDate>Sun, 04 Sep 2022 18:58:00 +0000</pubDate><atom:updated>2022-09-06T16:14:17.107+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>GET THE SIZE OF DYNAMICS 365 TABLES FOR ON PREMISES ORGANIZATION</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        In previous post, we saw
        &lt;b&gt;
            &lt;a href=&quot;https://charlesabikhirs.blogspot.com/2022/08/get-size-of-tables-in-dynamics-365.html&quot; target=&quot;_blank&quot;&gt;
                how to get the size of Dynamics 365 / Dataverse tables for an online environment
            &lt;/a&gt;
        &lt;/b&gt;
        &lt;br /&gt;&lt;br /&gt;
        In this post, we will see &lt;b&gt;how to get the size of Dynamics 365 tables for an on premises organization&lt;/b&gt;.
    &lt;/h3&gt;
    &lt;div&gt;
        In order to check the tables size, you need to open the SQL server Management Studio and execute the below query
        &lt;ol&gt;
            &lt;li&gt;
                In the Management Studio, click &lt;i&gt;New Query&lt;/i&gt; or expand the Databases list and right click the needed database &amp;gt; &lt;i&gt;New Query&lt;/i&gt;
            &lt;/li&gt;
            &lt;li&gt;
                In the query editor, execute the below query by putting the correct database name
                &lt;i&gt;
                    &lt;br /&gt;
                    &lt;br /&gt;USE &amp;lt;DatabaseName&amp;gt;
                    &lt;br /&gt;GO
                    &lt;br /&gt;
                    &lt;br /&gt;SELECT
                    &lt;br /&gt;t.Name                                       AS TableName,
                    &lt;br /&gt;s.Name                                       AS SchemaName,
                    &lt;br /&gt;p.Rows                                       AS RowCounts,
                    &lt;br /&gt;SUM(a.total_pages) * 8                       AS TotalSpaceKB,
                    &lt;br /&gt;SUM(a.used_pages) * 8                        AS UsedSpaceKB,
                    &lt;br /&gt;(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB
                    &lt;br /&gt;FROM
                    &lt;br /&gt;sys.tables t
                    &lt;br /&gt;INNER JOIN sys.indexes i ON t.object_id = i.object_id
                    &lt;br /&gt;INNER JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
                    &lt;br /&gt;INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id
                    &lt;br /&gt;LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id
                    &lt;br /&gt;WHERE t.Name NOT LIKE &#39;dt%&#39;
                    &lt;br /&gt;AND t.is_ms_shipped = 0
                    &lt;br /&gt;AND i.object_id &amp;gt; 255
                    &lt;br /&gt;GROUP BY	t.Name, s.Name, p.Rows
                    &lt;br /&gt;ORDER BY	SUM(a.used_pages) * 8 DESC;
                    &lt;br /&gt;GO
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/i&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Once the query is executed, you will get the list of tables sorted by its used space
                &lt;br /&gt;
                &lt;img alt=&quot;Tables size&quot; height=&quot;382&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGFM7GG8YKSxVOFrdaRygVGc1lGgH6Du4wwUV1UvznYbJsccLlMIvA9hT_-mJ5UZo2gPdxtpe9Zp6thENPxTf25c96AmmMQKZIanXWhSJdJZyauq78pZKyJh8XCiEEY9OrN2JlgkBCRUSDAb04d9tc-yJACrqkURXusQQsSsZusaXC58M-sF5pYang/w640-h382/1.png&quot; title=&quot;Tables size&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                This query can give you insights in case you are facing some performance issues in your environment where it might be related to the tables size
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/09/get-size-of-dynamics-365-tables-for-o.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGFM7GG8YKSxVOFrdaRygVGc1lGgH6Du4wwUV1UvznYbJsccLlMIvA9hT_-mJ5UZo2gPdxtpe9Zp6thENPxTf25c96AmmMQKZIanXWhSJdJZyauq78pZKyJh8XCiEEY9OrN2JlgkBCRUSDAb04d9tc-yJACrqkURXusQQsSsZusaXC58M-sF5pYang/s72-w640-h382-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-3429095500888712506</guid><pubDate>Sun, 28 Aug 2022 18:22:00 +0000</pubDate><atom:updated>2022-08-28T21:22:36.747+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>GET THE SIZE OF TABLES IN DYNAMICS 365 / DATAVERSE ENVIRONMENT</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        Data size is continuously growing over the time. Thus, data storage and usage with the increasing complexity and new supported data types,
        is becoming an essential tool for the organizations to be able to expand their business.
        &lt;br /&gt;&lt;br /&gt;
        Therefore, knowing the data volume becomes very critical and in Dataverse, you are able to check the space reserved by each table.
        &lt;br /&gt;&lt;br /&gt;
        In this post, we will see &lt;b&gt;how to get the size of Dynamics 365 / Dataverse tables for an environment&lt;/b&gt;.
    &lt;/h3&gt;
    &lt;div&gt;
        Using the Capacity page in the Power Platform Admin Center, you can get the size of each table (in MB).
        &lt;ol&gt;
            &lt;li&gt;
                Login to Power Platform admin Center
            &lt;/li&gt;
            &lt;li&gt;
                Under the Resources menu, click the Capacity option
                &lt;br /&gt;
                &lt;img alt=&quot;Tables size 1&quot; height=&quot;362&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrkS9xcg1gUGiylFQwe6vN-vHeL6_0zI2NRTWHXRyAyEu3v1bCv49xhKx7fVtqqrPGz56_n_31Ym8x9Uz_w5Um3OBu7HOAkraTJH206njSuI4K--J1BxU6wMkT0nhWJfA2KwSv-iSloP4Qjx3lw5atGko22JW92lcojvsXDg2RNvg2xjIgQ5PC7n9j/w640-h362/2.png&quot; title=&quot;Tables size 1&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Select the Dataverse tab, or click on the Trial tab to check the environments
                &lt;br /&gt;
                &lt;img alt=&quot;Tables size 2&quot; height=&quot;170&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyL8IZWcrdZ--NG9O7ULe7VNUTgnbGGF8ID9ed7wDttxB1ToHwfdtuzufbVgO3tS7wULjGW6PHkRWzAMw1Gl4VbQV5T2tB8ExaOBzoqG5xSNb8y2ZDU_2wS6LiaTZzRnj_P-aUmKte1gBDNjf-XanGFeQmwyRhlZDS2V93wZNAxQYpzpDb4OIv3DwP/w640-h170/3.png&quot; title=&quot;Tables size 2&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Click the Details (graph) button for the specific environment to open a detailed report of Usages for Database Usage, File Usage, and Log Usage
                &lt;br /&gt;
                &lt;img alt=&quot;Tables size 6&quot; height=&quot;242&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9gzuzt_xm2mpKxqJ92ajTXIWCN-biZxCNQ-YVrqZZgKqennVzmnbWoEKExXnFPA5UUAxw_M0WN_cl2EC-dvWkEHPoJ4hsDxZ0GsrIz2i9I9pvPh_Nm6FdG_L5W-4jXzKfkeOPxsVuOMhmXOLrrkVbWWUFnYL2ZfZ8t3nGIzkb3iqRrvrrjZFpSU0A/w640-h242/6.png&quot; title=&quot;Tables size 6&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                To check the size of each table, from the &lt;i&gt;Top database capacity use, by table&lt;/i&gt; section,
                click the burger menu &amp;gt; &lt;i&gt;Download all tables&lt;/i&gt; option
                &lt;br /&gt;
                &lt;img alt=&quot;Tables size 3&quot; height=&quot;386&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTHQxMPZWthbyoybbRP-6-PkOZJc69EgB95-EoL_yx2phkNMxgAFXK2lXGXbSmrOxOlbtbaT9O4qZNnTQPNeujl3bkQwGP4QgBl5E6OcedtcV6fEWXWjD_RIWtcWkIW42l2YMyoHZtDgvdBM4J-72YkoXeKsSvVPo6pCWzSHeUk0YeIgrPjazA4H7H/w640-h386/4.png&quot; title=&quot;Tables size 3&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                A CSV file will be downloaded where you can check the size for each table sorted by the highest space usage in MB
                &lt;br /&gt;
                &lt;img alt=&quot;Tables size 7&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMBCxt-fkjyGJi28EIgPIVx3rai-RpsJtjwN-igQ7OunIqWUCGY9gcE5PrBcyWn6HEhTwgX36ifFGzrK6X94x_F6C-fOuz0_X8r0Ys-4dTdt7tbGp888cTg5HWfFWwuwL9t-ga5qOlpCJd6tmxo76XbZmYwYw_xw4d0fdosn9J6v7Hpd3XxP3YlpaJ/w400-h640/5.png&quot; title=&quot;Tables size 7&quot; width=&quot;400&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                This report can give you some insights in case you are facing some performance issues in your environment where it might be related to the tables size
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/08/get-size-of-tables-in-dynamics-365.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrkS9xcg1gUGiylFQwe6vN-vHeL6_0zI2NRTWHXRyAyEu3v1bCv49xhKx7fVtqqrPGz56_n_31Ym8x9Uz_w5Um3OBu7HOAkraTJH206njSuI4K--J1BxU6wMkT0nhWJfA2KwSv-iSloP4Qjx3lw5atGko22JW92lcojvsXDg2RNvg2xjIgQ5PC7n9j/s72-w640-h362-c/2.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-223113357061509710</guid><pubDate>Mon, 22 Aug 2022 05:02:00 +0000</pubDate><atom:updated>2022-08-22T08:02:31.557+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>SELECT ALL OPTIONS OF MULTISELECT OPTION SET  (CHOICES) FIELD IN DYNAMICS 365</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        Multiselect or Choices field type has some limitations when working with them. One of these limitations is to select all the options by default.
        &lt;br /&gt;&lt;br /&gt;
        Since the multiselect fields cannot be used in business rules, therefore, you have to go with JavaScript to achieve this need.
        &lt;br /&gt;&lt;br /&gt;
        For this post, we will see &lt;b&gt;how to select all options of a Multiselect / Choices field in Dynamics 365&lt;/b&gt;.
    &lt;/h3&gt;
    &lt;div&gt;
        &lt;ol&gt;
            &lt;li&gt;
                The below code snippet will get all the available options in the multiselect field and will select them all
                &lt;i&gt;
                    &lt;br /&gt;// Select all the options in the multiselection field on create form
                    &lt;br /&gt;function setMultiselectDefaultValues(context) {
                    &lt;br /&gt;var formContext = context.getFormContext();
                    &lt;br /&gt;if (formContext.ui.getFormType() === 1) {
                    &lt;br /&gt;var options = formContext.getAttribute(&quot;cak_multiselectoptionfieldcode&quot;).getOptions(); // Get all the available options
                    &lt;br /&gt;var selectOptions = [];
                    &lt;br /&gt;for (var i = 0; i &amp;lt; options.length; i++) {
                    &lt;br /&gt;selectOptions.push(options[i].value);  // Add the options into an array
                    &lt;br /&gt;}
                    &lt;br /&gt;formContext.getAttribute(&quot;cak_multiselectoptionfieldcode&quot;).setValue(selectOptions);
                    &lt;br /&gt;}
                    &lt;br /&gt;}
                &lt;/i&gt;
                &lt;br /&gt;&lt;br /&gt;
                &lt;img alt=&quot;Multiselect options&quot; height=&quot;458&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIGr8ah9-MdNS9bw6N5-ovBrydasqrZtaCL4u8gmf7WcLR4rr20Ngn9i3uobiqS-HMyGAoSz6N-qCUkdwHkwbPJKhWcsEGk8Q8LiYwje-UwJx9_m7QqFc8kTQBPbkFIkH52XLrZ_aJsPxq7nVRSuWjzpA3Io8YjpI8Y3tzYFkkWpLSvwRSvMcFCcjX/w640-h458/1.png&quot; title=&quot;Multiselect options&quot; width=&quot;640&quot; /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Create your JavaScript web resource and add it to the needed solution
            &lt;/li&gt;
            &lt;li&gt;
                From the form onLoad event, call the specific function
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/08/select-all-options-of-multiselect.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIGr8ah9-MdNS9bw6N5-ovBrydasqrZtaCL4u8gmf7WcLR4rr20Ngn9i3uobiqS-HMyGAoSz6N-qCUkdwHkwbPJKhWcsEGk8Q8LiYwje-UwJx9_m7QqFc8kTQBPbkFIkH52XLrZ_aJsPxq7nVRSuWjzpA3Io8YjpI8Y3tzYFkkWpLSvwRSvMcFCcjX/s72-w640-h458-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-187568995253455033</guid><pubDate>Wed, 20 Jul 2022 14:48:00 +0000</pubDate><atom:updated>2022-07-20T18:13:21.533+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">Power Platform</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>DATA CENTER REGIONS FOR DYNAMICS 365</title><description>&lt;style&gt;
    #Regions {
        font-family: Arial;
        border-collapse: collapse;
        width: 100%;
    }

        #Regions td, #Regions thead {
            border: 1px solid #ddd;
            padding: 8px;
        }

        #Regions tr:nth-child(even) {
            background-color: #f2f2f2;
        }

        #Regions tbody tr:hover {
            background-color: #ddd;
        }

        #Regions thead {
            padding-top: 12px;
            padding-bottom: 12px;
            text-align: left;
            background-color: gray;
            color: white;
        }
&lt;/style&gt;
&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        The online version of Dynamics 365 is being hosted in datacenters that exist in many regions.
        &lt;br /&gt;
        Based on the country/region you selected during the sign-up, the datacenter will be chosen to store data for your environments.
        &lt;br /&gt;&lt;br /&gt;
        This selection will be reflected into the URL of your Dynamics 365 environment where you can guess the region from it.
        &lt;br /&gt;
        &lt;img alt=&quot;Data center regions&quot; height=&quot;374&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijBMrKOYRG8vczTzDyRCb3cDRcec0tLMlwD8IKj9xHMIBtNq3dEI-mxC2NFe17ltpOR1GTRGvm9s-ZqYNnoK39L79EyT6FlAudlsIEOqrjq09fvU5HV7jTh6hYOLu8_4g-MYAAsyTexWYmtsjMY5qOYszZaWO6V8p_DduU-d29xfVXo0r7F1We1egM/w640-h374/1.png&quot; title=&quot;Data center regions&quot; width=&quot;640&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
        In this post, we will see &lt;b&gt;the latest list of datacenter regions for Dynamics 365 Online&lt;/b&gt; with the URL for each region.
    &lt;/h3&gt;
    &lt;div&gt;
        Here is the list of the latest of Dynamics 365 Online data center regions
        &lt;table id=&quot;Regions&quot;&gt;
            &lt;tbody&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;#&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;&lt;strong&gt;Region&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;&lt;strong&gt;URL&lt;/strong&gt;&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;North America (NAM)&lt;/td&gt;
                    &lt;td&gt;crm.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;United States Government Community Cloud&lt;br /&gt;(US GCC) High&lt;/td&gt;
                    &lt;td&gt;crm.microsoftdynamics.us&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Microsoft Cloud Germany (DEU)&lt;/td&gt;
                    &lt;td&gt;crm.microsoftdynamics.de&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;4&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;China (CHN)&lt;/td&gt;
                    &lt;td&gt;crm.dynamics.cn&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;South America (LATAM/ SAM)&lt;/td&gt;
                    &lt;td&gt;crm2.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;6&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Canada (CAN)&lt;/td&gt;
                    &lt;td&gt;crm3.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;7&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Europe, Middle East, Africa (EMEA / EUR)&lt;/td&gt;
                    &lt;td&gt;crm4.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;8&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Asia Pacific (APAC/ APJ)&lt;/td&gt;
                    &lt;td&gt;crm5.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;9&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Australia (OCE)&lt;/td&gt;
                    &lt;td&gt;crm6.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Japan (JPN)&lt;/td&gt;
                    &lt;td&gt;crm7.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;11&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;India (IND)&lt;/td&gt;
                    &lt;td&gt;crm8.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;12&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;North America 2 (US Gov GCC)&lt;/td&gt;
                    &lt;td&gt;crm9.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;13&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;United Kingdom (UK/ GBR)&lt;/td&gt;
                    &lt;td&gt;crm11.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;14&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;France (FRA)&lt;/td&gt;
                    &lt;td&gt;crm12.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;15&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;South Africa (ZAF)&lt;/td&gt;
                    &lt;td&gt;crm14.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;16&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;United Arab Emirates (UAE)&lt;/td&gt;
                    &lt;td&gt;crm15.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;17&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Germany (GER)&lt;/td&gt;
                    &lt;td&gt;crm16.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;18&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Switzerland (CHE)&lt;/td&gt;
                    &lt;td&gt;crm17.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;19&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Norway (NOR)&lt;/td&gt;
                    &lt;td&gt;crm19.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Singapore (SGP)&lt;/td&gt;
                    &lt;td&gt;crm20.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;strong&gt;21&lt;/strong&gt;&lt;/td&gt;
                    &lt;td&gt;Korea (KOR)&lt;/td&gt;
                    &lt;td&gt;crm21.dynamics.com&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/07/data-center-regions-for-dynamics-365.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijBMrKOYRG8vczTzDyRCb3cDRcec0tLMlwD8IKj9xHMIBtNq3dEI-mxC2NFe17ltpOR1GTRGvm9s-ZqYNnoK39L79EyT6FlAudlsIEOqrjq09fvU5HV7jTh6hYOLu8_4g-MYAAsyTexWYmtsjMY5qOYszZaWO6V8p_DduU-d29xfVXo0r7F1We1egM/s72-w640-h374-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-2928505700254872473</guid><pubDate>Sun, 10 Jul 2022 17:18:00 +0000</pubDate><atom:updated>2022-07-10T20:18:04.195+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>CHANGE USER BUSINESS UNIT WITHOUT REMOVING SECURITY ROLES IN DYNAMICS 365</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        Since the first versions of the Dynamics 365 product, the business units, users, and security roles are directly linked together and form
        the base of the security model in the system, where every user must belong to one business unit and must have one or more security roles assigned to him.
        &lt;br /&gt;&lt;br /&gt;
        As you know, security roles are specific to each business unit, where a version of the security role of the root business unit will be
        replicated and inherited for every business unit in the hierarchy.
        &lt;br /&gt;&lt;br /&gt;
        In addition, changing a user business unit will remove all the security roles assigned to the user from the previous business unit,
        and you need to reassign them manually for the new business unit.
        &lt;br /&gt;
        &lt;img alt=&quot;Change business unit 1&quot; height=&quot;296&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcuCB9ieq2kpukWMoJ6-5uDpW8SAn7eld7AdbbuTXKwko46sldV-r72BxG_lF-CL4e9MPEK7XuSLXsKqyDjgwa90LNJVJqI2mKdm0EUOPSesUq39hHr0kZA3H8KbyaOU-ihQxpuWWni_N2JfOOZZI5NuChAUyuexalDlQa7mTmNtqlWAYvXAM5qLWS/w640-h296/1.png&quot; title=&quot;Change business unit 1&quot; width=&quot;640&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
        &lt;img alt=&quot;Change business unit 2&quot; height=&quot;390&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8SU5kxCFYQ_sWZKORw1JSUecE3piZBQlq8uzyUv4i55__CpndjiH1rA2VLUkRfSjULdR37R01u1d4n8FcylW6KEkDJ355UGhIytY3cr5H1JTymcB9TAifQIy2dw7fV-dsbBR2iB-2SdaR8DdsLNYvVIKUl-rKlRsIh__9bvYPMqcirrRTvPgCgkA5/w640-h390/2.png&quot; title=&quot;Change business unit 2&quot; width=&quot;640&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;
        Starting 2021 Release Wave 2 Updates, this behavior can be overridden and we can
        &lt;b&gt;change the user business unit without removing the assigned security roles&lt;/b&gt;.
        &lt;br /&gt;&lt;br /&gt;
        In this post, we will see &lt;b&gt;how to change user business unit without manually re-assigning the security roles in Dynamics 365&lt;/b&gt;.
    &lt;/h3&gt;
    &lt;div&gt;
        In order to keep the security roles of the user when changing his business unit,
        a new setting has been added that give you the ability to enable it and to keep the security roles after the change of business unit
        &lt;ol&gt;
            &lt;li&gt;
                Import the solution &lt;b&gt;Organization Settings Editor&lt;/b&gt; after &lt;a href=&quot;https://github.com/seanmcne/OrgDbOrgSettings/releases&quot; target=&quot;_blank&quot;&gt;installing it&lt;/a&gt;
            &lt;/li&gt;
            &lt;li&gt;
                After the solution is successfully imported, open its configuration page
            &lt;/li&gt;
            &lt;li&gt;
                Scroll down to the option &lt;b&gt;DoNotRemoveRolesOnChangeBusinessUnit&lt;/b&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;Change business unit 3&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBmIz4DroMRc92DOJO1XqNYeAuOGzIpxVn3Wqw3zdiUazRek8hmQOVKWiAqdXs7pBz_81QckjvhAqEwaIz3rnLX3_ZwrOjmwPAj1gQgNLM1_CFXCf3vYbBCXyGEdUCv9ANiALKZMjA-xHC48anVmrjkfnMoML9sM8xT4APWhdOZXr7zVFxd98FX_So/w640-h188/3.png&quot; title=&quot;Change business unit 3&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Click &lt;i&gt;Add&lt;/i&gt; to enable it in the system
            &lt;/li&gt;
            &lt;li&gt;
                The default value is set to &lt;i&gt;false&lt;/i&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;Change business unit 4&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAKba1CS8VH_t3UUb3pZJnFsldOOBopgCUnNndGFe_yK1AMTQ6qmBLO-hauP3YuP0H-Jk2RgZGUoctvnYaQj5VbfRw1w4Dx-NsTy7Z4Ddz1G4L4yq26qTZPYnpZFTA44zxHc_IgCKuXkeIM9zwWD-5XCQhN-3wGHTLfpCICd4LCWrnIqHenx7Eo9i1/w640-h188/4.png&quot; title=&quot;Change business unit 4&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Click &lt;b&gt;Edit&lt;/b&gt; to change the value to &lt;i&gt;true&lt;/i&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;Change business unit 5&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCBkeS7NeXAmrYqE3kjVdEMGQUtcVr1kl_AGxRx9C4RaRO4ADoe9jtXu_uMVLnCmG4LXF_ygg6a0RuM4cVe62oYY7k0H75BG9SxkfTs9-nOE_j4zCpbOlHBnAPSuYv_JUiaT8SW1Lva8OQaD6VxU04cfrN_ZvjjJ_yRdOvJlJXkMvk7LgylUFzX-9y/w640-h260/5.png&quot; title=&quot;Change business unit 5&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
                &lt;img alt=&quot;Change business unit 6&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjrSFn2K670IOaCzFoywJX9aLsP-7MSZiENUNIgTGGB83NTScamg_7Z-DPnAKHBw8siG_6Y4jqI7cUxAYrWs9k_fYtjHPcW8DAnUqGxg9e5aBAtcHqX1Hl2OOcE38FbSU8P8lhuqm15vpkVVR4SIRBX1jI_QLT0eLK1EozQXTo4Ye3mroaROT5zwpH/w640-h178/6.png&quot; title=&quot;Change business unit 6&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Now in the user page, change the business unit and check the security roles
            &lt;/li&gt;
            &lt;li&gt;
                As expected after updating the setting to &lt;i&gt;true&lt;/i&gt;, the same security roles are still assigned but are the ones under the new business unit
                &lt;br /&gt;
                &lt;img alt=&quot;Change business unit 7&quot; height=&quot;310&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgktRfWNqVQN3hQsj5UvXkhQqA3fDJ82zn4H2ca1J5PSmt2sRc9P_7OjvG5rR0uVnX-FDj7Jbc61JvBOF2ugkiYFXqpIvKG16HI9DMZ3jBvQ5hDRYsjFpI8Yt3Rab_bLkNPnT5VyfgZlg4K7gDugMCqs5lVtDsAok3eT8DYrdoxkcJNHUbU3-d5xYu/w640-h310/7.png&quot; title=&quot;Change business unit 7&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
                &lt;img alt=&quot;Change business unit 8&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwtb_e8gjI0u7pinjTVkCSoswXf-qRaydXjHlCFeVzhGY-j37NRkzFjgyeQCoHItTTQHcnx2dujrNwIvWvZKXZ-xtr_OxjkroCTzprKTJWTspoIuL-MU4Uq56cYbs1HeE3HJJWXSrkLmvhUyqQ2U9OlgUz9iSwZvtseh8icyJECtQzinXSTMuAU4cZ/w640-h306/8.png&quot; title=&quot;Change business unit 8&quot; width=&quot;640&quot; /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                The setting &lt;b&gt;DoNotRemoveRolesOnChangeBusinessUnit&lt;/b&gt; is still not available for the Dynamics 365 on-premises (checked on version 9.1.2.2)
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/07/change-user-business-unit-without.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcuCB9ieq2kpukWMoJ6-5uDpW8SAn7eld7AdbbuTXKwko46sldV-r72BxG_lF-CL4e9MPEK7XuSLXsKqyDjgwa90LNJVJqI2mKdm0EUOPSesUq39hHr0kZA3H8KbyaOU-ihQxpuWWni_N2JfOOZZI5NuChAUyuexalDlQa7mTmNtqlWAYvXAM5qLWS/s72-w640-h296-c/1.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-5541999251332045274</guid><pubDate>Mon, 04 Jul 2022 17:55:00 +0000</pubDate><atom:updated>2022-07-04T20:55:53.074+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>CREATE APPICATION USER FOR DYNAMICS 365</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        In Dynamics 365, you can create an unlicensed user in your environment, it is called &lt;b&gt;Application user&lt;/b&gt;.
        &lt;br /&gt;&lt;br /&gt;
        This type of user will have access to the data of your environment on behalf of the user who is using your application.
        &lt;br /&gt;&lt;br /&gt;
        However, each Azure Active Directory registered application, you can only create one application user.
        &lt;br /&gt;&lt;br /&gt;
        Previously, we were able to create this type of users from the Users area under the Settings &gt; Security menu.
        Currently, it is done through the Power Platform Admin center
        &lt;br /&gt;&lt;br /&gt;
        In this post, we will see &lt;b&gt;how to Create an Application User for Dynamics 365&lt;/b&gt;.
    &lt;/h3&gt;
    &lt;div&gt;
        Below are the instructions to create an application user
        &lt;ol&gt;
            &lt;li&gt;
                Log on to the Power Platform Admin center as a System Administrator
            &lt;/li&gt;
            &lt;li&gt;
                Go to &lt;b&gt;Environments&lt;/b&gt;, select the needed environment and open the &lt;b&gt;Settings&lt;/b&gt; page
                &lt;img alt=&quot;`App user 1&quot; height=&quot;210&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3cHkYj4hnn_wOzqBIVSUXZlV51a_q3K-GFxGRr-w-kPwClC62eAZlUI3BjfaCfX0A2IJUaqyd4nuI_iNaXSxs6t5bo1Q4ktE5mM-MwGcXA7iIHH_TBhJobvqEAmX1BKb0Wqrt4xJzxFQPET1F1rFuuVMFrHK37AWFpS_sZxLZ0o1T6nX4Pi6xf0Ik/w640-h210/1.png&quot; title=&quot;App user 1&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                In the Settings page, go to &lt;b&gt;Users + permissions&lt;/b&gt;, and select &lt;b&gt;Application users&lt;/b&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;App user 2&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZWrRA1VyOJmMEENck2hGz6PF9lPWMcvvAe6Hj1oRwrHJbFRsq1n_PmrjS5SO37JUhXPepLY0TXpH6Z-3MUS2njGv4ADqhRPl79arXiEBIDzmazIC6mvma2Y8Ke-yFxDXK6LLAgQFSqRpGdlFyekkVmF6eIzcfyGCcsAIDJX8FJZVlMJbgP51NVwQx/w466-h640/2.png&quot; title=&quot;App user 2&quot; width=&quot;466&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;

            &lt;/li&gt;
            &lt;li&gt;
                In the application users page, click &lt;b&gt;+ New app user&lt;/b&gt; to open the &lt;i&gt;Create a new app user&lt;/i&gt; page
                &lt;img alt=&quot;App user 3&quot; height=&quot;378&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio-UvEJUHdtaNjXklRXCzWqr1RL9bLQwOyHU7ubHqaGCqSzudj5x-vK_x5eAi-2Jnvx_ViC7CD3Hj_9HcQJtdXXdPIZSN0o0r6hMp7mr3gOEw6R0-E10bd7zntwUgseZR6UwSX16LDlIw97qklA3DZ9KCc1OZRQLQZZErfTG7e0wO-GF0H5V_oCOXK/w640-h378/3.png&quot; title=&quot;App user 3&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                You will be able to add a registered Azure AD application that was created for the selected user by clicking &lt;b&gt;+ Add an app&lt;/b&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Select the App and click Add
                &lt;br /&gt;
                Check &lt;a href=&quot;https://charlesabikhirs.blogspot.com/2020/04/d365-using-oauth-authentication-when.html&quot;&gt;this article&lt;/a&gt;
                for more information on how to create an Azure AD application
                &lt;br /&gt;
                &lt;img alt=&quot;App user 4&quot; height=&quot;378&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0D3Ip2sAFlAQZmJ0S4-3GD6G6HQ8AvpDt4RIRFO7p9BP1_gh6_7QVvH-QAYlt0W7Qa3Owv2n_zoTjZWFLxr6M_OC0jSyZZmWJCQfNhfkYAYKUfqMGmjSIC4Ism53zW6wkZIk3x7ivpmAIetVvpWCiD8ArG8mYuVS5cPgwfBaGnFipLcJIo2aDi0pF/w640-h378/4.png&quot; title=&quot;App user 4&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                After you select the App, select a business unit from the dropdown list
            &lt;/li&gt;
            &lt;li&gt;
                In the Security roles section, select the needed roles and then click Save
                &lt;img alt=&quot;App user 5&quot; height=&quot;624&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhycYRo9kso7hQpL6uB9GVGQGaMn-aLoXvjZwCDYtJx0KQNnQVRKIPqvYYFYrJM0fCV0Cn9YD6hzY2kfghMNExkRUUsIZ1tqcygOqPnolqg2fA0AY1vNJOtfSsCZg588CLLyu5JdYU-ZF7zzLy5SRItFqPojyMwbg1xZuyDbxZaYcL9E2UhAr1DYAh_/w640-h624/5.png&quot; title=&quot;App user 5&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Click &lt;b&gt;Create&lt;/b&gt; to add the Application User
            &lt;/li&gt;
            &lt;li&gt;
                Once the Application user is created, you can perform the below Actions
                &lt;ul&gt;
                    &lt;li&gt;
                        &lt;u&gt;Details&lt;/u&gt;: will allow you to check the details of the Application user and apply specific changes
                    &lt;/li&gt;
                    &lt;li&gt;
                        &lt;u&gt;Edit Security Roles&lt;/u&gt;: will allow you to add/remove security roles to/from the Application user
                    &lt;/li&gt;
                    &lt;li&gt;
                        &lt;u&gt;Deactivate&lt;/u&gt;: will allow you to deactivate the Application user
                    &lt;/li&gt;
                &lt;/ul&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;App user 6&quot; height=&quot;198&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFbq3fgYYorxklgVgk6Si2JPAd7LhID6JeP3iyMVe290Rcol9GBtFLzlvjxHwJbsC8_u5zs5bPz45x-FEVuUeVzG8vfPA2IwpPjvcRwXP91sqUQjSo0K_QDUKK6OJqXHLKZuK8RUQnARDYLAHH3FubWDna3zv8n5OfZjACWjSzJzrTl0PbVkofEEno/w640-h198/6.png&quot; title=&quot;App user 6&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                The Details page shows the below properties for the application user noting that only the business unit, email address, and security roles can be edited:
                &lt;ul&gt;
                    &lt;li&gt;
                        Name
                    &lt;/li&gt;
                    &lt;li&gt;
                        Azure AD application ID
                    &lt;/li&gt;
                    &lt;li&gt;
                        Assigned security roles
                    &lt;/li&gt;
                    &lt;li&gt;
                        App type
                    &lt;/li&gt;
                    &lt;li&gt;
                        Business unit
                    &lt;/li&gt;
                    &lt;li&gt;
                        Email address
                    &lt;/li&gt;
                &lt;/ul&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;App user 7&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaZHQj7CImY5UdY6h7uf6s9D_MUDN7Pif74uJJKMUs_dpAyATadsyKeWzCsefSS62ReHgfn3wmoLkvonstz30INOWAjkMIFq-rhyZAbBNkas-x7EpP1vyDsCOFogAQ_4j3aIEASvygY_MZYYVARFlPqoVb0ZRw1gZJuS-ueVPPZm6vHYe8ExkiNLz-/w388-h640/7.png&quot; title=&quot;App user 7&quot; width=&quot;388&quot; /&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/07/create-appication-user-for-dynamics-365.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3cHkYj4hnn_wOzqBIVSUXZlV51a_q3K-GFxGRr-w-kPwClC62eAZlUI3BjfaCfX0A2IJUaqyd4nuI_iNaXSxs6t5bo1Q4ktE5mM-MwGcXA7iIHH_TBhJobvqEAmX1BKb0Wqrt4xJzxFQPET1F1rFuuVMFrHK37AWFpS_sZxLZ0o1T6nX4Pi6xf0Ik/s72-w640-h210-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-8642424516830323491</guid><pubDate>Mon, 27 Jun 2022 07:08:00 +0000</pubDate><atom:updated>2022-06-27T10:11:49.932+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>CALL JAVASCRIPT FUNCTION ON SUBGRID REFRESH IN DYNAMICS 365</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        In this post, we will see an example on &lt;b&gt;how to call JavaScript function when a subgrid is refreshed in Dynamics 365&lt;/b&gt;.
        &lt;br /&gt;&lt;br /&gt;
        Sometimes, you have a scenario where you need to call a JavaScript function when a sub-grid refresh event has occurred in the form.
        &lt;br /&gt;&lt;br /&gt;
        The subgrid refresh event might happen if a record is added to the subgrid, deleted from the subgrid, or the refresh button of the subgrid is clicked.
    &lt;/h3&gt;
    &lt;div&gt;
        &lt;ol&gt;
            &lt;li&gt;
                In order to trigger the function, you have to register a function on the OnLoad event of the form
                (in the below exemple &lt;i&gt;manageFormBasedOnRecordsInSubgrid&lt;/i&gt;) which in turns, will call the OnLoad event of the subgrid
            &lt;/li&gt;
            &lt;li&gt;
                After doing this, each time you add/delete record from sub-grid, the function &lt;i&gt;functionTriggerredgetOnSubgridRefresh()&lt;/i&gt; will be triggered.
            &lt;/li&gt;
            &lt;li&gt;
                Below, is a sample code for the function that will be called when the subgrid is refreshed
                &lt;i&gt;
                    &lt;br /&gt;var formContext;
                    &lt;br /&gt;var gridContext;
                    &lt;br /&gt;function manageFormBasedOnRecordsInSubgrid(context) {
                    &lt;br /&gt;formContext = context.getFormContext();
                    &lt;br /&gt;gridContext = formContext.getControl(&quot;Contacts&quot;);
                    &lt;br /&gt;//ensure that the subgrid is ready…if not wait and call this function again
                    &lt;br /&gt;if (gridContext == null) {
                    &lt;br /&gt;setTimeout(function () { manageFieldsBasedOnLivrableSubgrid(); }, 500);
                    &lt;br /&gt;return;
                    &lt;br /&gt;}
                    &lt;br /&gt;//bind the event listener when the subgrid is ready
                    &lt;br /&gt;gridContext.addOnLoad(functionTriggeredgetOnSubgridRefresh);
                    &lt;br /&gt;}
                    &lt;br /&gt;
                    &lt;br /&gt;function functionTriggeredgetOnSubgridRefresh() {
                    &lt;br /&gt;try {
                    &lt;br /&gt;setTimeout(function () {
                    &lt;br /&gt;if (gridContext != null &amp;amp;&amp;amp; gridContext != undefined) {
                    &lt;br /&gt;var recordsCount = formContext.getControl(&quot;Contacts&quot;).getGrid().getTotalRecordCount();
                    &lt;br /&gt;if (recordsCount &amp;gt; 0) {
                    &lt;br /&gt;var alertMessage = { text: &quot;Do something here when subgrid contains records&quot; };
                    &lt;br /&gt;Xrm.Navigation.openAlertDialog(alertMessage, null);
                    &lt;br /&gt;}
                    &lt;br /&gt;else {
                    &lt;br /&gt;var alertMessage = { text: &quot;Do something here when subgrid has no records&quot; };
                    &lt;br /&gt;Xrm.Navigation.openAlertDialog(alertMessage, null);
                    &lt;br /&gt;}
                    &lt;br /&gt;}
                    &lt;br /&gt;}, 1000);
                    &lt;br /&gt;}
                    &lt;br /&gt;catch (e) {
                    &lt;br /&gt;var alertMessage = { text: &quot;getTotalGridRecordCount Error: &quot; + e.message || e.description };
                    &lt;br /&gt;Xrm.Navigation.openAlertDialog(alertMessage, null);
                    &lt;br /&gt;}
                    &lt;br /&gt;}
                &lt;/i&gt;
                &lt;img alt=&quot;Sub grid refresh 1&quot; height=&quot;318&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdrr68PhCLQASG1xTP7lR7D2v_saZblStTO_btCcA4iDik90JTsMlyxo_HEI3brqW5EIyJjsJxkz0GXhQhL8sLjfaAGX5W9DHQdKwSBR_EUAb4FWTbOWMHq2jLQKmHBsGeEmV5FqEANzNtGk1neGFfflaBvVV-zoCZcBhBT7YxyMej7aIgIVLgDZay/w640-h318/1.png&quot; title=&quot;Sub grid refresh 1&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
                &lt;img alt=&quot;Sub grid refresh 2&quot; height=&quot;318&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdFRhLQRrXanBP3TMMm4mEpCF4OsbZve78_Fmrl2AzIR4wgCkWGg4wC2HjKkH8nY_7NVNyEiM9byLaFfoygtqSapfwPJKOsBVt_ZgM3yN4lvChMbH6HGStk2frOrRyoty_S_tSbiqM01jUnXlETTApi74OymKB0tktzgEvBir6io7A9rz0MLfcvSI7/w640-h318/2.png&quot; title=&quot;Sub grid refresh 2&quot; width=&quot;640&quot; /&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/06/call-javascript-function-on-subgrid.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdrr68PhCLQASG1xTP7lR7D2v_saZblStTO_btCcA4iDik90JTsMlyxo_HEI3brqW5EIyJjsJxkz0GXhQhL8sLjfaAGX5W9DHQdKwSBR_EUAb4FWTbOWMHq2jLQKmHBsGeEmV5FqEANzNtGk1neGFfflaBvVV-zoCZcBhBT7YxyMej7aIgIVLgDZay/s72-w640-h318-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-429643914617733850</guid><pubDate>Mon, 13 Jun 2022 08:22:00 +0000</pubDate><atom:updated>2022-06-13T11:22:27.951+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>TURNING OFF SEND ERROR REPORT IN DYNAMICS 365</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;        
        In Dynamics 365, when errors occur in the product, users have the option to send error reports to Microsoft about the error.
        &lt;br /&gt;&lt;br /&gt;
        The error report will contain data that can help Microsoft fix these problems and improve the products and services.
        &lt;br /&gt;&lt;br /&gt;
        A pop-up will be displayed to the user that will be able to select the needed option

        &lt;br /&gt;
        &lt;img alt=&quot;Send error report 1&quot; height=&quot;298&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaaeey2ZdCKotp6U1wHiqhM2pTiQ0ATm-WA3Cw-CdRSLz7zvV61WGTAcQ2ZDo_U5OGjLEZ8Y-MQVFPDDlQmBgsNCjm7fwXJ35us0qJwEYEDvjMFo4z9YjJ4pqJExOKRTLzEo2XUlY2p95D-8BQ_rtg4vqOWcqW1Qrk3hQg7KbitmK6OoOEazXccHVX/w640-h298/0.png&quot; title=&quot;Send error report 1&quot; width=&quot;640&quot; /&gt;
        &lt;br /&gt;&lt;br /&gt;

        In this post, we will see &lt;b&gt;how to turn off sending error reports to Microsoft&lt;/b&gt;.
    &lt;/h3&gt;
    &lt;div&gt;
        In order to change the error reporting preferences, you can follow the below steps
        &lt;ol&gt;
            &lt;li&gt;
                Open the Power Platform admin center and go to Environments
            &lt;/li&gt;
            &lt;li&gt;
                In the list of Environments, select the specific environment and open the Settings
                &lt;br /&gt;
                &lt;img alt=&quot;Send error report 2&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIf-9QWQFvdJcG3emk2OFP5bGQOf-F3eBKiAG1g3sYcnr6LRfa1An1alcyxZ9_F3m_sa1Qn8fyFXeuaFKBMbCpybZ36YrXZDNIuIeQuvWBDBx0aAh_zHpuSxwj82oV0smgwD0a73MlsGdMLZlpk15SnVOWMlS8SrqJtx7RMKxsS4B94-AfSkMsQQMe/w640-h258/2.png&quot; title=&quot;Send error report 2&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                In the Settings page, under the &lt;i&gt;Product&lt;/i&gt; settings section, click &lt;i&gt;Privacy + Security&lt;/i&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;Send error report 3&quot; height=&quot;500&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSf966TgAw-UEQk2Rem5aEIrT7fL-mzZOJ9BoBdNJegKQpMq3uk8X1niwgKJ-Sce9JBHR1cJTqzLZggjf8vuwIP2p-oiKh0P3fV8K5W8tUSbT4WCUGcDUTFeQJZnMhw98ypbif1yAsNy_zFFZct8pCn4NrOsLPldUbq_mz2K8gYL3qZYTtZApNYdyH/w640-h500/3.png&quot; title=&quot;Send error report 3&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                In the &lt;i&gt;Privacy Preference&lt;/i&gt; page, under the section &lt;i&gt;Default action to take when an error occurs&lt;/i&gt;,
                select the option &lt;i&gt;Never send an error report to Microsoft&lt;/i&gt;
                &lt;br /&gt;
                &lt;img alt=&quot;Send error report 4&quot; height=&quot;526&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcXRpT09FoPfgVJcLlb4hrIc_JuOpDqsVgHSkfUZ-fmOMD5uxCrGlr4L4rimo6xmQYCPw_33_X0fV8qmGobbWjuFV4WWQVfhtezifjjqQ57lBwS74A1jJ6DE0N5O_NFjlcKA7bZ4c9FBmCKGTIGCpjo7hUN7qwdjY2vX6GqD2vaM0Rxw52_BB4d0gU/w640-h526/4.png&quot; title=&quot;Send error report 4&quot; width=&quot;640&quot; /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Click Save to apply your changes
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;br /&gt;&lt;br /&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/06/turning-off-send-error-report-in.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaaeey2ZdCKotp6U1wHiqhM2pTiQ0ATm-WA3Cw-CdRSLz7zvV61WGTAcQ2ZDo_U5OGjLEZ8Y-MQVFPDDlQmBgsNCjm7fwXJ35us0qJwEYEDvjMFo4z9YjJ4pqJExOKRTLzEo2XUlY2p95D-8BQ_rtg4vqOWcqW1Qrk3hQg7KbitmK6OoOEazXccHVX/s72-w640-h298-c/0.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4275472536327744994.post-734554429028915685</guid><pubDate>Mon, 06 Jun 2022 06:31:00 +0000</pubDate><atom:updated>2022-06-06T09:31:28.336+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">Dynamics 365</category><category domain="http://www.blogger.com/atom/ns#">Dynamics CRM</category><category domain="http://www.blogger.com/atom/ns#">PowerApps</category><title>CREATE DYNAMICS 365 ENTITY IN SDK</title><description>&lt;div style=&quot;color: #171717; font-family: arial; font-size: medium;&quot;&gt;
    &lt;h3 style=&quot;font-weight: normal;&quot;&gt;
        In this post, we will learn &lt;b&gt;how to create a Dynamics 365 custom entity in SDK&lt;/b&gt; and how to set some of its properties.
    &lt;/h3&gt;
    &lt;div&gt;
        &lt;ol&gt;
            &lt;li&gt;
                The below function can be used to create a custom entity
                &lt;br /&gt;
                &lt;i&gt;
                    &lt;br /&gt;public void CreateEntity()
                    &lt;br /&gt;{
                    &lt;br /&gt;CreateEntityRequest createrequest = new CreateEntityRequest
                    &lt;br /&gt;{
                    &lt;br /&gt;Entity = new EntityMetadata
                    &lt;br /&gt;{
                    &lt;br /&gt;SchemaName = &quot;cak_CustomEntity&quot;,
                    &lt;br /&gt;DisplayName = new Label(&quot;Custom Entity&quot;, 1033),
                    &lt;br /&gt;DisplayCollectionName = new Label(&quot;Custom Entities&quot;, 1033),
                    &lt;br /&gt;Description = new Label(&quot;Custom entity created using SDK&quot;, 1033),
                    &lt;br /&gt;OwnershipType = OwnershipTypes.UserOwned,
                    &lt;br /&gt;IsActivity = false,
                    &lt;br /&gt;IsBusinessProcessEnabled = true,
                    &lt;br /&gt;IsAuditEnabled = new BooleanManagedProperty(true),
                    &lt;br /&gt;IsSLAEnabled = false,
                    &lt;br /&gt;},
                    &lt;br /&gt;PrimaryAttribute = new StringAttributeMetadata
                    &lt;br /&gt;{
                    &lt;br /&gt;SchemaName = &quot;cak_name&quot;,
                    &lt;br /&gt;RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
                    &lt;br /&gt;MaxLength = 100,
                    &lt;br /&gt;FormatName = StringFormatName.Text,
                    &lt;br /&gt;DisplayName = new Label(&quot;Name&quot;, 1033),
                    &lt;br /&gt;Description = new Label(&quot;Primary attribute for the custom entity.&quot;, 1033)
                    &lt;br /&gt;},
                    &lt;br /&gt;HasActivities = true,
                    &lt;br /&gt;HasNotes = true,
                    &lt;br /&gt;SolutionUniqueName = &quot;CAK&quot;,
                    &lt;br /&gt;};
                    &lt;br /&gt;try
                    &lt;br /&gt;{
                    &lt;br /&gt;var result = AdminService.Execute(createrequest);
                    &lt;br /&gt;if (result.Results != null)
                    &lt;br /&gt;Console.WriteLine(&quot;Custom Entity successfully created!&quot;);
                    &lt;br /&gt;}
                    &lt;br /&gt;catch (Exception e)
                    &lt;br /&gt;{
                    &lt;br /&gt;Console.WriteLine($&quot;Error while creating the custom entity. \n\rError message: {e.Message}&quot;);
                    &lt;br /&gt;}
                    &lt;br /&gt;}
                    &lt;br /&gt;&lt;br /&gt;
                &lt;/i&gt;
            &lt;/li&gt;
            &lt;li&gt;
                Based on your needs, you can add or remove the properties you want to set for the entity you want to create or its primary field
                &lt;br /&gt;
                &lt;img alt=&quot;Create entity request 1&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRWVIbTsHDOamtN17xmnoR_0Y8ji2vnsrRY60xExtHe2GvNKgjriWyDa6zWbAsjUHqHkLay4kWJj38AUygPji0021hNkhBPVz-EgBEc2taS1YRfAfu95Uqc1KFl9Tg0F_7QoM92GDFihbReBQCMyubMOKvKYrMgYWcJeM7GNcYwIpBaXeuZ7iXGpck/w378-h640/1.png&quot; title=&quot;Create entity request 1&quot; width=&quot;378&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
                &lt;img alt=&quot;Create entity request 2&quot; height=&quot;546&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgabkmdglOggZ78VOzbSgMG8R_tRI52tcVvzox8eaSvh1mc93MWLtR5pD2K2zKkhp4QLvEip4sJc63temEMhqtAFkUit0nCyhQ9o93Th6mqnRSq5qudMfko-WQ6zIFjqjorKNoCNKxABcAHZWQkHVg9vr-Tt0gPnheVp6EYpgUYGhz7gKYyzziQMpwW/w640-h546/2.png&quot; title=&quot;Create entity request 2&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt; &lt;br /&gt;
            &lt;/li&gt;
            &lt;li&gt;
                If you want to add the created entity to a specific unmanaged solution, you can set the solution name accordingly in the &lt;i&gt;SolutionUniqueName&lt;/i&gt; property
                &lt;br /&gt;
                &lt;img alt=&quot;Create entity request 3&quot; height=&quot;148&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW823qEeSDsiGenRxL6u-NqNr4k68I04grfxOUYoON_ut4huP5Q1Xd0vcBCg9REwj8UMcioFoecOvw7kFYYps5xV7ONk4VsklzmD3tHN3ip9oX1ItkiQ0fnWNmtkrZPRFSxJCXNipqUQZHcYoDaJLBNkowdaK_B1R-OsvgS1AP-tLWOuoUx3_QR1eO/w640-h148/0.png&quot; title=&quot;Create entity request 3&quot; width=&quot;640&quot; /&gt;
                &lt;br /&gt;&lt;br /&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;div&gt;
        Hope This Helps!
    &lt;/div&gt;
&lt;/div&gt;</description><link>https://charlesabikhirs.blogspot.com/2022/06/create-dynamics-365-entity-in-sdk.html</link><author>noreply@blogger.com (Charles Abi Khirs)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRWVIbTsHDOamtN17xmnoR_0Y8ji2vnsrRY60xExtHe2GvNKgjriWyDa6zWbAsjUHqHkLay4kWJj38AUygPji0021hNkhBPVz-EgBEc2taS1YRfAfu95Uqc1KFl9Tg0F_7QoM92GDFihbReBQCMyubMOKvKYrMgYWcJeM7GNcYwIpBaXeuZ7iXGpck/s72-w378-h640-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>