2011-11-18 76 views
1

在迁移到CRM 2011时,我们发现不同的开发人员使用不同的自定义实体和自定义字段的大小写。这为使用早期绑定方法的自定义编程带来了麻烦。 http://msdn.microsoft.com/en-us/library/gg327844.aspx。有没有办法在迁移之前(或之后)对实体/字段名称进行规范化?CRM中的自定义实体的大小写2011

+0

如果重命名不可能通过“支持”的方法,也许它可能生成实体类只能使用小写与CrmSvcUtil.exe?但是我看不到任何参数。 虽然CrmSvcUtil每个模式产生,我观察到以下SDK功能(别人嫌我认为)需要使用小写:RetrieveAttributeRequest.LogicalName – roadsunknown

回答

2

据我所知。实现您想要的正确大小写的唯一方法是使用适当的名称重新创建实体。

迁移之前或之后主要是升级CRM服务器安装并修改数据库模式以反映升级,同时仍保留当前数据和定制数据。

这就是“支持”的话题。

至于实际的解决方法。如果你想升级,我会试着将你当前的CRM 4系统恢复到测试域。然后看看在实际的“不可触摸的”crm数据库中更改模式名称的可行性。我相信有一个MetaDataSchema.Entity表,这是集中存储的,所以我会测试这个看看它是如何可用以及它对web服务有什么影响。

因此,您面临的是一个类似的选择,我在使用Dynamics CRM时多次遇到过这种情况。以支持的方式,或一点“Yee-Ha”的发展。对不起,这可能不是你想听到的!

编辑:

在关于要改变什么,我不能肯定地说,我没有得到一个CRM 4.0系统,在这个时刻出手只有2011。但作为示例,[OrganisationName_MSCRM]数据库中将存在MetadataSchema.Entity表。其中某些列将跳出。名称,物理名称和逻辑名称。

逻辑名称是CRM用户默认使用小写字母的名称,无论您如何输入它。

我相信物理名称和名称是你想要改成小写的。

实体的实际“名称”,例如逻辑名称是“帐户”,而在CRM中以用户友好的方式显示时,通过名为MetadataSchema.LocalizedLabel的表通过外键“ObjectId”关联这种情况将是“EntityId”字段。

这是我希望进行更改的地方,因为由于“逻辑名称”字段是一个CRM可能使用的字段,因此它不会影响其余数据。

只要你的代强类型类去。

如果使用后期绑定,如

relatedEntity.LogicalName = "new_related_account"; 
relatedEntity["relatedaccountid"] = entity["accountid"]; 

那么所有的属性和逻辑名称必须是小写。因为这将使用之前在MetadataSchema表中标识的“logicalname”属性。

使用SVCUtil的方式我只能假设它会在“名称”和“物理名称”属性中生成用于定制应用程序的文件时,给用户提供更多的用户友好的编码体验。

但如果你正在寻找使用早期绑定类生成它不应该是因为产生将提供有关属性和特性的正确的大写智能感知定义文件有问题,如果你正在使用后期绑定像例子以前它都是小写字母。所以它更多的只是看起来有点不整齐,而不是完全不切实际=)

+0

+1是的,我不认为有任何的任何其他方式。 –

+0

我们有一个测试域,以便是一种可能性。自“贱民”,没有任何文件在那里的究竟是什么“可以”进行修改?除了MetaDataSchema之外,您还有更多的了解吗? – roadsunknown

+1

见答案的编辑,太长就摆在评论=) – Chris

相关问题