Показать сообщение отдельно
Старый 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).