No Salesforce, a validação dos dados antes/depois da inserção é muito importante e deve ser levada em consideração. Na maioria dos cenários, depois de inserir os dados no objeto Salesforce, algumas manipulação de dados precisam acontecer e inserções/exclusões/atualizações erradas precisam ser validadas e manuseadas. Para conseguir isso, o Salesforce introduziu um script de ápice conhecido como "gatilho". Mergulhe rapidamente no guia que lida com eventos de gatilho, variáveis de contexto, tipos e cenários com exemplos em tempo real.
Gatilho do ápice
No Salesforce, o Trigger é um código de ápice (.apt) que disparam antes ou depois das instâncias de manipulação de dados. Com base no evento especificado no gatilho, ele dispara sobre objetos especificados no Salesforce. Além disso, podemos especificar os contextos que nos ajudam a acessar os contextos de tempo de execução. Isso nos ajuda a evitar ações indesejadas/desnecessárias em objetos no Salesforce. Digamos, no objeto da conta, precisamos atualizar apenas o telefone quando a "indústria" é "agricultura".
Gatilho eventos
Como já discutimos, um gatilho antes ou depois das operações da DML ocorrem. Existem três operações de DML que ocorrem no objeto Salesforce.
Mais um evento de gatilho que pode ser disparado depois que a desleixamento é "depois de não.
Tipos de gatilho
Basicamente, existem dois tipos de gatilhos: o gatilho "antes" e o gatilho "depois".
Acionar variáveis de contexto
É importante ver qual cenário de gatilho foi demitido. Precisamos rastrear em qual contexto de gatilho o gatilho é disparado. Todas as variáveis de contexto de gatilho retornam true se o gatilho for demitido por causa desse evento. Vamos olhar para eles um por um.
1. isinsert:.
Exemplo: Criando contato quando "conta" é criada.
2. isupdate: Se o gatilho for disparado devido a um evento DML de atualização, o ISUPDATE se tornará verdadeiro.
Exemplo: Se o "nome da conta" não for nulo, preencha a "receita anual".
3. ISDELETE: Se o gatilho for disparado devido a um evento DML de exclusão, o ISDELETE se tornará verdadeiro.
Exemplo: Os registros da conta são incapazes de excluir se a "classificação da conta" estiver "quente".
4. isundElete: Se o gatilho for disparado devido a um evento DML não selecionado, o ISUNDELETE se tornará verdadeiro.
Exemplo: Os registros da conta são recuperados da lixeira do Salesforce.
Sintaxe do gatilho:
Podemos criar um script de ápice que dispara com base em instâncias DML usando a palavra -chave "gatilho" seguida pelo nome do gatilho. Ele pergunta sobre qual objeto Salesforce faz o gatilho deve acontecer durante a criação do próprio script de ápice. Todos os eventos de gatilho são especificados após o objeto Salesforce.
trigger trigger_name em salesforce_object_api (trigger_events)Configuração do ambiente
1. Vá para o "Console do desenvolvedor" e vá para o arquivo "Selecionar novo". Em seguida, escolha "Apice Trigger".
2. Ele pergunta o nome do script e o objeto Salesforce, de modo que o gatilho seja disparado neste objeto. Clique em "Enviar" para criar um novo gatilho de ápice.
Cenário 1: antes da inserção
Quando a conta é criada com a indústria de "educação", disparamos um gatilho que atribui o campo "Tipo" ao "parceiro de tecnologia" [objeto - conta].
gatilho antes_insert por conta (antes da inserção)“Primeiro, iteramos os registros da conta e verificamos se o setor é“ educação ”ou não. Se for "educação", atribuímos o "parceiro de tecnologia" ao campo "Tipo".
Caso de teste:
Vá para a guia "Contas" do lançador de aplicativos e crie uma conta com a indústria como "educação". Verifique se o campo "Tipo" é preenchido com "parceiro de tecnologia" ou não.
Ao clicar em "Salvar", você pode ver que o "tipo" é criado com "parceiro de tecnologia".
Cenário 2: após a inserção e após a atualização
Quando a conta é criada com a classificação "quente", disparamos um gatilho que cria um contato com "ContactName" como "conta-linuxhint-conta", "título" como "gerente" e "departamento" como "vendas" [objeto - Conta].
Trigger após_insert_trigger por conta (após a inserção, após a atualização)Primeiro, criamos uma lista do tipo "contato" e iteramos o objeto "conta". Dentro do loop "for", verificamos se a "classificação da conta" é "quente" ou não. Se for "quente", criamos "contato" e atribuímos três campos com os valores e adicionamos esse objeto à lista de contatos (declarada anteriormente). Finalmente, inserimos esses três campos no objeto "contato" usando o inserir DML.
Caso de teste:
Vá para a guia "Contas" do lançador de aplicativos e crie uma conta com a "classificação" como "quente". Verifique se o registro de contato é criado com três campos especificados.
Ao clicar em "Salvar", você pode ver que o "contato" é criado com três campos. Vá para a guia "Contatos".
Podemos ver que três campos são criados. Vá para a guia "Detalhes" para ver os campos.
Cenário 3: antes da atualização
Quando a campanha é atualizada com o tipo de "conferência", disparamos um gatilho que atualiza o campo "Status" para "Concluído" [Campanha de Objetos].
gatilho antes_update_trigger na campanha (antes da atualização)Primeiro, iteramos os registros da campanha e verificamos se o "tipo" é "conferência" ou não. Se for "conferência", atualizamos o campo "Status" para "concluído".
Caso de teste:
Vá para a guia "Campanhas" do lançador de aplicativos e abra qualquer registro existente.
Este registro é do tipo "webinar" e seu status é "planejado". Agora, edite este registro atualizando o tipo para “conferência”.
Podemos ver que o "status" é atualizado para "concluído".
Cenário 4: Exclua (antes)
Quando tentamos excluir os registros do objeto de campanha quando o status é "concluído" ou o tipo é "conferência", lançamos um erro de modo que não possamos excluir os registros. Exibimos o erro usando o método adderror () [objeto - campanha].
gatilho delete_trigger na campanha (antes de excluir)Caso de teste:
Vá para a guia "Campanhas" do lançador de aplicativos e abra qualquer registro existente com o status "concluído" ou com o tipo "conferência".
Clique em "Excluir" no menu suspenso à direita.
Podemos ver que o erro é lançado e não é excluído.
Conclusão
Trigger é um script de ápice que dispara antes ou depois das instâncias de manipulação de dados. Com base no evento especificado no gatilho, ele dispara sobre objetos especificados no Salesforce. Aprendemos os quatro cenários diferentes para disparar o gatilho na inserção, atualização e exclusão com diferentes exemplos em diferentes objetos. Aqui, utilizamos os objetos de conta, contato e campanha para demonstração. Você pode seguir os mesmos exemplos em seus objetos personalizados.