AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.07.2008, 14:58   #1  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Как пограммно получить имя сущности Lookup-а
CRM 4.
Программно получаю список атрибутов сущности. Если атрибут имеет тип Lookup то нужно получить имя сущности, с которым этот Lookup связан. А вот как это сделать совершенно непонятно. Может кто знает?
Старый 14.07.2008, 07:06   #2  
ShurikEv is offline
ShurikEv
CRM
 
213 / 28 (1) +++
Регистрация: 25.04.2006
Адрес: г. Новосибирск
Тип сущности что ли?
Ну в поле Lookup кроме как GUID записи хранится еще и название её (поле name) и ObjectTypeCode. А вот получить имя сущности через ObjectTypeCode можно используя методы метобазы http://<yourservername>/mscrmservices/2006/metadataservice.asmx
Что-то типа
EntityMetadata entityData = crmMetaDataService.RetrieveEntityMetadata(entityName, EntityFlags.EntityOnly);
__________________
MS CRM 3.0/4.0
Sharepoint 2003, MOSS 2007/2010
Старый 14.07.2008, 07:09   #3  
ShurikEv is offline
ShurikEv
CRM
 
213 / 28 (1) +++
Регистрация: 25.04.2006
Адрес: г. Новосибирск
Написал для 3ки, не увидев Вашу версию. Но полагаю, что в 4ке аналогично По крайней мере, судя по SDK
__________________
MS CRM 3.0/4.0
Sharepoint 2003, MOSS 2007/2010
Старый 14.07.2008, 13:03   #4  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Если речь идет об абстрактной сущности метаданных, используя metadataservice, то относительно 4 версии, могу сказать, что данные атрибута типа lookup не содержат сведений о типе связанной сущности. Единственное, в сторону чего я бы покопал в данном случае - так это RelationshipResponce. Поскольку любое лукап поле - это по факту отношение (relationship), то связь атрибутов разных сущностей как раз таки лежит в плоскости установления отношений. Хэлп к SDK содержит всего один пример по этому поводу, в разделе: CreateOneToMany Message (MetadataService), и то этот пример касается программного создания нового отношения.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 17.07.2008, 13:45   #5  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Lightbulb Получение имени сущщности из полученного аттрибута
Предварительно в проект кидаем Web Reference на MetaDataService
(http://msdn.microsoft.com/en-us/library/cc151043.aspx)

Собственно дальше выполнение:
//создание экземпляра сервиса метаданных:

Код:
        MetaCRM.MetadataService _metaservice = null;
                    MetaCRM.CrmAuthenticationToken token = new MetaCRM.CrmAuthenticationToken();
                    token.AuthenticationType = 0;
                    token.OrganizationName = <Your Organization Name>;

                    _metaservice = new MetaCRM.MetadataService();
                    _metaservice.Url = "http://<You CRM Server>/MSCRMServices/2007/MetadataService.asmx";
                    _metaservice.CrmAuthenticationTokenValue = token;
                    _metaservice.Credentials = System.Net.CredentialCache.DefaultCredentials;
                    _metaservice.UnsafeAuthenticatedConnectionSharing = true;
//создание запроса на чтение Сущности

Код:
            MetaCRM.RetrieveEntityRequest entityRequest = new MetaCRM.RetrieveEntityRequest();
            entityRequest.RetrieveAsIfPublished = true;
//Сущность контрагента
Код:
            entityRequest.LogicalName = CRM.EntityName.account.ToString();
//Включение получени сущности и её аттрибутов
Код:
            entityRequest.EntityItems = MetaCRM.EntityItems.IncludeAttributes;
//Получение сущности
MetaCRM.RetrieveEntityResponse entityResponce =
Код:
(MetaCRM.RetrieveEntityResponse)_metaservice.Execute(entityRequest);
//для демонстрации работы дальше выполнен поиск всех лукапов и выведение
//кодов сущностей лукапов

Код:
            string LookupEntities = string.Empty;

            foreach (MetaCRM.AttributeMetadata attribut in entityResponce.EntityMetadata.Attributes)
                if (attribut is MetaCRM.LookupAttributeMetadata)
                    LookupEntities += ((MetaCRM.LookupAttributeMetadata)attribut).Targets[0] + Environment.NewLine;

            MessageBox.Show(LookupEntities);
Если чтото не заработает - не серчайте ) Первый раз юзаю Мета сервис. У меня всё заработало.
Старый 18.07.2008, 21:12   #6  
SanX is offline
SanX
Участник
 
2 / 10 (1) +
Регистрация: 18.07.2008
Согласен с Likefire - тип entity referenced lookup'ом определяется возможными relationship'ами этого аттрибута (lookup'a). Если надо по факту определить какого типа entity (сушность) referenced by lookup, то это просто lookupItem.typename attribute
Старый 21.07.2008, 18:17   #7  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
2 SanX: ну собственно, приведенный пример, уважаемого a33ik как раз и показывает, как это делается практически.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как получить значение поля одной сущности при обработке формы другой сущности zhenek Dynamics CRM: Разработка 25 05.07.2011 16:19
Присвоение одного атрибута сущности значения другого атрибута связанной сущности vital.mih Dynamics CRM: Функционал 38 08.09.2010 10:53
mscrm4ever: Displaying a lookup with related entity fields Blog bot Dynamics CRM: Blogs 0 19.03.2009 07:05
Имя объекта сущности по id sphinks Dynamics CRM: Разработка 3 05.03.2009 08:40
Имя сущности по коду ZooY Dynamics CRM: Разработка 4 04.09.2008 14:24

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:42.