Как присоединиться к dbo.LocalizedLabelView для получения меток форм в Dynamics CRM? - PullRequest
8 голосов
/ 28 февраля 2011

В Dynamics CRM я часто получаю требования от бизнес-пользователей для создания отчетов.Бизнес-пользователи знают и говорят о отображаемых именах и метках атрибутов .Чтобы написать запрос, мне нужно сопоставить их с именами сущностей и именами атрибутов .Я хотел бы использовать запрос для поиска этого.

К чему мне присоединить представление dbo.LocalizedLabelView, чтобы получить столбец AttributeLabel в следующем запросе?Я не могу понять, на что должен ссылаться ObjectId.(И если вы можете сказать мне, как вы выяснили ответ, я был бы особенно благодарен!)

select
    [EntityName]           = entityNames.Name,
    [EntityDisplayName]    = entityDisplayNames.Label,
    [AttributeName]        = attributeNames.PhysicalName,
    [AttributeDisplayName] = attributeDisplayNames.Label
    --[AttributeLabel]     = attributeLabels.Label
from 
    dbo.EntityView entityNames

    inner join dbo.LocalizedLabelView entityDisplayNames
        on entityDisplayNames.ObjectId = entityNames.EntityId
        and entityDisplayNames.ObjectColumnName = 'LocalizedName'

    left outer join dbo.AttributeView attributeNames
        on attributeNames.EntityID = entityNames.EntityID

    inner join dbo.LocalizedLabelView attributeDisplayNames
        on attributeDisplayNames.ObjectId = attributeNames.AttributeID
        and attributeDisplayNames.ObjectColumnName = 'DisplayName'
        and attributeDisplayNames.LanguageID = entityDisplayNames.LanguageID

    --inner join dbo.LocalizedLabelView attributeLabels
    --  on attributeLabels.ObjectId = ?????
    --  and attributeLabels.LanguageID = entityDisplayNames.LanguageID
where
    entityDisplayNames.LanguageID = 1033
order by
    entityDisplayNames.Label,
    attributeDisplayNames.Label

1 Ответ

9 голосов
/ 10 марта 2011

ObjectId - это ссылка на внутренний идентификатор объекта в базе данных CRM. Эта вещь может быть атрибутом, сущностью, меткой или чем-то еще.

Поскольку вам нужна метка для вашего атрибута, используйте идентификатор этого атрибута в качестве ObjectId здесь. Я думаю, что вы хотите, чтобы ваше условие соединения выглядело так:

inner join dbo.LocalizedLabelView attributeLabels
    on attributeLabels.ObjectId = attributeNames.AttributeID
    and attributeLabels.LanguageID = entityDisplayNames.LanguageID
    and attributeLabels.ObjectColumnName = 'DisplayName'

Если вы хотите описание для атрибута, вы можете изменить ObjectColumnName на «Description».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...