Skip to main content

Posts

Showing posts from 2016

XrmToolBox: AutoNumberUpdater - new StateCode filter

Turn off CRM Outlook Syncronization

The Outlook CRM add-in includes the diagnostics tool. This allows various configuration options. For some cases it might be useful to deactivate the Outlook Synchronization. Usually, this tool is installed in this path: C:\Program Files\Microsoft Dynamics CRM\Client\res\web\bin you can open the tool from command line if you want: Microsoft.Crm.Outlook.Diagnostics.exe If you want to configure multiple machines or use policies to deactivate synchronziation you can also use a registry key for that: The key you want to look for is “ RunOutlookScheduledSync ” or “ RunOfflineScheduledSync ” if you use offline functionality. Setting to 0 (zero) disables it. Setting to 1 enables this feature. Remark: Replace ORG_ID with your actual organization id. Create Windows Registry deactivate.reg file for deactivation of sync: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\MSCRMClient\{ORG_ID}] "RunOutlookScheduledSync"=dword:

CRM Portals – Customer Self-Service – Invitation flaw

I recently had the situation that with Dynamics 365 Online Portals not all parts are self-explaining, especially the first setup. The customer required to have multiple CRM users from multiple business units. Out-of-the-box behavior is that only the system administrator is able to create invitations in general. But what if you want to enable mulitple users to fulfill this task? I recognized that users with the system administrator role still were not able to generate the invitation code that is triggered by the worklfow below. The reason is that by default this workflow’s scope is set to “User” level. Instead it must be on “Organization” to make it fire for all portal inviters. Next step was to create a new role “Portal Inviter” which only has the permissions for the “Invitation” entity completely enabled: (whole Organization-wide with exception to the delete permission, which should be on “User”-level) So this gave me the freedom to enable certain users from

CRM 2016: Solution import: Cannot delete an active workflow definition.

When you upate an exisiting solution in CRM and receive an error equal to this one: 16:33:07.66 {793dab2e-c2a4-e611-8102-c4346bad41fc} General SLA Failure 0x8004500F Cannot delete an active workflow definition. This means there is an SLA record in the system which has the status "Active". You first need to deactive that SLA record prior to importing the solution update.

CRM 2016: Solution import: An error occurred while importing Convert Rules.

When you import a CRM solution and receive this error: An error occurred while importing Convert Rules. It means you have already the same Automatic Record Creation and Update Rules deployed on the target system and they are on status "Activated". You need to deactivate those rules first prior to importing a solution or solution update.

CRM 2016 SP1: Solution import failed with Solution With Id = 12ac16ec-41d5-1685-a230-0b1c31499250 Does Not Exist

Importing Solutions with the upgrade solution (holding solution) option is still not stable with CRM 2016 SP1 On-Premise. Ronald Lemmon already posted the same issue on his blog: http://ronaldlemmen.blogspot.de/2015/11/solution-with-id-86ac16ec-41d7-4685.html I expected it to be fixed with SP1 but it is still happening every now and then. With this query and the solution id (guid) of the error message you are able to find records in the ProcessTriggerBase table that reference the guid of a failed import from a holding solution that is not existing in the system anymore. select * from ProcessTriggerBase where solutionid = 'YOUR_SOLUTION_GUID' Due to this reference to a solution id not existing in the system you will not be able to import a new version of the target solution to be updated. What I did and this is probably not a supported solution is to update the guid to the actual target solution that is currently deployed in the system. To find out the id of

CRM 2016: UserEntityUISettings With Id = bcbab51d-c780-e611-80e8-005056a819cf Does Not Exist

Following scenario: 1.) Login to a new created CRM organization 2.) Created a backup of an CRM org. database 3.) Did some testing in CRM and created some data 4.) Restored the database 5.) Tried to open an account 6.) CRM threw this error:      UserEntityUISettings With Id = bcbab51d-c780-e611-80e8-005056a819cf Does Not Exist Reason: The navigation context or history got lost in between backup and restore. Solution (on-premise only): Got into the UserEntityUISettings and delete all records that belongs to the user (id) that had this error message pop up.

CRM 2016: The attribute with AttributeId = 'guid' was not found in the MetadataCache.

During the export of an unmanged solution I always received the following error message from my CRM 2016 SP1 OnPremise development system: The attribute with AttributeId = '023bda49-9dfa-401e-b348-9374a4141186' was not found in the MetadataCache. Then I tried to remember what I did since the last solution version. => Yes, there was a field that I deleted, because the customer does not need it anymore. Because I am working on-premise it was easy to check the database for the specific attribute. First, I searched in the attribute table: SELECT [AttributeId]   FROM [Dev_MSCRM].[MetadataSchema].[Attribute]   where [AttributeId] = '023bda49-9dfa-401e-b348-9374a4141186' => result was nothing I concluded CRM deleted the field in this table but missed to remove the attribute from our customer solution. Next thing was to check the solutioncomponent table: SELECT [ModifiedOn]       ,[CreatedBy]       ,[ObjectId]       ,[IsMetadata]       ,[ModifiedBy

CRM 2016: Social Pane - Override Add Phone Call or Add Task link onclick event to open activity in full window

Add this code to the entity's form onload event...     function Form_OnLoad() { setTimeout(function () { var crmContentPnl = parent.parent.document.getElementById( "crmContentPanel" ); for (k = 0; k < crmContentPnl.children.length; k++) { if (crmContentPnl.children[k].style.visibility == "visible" && crmContentPnl.children[k].tagName.toLowerCase() == "iframe" ) { var notesControl = crmContentPnl.children[k].contentWindow.document.getElementById( "notescontrolactivityContainer_notescontrol" ); // phone call notesControl.children[0].children[1].children[0].setAttribute( 'onclick' , 'Mscrm.ActivityContainer.openNewActivityCreateFormInline(4210); return false;' ); // task notesControl.children[0].children[1].children[1].setAttribute( 'onclick' , 'Mscrm.ActivityContai

CRM 2016: Social Pane Hide Add Phone Call or Add Task link

To hide the "Add Phone Call" or "Add Task" link from the social pane section use the following JavaScript line in your entity's form onload script: function Form_OnLoad() { setTimeout(function () { var crmContentPnl = parent.parent.document.getElementById( "crmContentPanel" ); for (k = 0; k < crmContentPnl.children.length; k++) { if (crmContentPnl.children[k].style.visibility == "visible" && crmContentPnl.children[k].tagName.toLowerCase() == "iframe" ) { var notesControl = crmContentPnl.children[k].contentWindow.document.getElementById( "notescontrolactivityContainer_notescontrol" ); // phone call notesControl.children[0].children[1].children[0].style.display = "none" ; return false ; '); // task notesControl.children[0].children[1].children[1].style.display

CRM 2016: Customizing the Sales Performance Dashboard (workaround)

Since CRM 2011 the is a Problem with customizing the OOTB Sales Performance Dashboard. Until today with CRM 2016 SP1 it still is not possible to modifiy the dashboard with the dashboard designer in CRM: https://support.microsoft.com/de-de/kb/2741768 Even in MS Connect, Microsoft does not pay a lot of attention to this issue, as its not having many votes. If you try to modify it you will get an error: "Cannot Edit Dashboard. The dashboard could not be opened. Maximum no. of columns allowed in the layout is 4." I also tried to make an unmanaged solution of the dashboard with no success. Even with the default solution you will not get out the required formxml that you want to change. If you have CRM on-prem you still have a chance to actually retrieve the required form XML from the database. This article helps you to find the right table in the ORG_MSCRM database: https://msdn.microsoft.com/en-us/library/gg327869.aspx In this case Need to search through the syste