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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.09.2016, 18:16   #1  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
CRM 2013 - получение OrgName
Коллеги, подскажите, как получить (запросить) OrgName, имея экземпляр IOrganizationService?
Запрос WhoAmIRequest возвращает ID организации. Запрос по этому ID к сущности organization позволяет получить Display Name, а вот OrgName там нет.
Как его получить?
Старый 19.09.2016, 22:51   #2  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Код:
 var query = new QueryExpression("organization")
 {
     ColumnSet = new ColumnSet("name")
 };
 var resp = service.RetrieveMultiple(query);
 var orgName = resp.Entities[0]["name"];
Так пойдет?
__________________
Опыт позволяет ошибаться гораздо увереннее.
Старый 19.09.2016, 23:35   #3  
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
Боюсь, что вам прийдётся работать с дискавери сервисом для этого.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 20.09.2016, 01:42   #4  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Цитата:
Сообщение от Гуревич Денис Посмотреть сообщение
Так пойдет?
Не пойдет, потому что в name храниться Display Name.
Старый 20.09.2016, 01:44   #5  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Цитата:
Сообщение от a33ik Посмотреть сообщение
Боюсь, что вам прийдётся работать с дискавери сервисом для этого.
Логично, но имея только экземпляр IOrganizationService ведь экземпляла сервиса обнаружения не создашь, адрес неоткуда взять, разве что приводить к OrganizationService.
Старый 20.09.2016, 02:27   #6  
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
Взять то неоткуда. А вы можете объяснить ваш сценарий - может решение попроще есть.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 20.09.2016, 10:28   #7  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Пилю класс для логирования. Хочу писать в лог информацию о текущей организации. Логирование универсальное: и для сервисов (где есть нормальный OrganizationService), и для плагинов (где только IOrganizationService).
Конечно можно было бы получать OrgName за пределами класса, но хотелось бы там меньше кода и все что нужно, чтобы логирование выгребало само.
Старый 20.09.2016, 10:37   #8  
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
Тогда тут могут быть разные подходы, но я между местом логирования и местом откуда вызывается запись лога втыкал бы прокладку в виде эндпоинта, который по гуиду получал бы человеческое имя организации.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit

Последний раз редактировалось a33ik; 20.09.2016 в 15:30.
Старый 20.09.2016, 11:55   #9  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Цитата:
Сообщение от ZooY Посмотреть сообщение
Не пойдет, потому что в name храниться Display Name.
Так Вы же не объяснили, что Вы подразумеваете под OrgName.
Судя по всему Вам нужен Organization Unique Name. Ну эта инфа хранится уже за пределами БД организации, поэтому (как и написал a33ik) только через дискавери-сервис.

Цитата:
Сообщение от ZooY Посмотреть сообщение
Пилю класс для логирования. Хочу писать в лог информацию о текущей организации. Логирование универсальное: и для сервисов (где есть нормальный OrganizationService), и для плагинов (где только IOrganizationService).
Конечно можно было бы получать OrgName за пределами класса, но хотелось бы там меньше кода и все что нужно, чтобы логирование выгребало само.
Я так понимаю имя организации в логе должно Вам позволить идентифицировать отдельную запись в общем для всех организаций логе. Но чем тогда OrganizationId не подходит? А Unique Name, кстати, уникален только в рамках одного CRM-инстанса. На разных серверах могут быть организации с одинаковыми Unique Name. Если Вы потом логи с разных серверов свалите в одну кучу, то по Unique Name не сможете понять, откуда запись в логе.
__________________
Опыт позволяет ошибаться гораздо увереннее.
Старый 20.09.2016, 12:03   #10  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Цитата:
Сообщение от a33ik Посмотреть сообщение
Тогда тыт могут быть разные подходы, но я между местом логирования и местом откуда вызывается запись лога втыкал бы прокладку в виде эндпоинта, который по гуиду получал бы человеческое имя организации.
А я бы в лог писал id организации и сделал бы простенькую читалку логов, и прокладку воткнул бы в нее (с кэшированием полученных нэймов, естессно). Ну это как, ИМХО.
__________________
Опыт позволяет ошибаться гораздо увереннее.
Старый 21.09.2016, 12:58   #11  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от ZooY Посмотреть сообщение
Пилю класс для логирования. Хочу писать в лог информацию о текущей организации. Логирование универсальное: и для сервисов (где есть нормальный OrganizationService), и для плагинов (где только IOrganizationService).
Конечно можно было бы получать OrgName за пределами класса, но хотелось бы там меньше кода и все что нужно, чтобы логирование выгребало само.
Идентификатор организации есть в контексте плагина. Кроме того, технически, OrgName можно изменить входе импорта, так что использование ID технически оправдано.

Совсем совсем теоретически, ваш логер обязан работать на CRM сервере, где в реестре есть полезная для вас информация, например, имя SQL сервера системы. Имя базы конфига всегда статично: MSCRM_Config. Так что вы можете получить OrgName простым запросом, что будет даже быстрее. Есть минус: подобный плагин может работать только "без изоляции".

Если совсем в качестве маразма, напишите отдельный плагин без изоляции, который будет подписан на все события в системе с приоритетом 1 и который будет совать имя организации в SharedVariables откуда его смогут получить все остальные плагины и ваш универсальный логер.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: ZooY (1).
Старый 04.10.2016, 09:14   #12  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
...напишите отдельный плагин без изоляции, который будет подписан на все события в системе с приоритетом 1 и который будет совать имя организации в SharedVariables откуда его смогут получить все остальные плагины и ваш универсальный логер.
Какая интересная идея! Не обязательно применимо к логированию, а вообще... Возьму на вооружение
Старый 06.10.2016, 08:22   #13  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Обращайтесь
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 15 Blog bot Dynamics CRM: Blogs 1 10.02.2016 10:26
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 17 Blog bot Dynamics CRM: Blogs 0 10.05.2014 06:30
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2013 Update Rollup 2 Blog bot Dynamics CRM: Blogs 0 15.04.2014 01:15
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 16 Blog bot Dynamics CRM: Blogs 0 23.01.2014 03:15

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

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

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