用javascript调用WebService,RetrieveDynamicEntity的方式取出EntityProperty的Value
2009-04-11 15:13
323 查看
function getDynamicEnitity(entityName, entityId,attributeNames)
{
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>" +
" <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
" <Request xsi:type=\"RetrieveRequest\" ReturnDynamicEntities=\"true\">" +
" <Target xsi:type=\"TargetRetrieveDynamic\">" +
" <EntityName>"+entityName+"</EntityName>" +
" <EntityId>"+entityId+"</EntityId>" +
" </Target>" +
" <ColumnSet xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:ColumnSet\">" +
" <q1:Attributes>" +
getAttributeNamesString(attributeNames)+
" </q1:Attributes>" +
" </ColumnSet>" +
" </Request>" +
" </Execute>" +
" </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/Execute");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml);
var resultXml = xmlHttpRequest.responseXML;
return resultXml;
}
function getEntityPropertyValue(resultXml, attributeName)
{
// Create an XML object to parse the results.
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(resultXml.xml);
var ret=xmlDoc.selectSingleNode("//Property[@Name='"+attributeName+"']");
//ret.text enough for return xml;
//in other case this may not enough be careful for this.
if (ret!=null)
return ret.text;
else
return null;
}
function getAttributeNamesString(attributes)
{
var strRet="";
for(i=0;i<attributes.length;i++)
{
strRet+=("<q1:Attribute>"+attributes[i]+"</q1:Attribute>") ;
}
return strRet;
}
{
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>" +
" <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
" <Request xsi:type=\"RetrieveRequest\" ReturnDynamicEntities=\"true\">" +
" <Target xsi:type=\"TargetRetrieveDynamic\">" +
" <EntityName>"+entityName+"</EntityName>" +
" <EntityId>"+entityId+"</EntityId>" +
" </Target>" +
" <ColumnSet xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:ColumnSet\">" +
" <q1:Attributes>" +
getAttributeNamesString(attributeNames)+
" </q1:Attributes>" +
" </ColumnSet>" +
" </Request>" +
" </Execute>" +
" </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/Execute");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml);
var resultXml = xmlHttpRequest.responseXML;
return resultXml;
}
function getEntityPropertyValue(resultXml, attributeName)
{
// Create an XML object to parse the results.
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(resultXml.xml);
var ret=xmlDoc.selectSingleNode("//Property[@Name='"+attributeName+"']");
//ret.text enough for return xml;
//in other case this may not enough be careful for this.
if (ret!=null)
return ret.text;
else
return null;
}
function getAttributeNamesString(attributes)
{
var strRet="";
for(i=0;i<attributes.length;i++)
{
strRet+=("<q1:Attribute>"+attributes[i]+"</q1:Attribute>") ;
}
return strRet;
}
相关文章推荐
- JavaScript Soap 方式调用WebServicejavascript
- DOTNET下的三种调用webservice方式之Javascript调用方式
- JavaScript Soap 方式调用WebService
- 在JavaScript中调用ASP.NET WebService的简单方法
- Java调用.NET webservice方法的几种方式
- 使用异步方式调用WebService
- java 实现WebService 以及不同的调用方式
- Javascript调用Webservice的多种方法
- WebService学习整理(一)——客户端三种调用方式
- WebService:客户端调用service的四种方式
- 使用C#创建webservice及三种调用方式
- cxf调用webservice方式,网上所得
- 起步X5开发HTML5通过ajax调用WebService服务,调用的两种方式SOAP和Result
- javascript链式调用实现方式总结
- (三)我的JavaScript系列:不同调用方式的this指向
- 用JavaScript调用WebService的示例
- 利用JavaScript SOAP Client直接调用webService --完整的前后台配置与调用示例
- Javascript中匿名函数的多种调用方式
- webservice 优化性能的方法,以返回Dataset为例,当大数据量时采用先压缩的方式,调用再解压缩
- 用javascript调用webservice