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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.04.2009, 19:37   #1  
O_Chiner is offline
O_Chiner
Участник
 
2 / 10 (1) +
Регистрация: 05.04.2009
Адрес: Томск
Отображение поля "Название подразделения" в форме
Доброго времени суток!

Подскажите, пожалуйста, есть ли возможность вывести в форму настраиваемого объекта название бизнес-подразделения владельца записи? Желательно без программирования.

Последний раз редактировалось O_Chiner; 05.04.2009 в 19:49.
Старый 06.04.2009, 10:02   #2  
IgorF is offline
IgorF
Учаснег
Аватар для IgorF
Ex AND Project
Лучший по профессии 2011
Лучший по профессии 2009
 
307 / 37 (2) +++
Регистрация: 23.07.2007
Адрес: Поребрик сити
У меня у самого такая задача стоит, но пока за нее не брался. скорее всего без программирования не обойтись.
Можно попробовать конечно сопоставлениями полей при создании, но это тльк при создании будет работать (да и будет ли, тоже вопрос). а так мысль скриптом при изменении ответственного брать подразделение и записывать в поле
"Подразделение".
__________________
http://about.me/fedorovigor
Старый 06.04.2009, 13:50   #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
Lightbulb
Цитата:
Сообщение от O_Chiner Посмотреть сообщение
Доброго времени суток!

Подскажите, пожалуйста, есть ли возможность вывести в форму настраиваемого объекта название бизнес-подразделения владельца записи? Желательно без программирования.
Без программирования не получится.

Цитата:
Сообщение от IgorF Посмотреть сообщение
У меня у самого такая задача стоит, но пока за нее не брался. скорее всего без программирования не обойтись.
Можно попробовать конечно сопоставлениями полей при создании, но это тльк при создании будет работать (да и будет ли, тоже вопрос). а так мысль скриптом при изменении ответственного брать подразделение и записывать в поле
"Подразделение".
Если нужно, могу дать готовый скрипт. Уже рисовали такое =)
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 06.04.2009, 14:41   #4  
IgorF is offline
IgorF
Учаснег
Аватар для IgorF
Ex AND Project
Лучший по профессии 2011
Лучший по профессии 2009
 
307 / 37 (2) +++
Регистрация: 23.07.2007
Адрес: Поребрик сити
Цитата:
Сообщение от a33ik Посмотреть сообщение
Без программирования не получится.



Если нужно, могу дать готовый скрипт. Уже рисовали такое =)
у мну есть ....кидайте народу сюда, полезно будет всем.
__________________
http://about.me/fedorovigor
Старый 06.04.2009, 19:57   #5  
O_Chiner is offline
O_Chiner
Участник
 
2 / 10 (1) +
Регистрация: 05.04.2009
Адрес: Томск
Цитата:
Сообщение от a33ik Посмотреть сообщение
Без программирования не получится.



Если нужно, могу дать готовый скрипт. Уже рисовали такое =)
Будьте добры!
Старый 07.04.2009, 07:42   #6  
Bakai Madybaev is offline
Bakai Madybaev
Участник
 
201 / 16 (1) ++
Регистрация: 22.04.2008
Ставил этот скрипт на поле ownerid, событие onChange:
X++:
var ownerLookupItem = new Array;
ownerLookupItem = crmForm.all.ownerid.DataValue;
var lookupData = new Array();
var bUnitLookupItem= new Object();

