Unable to publish all in CRM 2013

I am working with a Customer now who is very savvy an wants to do a lot himself, which I generally encourage as this one of the inherent strengths of Dynamics CRM  and it would be sad to take it away. Of course we need a healthy discussion on where the line should be drawn on where he should stop configuring and I continue. In larger systems, you also need to take sandboxing/QA instancing into this perspective which of course makes it a bit trickier but this Customer is not so large so they can, at least for the time being, do their configuring directly in the system. It is always a matter of weighing the costs against the benifits.

However, we suddenly ran into a problem when we couldn’t run “Publish All” any more. It just showed a dialog with a cryptic message mentioning object with id [1] missing.

My first thought was that this must be in relation to one specific entity so I started trying to publish one entity at a time (starting with the ones we have changed a lot) and I quite quickly noticed that I got an error when trying to publish Opportunity but not other entities.

I then created a new solution, added Opportunity to this and included all dependencies, and made sure to publish all dependencies Before trying to publish Opportunity, just to make sure that there wasn’t some error in CRM:s causality of publishing. After doing this, I finally go an error message which said something useful, it said that a saved Query of a specifc GUID was missing. This probably meant that this Query was being used on a form in a subgrid and had been removed and when trying to publish, it would not, as the view did not exist.

I opened the form, went through all the subgrids and made sure that the selected view was an existing selection, saved and published the form and it worked. After this publish all also worked.

So the general conclusion is that you should be careful when deleting views as these might be used in subgrids, and the second conclusion is that Microsoft hopefuly will add a dependency blocker that disallows the deletion of a view that is being used in a subgrid.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Issues with the new Plugin Registration tool

As you might have noticed there is a new version of the plugin registration tool out with the new version of the SDK 6.1 released in may 2014. It has gotten a nice facelift in the UI and can now be found in the Tools directory.

However, I have had some issues when working with my on-premise org (it worked fine with online). I got the following error when trying to register a step on a plugin assembly.


Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Assembly file name (CRMKonsulterna.Modelon.Plugins.dll) is in invalid format. Only file name is allowed.
Detail: <OrganizationServiceFault xmlns=”
http://schemas.microsoft.com/xrm/2011/Contracts” xmlns:i=”http://www.w3.org/2001/XMLSchema-instance“>
  <ErrorCode>-2147204719</ErrorCode>
  <ErrorDetails xmlns:a=”
http://schemas.datacontract.org/2004/07/System.Collections.Generic” />
  <Message>Assembly file name (CRMKonsulterna.Modelon.Plugins.dll) is in invalid format. Only file name is allowed.</Message>
  <Timestamp>2014-05-30T06:58:51.0596986Z</Timestamp>
  <InnerFault>
    <ErrorCode>-2147204719</ErrorCode>
    <ErrorDetails xmlns:a=”
http://schemas.datacontract.org/2004/07/System.Collections.Generic” />
    <Message>Assembly file name (CRMKonsulterna.Modelon.Plugins.dll) is in invalid format. Only file name is allowed.</Message>
    <Timestamp>2014-05-30T06:58:51.0596986Z</Timestamp>
    <InnerFault i:nil=”true” />
    <TraceText i:nil=”true” />
  </InnerFault>
  <TraceText i:nil=”true” />
</OrganizationServiceFault>

Server stack trace:
   at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Microsoft.Xrm.Sdk.IOrganizationService.Create(Entity entity)
   at Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.CreateCore(Entity entity)
   at Microsoft.Crm.Tools.PluginRegistration.RegistrationHelper.RegisterStep(CrmOrganization org, CrmPluginStep step)
   at Microsoft.Crm.Tools.PluginRegistration.StepRegistrationForm.btnRegister_Click(Object sender, EventArgs e)

I’m including it all here for searchability. I have highlighted the message that is the interesting part.

When retrying it in the older version of Plugin Registration tool, it works just fine, as long as I re-register the assemblyfile. If I keep the assembly file and try to register the step in the older version (6.0.0001.0061) I will still get the error, so I did have to unregister the entire assembly and register it all over. This also only seems to show up when registering to disk (I havn’t tried registereing to GAC as I seldom use that).

