- Download XrmServiceToolkit. Extract the zip file.
- Then you have to add the following script to crm webresources:
- jquery.js
- json.js
- XrmServiceToolkit.js
- Save the following code as javascript file. Then add it to the webresources.
var requestMain = ""
xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">";
requestMain += " <request i:type=\"b:QualifyLeadRequest\" xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\" xmlns:b=\"http://schemas.microsoft.com/crm/2011/Contracts\">";
requestMain += " <a:Parameters xmlns:c=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>LeadId</c:key>";
requestMain += " <c:value i:type=\"a:EntityReference\">";
requestMain += " <a:Id>" + Xrm.Page.data.entity.getId() + "</a:Id>";
requestMain += " <a:LogicalName>lead</a:LogicalName>";
requestMain += " <a:Name i:nil=\"true\" />";
requestMain += " </c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>CreateAccount</c:key>";
requestMain += " <c:value i:type=\"d:boolean\" xmlns:d=\"http://www.w3.org/2001/XMLSchema\">true</c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>CreateContact</c:key>";
requestMain += " <c:value i:type=\"d:boolean\" xmlns:d=\"http://www.w3.org/2001/XMLSchema\">true</c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>CreateOpportunity</c:key>";
requestMain += " <c:value i:type=\"d:boolean\" xmlns:d=\"http://www.w3.org/2001/XMLSchema\">false</c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>Status</c:key>";
requestMain += " <c:value i:type=\"a:OptionSetValue\">";
requestMain += " <a:Value>3</a:Value>";
requestMain += " </c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>OpportunityCurrencyId</c:key>";
requestMain += " <c:value i:type=\"a:EntityReference\">";
requestMain += " <a:Id>89c14850-a5f3-e011-8606-1cc1dee89aa8</a:Id>";
requestMain += " <a:LogicalName>transactioncurrency</a:LogicalName>";
requestMain += " <a:Name i:nil=\"true\" />";
requestMain += " </c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>OpportunityCustomerId</c:key>";
requestMain += " <c:value i:type=\"a:EntityReference\">";
requestMain += " <a:Id>e2d97648-a5f3-e011-8606-1cc1dee89aa8</a:Id>";
requestMain += " <a:LogicalName>account</a:LogicalName>";
requestMain += " <a:Name i:nil=\"true\" />";
requestMain += " </c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>SourceCampaignId</c:key>";
requestMain += " <c:value i:type=\"a:EntityReference\">";
requestMain += " <a:Id>0ada7648-a5f3-e011-8606-1cc1dee89aa8</a:Id>";
requestMain += " <a:LogicalName>campaign</a:LogicalName>";
requestMain += " <a:Name i:nil=\"true\" />";
requestMain += " </c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " </a:Parameters>";
requestMain += " <a:RequestId i:nil=\"true\" />";
requestMain += " <a:RequestName>QualifyLead</a:RequestName>";
requestMain += " </request>";
var resultXml = XrmServiceToolkit.Soap.Execute(requestMain);
var id = xmlToString(resultXml);// loadXML(resultXml);
return id;
}
function xmlToString(resultXml) {
if ($(resultXml).find('a\\:Id').length != 0) {
response = $(resultXml).find('a\\:Id').eq(0);
} else {
response = $(resultXml).find('Id').eq(0); ; //Chrome 24.0.1312.52 could not find node by the previous code
}
var result = ((typeof window.CrmEncodeDecode != 'undefined') ? window.CrmEncodeDecode.CrmXmlDecode(response.text()) : crmXmlDecode(response.text()));
return result;
}
function additionalContact(AccountId) {
var createContact = new XrmServiceToolkit.Soap.BusinessEntity("contact");
var salutation = Xrm.Page.data.entity.attributes.get("tvsi_ssalutation").getValue();
if(salutation != null)
{
createContact.attributes["tvsi_salutation"] = { value: salutation, type: "OptionSetValue" };
}
createContact.attributes["firstname"] = Xrm.Page.data.entity.attributes.get("tvsi_firstname").getValue();
createContact.attributes["lastname"] = Xrm.Page.data.entity.attributes.get("tvsi_lastname").getValue();
createContact.attributes["jobtitle"] = Xrm.Page.data.entity.attributes.get("tvsi_jobtitle").getValue();
createContact.attributes["emailaddress1"] = Xrm.Page.data.entity.attributes.get("tvsi_secondaryemail").getValue();
createContact.attributes["telephone1"] = Xrm.Page.data.entity.attributes.get("tvsi_secondbusinessphone").getValue();
createContact.attributes["mobilephone"] = Xrm.Page.data.entity.attributes.get("tvsi_mobilephone").getValue();
createContact.attributes["address1_line1"]=Xrm.Page.data.entity.attributes.get("address1_line1").getValue();
createContact.attributes["address1_line2"]=Xrm.Page.data.entity.attributes.get("address1_line2").getValue();
createContact.attributes["address1_line3"]=Xrm.Page.data.entity.attributes.get("address1_line3").getValue();
createContact.attributes["address1_city"]=Xrm.Page.data.entity.attributes.get("address1_city").getValue();
createContact.attributes["address1_postalcode"]=Xrm.Page.data.entity.attributes.get("address1_postalcode").getValue();
createContact.attributes["address1_stateorprovince"] = Xrm.Page.data.entity.attributes.get("address1_stateorprovince").getValue();
var country = Xrm.Page.data.entity.attributes.get("tvsi_countryregion").getValue();//.getSelectedOption().value;
if(country != null)
{
createContact.attributes["tvsi_countryregion0"]={ value: country, type: "OptionSetValue" };
}
createContact.attributes["parentcustomerid"] = { id: AccountId, logicalName: "account", type: "EntityReference" };
contactId1 = XrmServiceToolkit.Soap.Create(createContact);
}
function qualify() {
var id = qualifyLeadRequest();
if(Xrm.Page.data.entity.attributes.get("tvsi_lastname").getValue()!=null)
additionalContact(id);
alert("Successfully Converted to Account and Contact");
window.location.reload(true);
}
- Open VisualRibbonEditor Tool. Make a Connection with your CRM Server.
- Then Click Open. Entity Ribbon dialog will be Opened. There you have to select LEAD ribbon.
- Select ConverToLead button. After selected you need to click Action tab. Expand Javascript function.
- There you have to give a function name: qualify
- Library: /WebResources/new_filename
No comments:
Post a Comment