Escrever lógica de negócios no Apex
Acompanhar com o Trail Together
Deseja acompanhar um especialista enquanto trabalha nesta etapa? Veja este vídeo que faz parte da série Trail Together.
(Este clipe começa na marca dos 34:00 minutos, caso você queira retroceder e ver o início da etapa novamente.)
Introdução
O Apex é a linguagem de programação orientada a objetos, altamente tipificada e otimizada para ser executada na arquitetura multilocatário do Salesforce. O Apex permite que os desenvolvedores automatizem processos de negócios complexos de back-end e é compilado em código de bytes Java.
A linguagem do Apex é otimizada para interagir com os dados do Salesforce e é totalmente integrada à camada de persistência do Salesforce. O Apex fornece SOQL (Salesforce Object Query Language), semelhante ao SQL, para executar consultas e instruções DML (Data Manipulation Language) para executar operações de banco de dados com os objetos criados anteriormente.
Criar e implantar a classe do Apex
- No Visual Studio Code, em force-app/main/default, clique com o botão direito do mouse em classes e selecione SFDX: Create Apex Class (Criar classe do Apex).
- Na paleta de comandos do Visual Studio Code, nomeie a classe como
HouseService
. Clique em Enter | Enter.
- Substitua o conteúdo do arquivo pelo seguinte código.
public with sharing class HouseService { @AuraEnabled(cacheable=true) public static List<House__c> getRecords() { try { // Create a list of House records from a SOQL query List<House__c> lstHouses = [ SELECT Id, Name, Address__c, State__c, City__c, Zip__c FROM House__c WITH USER_MODE ORDER BY CreatedDate LIMIT 10 ]; return lstHouses; } // Code to handle exception catch (Exception e) { throw new AuraHandledException(e.getMessage()); } } }
Code Highlights (Destaques do código) Nesse código, você cria uma classe HouseService que tem um método chamado getRecords. O método retorna a lista de registros de casas (como uma coleção ordenada) consultando o objeto House__c.
Observe que, na classe do Apex HouseService, você exibe automaticamente o objeto (House__c) criado anteriormente (na Etapa 2) como uma classe sem gravar um arquivo de classe. Além disso, você pode fazer referência aos campos no objeto House__c como propriedades sem precisar declará-los.
Usamos SOQL para escrever nossas consultas fazendo referência ao objeto e aos campos no objeto. A consulta é compilada e, portanto, é verificada quanto a tipificação em tempo de compilação.
Você estabeleceu uma forte ligação entre o modelo de dados e a classe do Apex. Agora você não poderá quebrar o código porque ele não será compilado se você fizer uma alteração de código inconsistente com o modelo de dados.
- Salve este arquivo.
- Clique com o botão direito do mouse em HouseService.cls e selecione SFDX: Deploy Source to Org (Implantar fonte na organização). Você verá uma mensagem de confirmação de que a classe do Apex foi implantada com êxito na organização. A implantação do código também o compila no servidor.
Agora, teste se essa classe retorna resultados de consulta conforme o esperado usando um script anônimo. Um script anônimo é o código do Apex que não fica armazenado nos metadados, mas que pode ser compilado e executado.
Siga as etapas abaixo para criar um script anônimo para testar.
- Crie um novo arquivo chamado dreamhouseapp.apex na pasta scripts/apex.
- Substitua o conteúdo do arquivo por este código:
System.debug(HouseService.getRecords());
- Clique em Code Lens Execute Anonymous Apex (Executar Apex anônimo) destacado a rosa na captura de tela abaixo.
Se a classe do Apex que você escreveu estiver funcional, você verá os resultados da consulta no painel de saída mostrado abaixo.
O Apex é teimoso, fortemente associado e otimizado para funcionar com aplicativos de negócios que funcionam bem com o Salesforce. Ele falha rapidamente em tempo de compilação se houver referências inválidas.
Como ele se integra à camada de persistência do Salesforce e tem suporte integrado para trabalhar diretamente com os dados do Salesforce sem precisar conectar camadas de dados adicionais, você pode ser mais produtivo. E, para fechar, o Apex incentiva automaticamente as boas práticas de codificação, aplicando os limites do administrador e os requisitos de teste.
Recursos
- GitHub: Receitas para Apex
- Trailhead: Criar habilidades de codificação do Apex
- Trailhead: Acionadores do Apex
- Documentação de desenvolvedores do Salesforce: Depurador de reprodução do Apex