Trailblazer Community
Explorando APEX:
Potencializando sua
Experiência Salesforce
Salesforce User Group, Sao Paulo, Brazil
Quem sou eu?
Rafael de Campos
Arquiteto Técnico Sênior - HCLTech
- Casado, 33 anos, apaixonado por tecnologia e tutor da
doguinha furacão Nala
- Formado em Banco de Dados, BI e IA pela FIAP
- Falando em carreira, passei por grandes empresas como
Accenture, NTT Data, Deloitte, IBM e atualmente trabalho na
HCLTech
- Possuo 29 certificações Salesforce (algumas em MuleSoft)
- Trabalhei nas Indústrias de Financial Services (maior parte),
Manufatura e Automobilística
- “Desenrolo” com apps fora do Salesforce, Web/Mobile
utilizando JavaScript (Node.js, React.js)
O que é APEX?
O que é APEX?
Apex é uma linguagem de programação fortemente
tipada e orientada a objetos que permite aos
desenvolvedores executar instruções de controle de
fluxo e transações em servidores Salesforce em
conjunto com chamadas à API.
Utilizando uma sintaxe semelhante à do Java e que
atua como procedimentos armazenados em bancos
de dados, o Apex permite que os desenvolvedores
adicionem lógica de negócios à maioria dos eventos
do sistema, incluindo cliques em botões, atualizações
de registros relacionados e páginas do Visualforce.
O código Apex pode ser iniciado por solicitações de
serviços web e por gatilhos em objetos por exemplo.
O que é APEX?
Integrado
Apex oferece suporte integrado para os idiomas comuns da Lightning Platform, incluindo:
- Chamadas de linguagem de manipulação de dados (DML), como INSERT, UPDATE e DELETE,
que incluem tratamento de exceções DmlException embutido
- Consultas Inline de Salesforce Object Query Language (SOQL) e Salesforce Object Search
Language (SOSL), que retornam listas de registros sObject
- Laços de repetição que permitem processamento em massa de múltiplos registros ao
mesmo tempo
- Sintaxe de bloqueio que impede conflitos na atualização de registros
- Chamadas de API personalizadas públicas que podem ser criadas a partir de métodos Apex
armazenados
- Avisos e erros emitidos quando um usuário tenta editar ou excluir um objeto ou campo
personalizado que seja referenciado pelo Apex
O que é APEX?
Fácil de usar
Apex é baseado em expressões familiares do Java, como sintaxe de variáveis e expressões,
sintaxe de blocos e declarações condicionais, sintaxe de loops, notação de objetos e arrays.
Onde Apex introduz novos elementos, ele usa sintaxe e semântica que são fáceis de entender
e encorajam o uso eficiente da Lightning Platform. Portanto, Apex produz código que é tanto
sucinto quanto fácil de escrever.
O que é APEX?
Foco em dados
O Apex foi projetado para unir múltiplas consultas e instruções DML em uma única unidade de
trabalho no servidor Salesforce.
Os desenvolvedores usam procedimentos armazenados de banco de dados para unir múltiplas
instruções de transação em um servidor de banco de dados de maneira similar.
Como outros procedimentos armazenados de banco de dados, o Apex não tenta fornecer
suporte geral para renderizar elementos na interface do usuário.
O que é APEX?
Rigoroso
Apex é uma linguagem fortemente tipada que usa referências diretas a objetos de esquema,
como nomes de objetos e campos.
Ela falha rapidamente no tempo de compilação se alguma referência for inválida.
Ela armazena todas as dependências de campos personalizados, objetos e classes em
metadados para garantir que não sejam excluídos enquanto forem necessários pelo código
Apex ativo.
Tipos de Dados
Tipos de dados
Tipos Primitivos
Para guardar informações do tipo texto: String
Para guardar informações numéricas: Integer, Double, Long,
Decimal
Para guardar informações verdadeiras ou falsas: Boolean
Informações de Data e/ou Hora: Date, Datetime, Time
Binário (Arquivos): Blob
Tipos de dados
Tipos Complexos
sObjects (registros de objetos Salesforce)
Listas, Mapas e Conjuntos
Classes definidas pelo usuário
Quando utilizar Código?
Quando utilizar Código?
Processamento massivo de dados, regras de compartilhamento complexas
● Processar, transformar, atualizar registros em objetos
em grandes quantidades
● Forçar execuções para que sejam realizadas de
forma assíncrona (aumentando alguns limites de
governança)
● Gerenciar acesso a registros de maneira
customizada
● Customizar processos de aprovação como
aprovação/reprovação de maneira automatizada e
relacionados
Quando utilizar Código?
Quando o objetivo a ser atingido não pode ser feito com recursos padrões da
plataforma
● Validações complexas em múltiplos objetos
● Lógica transacional única (além de um único
registro)
● Processos de negócios complexos que as
automações não conseguem manipular
● Serviços web customizados
● Lógica personalizada em operações de banco de
dados
Apex é ideal para aplicativos e/ou processamentos que
requerem funcionalidades além dos recursos padrão do
Salesforce
Com grandes poderes, vem
grandes responsabilidades
Com grandes poderes, vem grandes
responsabilidades
É OBRIGATÓRIO realizar testes unitários com APEX
● É necessário ter no mínimo 75% de linhas cobertas
pelo teste
● Embora apenas 75% do seu código Apex precise ser
coberto por testes, não se concentre na
porcentagem de código que está coberta. Em vez
disso, certifique-se de que todos os casos de uso da
sua aplicação estejam cobertos, incluindo casos
positivos e negativos, bem como registros em massa
e únicos. Esta abordagem garante que 75% ou mais
do seu código seja coberto por testes unitários
● Testes bem escritos, focados em cenários de sucesso
e erro, evitam/antecipam problemas em ambientes
produtivos
Com grandes poderes, vem grandes
responsabilidades
Existem Limites de Governança a serem respeitados
● Como o Apex é executado em um ambiente multi-
tentant, o mecanismo de tempo de execução do
Apex impõe rigorosamente limites para que códigos
ou processos Apex sem controle não monopolizem
recursos compartilhados. Se algum código Apex
exceder um limite, a organização emite uma exceção
de tempo de execução que não pode ser tratada ou
seja, o processo inteiro é cancelado.
Com grandes poderes, vem grandes
responsabilidades
Somos responsáveis pelo suporte e manutenção do código
● Quando utilizamos código, a Salesforce não dará
suporte ao que nós iremos construir ou seja suporte,
alterações, testes e manutenções serão nossa
responsabilidade
Demonstração
Links e Referências
● APEX Developer Guide -
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guid
e.htm
● Limites de Governança -
https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/sa
lesforce_app_limits_cheatsheet/salesforce_app_limits_platform_apexgov.htm
● Testes no APEX -
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing.ht
m
● Interfaces -
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_in
terfaces.htm
● Habilitar classe APEX em ação de Flow -
https://help.salesforce.com/s/articleView?id=platform.flow_build_extend_apex.htm&type=5
● Dados do Tipo APEX em Flows -
Informações para contato
● Linkedin - https://www.linkedin.com/in/rafael-de-campos-b812019a/
● Celular para contato/Whatsapp - +55 (11) 96900-4910
Muito obrigado!
Rafael de Campos
27 de Maio de 2025

