Scratching your head over why your custom ribbon buttons are not visible or not working as expected–The wonderful Command checker tool from Microsoft might just save your day.

Debajit's Dynamic CRM Blog

If you have ever worked in Dynamics 365 implementation then it is almost certain that you must have played around with ribbons. And more often than not you must have faced scenario where you have multiple enable and display rules on the form and not sure why the ribbon button is showing up on the form when it is supposed not to show up or vice versa.

And what we do to resolve it. Well, we play around with the ribbon customizations which takes much more time than other customizations in Dynamics 365. And if it is some custom rule, we would attach debuggers to our custom code and debug and find what is going wrong.

What if I tell you that Microsoft just released something which shall help you identify which of your ribbon rule is evaluating to what in a matter of few mins so that you can…

View original post 441 more words

ReviseQuoteRequest: The quote cannot be revised because it is not in closed state

I used “ReviseQuoteRequest” SDK method in one of the plugin to revise the quote. When you revise a quote from UI, first it will close the existing quote and then create a revised version of this quote. So I expected that “ReviseQuoteRequest” also do the same, but I got the “The quote cannot be revised because it is not in closed state” error when I am using the SDK method. After a bit of research, I understood that we have to Close the quote before revise it. So I closed the quote by using “CloseQuoteRequest” and then “ReviseQuoteRequest” which solved my issue. But my suggestion that SDK method should handle the close quote request also internally. Please let me know your thoughts on it.

Multiple Organizations issue for the FetchXML reports in Visual Studio

I faced the below issue with connection when trying to run the fetchxml based reports in visual studio. The issue didn’t resolved even after the organization name specified in the connection string.

Cause: It is because of change in TSL support, Microsoft supports only TSL 1.2 going forward.

Solution: Create a new DWORD in registry of the machine where VS is running.

  1. Open registry editor (Run –> regedit)
  2. Navigate to this path “HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft.NETFramework\v4.0.30319”
  3. Right click on v4.0.30319 folder, select New and then DWORD (32-bit ) value
  4. Provide the values like below
    • Value name: SchUseStrongCrypto
    • Value data: 1
  5. Exit from the registry editor and restart the machine

That’s it, now you can run the fetchxml based report from VS without having any problems. Hope it helps you to resolve this issue.

All about Reference Panels

It’s always a customer requirement to see as much as information possible with out too much scrolling on the form. Now it is possible with Reference Panels, it’s basically concept of tabs inside a tab. With the reference panels, you can place multiple sub grids or quick view forms inside a tab. Let’s see how to do this.

  • Open a Form Designer and then Insert tab
  • Insert One Column tab on the Form and name it as “Reference Panels”
  • Click on “Section” and select “Reference Panel”
  • It will insert a new Section in the tab.
  • Add your sub grids or quick view forms in this section. I added 2 sub grids and 1 quick view form.
  • Save and Publish

This is how it would look like after Publish. Select the buttons in the right hand side to change between the sub grid and quick view forms.

Hope it will help to add plenty of information as per customer need.

How to open a modal popup in Dynamics 365

In one of my previous post, I explained how to use navigateTo() function to navigate to entity view. But with this function, we can do lot more like navigate to dashboards and open modal popups (html web resources) which is most awaiting feature since long back. So, finally we can open a html web resource from a ribbon button click with OOB functions.

Please follow this link to know how to use this.

Thanks Gopinath for sharing this.

How to refresh or navigate to Entity View

In some scenarios we all have to refresh or navigate to specific entity view after a particular action performed. We can use a method called navigateTo() for this requirement. This method is available under new Namespace Navigate.

Syntax:

Xrm.Navigation.navigateTo({ pageType, entityName, viewId, viewType }).then(successFunction, errorFunction);

  1. pageType: Specify “entitylist”.
  2. entityName: Provide the logical name of the entity.
  3. viewId (Optional): Provide the Guid of the view to load. If you don’t provide it, it will navigate to the default view of an entity.
  4. viewType (Optional): Provide the Type of the view to load. For ex: “savedquery” or “userquery”. It is required only if you want to navigate to a specific view.

Example:

  • Without View Id:

Xrm.Navigation.navigateTo({ pageType: “entitylist”, entityName: “account” }).then(
function (result) {
//Success code
},
function (error) {
//Error code
}
);

  • With View Id:

Xrm.Navigation.navigateTo({ pageType: “entitylist”, entityName: “account”, viewId: “4ec687fd-9858-4e8c-b267-63add9769d77”, viewType: “savedquery” }).then(
function (result) {
//Success code
},
function (error) {
//Error code
}
);

Note: At the moment, this method is supported only on the Unified Interface

Hope it is helpful…..

How to remove Unmanaged customizations on Managed component

This is a common issue everyone would have faced once in a while that the customizations were not getting applied on the target instance through solution deployment. This is due to the direct changes on the component which is part of managed solution.

A component which is managed, gets an unmanaged layer as soon as you edit it directly on the instance. This unmanaged (active) layer lays on top of all other layers, which are coming from the different solutions containing this component. The layer on top is always winning, hence you can’t see the new changes coming from new deployments.

To avoid this issue, Microsoft introduced a new feature called “Solution Layers” where you can see all solutions where this component is part of it. You can see one “Active” solution on top of all solutions if you would have changed something directly on the instance. So, to get rid of the unmanaged customizations on managed component, you have to follow the below steps.

  1. Select the component and Click on “Solution Layers” button (some times you can see this option under “More Actions” drop down menu).

2. On click of this button, it will show the list of all solutions which included selected component, as shown in the below screenshot.

3. Select the 3 dots (…) of “Active” solution row, select “Remove Active Custmoziations” option and confirm.

4. That’s all you have to do to remove all unmanaged customizations, after that the changes will be affected which are coming from new deployments.

I faced this situation so many times, the changes I have done for ex. in web resources in dev instance couldn’t transfer to UAT/Prod instance due to the “Active” solution layer. So with this new feature, you could remove this unwanted solution layer with a single button click.

Note: Microsoft not yet rolled out this feature for some components like Views and Fields. (Thanks Viswanath for highlighting this in your comment)

Hope it is helpful….