function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Erik IvarssonErik Ivarsson 

Changing Person Account RecordType to Business Account RecordType

I am investigating possibilities for changing the RecordType of an Account from Person to Business Account. The reasoning for this is that I have a third party system which syncs Accounts with Salesforce and Accounts can be created in both systems, sometimes these are created with the wrong Recordtype (or it might be that they change).

I am doing this change through Dell Boomi (http://www.boomi.com/) and have successfully manage to do it for the change in RecordType from Busienss to Person Account types. I am not looking for a solution to this in Boomi, but what I need is some clarifications about the possibilities to acctually do it.

My investigation gives me very little to stand on regarding this, and the little information I see suggests that I might even be required to create a new Person Account and then re-referencing everything from the old Business Account to the new Person Account.

Is there another solution to this problem than doing this re-creation so to say? Any help is appreciated, APEX, DataLoader etc.
Amit Chaudhary 8Amit Chaudhary 8
Hi Erik,

Option 1:- If you want to modify existing record recordType then please use DataLoader.
Use below query to get RecordTypeID
SELECT DeveloperName,Id FROM RecordType WHERE SobjectType = 'Contact'



Option 2:- If you want to change record type base on some condation then please create one workflow rule for same.

Please let us know if this will help you.

Thanks,
Amit Chaudhary
 
Chetna AgrawalChetna Agrawal
while updating through data loader first keep only object Id and (Business) Record type id in sheet and update it.
chaitra prassinchaitra prassin
@amit .can i change the person type record type in apex code? 

I am writing a batch, In which ,with some condition i need to update the recordtype  to another Person Account recordtype. But when i update in the batch , I am getting a error . 

System.DmlException: Update failed. First exception on row 0 with id 0017g00001HGuczAAD; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, This record type can't be changed.: []

Any Solution u can suggest ? 
/*part of batch code 
================
For( Account accdelupd : scope ){
            If( EmployeeId.contains(accdelupd.Id) ) {
                //delete duplicate employee records
                Account accdel = new Account();
                accdel.Id = accdelupd.Id;
                employeeaccdelList.add(accdel); 
            }else {
                Account accemplotopersonupd = new Account();
                accemplotopersonupd.Id = accdelupd.Id;
                accemplotopersonupd.RecordTypeId =rt.Id;                    
                updateemployetoPersonRTList.add(accemplotopersonupd);
            }
        }
        delete employeeaccdelList;
        update updateemployetoPersonRTList;//error whn updating
*/