1

Ich habe eine Menüband-Schaltfläche, eine leere Aktion (Prozess) und ein Plug-in erstellt. Ich rufe die Aktion (JavaScript) über die Multifunktionsleisten-Schaltfläche auf, die das Plug-In mithilfe der benutzerdefinierten Nachricht auslösen muss. Ich kann die Aktion mit dem Soap-Anruf aufrufen, aber es löst nicht das Plug-In aus, das für diese benutzerdefinierte Nachricht registriert wurde. Ich habe am unteren Rand der Hilfsmethode einen Alarm eingefügt, der erfolgreich ausgelöst wird, aber das Plug-in kann nicht ausgelöst werden. Jede Hilfe ist willkommen ....Plug-in, das auf der benutzerdefinierten Nachricht nicht ausgelöst wird, die mit Aktionen in CRM 2016 erstellt wurde

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; 
} 

Antwort

3

Dinge zu überprüfen:

  1. Überprüfen Sie Ihre Plugin Schritt aktiviert ist.
  2. Validate Plugin funktioniert
    1. auf eine Meldung wie einem Update gegen einige Unternehmen Plugin Schritt registrieren, um zu sehen, wenn Sie es auslösen bekommen kann.
    2. In der Plugin-Protokollierung, um zu sehen, wenn Sie es etwas bekommen
  3. Validate Ihre Aktion funktioniert, indem es einen neuen Eintrag erstellen loggt sein.
  4. Verwenden Sie Fiddler, um zu überprüfen, ob in dem von der Schaltfläche generierten Datenverkehr Fehler zurückgegeben werden.
+0

Dank ... Polshgiant ... Ehrfürchtig. Es funktionierte wie ein Zauber ... das Problem war im Plug-in-Code ... Checkpunkt 2 sortierte mein Problem ... – Raghu