Если вы попробовали такой встроенный инструмент MS CRM 4.0 как сопоставление (mapping) то знаете, что в системных сущностях, таких как: opportunityproduct (продукты для возможной сделки), quotedetail (продукты для предложений), salesorderdetail (продукты для заказов), invoicedetail (продукты для счетов) нельзя сделать сопоставление (т.е. передавать значения) между созданными атрибутами, а ведь так хочется
Вот как можно сделать, например, сопоставление атрибутов продуктов между quotedetail и salesorderdetail
Для начала, вы должны определиться какие из атрибутов вы хотите сопоставить. Главное, чтобы типы атрибутов совпадали полностью, даже если вы попытаетесь сопоставить поле типа navchar(100) с полем типа navchar(300) у вас не получится этого сделать. Итак, с полями определились, идем дальше:
- Ищем в базе ИМЯ_ОРГАНИЗАЦИИ_MSCRM таблицу EntityMapBase и делаем к ней следующий запрос
-
SELECT *
FROM EntityMapBase
WHERE (TargetEntityName = ‘salesorderdetail‘)Где ‘salesorderdetail‘ – это имя сущность с которой мы будем сопоставлять наши новые атрибуты

Запрос Guid связи сущностей MS CRM 4.0 на сопостовление
- Копируем содержимое EntityMapId
- Теперь открываем IE и в адресной строке вставляем следующее:
- http://crmserver:5555/ORGANIZATIONNAME/Tools/SystemCustomization/Relationships/Mappings/mappingList.aspx?mappingId=746e46de-c8fb-db11-b59d-000423af733e Примечание: вместо ORGANIZATIONNAME вставьте название вашей организации и тот GUID связи, что вы получили.
- Жмем создать и сопоставляем левую часть с правой

Связывание атрибутов в Microsoft Dynamics CRM 4.0
Вот и все
