查看MS Dynamic CRM 2011中的所有自定义项

时间:2014-04-28 15:58:25

标签: dynamics-crm-2011

我们有人为我们在Dynamic CRM 2011中定制解决方案,但此人已离开项目。我们需要知道已经制作和发布了哪些自定义。当我进入“自定义系统”部分时,它会显示所有组件,我只需要知道哪些已经自定义和发布。这对我来说是新的,所以请保持温柔:0)谢谢!

2 个答案:

答案 0 :(得分:1)

我担心这会非常复杂但是尝试使用自CRM 2011以来可用的元数据更改消息 - http://msdn.microsoft.com/en-us/library/jj863605.aspx

答案 1 :(得分:1)

解决方案中的所有元素都标有前缀(这实际上由解决方案的发布者确定)。默认情况下,前缀是' new'并且所有自定义实体都将命名为new_ [entityname],字段将命名为new_ [field]。在解决方案内部,如果您正在查看实体,则可以根据它们是否具有此前缀来判断哪些实体是自定义的。还有一个"州"值为#34;托管"的列和#34;不受管理。"您将看到已添加的所有自定义实体将具有“未管理状态”,而基础CRM实体将处于“管理”状态。在基础CRM权利中,所有子元素(表单,视图,图表,字段,关系)都是如此。您的自定义程序添加的元素将不受管理,而基本元素将被管理。请记住,托管表单,视图和图表元素也可能已被修改,这很难区分。

如果需要以编程方式创建自定义系统元素列表,则可以使用SQL执行此操作。在下面的示例中,我在table_name上过滤了'%extensionbase%'因为扩展基表包含实体的自定义字段和关系。第一个查询返回系统中可能包含自定义字段和关系的所有实体。第二个带回系统中的所有自定义字段,第三个带回所有自定义关系(N:N关系除外)。

--Entities
select TABLE_NAME
from [DatabaseName].information_schema.columns
where table_schema = 'dbo' and TABLE_NAME like '%extensionbase%'
group by table_name having COUNT(*) > 1
order by table_name

--Fields
select *
from [DatabaseName].information_schema.columns
where table_schema = 'dbo' and TABLE_NAME like '%extensionbase%'
and DATA_TYPE not in ('uniqueidentifier')
order by table_name, Column_Name

--Relationships
select *
from [DatabaseName].information_schema.columns
where table_schema = 'dbo' and TABLE_NAME like '%extensionbase%'
and DATA_TYPE in ('uniqueidentifier') and ORDINAL_POSITION <> 1
order by table_name, Column_Name