开发者

Retrieving an entity's attributes by GUID

开发者 https://www.devze.com 2023-03-19 02:44 出处:网络
I have a form that contains a lookup to 开发者_如何学Ca contact. Therefore I can get the guid, name and typename of the contact.

I have a form that contains a lookup to 开发者_如何学Ca contact. Therefore I can get the guid, name and typename of the contact.

This code:

var temp =  crmForm.all.to.DataValue;
alert(temp[0].id + "\n" + temp[0].name + "\n" + temp[0].typename); 

returns a valid guid, name, and type.

How can I get the attributes of this contact (the phone numbers in this case) with this information? I am trying to do this in the OnLoad function of a form, so I need to do this in javascript.


You can use the following method to call the webservices

function GetObjectAttribute(objectid, entityname, attribute) {
    // Preparer the SOAP message
    var message =
        [
        "<?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>",
        entityname,
        "</entityName>",
        "<id>",
        objectid,
        "</id>",
        "<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query'",
        " xsi:type='q1:ColumnSet'>",
        "<q1:Attributes><q1:Attribute>",
        attribute,
        "</q1:Attribute></q1:Attributes>",
        "</columnSet></Retrieve>",
        "</soap:Body></soap:Envelope>"
        ].join("");

    var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    xmlhttp.open("POST", "/MSCrmServices/2007/CrmService.asmx", false);
    xmlhttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Retrieve");
    xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xmlhttp.setRequestHeader("Content-Length", message.length);
    xmlhttp.send(message);

    var result = xmlhttp.responseXML;
    var error = result.selectNodes('//error').length;
    if (error == 0) {
        var attributeNode = result.selectSingleNode('//q1:' + attribute);
        if (attributeNode != null) {
            return attributeNode.text;
        }
    }
    return null;
}

usage

var fullname = GetObjectAttribute(<GUID>, "Contacts", "fullname");
0

精彩评论

暂无评论...
验证码 换一张
取 消