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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.10.2009, 18:42   #1  
Camena is offline
Camena
Участник
 
111 / 10 (1) +
Регистрация: 23.03.2009
Адрес: Москва
Значение поля по атрибуту
Добрый день!

Есть веб-сервис, в котором по заданным именам аттрибутов и GUID сущности нужно получить соответствующие значения полей. Как это можно сделать?
То есть, есть определенная карточка, есть названия атрибутов - нужно программно получить данные из полей, которые соответствуют этим самым атрибутам.

Спасибо.
Старый 29.10.2009, 23:00   #2  
Павел Гончаров is offline
Павел Гончаров
Участник
 
6 / 18 (1) ++
Регистрация: 29.10.2009
Адрес: Москва
Доброго времени суток!

Если нужно получить значение поля из связанной записи с помощью JScript, то поможет функция:

/* Получение атрибута * /
/* getAttributeValueFromID(objecttypename,guid,fieldname)); */
/* objecttypename - имя сущности, guid - идентификатор, fieldname - имя поля */

getAttributeValueFromID = function(sEntityName, GUID, sAttributeName)
{
var xml =
[
"<?xml version='1.0' encoding='utf-8'?>",
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" ",
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ",
"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">",
GenerateAuthenticationHeader(),
"<soap:Body>",
"<Retrieve xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>",
"<entityName>",
sEntityName,
"</entityName>",
"<id>",
GUID,
"</id>",
"<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'>",
"<q1:Attributes>",
"<q1:Attribute>",
sAttributeName,
"</q1:Attribute>",
"</q1:Attributes>",
"</columnSet>",
"</Retrieve>",
"</soap:Body>",
"</soap:Envelope>"
].join("");
var resultXml = executeSoapRequest("Retrieve",xml)
var errorCount = resultXml.selectNodes('//error').length;
var resultnode = resultXml.selectSingleNode("//q1:" + sAttributeName)
var result=null;
if (resultnode!=null) result = resultnode.nodeTypedValue;

if (errorCount != 0)
{
var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
result = " ";
alert(msg);
}
else
{
return result;
}
}
Старый 30.10.2009, 09:29   #3  
Артем 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
Опишите подробнее задачу. На первый взгляд она кажется надуманной: эти данные можно вычитать из веб сервиса CRM, так что незачем заводить дополнительный. Если дополнительный все же нужен, то рекомендую воспользоваться методом Retrive у СrmService
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 30.10.2009, 10:08   #4  
Camena is offline
Camena
Участник
 
111 / 10 (1) +
Регистрация: 23.03.2009
Адрес: Москва
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Опишите подробнее задачу. На первый взгляд она кажется надуманной: эти данные можно вычитать из веб сервиса CRM, так что незачем заводить дополнительный. Если дополнительный все же нужен, то рекомендую воспользоваться методом Retrive у СrmService
Действительно, задача сложнее, чем кажется на первый взгляд. Хотя возможно и легче
Попробую объяснить:
Допустим, есть некий веб-сервис

[WebMethod]
public void GetDataByAttribute (string AttributeName, Guid ObjectId) { ... }

В качестве входных параметров в него передаются:
1. название атрибута (например, "customerid") - стринговая переменная;
2. GUID сущности (например, "Возможная сделка" opportunity, у которой соответственно есть атрибут customerid) - Guid переменная.
Соответственно нужно каким-то способом получить значение поля customerid (то есть название контакта) у сущности с этим GUID. Но штука в том, что полученный атрибут сущности может быть любой, и не понятно, как его потом привести к виду opportunity.customerid, ведь "customerid" - это текстовый параметр (!).
Надеюсь, сейчас описано понятнее
Старый 30.10.2009, 17:15   #5  
Camena is offline
Camena
Участник
 
111 / 10 (1) +
Регистрация: 23.03.2009
Адрес: Москва
Неужели никто не сталкиваося с подобной задачей?!
Старый 30.10.2009, 17:19   #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
Цитата:
Сообщение от Camena Посмотреть сообщение
Неужели никто не сталкиваося с подобной задачей?!
Я в разработке под Microsoft Dynamics CRM уже полтора года и, надеюсь, моя квалификация не вызывает у Вас сомнения.

Я не смог понять зачем Вам это необходимо. Можете сценарий привести?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 30.10.2009, 17:32   #7  
Camena is offline
Camena
Участник
 
111 / 10 (1) +
Регистрация: 23.03.2009
Адрес: Москва
Цитата:
Сообщение от a33ik Посмотреть сообщение
Я в разработке под Microsoft Dynamics CRM уже полтора года и, надеюсь, моя квалификация не вызывает у Вас сомнения.

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

Сценарий таков:
В системе необходимо реализовать гибкий механизм, который позволит пользователям выбирать необходимые поля (атрибуты) из сущностей, значения которых потом используются, например, в составлении неких документов.

Возможно, это можно как-то по другому реализовать, но пока что вижу только такой вариант.
Старый 31.10.2009, 10:48   #8  
Артем 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
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как получить значение поля одной сущности при обработке формы другой сущности zhenek Dynamics CRM: Разработка 25 05.07.2011 16:19
Как получить значение поля? Elka Dynamics CRM: Разработка 4 26.06.2009 13:52
Как взять текстовое значение из поля LookUp tatra Dynamics CRM: Разработка 2 21.11.2007 08:20
Изменение значение поля из скрипта ... zhenek Dynamics CRM: Разработка 2 15.10.2007 18:33
Не отображается значение поля в представлении SLK Dynamics CRM: Разработка 7 25.09.2007 11:44

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

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

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