Also do note that despite right clicking on the assembly-plugin and pressing “Add step” it seems to omit this information in the form for registering the step so make sure that your step is registered on the correct assembly. I got a bit confused and registered quite a few on ActivityFeeds until I noticed this.

For reference, this is for Plugin Registration Tool version 6.1.0.519 and I am testing it on CRM 2013 UR2 Onpremise.

I am also quite sure these bugs will be fixed soon by Microsoft, but it might be a good idea to keep a copy of the older Plugin registration tool just in case.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Bugs and suggestions

What might be unknown to many CRM people is that Microsoft has a tool for managing bugs and suggestions called Connect. This can be found on connect.microsoft.com. So if you have any suggestions on how you think CRM should be enhanced, don’t keep it to your self, add it to connect, and tell your friends, blog about it. After you have added a suggestion, other people can vote on an item and the more votes and item gets, the more attention Microsoft will give it.

I added two suggestions today, so feel free to go in and vote!

First, I think it would be a good idea to be able to supportedly change the logo in the left hand corner. This is done by companies today in an unsupported way which of course is bad, so it would be better to do enable a supported way to do it. Not that it is something I generally encourage, but many companies find this important.

I also think that the logic when using multiple forms of the latest form being used, to be the defaulted the next time a record of the entity is opened often is not what is required, why a default form for each role per entity would be very good.

Connect is also the Tools which is used for bugs during the TAP and beta programs if you are part of these.

I am currently in Bellevue close to Seattle on the MVP Summit, meeting the other MVP:s and the CRM Product team which is great! Joel Lindstrom and I held a presentation to the Product team today and they are a great crowd who are really interested in listening to our opinions. We are lucky to have them and they are really working hard to give us an excellent Product so giving them good input on things we feel the Product can be enhanced, is really a just doing our part of the development. It is easy to complain about something not being as you would like it to, but try to be constructive and formulate that into a suggestion instead and register it on connect and you may get it. Do keep in mind that they have a lot of things to try to triage and it might take some time, but if they don’t know, you might never get it.

Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se

Mobile Client App (MoCA) on non-english CRM 2013

Mobile Client App (MoCA) on non-english CRM 2013

The Mobile Client App (MoCA) that Microsoft have made as part of the CRM 2013 release is really nice but it is still an early version so to get it up and running on a non-English CRM here is what you need to do. As I Work in Swedish, this is based on my experiences in Swedish and you might have different experiences in other languages.

Install MoCA
First of all, the Store in Windows 8 is by default set to only showing Apps in your local language, as the MoCA hasn’t been released in Swedish, in my case, I have to change this.

To do this, open the Marketplace from the Tiles-screens, and swipe from the right or put your mouse on the Lower right hand corner. Select settings (or what ever it is called in your language).

You should now see a screen that looks something like this, but in you language:

Store settings – make sure the one about finding apps in your language is set to “No”

There should be two selectors, one with the caption saying something like

  1. Make finding apps in your language easier
  2. Make it easier to find apps which aid disabilities

Make sure that the first one is set to “No”.

After this, click on the back-Arrow in the top left-hand corner.

You should now be back in the Store. Just type the following text (without citation marks):
“Microsoft Dynamics CRM” and press enter.

You should now see a list of Apps and the first one should be the right one, or otherwise it should be in the list any way. It looks like this:

The Microsoft Dynamics CRM Mobile Client App (MoCA)
Now, all you have to do is install the app.
 
Add English Language
What I noted was the that MoCA client will not work if you try to connect it to a Swedish version of CRM Online unless you first enable English in it. Hence this is what we have to do.
 
If you are running an On-premise, you will have to install the English MUI-pack/language pack and you will also have to configure your CRM to be Internet Facing (IFD) which I will not go into in this article but is described in the implementation guide in great depth.
 
Before continuing with configuring the MoCA, go back to your CRM and enable English. This is done by going to Settings->Administration->Languages. Select English and then press “Use”.
 
A spinner will show and it will take some time until the language has been provisioned for the organization.
 
Adding English to the CRM Organization
 
Configure MoCA
When English has been added, the MoCA can be configured. It will be in English but it will at least work. Let’s hope Microsoft will probably release MoCA in other languages soon.
 


Gustaf Westerlund
MVP, CEO and owner at CRM-konsulterna AB
www.crmkonsulterna.se