Problem mit 'Not In' in einem FetchXml Statement
-
martes, 25 de enero de 2011 10:48
hallo zusammen,
das problem das ich im moment habe ist folgendes:
ich habe ein fetchxml statement und das würde ich gerne im 'onload' vom crm
ausführen, damit ich auf datenwerte zugreifen kann die ich benötige.
wenn ich nun das statement laufen lasse erhalte ich die meldung:
"soap:ServerServer was unable to process reques. 0x80040203 The value passed for ConditionOperator.In is empty Platform"
weiss nicht warum dies mit 'not-in' nicht geht.
hier noch das fetchxml - statement
die sListId enhält folgende daten: AD6F91AF-381E-E011-BAAE-000C29091E11
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>" +
"<Fetch xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
"<fetchXml>"+
" <fetch mapping='logical' distinct='true' count='50'>" +
" <entity name='new_marketingplugin'>" +
" <attribute name='new_name' />" +
" <filter>" +
" <condition attribute='new_marketinglistid' operator='not-in' value='"+ sListId +"' />" +
" </filter>" +
" <link-entity name='list' from='listid' to='new_marketinglistid' alias='m' link-type='inner'>" +
" <attribute name='lockstatus' />" +
" <link-entity name='listmember' from='listid' to='listid' alias='lm' link-type='inner'>" +
" <link-entity name='contact' from='contactid' to='entityid' alias='c' link-type='inner'>" +
" <filter>" +
" <condition attribute='contactid' operator='ne' value='"+ crmForm.ObjectId +"' />" +
" </filter>" +
" </link-entity>" +
" </link-entity>" +
" </link-entity>" +
" </entity>" +
" </fetch>" +
"</fetchXml>"+
"</Fetch>"+
"</soap:Body>" +
"</soap:Envelope>";
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Fetch");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml);
var resultXml = xmlHttpRequest.responseXML;
var resultSet = resultXml.text;
resultSet.replace('<','<');
resultSet.replace('>','>');
var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
oXmlDoc.async = false;
oXmlDoc.loadXML(resultSet);
var result = oXmlDoc.getElementsByTagName('new_name');vielen dank für eure hilfe
gruss pascal
Todas las respuestas
-
martes, 25 de enero de 2011 16:05Moderador
-
miércoles, 26 de enero de 2011 7:37
hallo michael,
danke für eine antwort, das problem ist gelöst.
die werte waren nicht NULL, aber ich weiss ehrlich gesagt nicht wo das problem lag.
habe meinen FetchXml Code durch das tool "JavaScript Web Service Calls 4.0" (Stunnware tools) laufen lassen
und anschliessend den javascript code in mein 'OnLoad' event kopiert.
dies hat bestens funktioniert und ich konnte die selektierten spalten auslesen.
auslesen der spalten:
var result = oXmlDoc.getElementsByTagName('new_name');
result[0].firstChild.data;
oder
result.item(0).firstChild.nodeValue
oder
oXmlDoc.getElementsByTagName('new_name')[0].firstChild.data
oder
oXmlDoc.getElementsByTagName('new_name').item(0).firstChild.nodeValue
achtung:
wenn eine spalte selektiert wird die einen korrelationsnamen enthält, muss
dieser auch angegeben werden.
var result2 = oXmlDoc.getElementsByTagName('m.lockstatus');
gruss pascal
- Propuesto como respuesta ckeller sábado, 29 de enero de 2011 16:35