|
13.03.2013, 08:10 | #1 |
Участник
|
Я изучил эту библиотеку, и использую для добавления данных, для установки фильтрации лукапа и т.д.
Попробую перефразировать свой вопрос по другому: Для того чтоб получить какое либо значение используем вот такой запрос retrievedContact = XrmServiceToolkit.Soap.Retrieve("contact", contactId, cols); а получаем наши значения retrievedContact.attributes['middlename'].value а что если поле middlename - набор параметров или пиклист с кучей записей. на стандартной форме без этой библиотечки получить значение выбранного пиклиста можно Xrm.Page.data.entity.attributes.get("middlename").getText(); именно getText выводит значение. А XrmServiceToolkit.Soap.Retrieve выводит цифровое значение. я понимаю что с помощью плагина используя QueryByAttribute можно получить абсолютно любые данные. Может быть кто то сталкивался с получением как раз таки значения используя XrmServiceToolkit.Soap |
|
13.03.2013, 13:21 | #2 |
Участник
|
На форме текстовые значения для пиклистов уже есть, поэтому Вы можете их оттуда считать. Когда же вы считываете с crm другую сущность, неважно на C# или на javascript, и не важно с помощью какой библиотеки, в конечном счете вызывается метод Retrieve или RetrieveMultiple crm сервиса. А они не возвращают текстовые значения для пиклистов. Чтобы их получить нужно считать еще метаданные и в них по числу найти текст.
Чтобы считать метаданные с помощью Xrm.ServiceToolkit нужно воспользоваться методом Execute и выполнить с помощью него RetrieveEntityRequest. Пример как составить реквест можно посмотреть тут: http://mileyja.blogspot.ru/2011/05/h...or-entity.html |
|
14.03.2013, 09:41 | #3 |
Участник
|
Спасибо коллеги, все получается.
Хотел на последок уточнить такую информацию: в большинстве случаев у меня информация на форме обновляется на событии OnLoad с помощью скрипта, и необходимо перед самой работой данные на форму вытащить открывая и закрывая(с сохранением) . А возможно ли массово все эти данные таким образом обновить? Понимаю что в будущем эта задача решается плагином на событие pre Create. А в данной ситуации каким то образом возможно выполнить для массовой обработки? |
|
15.03.2013, 13:26 | #4 |
Участник
|
Нужно методом RetrieveMultiple вытащить все необходимые сущности, пройтись по ним циклом, для каждой посчитать нужные поля и сохранить изменения методом Update
|
|
15.03.2013, 18:00 | #5 |
Moderator
|
Для подобных целей рекомендуется использовать плагины (серверный код).
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
19.03.2013, 09:51 | #6 |
Заноза в заднице
|
Это может жестко стукнуть по производительности, поэтому такие процедуры настоятельно рекомендуют выполнять асинхронно на сервере.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
19.03.2013, 15:55 | #7 |
Чайный пьяница
|
Цитата:
Цитата:
Ну и стукнет. Аж 1 раз, когда надо будет обновить данные. Собственно всё.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 19.03.2013 в 16:19. |
|
|
За это сообщение автора поблагодарили: Anros (1). |
|
|