Definir e gerenciar eventos de plataforma
Use eventos de plataforma para conectar processos de negócios no Salesforce e em fontes externas por meio da troca de dados de evento em tempo real. Eventos de plataforma são seguros e escaláveis. Defina campos para personalizar seus dados de evento de plataforma.
Edições obrigatórias
| Disponível tanto no Salesforce Classic quanto no Lightning Experience |
| Disponível em: Performance, Unlimited, Enterprise e Developer Editions |
| Permissões necessárias ao usuário | |
|---|---|
| Para criar e editar definições de evento de plataforma: | Personalizar aplicativo |
Usando eventos de plataforma, os editores podem enviar dados de evento personalizados por meio do Apex, de um processo, de um fluxo, da API Pub/Sub ou de outras APIs. Os assinantes podem receber mensagens de evento personalizadas do Salesforce ou de um sistema externo usando Apex, clientes da API Pub/Sub, processos ou fluxos. Com base nos dados de mensagem de compromisso, os assinantes podem processar uma lógica de negócios personalizada, como enviar um email ou registrar um caso. Por exemplo, um sistema de software que monitora uma impressora pode realizar uma chamada de API para publicar um evento quando o nível de tinta estiver baixo. O evento personalizado de impressora pode conter campos personalizados referentes ao modelo de impressora, número de série e nível de tinta. O evento é processado no Salesforce por um acionador do Apex que faz o pedido de um novo cartucho.
Os eventos de plataforma simplificam o processo de comunicar alterações e reagir a elas sem escrever uma lógica complexa. Os editores e assinantes se comunicam por meio de eventos. Vários assinantes podem ouvir o mesmo evento e executar ações diferentes.
Defina seu evento de plataforma
Para definir um compromisso de plataforma no Salesforce Classic ou no Lightning Experience:
- Em Configuração, insira Eventos de plataforma na caixa Busca rápida e selecione Eventos de plataforma.
- Na página Evento de plataforma, clique em Novo evento de plataforma.
- Preencha os campos padrão e, opcionalmente, adicione uma descrição.
- Em Comportamento de publicação, escolha quando a mensagem de evento é publicada em uma transação.
- Publicar após confirmar para que a mensagem do evento seja publicada apenas depois que uma transação for confirmada. Selecione esta opção caso os assinantes dependam de dados que a transação de publicação confirma. Por exemplo, um processo publica uma mensagem de evento e cria um registro de tarefa. Um segundo processo que é assinado para o evento é acionado e espera encontrar o registro da tarefa. Outro motivo para escolher esse comportamento é quando você não deseja que a mensagem do evento seja publicada se a transação falhar.
- Publicar imediatamente para que a mensagem de evento seja publicada quando a chamada de publicação for executada. Selecione esta opção para que a mensagem de evento seja publicada independentemente de a transação ter êxito ou não. Também escolha essa opção se o editor e os assinantes forem independentes e os assinantes não dependerem de dados confirmados pelo editor. Por exemplo, o comportamento de publicação imediato é adequado para um evento usado para fins de registro. Com esta opção, talvez um assinante receba a mensagem de evento antes da confirmação dos dados pela transação do editor.
- Clique em Salvar.
- Para adicionar um campo, na lista relacionada Campos e relacionamentos personalizados, clique em Novo.
- Para configurar as propriedades do campo, siga o assistente de campo personalizado.
- Se você alterar o comportamento de publicação, espere um atraso de até cinco minutos para a alteração entrar em vigor.
- No Lightning Experience, os eventos de plataforma não são mostrados na lista do Gerenciador de objetos para os objetos padrão e personalizados e não estão disponíveis no Criador de esquemas.
Um evento de plataforma é um tipo especial de entidade do Salesforce, semelhante em muitas maneiras a um sObject. Uma mensagem de evento é uma instância de um evento de plataforma, semelhante à forma como um registro é uma instância de um objeto personalizado. Diferentemente de objetos personalizados, não é possível atualizar nem excluir registros de evento. Também não é possível exibir registros de evento na interface de usuário do Salesforce e os eventos de plataforma não têm layouts de página. Ao excluir uma definição de evento de plataforma, ela é excluída de modo permanente.
Campos-padrão
Eventos de plataforma incluem campos padrão. Esses campos aparecem na página Novo evento de plataforma.
| Campo | Descrição |
|---|---|
| Rótulo | Nome usado para referenciar o seu evento de plataforma em uma página da interface de usuário. |
| Rótulo no plural | O nome plural do evento de plataforma. |
| Começa com som de vogal | Se isso for relevante no idioma padrão da sua organização, indique qual artigo indefinido deve preceder o rótulo. |
| Nome do objeto | Nome exclusivo usado para referenciar o evento de plataforma quando a API é utilizada. Em pacotes gerenciados, isso evita conflitos de nomes em instalações do pacote. Use somente caracteres alfanuméricos e sublinhados. O nome deve começar com uma letra e não pode ter espaços. Não pode terminar com sublinhado nem ter dois sublinhados consecutivos. |
| Descrição | Descrição opcional do objeto. Uma descrição consistente ajudará você a se lembrar das diferenças entre seus eventos quando eles forem exibidos em uma lista. |
| Status de implantação | Indica se o evento de plataforma está visível a outros usuários. |
Campos personalizados
Além dos campos padrão, você pode adicionar campos personalizados em seu evento personalizado. Campos personalizados de evento de plataforma suportam apenas esses tipos de campo.
- Caixa de seleção
- Data
- Data/Hora
- Número
- Texto
- Área de texto (longo)
O número máximo de campos que você pode adicionar a um evento de plataforma é o mesmo de um objeto personalizado. Consulte Alocações de edição e recursos do Salesforce.
Campo do sistema ReplayId:
Cada mensagem de evento recebe um ID opaco contido no campo ReplayId. O valor de campo ReplayId, que é preenchido pelo sistema quando o compromisso é entregue a assinantes, se refere à posição do evento no fluxo de eventos. Os valores do ID de reprodução não têm garantia de serem contíguos para compromissos consecutivos. Um assinante pode armazenar um valor de ID de reprodução e usá-lo em uma nova assinatura para recuperar eventos que estão na janela de retenção. Por exemplo, um assinante pode recuperar compromissos perdidos após uma falha na conexão. Os assinantes não devem calcular novos IDs de reprodução com base em um ID de reprodução armazenado para se referir a outros compromissos no fluxo.
EventUuid System Field
Um identificador universalmente exclusivo (UUID) que identifica uma mensagem de evento de plataforma. Em clientes da API Pub/Sub, o campo id de evento contém o valor de UUID do evento e não tem controle de versão. Em outros clientes assinantes, o campo EventUuid está disponível na API versão 52.0 e posteriores. A versão da API corresponde à versão com a qual um acionador do Apex é salvo ou à versão especificada em um ponto final de assinante do CometD.
Sufixo do nome de API para eventos de plataforma personalizados
Quando você cria um evento de plataforma, o sistema acrescenta o sufixo __e para criar o nome de API do evento. Por exemplo, se você criar um evento com o nome de objeto Low Ink, o nome da API será Low_Ink__e. O nome de API é utilizado sempre que o evento é referenciado programaticamente – por exemplo, no Apex. Nomes de API de eventos de plataforma padrão, como AssetTokenEvent, não incluem um sufixo.
A lista relacionada Assinaturas mostra todos os acionadores, processos e fluxos acionados para evento de plataforma que são assinantes de um evento de plataforma. Os assinantes da API Pub/Sub, os assinantes CometD, como seu próprio cliente CometD ou o componente empApi do Lightning, não aparecem nessa página.
A lista mostra o ID de reprodução do último evento processado pelo sistema (campo Último ID Processado) e do último evento publicado (campo Último ID publicado). Saber qual ID de reprodução foi processado por último é útil quando há uma lacuna nos compromissos publicados e processados. Por exemplo, se um acionador contiver lógica complexa, isso causará um atraso no processamento de lotes grandes de compromissos recebidos.
Além disso, a lista Assinaturas mostra o estado de cada assinante, que pode ser um dos seguintes.
Running– O assinante está ativamente escutando eventos. Se você modificar o assinante, a assinatura continuará processando eventos.Error— O assinante foi desconectado e parou de receber eventos publicados. Um acionador atinge esse estado quando excede o número máximo de novas tentativas comEventBus.RetryableException. Falhas de declaração do acionador e exceções não tratadas não causam o estado de erro. Recomendamos limitar as tentativas a menos de nove vezes para evitar atingir esse estado. Quando você corrige e salva o acionador, ou, para um acionador de pacote gerenciado, se você implantar o pacote novamente, o acionador será retomado automaticamente na dica, começando por novos eventos. Além disso, você pode retomar uma assinatura do acionador na página de detalhes da assinatura, que é acessada na página de evento de plataforma.Suspended– O assinante está desconectado e não pode receber eventos, porque um administrador do Salesforce o suspendeu ou devido a um erro interno. Você pode retomar uma assinatura do acionador na página de detalhes da assinatura, que é acessada na página de evento de plataforma. Para retomar um processo, desative-o e ative-o novamente. Se você modificar o assinante, a assinatura será retomada automaticamente na dica, começando por novos eventos.
Além disso, as informações sobre assinantes de eventos são expostas no objeto EventBusSubscriber. É possível consultar esse objeto para obter detalhes sobre os assinantes.
Suspender ou retomar uma assinatura de acionador do Apex:
Retome uma assinatura de acionador suspensa do ponto em que ela parou, começando da mensagem mais antiga disponível que está armazenada no barramento de eventos. Se quiser ignorar mensagens de eventos que estão causando erros ou não são mais necessárias, retome uma assinatura em uma dica, começando por novas mensagens de evento.
Para gerenciar uma assinatura do acionador:
- Na lista relacionada Assinaturas, clique em Gerenciar ao lado do acionador do Apex.
- Na página de detalhes da assinatura, escolha a ação adequada.
- Para suspender uma assinatura em execução, clique em Suspender.
- Para retomar uma assinatura suspensa, começando na primeira mensagem de evento disponível no barramento de eventos, clique em Retomar.
- Para retomar uma assinatura suspendida, começando a partir de novas mensagens de evento, clique em Retomar da dica.
Não é possível gerenciar assinaturas de fluxos e processos por meio da lista relacionada Assinaturas.
- Depois de modificar um assinante, a assinatura será retomada automaticamente. Para obter mais informações, consulte a seção Assinantes de evento.
- Se você clicar em Retomar para um acionador que está no estado de erro, o acionador ignorará os eventos que foram repetidos com
EventBus.RetryableException. A assinatura começa com os eventos não processados enviados após o estado de erro e que estão na janela de retenção.
Considerações sobre eventos de plataforma
- Segurança em nível de campo – Todos os campos de evento de plataforma são somente leitura por padrão e você não pode restringir o acesso a um campo em particular. Permissões de segurança em nível de campo não se aplicam e a mensagem do evento contém todos os campos.
- Aplicação de atributos de campo – Registros de evento de plataforma são validados para aplicar os atributos de seus campos personalizados. Os atributos de campo incluem os atributos Obrigatório e Padrão, a precisão dos campos de número e o tamanho máximo dos campos de texto.
- Exclusão permanente de definições de evento – Quando você exclui uma definição de evento, ela é removida permanentemente e não pode ser restaurada. Antes de excluir a definição de evento, exclua os acionadores associados. Eventos publicados que usam a definição também são excluídos.
- Renomear objetos de evento – Antes de renomear um evento, exclua os acionadores associados. Se o nome do evento for modificado depois que os clientes tiverem assinado esse evento, os clientes assinantes terão que assinar novamente o tópico atualizado. Para assinar novamente o novo evento, adicione seu acionador ao objeto de evento renomeado.
- Sem guia associada – Eventos de plataforma não têm uma guia associada, porque não é possível visualizar registros de evento na interface de usuário do Salesforce.
- Sem suporte para SOQL – Não é possível consultar mensagens de evento usando SOQL.
- Não há suporte a página de registro no Criador de aplicativo Lightning – Ao criar uma página de registro no Criador de aplicativo Lightning, os eventos de plataforma que você definiu aparecem na lista de objetos para a página. No entanto, não é possível criar uma página de registro do Lightning para eventos de plataforma porque registros de evento não estão disponíveis na interface de usuário.
- Eventos de plataforma na desinstalação do pacote – Ao desinstalar um pacote com a opção Salvar uma cópia dos dados deste pacote por 48 horas depois de desinstalar habilitada, os eventos de plataforma não são exportados.
- Volume de evento em instalações e upgrades de pacotes – Instalar um pacote gerenciado ou não gerenciado que contém um evento de plataforma de volume padrão faz com que o tipo de evento seja salvo como de alto volume na organização do assinante. Atualizar um pacote gerenciado não altera o volume do evento na organização do assinante.
- Sem suporte nas Edições Professional e Group — Eventos de plataforma não têm suporte em organizações Professional e Group Edition. A instalação de um pacote que contenha objetos de compromissos de plataforma falha nessas organizações.

