Assinar um canal de eventos
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Habilitar objetos para notificações de evento de alteração na página de captura de dados de evento.
- Usar o EMP Connector para assinar um canal de eventos de alteração.
- Gerar notificações de evento de alteração fazendo atualizações no Salesforce.
Agora que você aprendeu o básico sobre o Change Data Capture, vamos ver na prática gerando algumas alterações no Salesforce e recebendo eventos de alteração. Para esta seção, vamos criar e modificar um registro de funcionário.
Criar o objeto personalizado Funcionário
Antes de podermos começar esse exercício, precisamos definir o objeto personalizado Funcionário. O primeiro passo é criar o objeto personalizado. É possível acompanhar em seu Trailhead Playground ou na organização Developer Edition. Para acessar seu Trailhead Playground, clique em sua imagem de perfil no canto superior direito, clique em Organizações práticas, e clique no nome de usuário da organização que você quer lançar.
- Em Configuração, clique na guia Gerenciador de objetos e selecione Criar > Objeto personalizado.
- Insira os valores a seguir.
Rótulo: Funcionário
Rótulo no plural: Funcionários
(Se disponível, selecione Começa com som de vogal.)
Nome do objeto: Funcionário
Nome do registro: Nome do funcionário
3. Selecione Iniciar o assistente da nova guia personalizada após salvar o objeto personalizado.
4. Clique em Save (Salvar).
5. Na página Nova guia de objeto personalizado, selecione o estilo Criação no Estilo de guia.
6. Clique em Avançar | Avançar | Salvar.
7. Clique em Campos e relacionamentos e clique em Novo.
8. Siga o assistente para criar estes três campos:
Tipo de dados: Texto, Rótulo do campo: Sobrenome
, Nome do campo: Last_Name
, Tamanho: 50
, Obrigatório: Sim
Tipo de dados: Texto, Rótulo do campo: Nome
, Nome do campo: First_Name
, Tamanho: 50
Tipo de dados: Número, Rótulo do campo: Tempo no cargo
, Tamanho: 18
, Casas decimais: 0
, Nome do campo: Tenure
Habilitar o objeto Funcionário para notificações sobre alterações
Antes de poder receber notificações sobre alterações, você precisa selecionar os objetos desejados. Do contrário, mesmo assinando o canal certo, você não receberá nenhuma notificação. Nesta seção, selecionamos o objeto personalizado Funcionário para receber as alterações do registro Funcionário.
- Em Configuração, insira
Captura de dados de alteração
na caixa Busca rápida e clique em Captura de dados de alteração. - Em Entidades disponíveis, selecione Employee (Employee__c) e clique na seta >.
- Clique em Save (Salvar).
Assinar usando o EMP Connector
Em seguida, mostraremos como gerar e assinar eventos de alteração para registros de funcionários usando o EMP Connector. Nesta seção, fornecemos as etapas para gerar e receber eventos de alteração para que você possa ver exemplos de eventos de alteração. Você não precisa seguir as etapas para concluir este emblema. Você pode consultar as etapas quando usar o EMP Connector para assinar eventos de alteração mais tarde.
Pré-requisitos
- Git: consulte Downloads do Git.
- Apache Maven: Este exemplo usa o Apache Maven para criar o projeto do EMP Connector. Baixe-o e instale-o de https://maven.apache.org/index.html.
- Kit de desenvolvimento Java 8 ou superior: Consulte Downloads do Java.
- Uma organização Developer Edition ou sua organização Trailhead Playground. Para obter mais informações sobre como obter o usuário e senha para sua organização Trailhead Playground, consulte a unidade Obter seu nome de usuário e senha para o Trailhead Playground no módulo Gerenciamento do Trailhead Playground .
- Se você não configurou um intervalo de endereços IP confiáveis para sua organização, precisará de uma chave de segurança que anexará à sua senha. Para saber mais, consulte Redefinir sua chave de segurança e Definir intervalos de IP confiáveis para sua organização.
Etapas
- Para obter uma cópia local do repositório GitHub EMP-Connector:
-
$ git clone
https://github.com/forcedotcom/EMP-Connector.git
-
- Para criar a ferramenta EMP-Connector:
$ cd EMP-Connector
$ mvn clean package
- O comando
mvn
gera arquivos JAR na pastatarget
no diretório de projeto do EMP-Connector. O arquivo JAR gerado,target/emp-connector-0.0.1-SNAPSHOT-phat.jar
, inclui o conector e a funcionalidadeLoginExample
. O JAR contém todas as dependências do conector, para que você não tenha que baixá-las separadamente.
- Para executar o EMP Connector com sua organização Developer Edition ou Trailhead Playground, digite esse comando e forneça as credenciais de login da organização pertinente e o canal a ser assinado. Neste exemplo, o canal é
/data/Employee__ChangeEvent
.$ java -jar target/emp-connector-0.0.1-SNAPSHOT-phat.jar <nomedeusuário> <senha> /data/Employee__ChangeEvent
Depois de assinar o canal no EMP-Connector para Employee__c, as alterações feitas nos registros de funcionário ou a criação de novos registros gerarão notificações que a ferramenta enviará para o console.
Criar um registro de funcionário
Vamos fazer algumas alterações no registro para recebermos algumas notificações de eventos. Primeiro, crie um registro de funcionário.
- No Iniciador de aplicativos (), encontre e selecione Empregados.
- Clique em Novo.
- Ajuste os campos a seguir.
- Nome do empregado:
e-100
- Sobrenome:
Smith
- Primeiro nome:
Patricia
- Nome do empregado:
- Clique em Save (Salvar).
Ao salvar o registro de funcionário, uma notificação de alteração aparece no console da seguinte forma:
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "LastModifiedDate": "2019-09-25T20:36:12.000Z", "OwnerId": "005RM000001vI4mYAE", "CreatedById": "005RM000001vI4mYAE", "ChangeEventHeader": { "commitNumber": 65840604581, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "CREATE", "changedFields": [], "changeOrigin": "com/salesforce/api/soap/47.0;client=SfdcInternalAPI/", "transactionKey": "00051d2e-a65a-3e97-03fc-cdf4e16d5d3c", "commitTimestamp": 1569443772000, "recordIds": [ "a00RM0000004ICTYA2" ] }, "CreatedDate": "2019-09-25T20:36:12.000Z", "First_Name__c": "Patricia", "LastModifiedById": "005RM000001vI4mYAE", "Name": "e-100", "Last_Name__c": "Smith" }, "event": { "replayId": 15053 } }
Atualizar um registro de funcionário
Em seguida, vamos atualizar o registro que acabamos de criar adicionando um valor ao campo Tempo no cargo e modificando o nome do funcionário.
- Na página de detalhes do registro de funcionário, clique em Editar.
- Mude o campo de nome para
Trish
. - Em Tempo no cargo, insira
3
. - Clique em Save (Salvar).
A atualização do registro do funcionário gera a mensagem de evento de alteração a seguir. Observe que o evento de alteração contém somente campos novos e modificados além dos campos de cabeçalho.
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "LastModifiedDate": "2019-09-25T20:38:11.000Z", "ChangeEventHeader": { "commitNumber": 65840825286, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "UPDATE", "changedFields": [ "LastModifiedDate", "First_Name__c", "Tenure__c" ], "changeOrigin": "com/salesforce/api/soap/47.0;client=SfdcInternalAPI/", "transactionKey": "00051d4a-7640-5b8c-c6d1-b8db4ce4cf2f", "commitTimestamp": 1569443892000, "recordIds": [ "a00RM0000004ICTYA2" ] }, "First_Name__c": "Trish", "Tenure__c": 3.0 }, "event": { "replayId": 15054 } }
Excluir um registro de funcionário
Agora, vejamos o que acontece quando excluímos o registro do funcionário.
- Na página de detalhes de Trish, selecione Excluir no menu suspenso.
- Clique em Excluir no pop-up de confirmação.
A exclusão resulta na mensagem de evento a seguir. Os eventos de alteração de exclusão não contêm campos de registro ou sistema.
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "ChangeEventHeader": { "commitNumber": 65841052769, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "DELETE", "changedFields": [], "changeOrigin": "com/salesforce/api/soap/47.0;client=SfdcInternalAPI/", "transactionKey": "00051d67-b628-09dc-15a0-05101183b4d1", "commitTimestamp": 1569444019000, "recordIds": [ "a00RM0000004ICTYA2" ] } }, "event": { "replayId": 15055 } }
Cancelar exclusão de um registro de funcionário
A exclusão de um registro é uma “exclusão reversível” e pode ser restaurada durante determinado período. Vamos restaurar o registro por meio do Apex.
- Clique no menu de acesso rápido () e selecione Developer Console.
- No Developer Console, clique em Depurar e selecione Abrir a janela Executar anônimo.
- Na nova janela, insira o que segue e substitua o ID de espaço reservado pelo valor de ID retornado no campo de cabeçalho recordIds. É possível encontrar o campo
recordIds
na mensagem de evento de alteração recebida após a exclusão do registro, na etapa anterior.
Employee__c record = [SELECT Id,Name FROM Employee__c WHERE Id='ID_Placeholder' ALL ROWS]; undelete record;
- Clique em Executar.
O cancelamento da exclusão resulta na mensagem de evento a seguir. O evento de alteração para um registro com a exclusão cancelada contém campos do registro original excluído.
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "LastModifiedDate": "2019-09-25T20:43:31.000Z", "OwnerId": "005RM000001vI4mYAE", "CreatedById": "005RM000001vI4mYAE", "ChangeEventHeader": { "commitNumber": 65841428802, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "UNDELETE", "changedFields": [], "changeOrigin": "com/salesforce/api/soap/47.0;client=devconsole", "transactionKey": "00051d9a-2fd0-e4de-a8e6-09f68b7ca54c", "commitTimestamp": 1569444212000, "recordIds": [ "a00RM0000004ICTYA2" ] }, "CreatedDate": "2019-09-25T20:36:12.000Z", "First_Name__c": "Trish", "LastModifiedById": "005RM000001vI4mYAE", "Tenure__c": 3.0, "Name": "e-100", "Last_Name__c": "Smith" }, "event": { "replayId": 15056 } }
Recursos