Reputation: 414
We had someone customizing a solution in Dynamic CRM 2011 for us, but that person has since left the project. We need to know what customizations had been made and published. When I go into the "Customize the System" section, it shows ALL components, I just need to know which ones have been customized and published. This is new to me, so please be gentle :0) Thanks!
Upvotes: 0
Views: 1008
Reputation: 1718
All elements in a solution are labeled with a prefix (this is actually determined by the publisher of the solution). By default the prefix is 'new' and all of your custom entities will be named new_[entityname] and fields will be named new_[field]. Inside the solution if you are viewing entities you can then tell which entities are custom based on whether or not they have this prefix. There is also a "State" column with the values "Managed" and "Unmanaged." You will see that all custom entities that have been added will have a State of Unmanaged, while base CRM entities will be Managed. Within a base CRM entitiy the same is true of all of the sub elements (forms, views, charts, fields, relationships). Elements added by your customizer will be unmanaged, while base elements will be managed. Keep in mind that the managed form, view and chart elements can also have been modified and this will be difficult to distinguish.
If you need to make a list of custom system elements programmatically you can do so with SQL. In the example below, I filter on table_name like '%extensionbase%' because the extensionbase tables hold the custom fields and relationships for an entity. The first query brings back all of the entities in the system that could contain custom fields and relationships. The second brings back all of the custom fields in the system, and the third brings back all of the custom relationships (except N:N relationships).
--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
Upvotes: 1
Reputation: 5456
I'm afraid that it would be really complicated but try to use metadata changes message that is available since CRM 2011 - http://msdn.microsoft.com/en-us/library/jj863605.aspx
Upvotes: 1