Usar sObjects
Objetivos de aprendizagem
Usar sObjects
Campo conta | Valor |
---|---|
Id | 001D000000JlfXe |
Nome | Acme |
Telefone | (415) 555- 1212 |
NumberOfEmployees | 100 |
Cada registro do Salesforce é representado como um sObject antes de ser inserido no Salesforce. Da mesma forma, quando os registros persistentes são recuperados do Salesforce, eles são armazenados em uma variável sObject.
Registros de objeto padrão e personalizados no Salesforce mapeiam para seus tipos de sObject no Apex. Veja alguns nomes comuns de tipos de sObject no Apex usados para objetos padrão.
- Conta
- Contato
- Lead
- Oportunidade
Se tiver adicionado objetos personalizados em sua organização, use os nomes de API dos objetos personalizados no Apex. Por exemplo, um objeto personalizado chamado Mercadorias corresponde ao sObject Merchandise__c no Apex.
Criar variáveis sObject
Para criar um sObject, você precisa declarar uma variável e atribuir-lhe uma instância de sObject. O tipo de dados da variável é sObject.
O exemplo a seguir cria um sObject de tipo Conta com o nome Acme e o atribui à variável acct
.
Nomes de sObject e de campo
O Apex faz referência a sObjects padrão ou personalizados e seus campos usando seus nomes de API exclusivos.
Os nomes de API de objetos e de campos podem ter rótulos diferentes. Por exemplo, o campo Funcionários tem o rótulo Funcionários e é exibido na página de registro de conta como Funcionários. No entanto, o nome da API é NumberOfEmployees. Para acessar este campo no Apex, será necessário usar o nome da API para o campo: NumberOfEmployees.
Veja a seguir destaques de algumas regras utilizadas para nomes de API de objetos personalizados e campos personalizados.
Para objetos personalizados e campos personalizados, o nome da API sempre termina com o sufixo __c. Para campos personalizados de relacionamento, o nome da API sempre termina com o sufixo __r. Por exemplo:
- Um objeto personalizado com um rótulo Mercadorias tem Merchandise__c como nome da API.
- Um campo personalizado com um rótulo Descrição tem Description__c como nome da API.
- Um campo personalizado de relacionamento com um rótulo Itens tem Items__r como nome da API.
Além disso, os espaços nos rótulos são substituÃdos por sublinhados nos nomes de API. Por exemplo, o nome de um campo personalizado, Funcionário sênior, tem Employee_Seniority__c como nome da API.
Encontrar nomes de objetos e de campos
Para saber os nomes de objetos padrão e seus campos para usar no Apex, consulte a Referência de objeto para Salesforce e Lightning Platform.
Para objetos personalizados e padrão, procure os nomes de API de objeto e campo na sua organização. Em Configuração, clique na guia Gerenciador de objetos à direita da guia InÃcio e clique no nome do objeto.
Criar sObjects e adicionar campos
Antes de poder inserir um registro do Salesforce, você deve primeiro criá-lo na memória como um sObject. Como com qualquer outro objeto, os sObjects são criados com o operador new
:
O nome de objeto da API torna-se no tipo de dados da variável sObject no Apex. Neste exemplo, Account
é o tipo de dados da variável acct
.
A conta referenciada pela variável acct
está vazia porque ainda não preenchemos seus campos. Há duas maneiras de adicionar campos: pelo construtor ou usando notação de ponto.
A maneira mais rápida de adicionar campos é especificando-os como pares nome-valor no construtor. Por exemplo, esta instrução cria um novo sObject de conta e preenche o campo Nome com um valor de string.
O campo Nome é o único campo obrigatório para contas. Isso significa que ele tem que estar preenchido antes que um novo registro possa ser inserido. No entanto, você também pode preencher outros campos para o novo registro. Este exemplo adiciona um número de telefone e o número de funcionários.
Como alternativa, você pode usar a notação de ponto para adicionar campos a um sObject. O exemplo seguinte é equivalente ao anterior, embora exija mais algumas linhas de código.
Trabalhar com o tipo de dados sObject geral
As variáveis declaradas com o tipo de objeto sObject geral podem referenciar qualquer registro do Salesforce, seja registro de objeto padrão ou personalizado.

Este exemplo mostra como qualquer objeto Salesforce, como uma conta ou um objeto personalizado chamado Book__c, pode ser atribuÃdo a uma variável sObject geral.
De maneira contrária, variáveis declaradas com um tipo de dados sObject especÃfico podem referenciar somente os registros do Salesforce do mesmo tipo.

Transmitir sObjects gerais a tipos especÃficos de sObject
Ao lidar com sObjects gerais, à s vezes é necessário transmitir sua variável sObject a um tipo sObject especÃfico. Uma das vantagens disso é poder acessar campos usando notação de ponto, que não está disponÃvel no sObject geral. Como o sObject é um tipo pai de todos os tipos sObject especÃficos, você pode transmitir um sObject geral a um sObject especÃfico. Este exemplo mostra como transmitir um sObject geral a uma Conta.
Quero saber mais...
Os campos de um sObject geral podem ser acessados somente pelos métodos put()
e get()
.
Nesta unidade, você aprendeu sobre o que são sObjects e como usá-los. No entanto, a criação de um sObject não o marca como registro no banco de dados persistente. Para salvar o sObject como registro e realizar outras ações com ele, use o Data Manipulation Language (DML). Para recuperar um registro, use o Salesforce Object Query Language (SOQL). Você aprenderá mais sobre DML e SOQL em unidades mais adiante.
Recursos
- Referência de objeto para Salesforce e Lightning Platform
- Guia do desenvolvedor do Apex: Working with sObjects
- Guia do desenvolvedor do Apex: SObject Methods