Bem, há uma forma bem simples de buscar um determinado Tipo de Registro, pelo nome, sem a necessidade de uma consulta SOQL. Veja:
Schema.Sobjecttype.Account.getRecordTypeInfosByName().get('Pessoa Física').getRecordTypeId();
Observe que basta colocar o nome do Objeto (Account, nesse exemplo) e no get o nome do tipo de registro (Pessoa Física).
Id idRtPF = Schema.Sobjecttype.Account.getRecordTypeInfosByName().get('Pessoa Física').getRecordTypeId();
Account conta = new Account(Name='Joao Silva', RecordTypeId = idRtPF);
insert conta;
Ao usar essa instrução, ao invés de fazer uma consulta ao objeto RecordType, você se distanciará dos limites de governança (governor limits) e deixará seu código mais elegante.
ATUALIZAÇÃO IMPORTANTE:
Na release Summer ’18 a Salesforce adicionou o método Schema.DescribeSObjectResult.getRecordTypeInfosByDeveloperName(). Com esse, é possível pegar o id do Tipo de Registro pelo Developer Name. Isso é interessante para evitar problemas com Orgs multi idioma ou alterações do Label do tipo de registro. Veja o exemplo anterior com o novo método:
Id idRtPF = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('PessoaFisica').getRecordTypeId();
Account conta = new Account(Name='Joao Silva', RecordTypeId = idRtPF);
insert conta;
* Precisa de um suporte ou consultoria com a plataforma Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ - Somos parceiros Gold Salesforce.
Nenhum comentário:
Postar um comentário