19.09.2016, 18:16 | #1 |
Участник
|
CRM 2013 - получение OrgName
Коллеги, подскажите, как получить (запросить) OrgName, имея экземпляр IOrganizationService?
Запрос WhoAmIRequest возвращает ID организации. Запрос по этому ID к сущности organization позволяет получить Display Name, а вот OrgName там нет. Как его получить? |
|
19.09.2016, 22:51 | #2 |
Участник
|
Код: 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 |
Чайный пьяница
|
Боюсь, что вам прийдётся работать с дискавери сервисом для этого.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
20.09.2016, 01:42 | #4 |
Участник
|
|
|
20.09.2016, 01:44 | #5 |
Участник
|
|
|
20.09.2016, 02:27 | #6 |
Чайный пьяница
|
Взять то неоткуда. А вы можете объяснить ваш сценарий - может решение попроще есть.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
20.09.2016, 10:28 | #7 |
Участник
|
Пилю класс для логирования. Хочу писать в лог информацию о текущей организации. Логирование универсальное: и для сервисов (где есть нормальный OrganizationService), и для плагинов (где только IOrganizationService).
Конечно можно было бы получать OrgName за пределами класса, но хотелось бы там меньше кода и все что нужно, чтобы логирование выгребало само. |
|
20.09.2016, 10:37 | #8 |
Чайный пьяница
|
Тогда тут могут быть разные подходы, но я между местом логирования и местом откуда вызывается запись лога втыкал бы прокладку в виде эндпоинта, который по гуиду получал бы человеческое имя организации.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 20.09.2016 в 15:30. |
|
20.09.2016, 11:55 | #9 |
Участник
|
Так Вы же не объяснили, что Вы подразумеваете под OrgName.
Судя по всему Вам нужен Organization Unique Name. Ну эта инфа хранится уже за пределами БД организации, поэтому (как и написал a33ik) только через дискавери-сервис. Цитата:
Сообщение от ZooY
Пилю класс для логирования. Хочу писать в лог информацию о текущей организации. Логирование универсальное: и для сервисов (где есть нормальный OrganizationService), и для плагинов (где только IOrganizationService).
Конечно можно было бы получать OrgName за пределами класса, но хотелось бы там меньше кода и все что нужно, чтобы логирование выгребало само.
__________________
Опыт позволяет ошибаться гораздо увереннее. |
|
20.09.2016, 12:03 | #10 |
Участник
|
А я бы в лог писал id организации и сделал бы простенькую читалку логов, и прокладку воткнул бы в нее (с кэшированием полученных нэймов, естессно). Ну это как, ИМХО.
__________________
Опыт позволяет ошибаться гораздо увереннее. |
|
21.09.2016, 12:58 | #11 |
Moderator
|
Цитата:
Сообщение от ZooY
Пилю класс для логирования. Хочу писать в лог информацию о текущей организации. Логирование универсальное: и для сервисов (где есть нормальный OrganizationService), и для плагинов (где только IOrganizationService).
Конечно можно было бы получать OrgName за пределами класса, но хотелось бы там меньше кода и все что нужно, чтобы логирование выгребало само. Совсем совсем теоретически, ваш логер обязан работать на CRM сервере, где в реестре есть полезная для вас информация, например, имя SQL сервера системы. Имя базы конфига всегда статично: MSCRM_Config. Так что вы можете получить OrgName простым запросом, что будет даже быстрее. Есть минус: подобный плагин может работать только "без изоляции". Если совсем в качестве маразма, напишите отдельный плагин без изоляции, который будет подписан на все события в системе с приоритетом 1 и который будет совать имя организации в SharedVariables откуда его смогут получить все остальные плагины и ваш универсальный логер.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
За это сообщение автора поблагодарили: ZooY (1). |
04.10.2016, 09:14 | #12 |
Участник
|
Какая интересная идея! Не обязательно применимо к логированию, а вообще... Возьму на вооружение
|
|
06.10.2016, 08:22 | #13 |
Moderator
|
Обращайтесь
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
|