Forums Neueste Beiträge
 

wie komme ich an die Accountid von der Firma eines Kontakt, der in einer Verkaufschance hängt ?

27/06/2010 - 21:42 von mhammen | Report spam
Hallo CRM-Experten,

ich versuche, in einer Verkaufschance die Accountid eines eingehàngten
Kontakts zu bekommen, aber leider liefert mir CRM nicht das, was ich
such - oder ich find einfach die korrekte Bezeichnung nicht...
Das Feld New_Account ist zur Verkaufschance hinzugefügt, um
gleichzeitig beim setzen des Kontakts mit der Firma zu verlinken.

Script sieht so aus:

var oCustomer = new Array();
oCustomer = event.srcElement;
var oAccount = crmForm.all.new_account;
if (typeof(oAccount) != "undefined" && oAccount != null)
{
if (typeof(oCustomer) != "undefined" && oCustomer != null)
{
var id = oCustomer.DataValue[0].id;
var typename = oCustomer.DataValue[0].typename;
if (typename == "contact")
{
//Create a new HTTP request.
var request = new ActiveXObject("Microsoft.XMLHTTP")
request.onreadystatechange = function()
{
if (request.readyState == 4)
{
var result =request.responseXML.selectSingleNode("//
q1:parentcustomerid");
if (typeof(result) != "undefined" && result != null)
{
oAccount.DataValue result.getAttributeNode('parentcustomerid').value;
}
}
}
var sendXml = "<?xml version='1.0' encoding='utf-8'?>";
sendXml += "<soap:Envelope xmlns:soap='http://
schemas.xmlsoap.org/soap/envelope/'";
sendXml += "xmlns:xsi='http://www.w3.org/2001/XMLSchema-
instance'";
sendXml += "xmlns:xsd='http://www.w3.org/2001/XMLSchema'>";
sendXml += GenerateAuthenticationHeader();
sendXml += "<soap:Body>";
sendXml += "<Retrieve xmlns='http://schemas.microsoft.com/crm/
2007/WebServices'>";
sendXml += "<entityName>contact</entityName><id>" + id + "</
id>";
sendXml += "<columnSet xmlns:q1='http://schemas.microsoft.com/
crm/2006/Query' xsi:type='q1:ColumnSet'>";
sendXml += "<q1:Attributes><q1:Attribute>parentcustomerid</
q1:Attribute>";
sendXml += "</q1:Attributes></columnSet></Retrieve></
soap:Body></
soap:Envelope>";
request.Open("POST", "/MsCrmServices/2007/
CrmService.asmx",true);
request.setRequestHeader("Man", "POST /MsCrmServices/2007/
CrmService.asmx HTTP/1.1");
request.setRequestHeader("MessageType", "CALL");
request.setRequestHeader("Content-Type", "text/xml");
request.send(sendXml);
}
}
}

irgendwie ist das Feld nicht das richtige, oder die Abfrage ist nicht
korrekt - CRM liefert mir leider nix brauchbares.
Kann hier jemand unterstützen ? oder mir eine Möglichkeit zeigen, wie
ich an die account-guid komme ?
 

Lesen sie die antworten

#1 mhammen
28/06/2010 - 09:42 | Warnen spam
hab es selbst hinbekommen...

IE-8-Entwicklertools sei Dank...
Die Accountid versteckt sich tatsàchlich in result.text...

Für diejenigen, die es interessiert:

var oCustomer = new Array();
oCustomer = event.srcElement;

var oAccount = crmForm.all.new_account;

if (typeof(oAccount) != "undefined" && oAccount != null)
{
if (typeof(oCustomer) != "undefined" && oCustomer != null)
{
var id = oCustomer.DataValue[0].id;
var typename = oCustomer.DataValue[0].typename;

if (typename == "contact")
{
//Create a new HTTP request.
var request = new ActiveXObject("Microsoft.XMLHTTP")

request.onreadystatechange = function()
{
if (request.readyState == 4)
{
var result =request.responseXML.selectSingleNode("//
q1:parentcustomerid");
if (typeof(result) != "undefined" && result != null)
{
oAccount.DataValue = result.text;
}
}
}

var sendXml = "";
sendXml += "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
sendXml += "<soap:Envelope ";
sendXml += " xmlns:soap=\"http://schemas.xmlsoap.org/
soap/envelope/\"";
sendXml += " xmlns:xsi=\"http://www.w3.org/2001/
XMLSchema-instance\"";
sendXml += " xmlns:xsd=\"http://www.w3.org/2001/
XMLSchema\">";
sendXml += GenerateAuthenticationHeader();
sendXml += " <soap:Body>";
sendXml += " <Retrieve xmlns=\"http://schemas.microsoft.com/
crm/2007/WebServices\">";
sendXml += " <entityName>" + typename + "</entityName>";
sendXml += " <id>" + id + "</id>";
sendXml += " <columnSet xmlns:q1=\"http://
schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:ColumnSet\">";
sendXml += " <q1:Attributes>";
sendXml += " <q1:Attribute>parentcustomerid</
q1:Attribute>";
sendXml += " </q1:Attributes>";
sendXml += " </columnSet>";
sendXml += " </Retrieve>";
sendXml += " </soap:Body>";
sendXml += "</soap:Envelope>";

request.Open("POST", "/MsCrmServices/2007/
CrmService.asmx",true);
request.setRequestHeader("Man", "POST /MsCrmServices/2007/
CrmService.asmx HTTP/1.1");
request.setRequestHeader("MessageType", "CALL");
request.setRequestHeader("Content-Type", "text/xml");
request.send(sendXml);
}
else
{
oAccount.DataValue = "";
}
}
}

Ähnliche fragen