Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 插件未触发使用CRM 2016中的操作创建的自定义消息_Javascript_Dynamics Crm_Dynamics Crm 2013_Dynamics Crm 2015_Dynamics Crm 2016 - Fatal编程技术网

Javascript 插件未触发使用CRM 2016中的操作创建的自定义消息

Javascript 插件未触发使用CRM 2016中的操作创建的自定义消息,javascript,dynamics-crm,dynamics-crm-2013,dynamics-crm-2015,dynamics-crm-2016,Javascript,Dynamics Crm,Dynamics Crm 2013,Dynamics Crm 2015,Dynamics Crm 2016,我创建了一个功能区按钮、一个空白操作(流程)和一个插件。我从功能区按钮调用操作(JavaScript),该按钮还需要使用自定义消息触发插件。我可以使用soap调用调用该操作,但它不会触发已在该自定义消息上注册的插件。我在helper方法的底部添加了一个警报,该警报正在成功弹出,但是插件无法触发。感谢您的帮助 function SendIOButtonActionCall() { var entityId = Xrm.Page.data.entity.getId(); var entityName

我创建了一个功能区按钮、一个空白操作(流程)和一个插件。我从功能区按钮调用操作(JavaScript),该按钮还需要使用自定义消息触发插件。我可以使用soap调用调用该操作,但它不会触发已在该自定义消息上注册的插件。我在helper方法的底部添加了一个警报,该警报正在成功弹出,但是插件无法触发。感谢您的帮助

function SendIOButtonActionCall() {
var entityId = Xrm.Page.data.entity.getId();
var entityName = Xrm.Page.data.entity.getEntityName();
var requestName = "vm_SendIOButton";
var OpportunityId = String(Xrm.Page.data.entity.getId());
ExecuteAction(entityId, entityName, requestName);
//window.location.reload(true);   
}

function ExecuteAction(entityId, entityName, requestName) {
    // Creating the request XML for calling the Action
var requestXML = ""
requestXML += "<s:envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">";
requestXML += "  <s:body>";
requestXML += "    <execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">";
requestXML += "      <request xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\">";
requestXML += "        <a:parameters xmlns:b=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">";
requestXML += "          <a:keyvaluepairofstringanytype>";
requestXML += "            <b:key>Target</b:key>";
requestXML += "            <b:value i:type=\"a:EntityReference\">";
requestXML += "              <a:id>" + entityId + "</a:id>";
requestXML += "              <a:logicalname>" + entityName + "</a:logicalname>";
requestXML += "              <a:name i:nil=\"true\">";
requestXML += "            </a:name></b:value>";
requestXML += "          </a:keyvaluepairofstringanytype>";
requestXML += "        </a:parameters>";
requestXML += "        <a:requestid i:nil=\"true\">";
requestXML += "        <a:requestname>" + requestName + "</a:requestname>";
requestXML += "      </a:requestid></request>";
requestXML += "    </execute>";
requestXML += "  </s:body>";
requestXML += "</s:envelope>";
var req = new XMLHttpRequest();
req.open("POST", GetClientUrl(), false)
req.setRequestHeader("Accept", "application/xml, text/xml, */*");
req.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
req.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute");
req.send(requestXML); 
alert("success");
//Get the Response from the CRM Execute method
//var response = req.responseXML.xml;
}

function GetClientUrl() {
if (typeof Xrm.Page.context == "object") {
    clientUrl = Xrm.Page.context.getClientUrl();
}
var ServicePath = "/XRMServices/2011/Organization.svc/web";
return clientUrl + ServicePath;
} 
函数SendIOButtonActionCall(){
var entityId=Xrm.Page.data.entity.getId();
var entityName=Xrm.Page.data.entity.getEntityName();
var requestName=“vm_SendIOButton”;
var OpportunityId=String(Xrm.Page.data.entity.getId());
ExecuteAction(entityId、entityName、requestName);
//window.location.reload(true);
}
函数执行(entityId、entityName、requestName){
//创建用于调用操作的请求XML
var requestXML=“”
requestXML+=“”;
requestXML+=“”;
requestXML+=“”;
requestXML+=“”;
requestXML+=“”;
requestXML+=“”;
requestXML+=“目标”;
requestXML+=“”;
requestXML+=“”+entityId+“”;
requestXML+=“”+entityName+“”;
requestXML+=“”;
requestXML+=“”;
requestXML+=“”;
requestXML+=“”;
requestXML+=“”;
requestXML+=“”+requestName+“”;
requestXML+=“”;
requestXML+=“”;
requestXML+=“”;
requestXML+=“”;
var req=新的XMLHttpRequest();
请求打开(“POST”,GetClientUrl(),false)
setRequestHeader(“接受”、“应用程序/xml、文本/xml、*/*”);
请求setRequestHeader(“内容类型”,“文本/xml;字符集=utf-8”);
请求setRequestHeader(“SOAPAction”http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute");
请求发送(requestXML);
警惕(“成功”);
//从CRM执行方法获取响应
//var response=req.responseXML.xml;
}
函数GetClientUrl(){
if(typeof Xrm.Page.context==“对象”){
clientUrl=Xrm.Page.context.getClientUrl();
}
var ServicePath=“/XRMServices/2011/Organization.svc/web”;
返回clientUrl+ServicePath;
} 
需要检查的事项:

  • 验证插件步骤是否已启用
  • 验证你的插件是否有效
  • 在一条消息上注册你的插件步骤,比如针对某个实体的更新,看看你是否能触发它
  • 将日志添加到插件,看看是否可以让它记录一些内容
  • 通过创建记录来验证您的操作是否有效
  • 使用Fiddler检查按钮生成的任何通信中是否返回任何错误

  • 谢谢…波尔什巨人…太棒了。它就像一个符咒…问题出在插件代码中…检查点2解决了我的问题。。。