Apex - Visão geral
O que é Apex?
Apex é uma linguagem proprietária desenvolvida pela Salesforce.com. De acordo com a definição oficial, o Apex é uma linguagem de programação orientada a objetos fortemente tipada que permite aos desenvolvedores executar as instruções de controle de fluxo e transação no servidor da plataforma Force.com em conjunto com chamadas para a API Force.com.
Ele tem uma sintaxe semelhante a Java e atua como procedimentos armazenados de banco de dados. Ele 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 Visualforcepages.Apexo código pode ser iniciado por solicitações de serviço da Web e de gatilhos em objetos. O Apex está incluído na Performance Edition, Unlimited Edition, Enterprise Edition e Developer Edition.
Recursos do Apex como um idioma
Vamos agora discutir os recursos do Apex como uma linguagem -
Integrado
Apex possui suporte integrado para operações DML como INSERT, UPDATE, DELETE e também manipulação de exceções DML. Ele tem suporte para manuseio de consultas SOQL e SOSL sequenciais, que retorna o conjunto de registros de sObject. Estudaremos o objeto, SOQL, SOSL em detalhes nos próximos capítulos.
Sintaxe semelhante ao Java e fácil de usar
O Apex é fácil de usar, pois usa a sintaxe do Java. Por exemplo, declaração de variável, sintaxe de loop e instruções condicionais.
Fortemente integrado com dados
O Apex é focado em dados e projetado para executar várias consultas e instruções DML juntas. Ele emite várias instruções de transação no banco de dados.
Fortemente tipado
Apex é uma linguagem fortemente tipada. Ele usa referência direta a objetos de esquema como sObject e qualquer referência inválida falha rapidamente se for excluída ou se for de tipo de dados incorreto.
Ambiente multilocatário
O Apex é executado em um ambiente multilocatário. Consequentemente, o mecanismo de tempo de execução do Apex é projetado para proteger de perto o código em fuga, evitando que monopolize recursos compartilhados. Qualquer código que viole os limites falha com mensagens de erro fáceis de entender.
Atualiza automaticamente
O Apex é atualizado como parte das versões do Salesforce. Não precisamos atualizá-lo manualmente.
Teste Fácil
O Apex fornece suporte integrado para criação e execução de teste de unidade, incluindo resultados de teste que indicam quanto código é coberto e quais partes de seu código podem ser mais eficientes.
Quando o desenvolvedor deve escolher o Apex?
O Apex deve ser usado quando não formos capazes de implementar a complexa funcionalidade de negócios usando as funcionalidades predefinidas e existentes prontas para uso. Abaixo estão os casos em que precisamos usar o apex sobre a configuração do Salesforce.
Aplicativos Apex
Podemos usar o Apex quando quisermos -
Crie serviços da Web com integração de outros sistemas.
Crie serviços de e-mail para explosão de e-mail ou configuração de e-mail.
Execute validação complexa em vários objetos ao mesmo tempo e também implementação de validação personalizada.
Crie processos de negócios complexos que não são suportados pela funcionalidade de fluxo de trabalho ou fluxos existentes.
Crie uma lógica transacional personalizada (lógica que ocorre em toda a transação, não apenas com um único registro ou objeto), como usar os métodos de banco de dados para atualizar os registros.
Execute alguma lógica quando um registro for modificado ou modifique o registro do objeto relacionado quando houver algum evento que tenha causado o disparo do gatilho.
Estrutura de Trabalho do Apex
Conforme mostrado no diagrama abaixo (Referência: Salesforce Developer Documentation), o Apex é executado inteiramente sob demanda. Plataforma Force.com
Fluxo de Ações
Existem duas sequências de ações quando o desenvolvedor salva o código e quando um usuário final executa alguma ação que invoca o código Apex, conforme mostrado abaixo -
Ação do desenvolvedor
Quando um desenvolvedor grava e salva o código Apex na plataforma, o servidor de aplicativos da plataforma primeiro compila o código em um conjunto de instruções que podem ser entendidas pelo interpretador de tempo de execução do Apex e, em seguida, salva essas instruções como metadados.
Ação do usuário final
Quando um usuário final dispara a execução do Apex, clicando em um botão ou acessando uma página do Visualforce, o servidor de aplicativos da plataforma recupera as instruções compiladas dos metadados e as envia por meio do interpretador de tempo de execução antes de retornar o resultado. O usuário final não observa diferenças no tempo de execução em comparação com a solicitação de plataforma de aplicativo padrão.
Como o Apex é a linguagem proprietária da Salesforce.com, ele não oferece suporte a alguns recursos que uma linguagem de programação geral oferece. A seguir estão alguns recursos que o Apex não oferece suporte -
Não pode mostrar os elementos na interface do usuário.
Você não pode alterar a funcionalidade fornecida pelo SFDC padrão e também não é possível impedir a execução da funcionalidade padrão.
A criação de vários threads também não é possível, pois podemos fazê-lo em outras línguas.
Compreendendo a sintaxe do Apex
O código do Apex normalmente contém muitas coisas com as quais podemos estar familiarizados em outras linguagens de programação.
Declaração de Variável
Como linguagem fortemente tipada, você deve declarar todas as variáveis com tipo de dados no Apex. Conforme visto no código abaixo (captura de tela abaixo), lstAcc é declarado com o tipo de dados como Lista de contas.
Consulta SOQL
Isso será usado para buscar os dados do banco de dados Salesforce. A consulta mostrada na captura de tela abaixo está buscando dados do objeto Conta.
Declaração de Loop
Essa instrução de loop é usada para iterar em uma lista ou em um trecho de código por um determinado número de vezes. No código mostrado na imagem abaixo, a iteração será igual ao número de registros que temos.
Declaração de controle de fluxo
A instrução If é usada para controle de fluxo neste código. Com base em certas condições, é decidido se vai para a execução ou para parar a execução de uma parte específica do código. Por exemplo, no código mostrado abaixo, ele verifica se a lista está vazia ou se contém registros.
Declaração DML
Executa a operação de inserção, atualização, upsert e exclusão de registros nos registros do banco de dados. Por exemplo, o código fornecido a seguir ajuda na atualização de contas com novo valor de campo.
A seguir está um exemplo de como será a aparência de um trecho de código Apex. Vamos estudar todos esses conceitos de programação do Apex mais adiante neste tutorial.