Имеем две связанные сущности, при в несении изменений в дочернюю требуется внести изменения в родительский объект.
Сабж описанный в SDK прекрасно работает когда изменяемый атрибут текстовый, но в данном случае требуется проапдейтить лукап. Может кто подсказать в каком формате и что нужно передавать в запросе.
На изменене стоит примерно такой скрипт и выдает ошибку о не правильном формате Id
Код:
var lookupData = new Array();
var lookupItem= new Object();
// Prepare variables for updating
var id = crmForm.all.parentcustomerid.DataValue[0].id;;
lookupItem.id = crmForm.ObjectId.value;
lookupItem.name = crmForm.ObjectId.name;
lookupItem.typename = 'contact'; //объект
lookupData[0] = lookupItem;
// Prepare the SOAP message.
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>"+
"<Update xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
"<entity xsi:type='account'>"+
"<acc_ceoid>"+lookupData+"</acc_ceoid>"+
"<contactid>"+id+"</contactid>"+
"</entity>"+
"</Update>"+
"</soap:Body>"+
"</soap:Envelope>";
// Prepare the xmlHttpObject and send the request.
var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xHReq.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Update");
xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xHReq.setRequestHeader("Content-Length", xml.length);
xHReq.send(xml);
// Capture the result
var resultXml = xHReq.responseXML;