22. Juni 2010 11:46
function setCustomer() {
    var companyid = null;
    var companyname = null;
    var doc = null;
    var customerInfo = null;
    if (crmForm.all.customerid.DataValue != null) {
        if (crmForm.all.customerid.DataValue[0].typename == "contact") {
            
            customerInfo = GetCustomerInformation(crmForm.all.customerid);
            companyid = customerInfo.nodeTypedValue;
            
            var i = 0;
            while (customerInfo.attributes[i].name != "name") {
                i++;
            }
            companyname = customerInfo.attributes[i].nodeTypedValue;
            var lookupitem = new Array();
            var lookupitemobject = new Object();
            lookupitemobject.id = companyid;
            lookupitemobject.typename = 'account';
            lookupitemobject.name = companyname;
            lookupitem[0] = lookupitemobject;
            crmForm.all.new_companyid.DataValue = lookupitem;
        }
        else {
            companyid = crmForm.all.customerid.DataValue[0].id;
            crmForm.all.new_companyid.DataValue = crmForm.all.customerid.DataValue
        }
    }
    else {
        crmForm.all.new_companyid.DataValue = null;
    }
    
}GetCustomerInformation = function(contactid)
{
    var xml = null;
    var xmlHttpRequest = null;
    var resultXml = null;
    var doc = null;
    var companyid=null;
 
    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>contact</entityName>" + 
    "       <id>" + contactid.DataValue[0].id  + "</id>" +
    " <columnSet xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:ColumnSet\">" +
    " <q1:Attributes>" +
    " <q1:Attribute>parentcustomerid</q1:Attribute>"+
    " </q1:Attributes>"+
    "</columnSet>"+
    "    </Retrieve>" + 
    "  </soap:Body>" + 
    "</soap:Envelope>";
    xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Retrieve");
    xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
    xmlHttpRequest.send(xml);
    resultXml = xmlHttpRequest.responseXML.xml;
    doc = new ActiveXObject("MSXML2.DOMDocument");
    doc.async = false;
    doc.loadXML(resultXml);
    companyid =  doc.selectSingleNode('//q1:parentcustomerid');
    return companyid; 
}