Trailblazer Community de São Paulo - Explorando APEX

  • 1.
    Trailblazer Community Explorando APEX: Potencializandosua Experiência Salesforce Salesforce User Group, Sao Paulo, Brazil
  • 2.
  • 3.
    Rafael de Campos ArquitetoTécnico Sênior - HCLTech - Casado, 33 anos, apaixonado por tecnologia e tutor da doguinha furacão Nala - Formado em Banco de Dados, BI e IA pela FIAP - Falando em carreira, passei por grandes empresas como Accenture, NTT Data, Deloitte, IBM e atualmente trabalho na HCLTech - Possuo 29 certificações Salesforce (algumas em MuleSoft) - Trabalhei nas Indústrias de Financial Services (maior parte), Manufatura e Automobilística - “Desenrolo” com apps fora do Salesforce, Web/Mobile utilizando JavaScript (Node.js, React.js)
  • 4.
    O que éAPEX?
  • 5.
    O que éAPEX? Apex é uma linguagem de programação fortemente tipada e orientada a objetos que permite aos desenvolvedores executar instruções de controle de fluxo e transações em servidores Salesforce em conjunto com chamadas à API. Utilizando uma sintaxe semelhante à do Java e que atua como procedimentos armazenados em bancos de dados, o Apex permite que os desenvolvedores adicionem lógica de negócios à maioria dos eventos do sistema, incluindo cliques em botões, atualizações de registros relacionados e páginas do Visualforce. O código Apex pode ser iniciado por solicitações de serviços web e por gatilhos em objetos por exemplo.
  • 6.
    O que éAPEX? Integrado Apex oferece suporte integrado para os idiomas comuns da Lightning Platform, incluindo: - Chamadas de linguagem de manipulação de dados (DML), como INSERT, UPDATE e DELETE, que incluem tratamento de exceções DmlException embutido - Consultas Inline de Salesforce Object Query Language (SOQL) e Salesforce Object Search Language (SOSL), que retornam listas de registros sObject - Laços de repetição que permitem processamento em massa de múltiplos registros ao mesmo tempo - Sintaxe de bloqueio que impede conflitos na atualização de registros - Chamadas de API personalizadas públicas que podem ser criadas a partir de métodos Apex armazenados - Avisos e erros emitidos quando um usuário tenta editar ou excluir um objeto ou campo personalizado que seja referenciado pelo Apex
  • 7.
    O que éAPEX? Fácil de usar Apex é baseado em expressões familiares do Java, como sintaxe de variáveis e expressões, sintaxe de blocos e declarações condicionais, sintaxe de loops, notação de objetos e arrays. Onde Apex introduz novos elementos, ele usa sintaxe e semântica que são fáceis de entender e encorajam o uso eficiente da Lightning Platform. Portanto, Apex produz código que é tanto sucinto quanto fácil de escrever.
  • 8.
    O que éAPEX? Foco em dados O Apex foi projetado para unir múltiplas consultas e instruções DML em uma única unidade de trabalho no servidor Salesforce. Os desenvolvedores usam procedimentos armazenados de banco de dados para unir múltiplas instruções de transação em um servidor de banco de dados de maneira similar. Como outros procedimentos armazenados de banco de dados, o Apex não tenta fornecer suporte geral para renderizar elementos na interface do usuário.
  • 9.
    O que éAPEX? Rigoroso Apex é uma linguagem fortemente tipada que usa referências diretas a objetos de esquema, como nomes de objetos e campos. Ela falha rapidamente no tempo de compilação se alguma referência for inválida. Ela armazena todas as dependências de campos personalizados, objetos e classes em metadados para garantir que não sejam excluídos enquanto forem necessários pelo código Apex ativo.
  • 10.
  • 11.
    Tipos de dados TiposPrimitivos Para guardar informações do tipo texto: String Para guardar informações numéricas: Integer, Double, Long, Decimal Para guardar informações verdadeiras ou falsas: Boolean Informações de Data e/ou Hora: Date, Datetime, Time Binário (Arquivos): Blob
  • 12.
    Tipos de dados TiposComplexos sObjects (registros de objetos Salesforce) Listas, Mapas e Conjuntos Classes definidas pelo usuário
  • 13.
  • 14.
    Quando utilizar Código? Processamentomassivo de dados, regras de compartilhamento complexas ● Processar, transformar, atualizar registros em objetos em grandes quantidades ● Forçar execuções para que sejam realizadas de forma assíncrona (aumentando alguns limites de governança) ● Gerenciar acesso a registros de maneira customizada ● Customizar processos de aprovação como aprovação/reprovação de maneira automatizada e relacionados
  • 15.
    Quando utilizar Código? Quandoo objetivo a ser atingido não pode ser feito com recursos padrões da plataforma ● Validações complexas em múltiplos objetos ● Lógica transacional única (além de um único registro) ● Processos de negócios complexos que as automações não conseguem manipular ● Serviços web customizados ● Lógica personalizada em operações de banco de dados Apex é ideal para aplicativos e/ou processamentos que requerem funcionalidades além dos recursos padrão do Salesforce
  • 16.
    Com grandes poderes,vem grandes responsabilidades
  • 17.
    Com grandes poderes,vem grandes responsabilidades É OBRIGATÓRIO realizar testes unitários com APEX ● É necessário ter no mínimo 75% de linhas cobertas pelo teste ● Embora apenas 75% do seu código Apex precise ser coberto por testes, não se concentre na porcentagem de código que está coberta. Em vez disso, certifique-se de que todos os casos de uso da sua aplicação estejam cobertos, incluindo casos positivos e negativos, bem como registros em massa e únicos. Esta abordagem garante que 75% ou mais do seu código seja coberto por testes unitários ● Testes bem escritos, focados em cenários de sucesso e erro, evitam/antecipam problemas em ambientes produtivos
  • 18.
    Com grandes poderes,vem grandes responsabilidades Existem Limites de Governança a serem respeitados ● Como o Apex é executado em um ambiente multi- tentant, o mecanismo de tempo de execução do Apex impõe rigorosamente limites para que códigos ou processos Apex sem controle não monopolizem recursos compartilhados. Se algum código Apex exceder um limite, a organização emite uma exceção de tempo de execução que não pode ser tratada ou seja, o processo inteiro é cancelado.
  • 19.
    Com grandes poderes,vem grandes responsabilidades Somos responsáveis pelo suporte e manutenção do código ● Quando utilizamos código, a Salesforce não dará suporte ao que nós iremos construir ou seja suporte, alterações, testes e manutenções serão nossa responsabilidade
  • 20.
  • 21.
    Links e Referências ●APEX Developer Guide - https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guid e.htm ● Limites de Governança - https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/sa lesforce_app_limits_cheatsheet/salesforce_app_limits_platform_apexgov.htm ● Testes no APEX - https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing.ht m ● Interfaces - https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_in terfaces.htm ● Habilitar classe APEX em ação de Flow - https://help.salesforce.com/s/articleView?id=platform.flow_build_extend_apex.htm&type=5 ● Dados do Tipo APEX em Flows -
  • 22.
    Informações para contato ●Linkedin - https://www.linkedin.com/in/rafael-de-campos-b812019a/ ● Celular para contato/Whatsapp - +55 (11) 96900-4910
  • 23.
    Muito obrigado! Rafael deCampos 27 de Maio de 2025