You need to sign in to do that
Don't have an account?
Error: ConvertLead Failed
Hai All,
When i am converting a lead Its giving Error
Error: ConvertLead Failed: First exception on row 0; First error: UNAVAILABLE_RECORDTYPE_EXCEPTION,unable to find defaultnrecord type[]
Below is the Class code On convert lead
// This class is meant to hold all the code which will be reusable and common processes. Some webservice methods we can write here also.
global class Lead_Manager
{
// Responsible for lead conversion from standard page layout.
// Below webservice method is being called on the click event of the custom convert button on the standard lead page layout.
WebService static String convertLeadByConvertCustomeButton(String leadId)
{
try
{
Lead led = [Select id,Name,Status,LeadSource ,IsConverted ,(Select id,ContentType,Name,LastModifiedDate from Attachments) from Lead where id = :leadId];
if(led.Attachments.size()==0)
return 'Please upload documents before converting the lead.';
if(led.Status=='Approved')
{
// Here it is throwing Error
Database.LeadConvert lc = new database.LeadConvert();
lc.setLeadId(leadId);
LeadStatus convertStatus = [SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1];
lc.setConvertedStatus(convertStatus.MasterLabel);
lc.setDoNotCreateOpportunity(true);
Database.LeadConvertResult lcr = Database.convertLead(lc);
//ApexPages.addMessage(new ApexPages.message(ApexPages.severity.confirm,'Lead has been converted successfully.'));
led = [Select id,Name,Status,LeadSource ,IsConverted ,ConvertedAccountId,ConvertedContactId from Lead where id = :leadId];
/* List<Contact> contactList = [Select id from Contact where id=:led.ConvertedContactId];
if(contactList.size()>0)
delete contactList; */
return String.ValueOf(led.ConvertedAccountId);
}
else
return 'CSR has not approved the lead so it can not be converted.';
}
catch(System.Exception e)
{
return e.getMessage();
}
}
//Lead conversion custom method. This method will take an instance of Lead object
//and will convert it without creating opportunities and returned the converted lead to its caller.
// Responsible for lead conversion from visual force.
public static Lead convertLead(Lead lead)
{
Database.LeadConvert lc = new database.LeadConvert();
lc.setLeadId(lead.Id);
LeadStatus convertStatus = [SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1];
lc.setConvertedStatus(convertStatus.MasterLabel);
lc.setDoNotCreateOpportunity(true);
Database.LeadConvertResult lcr = Database.convertLead(lc);
Lead led = [Select id,Status,LeadSource ,ConvertedAccountId,RecordType.Name,Name,OwnerId,CreatedById,FirstName,LastName,Street,City,State,PostalCode,Email,phone,Last_4_digits_SSN__c,Date_of_Birth__c,IsConverted,
Enrollment_Id__c,EBT_Number__c,EBT_Holder__c,Number_of_Persons_or_Household__c,Monthly_Income__c,Yearly_Income__c
from Lead
where id = :lead.id];
return led;
}
@RemoteAction
global static String checkLeadApprovalStatusByCSR(String leadId)
{
Lead lead = [Select id,Status from Lead where id = :leadId];
if(lead.Status == 'Approved')
return '1';
else
return '0';
}
}
Make sure you've got some default recordtypes assigned to owner's profile.
Here is an extract from apex dev guide:
If the organization uses record types, the default record type of the new owner is assigned to records created during lead conversion. The default record type of the user converting the lead determines the lead source values available during conversion. If the desired lead source values are not available, add the values to the default record type of the user converting the lead. For more information about record types, see the Salesforce online help.
Hope that helps.
Afzal,
hi sunny@99, salesforce newbie here.
have you figured out why the error is showing up? im encountering the same error. thanks!