If you are looking to update parent customerid in contact
record using soap request you can use below method. I have used Soaplogger
application that comes with Microsoft CRM 2011 SDK to generate this soap
request, you can simply write your server side code in soaploagger and run this
application, it will generate client slide soap request for you.
function UpdateParentCustomer(ParentCustomerID,ContactID)
{
var _ServerURL = Xrm.Page.context.getServerUrl() + "XRMServices/2011/Organization.svc/web";
var SoapRequest="<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>"+
"<s:Body><Update xmlns='http://schemas.microsoft.com/xrm/2011/Contracts/Services' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>"+
"<entity xmlns:a='http://schemas.microsoft.com/xrm/2011/Contracts'>"+
"<a:Attributes xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'>"+
"<a:KeyValuePairOfstringanyType>"+
"<b:key>parentcustomerid</b:key>"+
"<b:value i:type='a:EntityReference'>"+
"<a:Id>"+ParentCustomerID+"</a:Id>"+
"<a:LogicalName>account</a:LogicalName>"+
"<a:Name i:nil='true' />"+
"</b:value>"+
"</a:KeyValuePairOfstringanyType>"+
"<a:KeyValuePairOfstringanyType>"+
"<b:key>contactid</b:key>"+
"<b:value i:type='c:guid' xmlns:c='http://schemas.microsoft.com/2003/10/Serialization/'>"+ContactID+"</b:value>"+
"</a:KeyValuePairOfstringanyType>"+
"</a:Attributes>"+
"<a:EntityState i:nil='true' />"+
"<a:FormattedValues xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic' />"+
"<a:Id>00000000-0000-0000-0000-000000000000</a:Id>"+
"<a:LogicalName>contact</a:LogicalName>"+
"<a:RelatedEntities xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic' />"+
"</entity></Update></s:Body></s:Envelope>";
var req = new XMLHttpRequest();
req.open("POST", _ServerURL, true)
req.setRequestHeader("Accept", "application/xml, text/xml, */*");
req.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
req.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Update");
req.onreadystatechange = function () { Soap_Callback(req); };
req.send(SoapRequest);
}
function Soap_Callback(req)
{
if (req.readyState == 4) {
if (req.status == 200) {
alert("Updated record successfully"); }
else {var resultXml = req.responseXML;
var bodyNode = resultXml.firstChild.firstChild;
//Retrieve error message
for (var i = 0; i < bodyNode.childNodes.length; i++) {
var node = bodyNode.childNodes[i];
if ("s:Fault" == node.nodeName) {
for (var j = 0; j < node.childNodes.length; j++) {
var faultStringNode = node.childNodes[j];
if ("faultcode" == faultStringNode.nodeName) {
alert(faultStringNode.textContent);
break;
}
}
break;
}
}
}
}
}
Hope it will help someone !!!