if (ownerLookupItem != null)
{
  if (ownerLookupItem[0] != null)
  {
    var oXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    sGUID=ownerLookupItem[0].id;
    if (sGUID != null)
    {
      var sEntityName="systemuser";
      var sAttributeName="businessunitid";
      
      var bUID ="";
      
      bUID = GetAttributeValue(sEntityName, sGUID, sAttributeName);
      
      var bUEntityName ="businessunit";
      var bUEntityType ="name";
       
      var bUName = GetAttributeValue(bUEntityName, bUID, bUEntityType);
      
      bUnitLookupItem.id = bUID;
      bUnitLookupItem.typename = bUEntityName;
      bUnitLookupItem.name = bUName;
      
      lookupData[0] = bUnitLookupItem;
      crmForm.all.new_businessunit_incident.DataValue = lookupData;
      }
  }
}
function GetAttributeValue(sEntityName, sGUID, sAttributeName)
{
  var xml = "";
    xml +="<?xml version=\"1.0\" encoding=\"utf-8\"?>";
    xml +="<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\">";
    xml += GenerateAuthenticationHeader();
    xml +="<soap:Body>";
    xml +="<entityName xmlns=\"http://schemas.microsoft.com/crm/2006/WebServices\">" + sEntityName + "</entityName>";
    xml +="<id xmlns=\"http://schemas.microsoft.com/crm/2006/WebServices\">" + sGUID + "</id>";
    xml +="<columnSet xmlns=\"http://schemas.microsoft.com/crm/2006/WebServices\" xmlns:q=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q:ColumnSet\">"; 
    xml +="<q:Attributes>";
    xml +="<q:Attribute>" + sAttributeName + "</q:Attribute>";
    xml +="</q:Attributes>";
    xml +="</columnSet>";
    xml +="</soap:Body>";
    xml +="</soap:Envelope>";
    var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    xmlHttpRequest.Open("POST", "/mscrmservices/2006/CrmService.asmx", false);
    xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2006/WebServices/Retrieve");
    xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
    xmlHttpRequest.send(xml);
 
    var doc = xmlHttpRequest.responseXML;

    var retValue = "";
    if (doc.selectSingleNode("//RetrieveResult/q1:" + sAttributeName) != null) 
      retValue = doc.selectSingleNode("//RetrieveResult/q1:" + sAttributeName).text;

    return retValue;
}
За это сообщение автора поблагодарили: O_Chiner (1).
Старый 07.04.2009, 11:08   #7  
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
Цитата:
Сообщение от O_Chiner Посмотреть сообщение
Будьте добры!
Вот такой код:
Код:
function GetBUId(userid)
{
	if (userid == null)
		return null;

	var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	xmlhttp.open("POST", "/mscrmservices/2007/crmservice.asmx", false);
	xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
	xmlhttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Fetch");

	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>" +
	"<Fetch xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+ 
	"<fetchXml> "+
	"&lt;fetch mapping='logical'&gt; " +
	"&lt;entity name='systemuser'&gt; " +
	"&lt;attribute name='businessunitid' /&gt; " +
	"&lt;filter type='and'&gt; " +
	"&lt;condition attribute='systemuserid' operator='eq' value='" + userid +"'/&gt; " +
	"&lt;/filter&gt; " +
	"&lt;/entity&gt; " +
	"&lt;/fetch&gt;"+
	"</fetchXml>"+ 
	"</Fetch>"+ 
	"</soap:Body>"+ 
	"</soap:Envelope>";

	xmlhttp.setRequestHeader("Content-Length", xml.length);
	xmlhttp.send(xml);

	var resultSet = new String(xmlhttp.responseXml.text);
	resultSet.replace('&lt;','<');
	resultSet.replace('&gt;','>');
	var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	xmlDoc.async=false;
	xmlDoc.loadXML(resultSet);

	var lookupitem = new Object();
	lookupitem.typename = "businessunit";
	lookupitem.id = xmlDoc.selectSingleNode("//resultset/result/businessunitid").nodeValue;
	lookupitem.name = xmlDoc.selectSingleNode("//resultset/result/businessunitid").attributes.getNamedItem("name").text;
	retutn lookupItem;
}

if (crmForm.all.ownerid.DataValue != null
    && crmForm.all.ownerid.DataValue.length != 0
    && crmForm.all.ownerid[0] != null)
{
	var lookupData = new Array();
	lookupData[0] = GetBUId(crmForm.all.ownerid[0].id);
	crmForm.all.new_businessunitid.DataValue = lookupData;
}
Чтобы не забыть напишу, что у пользователя должны быть права на Assign To к сущности BusinessUnit иначе даже такое присвоение никакого результата не даст. Уже сталкивался. Удачи.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: O_Chiner (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как программно задавать обязательность поля на форме при заполнении? Bakai Madybaev Dynamics CRM: Функционал 6 10.10.2008 11:46
Заблокировать все поля на форме. IgorF Dynamics CRM: Разработка 12 07.04.2008 18:28
Как по названию поля определить название таблицы? Alexey-IT Dynamics CRM: Функционал 8 25.06.2007 13:06
Не отображаються закладки "Продажа" и "Маркетинг" pkost Dynamics CRM: Администрирование 1 31.10.2006 20:30
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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