Question
I have this scenario:
Account acc = new Account(Name='Partner', Razao_social__c='Partner', CNPJ_CPF__c='98868716000100', Codigo_empresa__c='01')
Database.insert( acc );
Answer
To make a partner portal account, any account is ok. Simply ensure the account's owner has the correct values in the UserRoleId and ProfileId fields.
To
make a partner user, any user is ok. Simply ensure the user's profile
is a Portal User profile. Then you can specify a value for its ContactId field.
Here's the code that's working for me:
//Create portal account owner UserRole portalRole = [Select Id From UserRole Where PortalType = 'None' Limit 1]; Profile profile1 = [Select Id from Profile where name = 'System Administrator']; User portalAccountOwner1 = new User( UserRoleId = portalRole.Id, ProfileId = profile1.Id, Username = System.now().millisecond() + 'test2@test.com', Alias = 'batman', Email='bruce.wayne@wayneenterprises.com', EmailEncodingKey='UTF-8', Firstname='Bruce', Lastname='Wayne', LanguageLocaleKey='en_US', LocaleSidKey='en_US', TimeZoneSidKey='America/Chicago' ); Database.insert(portalAccountOwner1); //Create account Account portalAccount1 = new Account( Name = 'TestAccount', OwnerId = portalAccountOwner1.Id ); Database.insert(portalAccount1); //Create contact Contact contact1 = new Contact( FirstName = 'Test', Lastname = 'McTesty', AccountId = portalAccount1.Id, Email = System.now().millisecond() + 'test@test.com' ); Database.insert(contact1); //Create user Profile portalProfile = [SELECT Id FROM Profile WHERE Name LIKE '%Portal User%' Limit 1]; User user1 = new User( Username = System.now().millisecond() + 'test12345@test.com', ContactId = contact1.Id, ProfileId = portalProfile.Id, Alias = 'test123', Email = 'test12345@test.com', EmailEncodingKey = 'UTF-8', LastName = 'McTesty', CommunityNickname = 'test12345', TimeZoneSidKey = 'America/Los_Angeles', LocaleSidKey = 'en_US', LanguageLocaleKey = 'en_US' ); Database.insert(user1);
No comments:
Post a Comment