Esse texto foi traduzido usando o sistema de tradução automatizado do Salesforce. Pegue nossa enquisa para fornecer feedback sobre esse conteúdo e diga-nos o que você gostaria de ver em seguida.
Automatizado – Integridade de dados
Saiba mais sobre Well-Architected Easy → Automatizado → Integridade de dados → Manuseio de dados
| Onde procurar? Área de produtos | Local | Qual é a aparência de um bom? Padrão |
|---|---|
| Data 360 | Dicionário de dados | ✅ Há dados em nível de campo e lógica de priorização para todas as fontes de dados e objetos de data lake |
| Data 360 | Organização | ✅ Chaves compostas são usadas para criar uma chave primária exclusiva se não existir. Use um campo de fórmula para unir vários campos do seu conjunto de dados quando não houver um único campo no conjunto de dados que seja exclusivo |
| Data 360 | Organização | ✅ Fluxos de dados que usam o Conector do CRM aproveitam a atualização completa de duas semanas Ao usar o Conector do CRM para cargas incrementais, uma atualização completa é iniciada a cada duas semanas. Embora isso possa aumentar a ingestão de dados, ele protege a integridade dos metadados (como campos de fórmula), que não acionam uma transação DML e, como resultado, não são incluídos em cargas incrementais |
| Data 360 | Organização | ✅ O ID individual é usado para mapear dados do Data 360 para outros sistemas Mapear indivíduos no Data 360 para outros sistemas usando o ID individual. Por exemplo, a Chave de assinante do Marketing Cloud Engagement deve ser mapeada para o ID individual do Data 360 |
| Data 360 | Organização | ✅ Chaves totalmente qualificadas são usadas para interpretar dados com precisão Todos os DLOs que contêm um valor de chave têm um campo qualificador de chave e Chaves totalmente qualificadas (FQK) são habilitadas na organização para evitar conflitos que possam ocorrer quando vários fluxos de dados são harmonizados em um único objeto de modelo de dados (DMO) |
| Data 360 | Organização | ✅ Os métodos de correspondência normalizados são usados em regras de correspondência quando estão disponíveis. A correspondência normalizada exata transforma dados de origem para resolver problemas de correspondência comuns, como espaços no final, formatação inconsistente e caracteres especiais. Aproveite esse método em campos em que ele está disponível, em vez de usar correspondência parcial, a menos que você tenha configurado vários conjuntos de regras para teste e confirmado que a taxa de consolidação não atende às necessidades de negócios |
| Einstein | Documentação | ✅ A utilidade dos dados é documentada como parte do projeto de IA A definição de utilidade dos dados da sua empresa é documentada e operativa para melhorar as respostas de IA |
| Plataforma | Apex | ✅ Futuro Apex é usado com moderação, para chamadas ou DML de objeto do sistema |
| Plataforma | Apex | ✅ As invocações assíncronas do Apex usam DML complexo enfileirável para "corrente" em transações |
| Plataforma | Apex | ✅ O Apex em lote é usado exclusivamente para grandes volumes de dados O Apex em lote é o melhor para processar grandes quantidades de dados. O Apex assíncrono tem limites mais altos do que o Apex síncrono para que mais trabalho possa ser feito. Evite tamanhos de lote muito pequenos quando possível para evitar consequências de controle de fluxo (inundação de filas), sobrecarga e esgotamento do limite diário do Apex assíncrono |
| Plataforma | Apex | ✅ Todas as instruções DML síncronas ou métodos de classe de banco de dados são realizadas em contextos de execução de acionador antes |
| Plataforma | Apex | ✅ A API em massa é usada apenas quando grandes quantidades de dados precisam ser processadas. A API em massa é usada quando grandes quantidades de dados precisam ser processadas. APIs SOAP e REST nativas são aproveitadas para quantidades menores de processamento de dados |
| Plataforma | Dicionário de dados | ✅ O mapeamento de campo do objeto de data lake para o objeto de modelo de dados existe |
| Plataforma | Fluxo | ✅ Todos os fluxos iniciados no contexto do usuário resumem todas as transações de contexto do sistema para subfluxos, que são colocados de modo consistente após um elemento Pausar, para criar uma nova transação |
| Plataforma | Fluxo | ✅ Todos os fluxos acionados por registro têm valores de ordem do acionador preenchidos |
| Plataforma | Fluxo | ✅ Fluxos que envolvem chamadas do sistema externo ou processos de execução longa usam caminhos assíncronos |
| Plataforma | Fluxo | ✅ Sequências complexas de operações de dados relacionadas são criadas com o Orquestrador (em vez de invocar vários subfluxos em um fluxo monolítico) |
| Plataforma | Organização | ✅ Regras de reconciliação de resolução de identidade seguem a lógica de priorização em seu dicionário de dados |
Saiba mais sobre Bem-Arquiteto Fácil → Automatizado → Integridade de Dados → Tratamento de erros
| Onde procurar? Área de produtos | Local | Qual é a aparência de um bom? Padrão |
|---|---|
| Einstein | Organização | ✅ Os avisos especificam a saída esperada Incluir instruções diretas para que o LLM gere apenas o tipo de conteúdo esperado. |
| Plataforma | Apex | ✅ Exceções personalizadas são usadas para criar mensagens de erro avançadas e lógica |
| Plataforma | Apex | ✅ O código engloba todas as etapas de DML, SOQL, chamadas e outros processos críticos em blocos de try-catch |
| Plataforma | Apex | ✅ Os métodos de classe de banco de dados podem ser usados exclusivamente para todas as operações de dados (em vez de DML) |
| Plataforma | Apex | ✅ Em contextos assíncronos e em massa, métodos de classe de banco de dados são usados em vez de DML |
| Plataforma | Aura | ✅ JavaScript engloba todas as operações de dados e etapas críticas do processo em blocos de try-catch |
| Plataforma | Aura | ✅ Dentro de blocos de try-catch, Error JavaScript nativo é usado em instruções de tiro (sem uso de $A.error()) |
| Plataforma | Aura | ✅ Todas as lógicas de erro recuperáveis aparecem nas instruções de catch e fornecem mensagens claras do usuário |
| Plataforma | Fluxo | ✅ Fluxos com operações de dados, chamadas e outra lógica de processamento crítica têm caminhos de falha para todas as ações-chave |
| Plataforma | Fluxo | ✅ Fluxos de tela usam consistentemente conectores de falha para mostrar erros aos usuários |
| Plataforma | Fluxo | ✅ Mensagens de erro personalizadas são configuradas para erros que aparecerão na tela |
| Plataforma | Componentes da Web Lightning (LWC) | ✅ JavaScript engloba todas as operações de dados e etapas críticas do processo em blocos if ()/else if () |
| Plataforma | Componentes da Web Lightning (LWC) | ✅ Todas as funções de @wire usam propriedades de data e error fornecidas pela API |
| Plataforma | Componentes da Web Lightning (LWC) | ✅ Todas as instruções if (error)/else if (error) contêm lógica para processar erros e fornecer mensagens informativas |
Saiba mais sobre Well-Architected Easy → Automatizado → Integridade de dados → Manuseio de dados
| Onde procurar? Área de produtos | Local | O que evitar? Antipadrão |
|---|---|
| Data 360 | Organização | Campos com métodos de correspondência normalizada com suporte usam correspondência parcial Correspondência parcial é aplicada a campos que oferecem métodos de correspondência normalizada exatos |
| Data 360 | Organização | Supõe-se que o ID de indivíduo unificado seja imutável. O ID de indivíduo unificado é usado como um ID mestre ou um ID global para ser usado pelo restante da organização |
| Data 360 | Organização | ⚡️ A Data do evento é mapeada para um valor de DateTime mutável. A Data do evento é mapeada para um campo de DateTime mutável, como LastUpdated ou LastExtracted |
| Data 360 | Organização | ⚡️ A chave primária é mapeada para um campo que não é exclusivo Escolha qualquer campo como uma chave primária para seu fluxo de dados se não existir um no seu conjunto de dados sem validar primeiro se o campo selecionado é exclusivo |
| Data 360 | Organização | ⚡️ Carregando dados em lotes e tentando ativá-los em tempo real. Por exemplo, uma abordagem comum, mas com defeito, pode envolver carregar dados a cada hora de um bucket do Amazon S3 e então ativá-los por meio de ações de dados |
| Plataforma | Apex | As instruções DML aparecem regularmente no código que será chamado após os contextos de acionador |
| Plataforma | Apex | Os trabalhos do Apex em lote têm um tamanho de escopo muito pequeno. São usados tamanhos de lote muito pequenos (como tamanho de escopo = 1). |
| Plataforma | Apex | O Apex em lote é usado para chamadas externas Grandes volumes de dados do Salesforce são enviados do Salesforce para um sistema externo usando o Apex em lote |
| Plataforma | Apex | ⚡️ Os eventos de plataforma Publicar imediatamente são usados adhoc Os eventos Publicar imediatamente (em tempo real) são usados em vez de Publicar após confirmação (não em tempo real), independentemente dos requisitos de pedido de publicação ou dos riscos de bloqueio de registro. |
| Plataforma | Apex | Os recursos do Apex assíncrono são usados arbitrariamente Métodos futuros e o Apex enfileirável são usados de forma inconsistente ou intercambiável |
| Plataforma | Apex | Os recursos do Apex assíncronos são usados arbitrariamente; não está claro quando os desenvolvedores sabem usar futuro vs Apex enfileirável, quando entregar DML para trabalhos em lote |
| Plataforma | Apex | Apex assíncrono é raramente usado |
| Plataforma | Apex | Os recursos do Apex assíncronos são usados arbitrariamente As operações do banco de dados não têm lógica clara e consistente para passar a execução para o Apex em lote quando necessário |
| Plataforma | Dicionário de dados | ⚡️ O mapeamento de campo de objetos de data lake para objetos de modelo de dados não está incluído |
| Plataforma | Dicionário de dados | Dados em nível de campo e lógica de priorização para origens de dados e objetos de data lake não são incluídos |
| Plataforma | Fluxo | ⚡️ Executar DML usando uma coleção que é uma saída de um componente de tela Aproveitando a configuração "Usar os IDs e todos os valores de campo de um registro ou coleção de registros" em um elemento de criação, atualização ou exclusão, quando essa coleção é uma saída de um componente de tela |
| Plataforma | Fluxo | Fluxos acionados por registro não usam atributos de ordem do acionador nem usam valores de ordem do acionador de modo consistente |
| Plataforma | Fluxo | ⚡️ Caminhos assíncronos não são usados de modo consistente ou não são usados de modo algum |
| Plataforma | Fluxo | Fluxos grandes e monolíticos tentam coordenar sequências complexas de operações de dados relacionadas (com ou sem subfluxos) |
| Plataforma | Organização | ⚡️ Regras de reconciliação de resolução de identidade não seguem a lógica de priorização no dicionário de dados |
Saiba mais sobre Bem-Arquiteto Fácil → Automatizado → Integridade de Dados → Tratamento de erros
| Onde procurar? Área de produtos | Local | O que evitar? Antipadrão |
|---|---|
| Plataforma | Apex | DML, SOQL, chamadas ou outras etapas críticas do processo não são colocadas de modo consistente em blocos de captura de teste |
| Plataforma | Apex | ⚡️ Nenhum método de classe de banco de dados é usado |
| Plataforma | Apex | ⚡️ As operações de dados são feitas exclusivamente com DML |
| Plataforma | Apex | As declarações de System.debug aparecem no código de produção (e não são comentadas) |
| Plataforma | Aura | ⚡️ O JavaScript não engloba consistentemente operações de dados e etapas críticas do processo em blocos de try-catch |
| Plataforma | Aura | Componentes usam $A.error() |
| Plataforma | Aura | ⚡️ Lógica de erro recuperável não aparece consistentemente nas instruções de catch, e as mensagens de erro para os usuários não estão claras |
| Plataforma | Fluxo | ⚡️ Os fluxos não usam caminhos de falha de modo consistente ou de modo algum |
| Plataforma | Fluxo | Como as mensagens de erro personalizadas não são usadas, os usuários veem a mensagem padrão "Uma falha não tratada ocorreu nesse fluxo" |
| Plataforma | Componentes da Web Lightning (LWC) | Funções de @wire não usam propriedades de data e error fornecidas pela API (ou não as usam de forma consistente) |
| Plataforma | Componentes da Web Lightning (LWC) | ⚡️ Se usado, as instruções if (error)/else if (error) na verdade não contêm lógica para processar erros e fornecer mensagens úteis de erro |
| Plataforma | Componentes da Web Lightning (LWC) | O JavaScript não usa consistentemente blocos if ()/else if () com operações de dados ou etapas críticas do processo |