Hi Rahul,
below is the full code for calling a custom action from java script and also you can check the condition too,
function CallActionFromJavaScript() {
var accountId = Xrm.Page.data.entity.getId();
var entityName = "account";
var requestName = "new_customaction";
var appnumber = Xrm.Page.data.entity.attributes.get('new_leapcasenumber').getValue();
var new_crmcustomerid = Xrm.Page.data.entity.attributes.get('new_crmcustomerid').getValue();
if(new_crmcustomerid == null){
alert("Save record before sending to Portal?");
} else if(appnumber != null){
if(appnumber.trim().length == 4)
alert("This account has already been sent to portal.");
}
else
ExecuteAction(accountId, entityName, requestName);
}
function ExecuteAction(entityId, entityName, requestName) {
// Creating the request XML for calling the Action
var requestXML = ""
requestXML += "<s:Envelope xmlns:s=\"schemas.xmlsoap.org/.../envelope\">";
requestXML += " <s:Body>";
requestXML += " <Execute xmlns=\"schemas.microsoft.com/.../Services\" xmlns:i=\"www.w3.org/.../XMLSchema-instance\">";
requestXML += " <request xmlns:a=\"schemas.microsoft.com/.../Contracts\">";
requestXML += " <a:Parameters xmlns:b=\"schemas.datacontract.org/.../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 += " </b:value>";
requestXML += " </a:KeyValuePairOfstringanyType>";
requestXML += " </a:Parameters>";
requestXML += " <a:RequestId i:nil=\"true\" />";
requestXML += " <a:RequestName>" + requestName + "</a:RequestName>";
requestXML += " </request>";
requestXML += " </Execute>";
requestXML += " </s:Body>";
requestXML += "</s:Envelope>";
var req = new XMLHttpRequest();
req.open("POST", Xrm.Page.context.getClientUrl() + "/XRMServices/2011/Organization.svc/web", false);
req.setRequestHeader("Accept", "application/xml, text/xml, */*");
req.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
req.setRequestHeader("SOAPAction", "schemas.microsoft.com/.../Execute");
req.send(requestXML);
//Get the Resonse from the CRM Execute method
var response = req.responseXML;
alert("Customer has been sent to your portal. Please login to portal and complete the form.");
}
Please mark my answer as verified if it resolves your issue.
Thanks,
Shahbaaz