Pular para o conteúdo

Transforme o modelo em Salesforce

Também em 28 idiomas

English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

A white card model rising from the plan it was drawn on, built from repeated standard window pieces with one curved wooden wall, the rest of the plan still bare.
Imagem gerada com IA

Módulo 6 de 6 do capítulo Modelar dados pelo significado, capítulo 2 do curso Data Architect. Cada módulo sustenta-se sozinho. Anterior: Projete até à terceira forma normal, depois recue · Próximo: o guia de estudo do capítulo, depois o próximo capítulo: Arquitetura de dados Salesforce

A pergunta que este módulo responde: Como é que um modelo de dados lógico se torna um modelo de dados físico no Salesforce?

Finalmente vamos falar de Salesforce. Se tem andado a resistir à vontade de transformar cada caixa num objeto, agora pode. Mas repare na ordem por que aqui chegámos: entendemos o negócio, descrevemos os dados, pusemos cada facto onde pertence e decidimos onde iríamos dobrar isso de propósito. Só agora estou a perguntar como deve o Salesforce implementar isto. Esta é a progressão que quero que recorde: conceitual → lógico → físico. O modelo conceitual descreve o negócio. O modelo lógico descreve os dados. O modelo físico descreve como o vamos realmente construir.

O passo físico é mais fácil de ver em algo pequeno, por isso os pets vão primeiro.

Quem são as empresas e as pessoas? O criador é uma empresa, por isso torna-se uma Conta com o tipo de registo Criador. O dono também é uma Conta, ou uma Conta pessoal, com o tipo de registo Dono. Dois tipos do mesmo objeto padrão, lado a lado no topo do diagrama, exatamente onde estão desde o módulo 1.

O que não tem uma casa padrão? Pet, Raça, Truque, Truque do pet e Avaliação do truque tornam-se objetos personalizados. E lembra-se da espécie que copiámos para o pet no módulo 5? Aqui ganha o seu trabalho: torna-se o tipo de registo do Pet, Cão ou Gato. Um objeto com dois tipos de registo, cada um com o seu próprio esquema de página e os seus valores de lista de opções, em vez de um objeto Cão e um objeto Gato.

Que relações são mestre-detalhe? Uso mestre-detalhe só onde o filho nunca vai mudar de pai. Um Truque do pet pertence ao seu pet para toda a vida, e cada Avaliação do truque pertence ao seu Truque do pet, por isso as duas são mestre-detalhe. Isso compensa logo: é a mestre-detalhe que permite ao pet manter um resumo de totalização dos seus Truques do pet, para que a contagem de Truques conhecidos do módulo 5 se mantenha sincronizada sozinha. Mas os pets mudam de casa, por isso o Dono é uma relação de pesquisa.

Quais são relações de pesquisa? A Salesforce não recomenda mais de 10 mil filhos num único pai. Um truque popular como Senta, uma raça comum ou um criador grande ultrapassariam isso facilmente, por isso o Truque do pet aponta para o seu Truque com uma relação de pesquisa, e o pet aponta para a sua Raça e o seu Criador da mesma maneira. E evite relações polimórficas sempre que puder, aquelas em que um campo pode apontar para vários tipos de objeto. São convenientes no primeiro dia e mais difíceis para tudo o que tem de as ler depois: relatórios, integrações e, agora, agentes.

O que fica fora da plataforma? Se o pet usa uma coleira com GPS que indica onde está, essa localização não precisa de ser copiada para dentro. Pode ser um objeto externo, lido em direto do sistema de localização da coleira.

O modelo dos pets no Salesforce O modelo dos pets como objetos do Salesforce. No alto, duas Contas (Accounts): uma com o tipo de registo Dono, outra com o tipo de registo Criador. Pet__c, abaixo delas, tem os tipos de registo Cão e Gato, o número do microchip como ID externo, relações de pesquisa com o Dono, o Criador e Breed__c, e Tricks_Known__c como resumo de totalização. Pet_Trick__c está numa relação mestre-detalhe com Pet__c e tem uma relação de pesquisa com Trick__c, com o seu nível de habilidade e a data em que aprendeu. Trick_Assessment__c está numa relação mestre-detalhe com Pet_Trick__c. Breed__c tem a sua espécie, nome e porte; Trick__c, o seu nome e dificuldade. pesquisa pesquisa pesquisa mestre detalhe pesquisa mestre detalhe Conta (Dono) Id ID DE REGISTO Tipo de registo: Dono Nome Telefone Conta (Criador) Id ID DE REGISTO Tipo de registo: Criador Nome Pet__c Id ID DE REGISTO Tipos de registo: Cão, Gato Microchip_Number__c ID EXTERNO Owner__c PESQUISA Breeder__c PESQUISA Breed__c PESQUISA Nome Birth_Date__c Tricks_Known__c TOTALIZAÇÃO Breed__c Id ID DE REGISTO Species__c Nome Size__c Pet_Trick__c Id ID DE REGISTO Pet__c MESTRE-DETALHE Trick__c PESQUISA Skill_Level__c Date_Learned__c Trick__c Id ID DE REGISTO Nome Difficulty__c Trick_Assessment__c Id ID DE REGISTO Pet_Trick__c MESTRE-DETALHE Date__c Skill_Level__c Assessed_By__c exatamente um zero ou um um ou muitos zero ou muitos © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Cada decisão nesse diagrama remonta a algo que decidimos antes, e é esse o objetivo. Agora o mesmo passo para a Steve Trucking.

O nosso modelo lógico da Steve Trucking contém agora Parceiro retalhista, Centro de distribuição, Manifesto, Entrega, Item de entrega, Destinatário, Rota, Paragem, Equipa, Camião e Atribuição de equipa. São conceitos de negócio, e agora posso começar a mapeá-los para o Salesforce.

Um Parceiro retalhista talvez seja uma Conta. Uma entrega talvez corresponda a algo que o Salesforce já tem para trabalho agendado no terreno, ou talvez passe a ser um objeto personalizado. Um manifesto não tem nada padrão que sirva, por isso provavelmente passa a personalizado. E o Destinatário é uma pergunta realmente difícil: uma Conta pessoal, um Contacto, ou simplesmente informação na entrega? Vamos responder a essa como deve ser no próximo capítulo.

A palavra importante continua a ser talvez. Não presuma a implementação só porque um conceito de negócio soa a objeto Salesforce. Foi por isso que construímos primeiro o modelo lógico: dá-nos algo contra o qual testar o design no Salesforce.

Uma entidade de negócio não significa automaticamente um objeto personalizado

Seção intitulada “Uma entidade de negócio não significa automaticamente um objeto personalizado ”

Eis uma armadilha que quero que os administradores evitem: «Identificámos onze entidades, por isso precisamos de onze objetos personalizados.» Não. Uma entidade lógica diz-nos que o conceito de negócio importa. Não dita como o Salesforce o deve armazenar. Um conceito pode passar a ser um objeto padrão, um objeto personalizado, uma relação entre objetos, um campo ou alguns campos, um valor gerido na configuração, ou dados que vivem totalmente fora do Salesforce (as fotografias de entrega da Steve Trucking são boas candidatas a isso). O modelo físico é onde essas escolhas são feitas, e é exatamente por isso que não as fizemos na primeira conversa.

A mesma transição acontece com os atributos. O nosso Camião lógico tem número da unidade, número de quadro (VIN), marca, modelo, ano do modelo, matrícula e estado. Agora decidimos como existem fisicamente: que objeto é dono deles, que tipos de campo usam, quais são obrigatórios, quais têm de ser únicos, quais são identificadores externos, quais precisam de validação, quais são derivados em vez de armazenados, e quais são sensíveis. No nível lógico perguntamos o que significa Camião. No nível físico perguntamos como vai o Salesforce representar o Camião. Perguntas diferentes.

Camião: de entidade lógica a objeto do Salesforce Dois cartões, linha a linha. Lógico, Camião, o que Camião significa: ID do camião, número da unidade, número de quadro (VIN), marca, modelo, ano do modelo, matrícula, estado. Físico, Truck__c, como o Salesforce o vai representar: Id, o ID de registo do Salesforce; Name, texto, com o número da unidade; VIN__c, texto de 17 caracteres, único e ID externo; Make__c, uma lista de opções; Model__c, texto de 40; Model_Year__c, um número de quatro dígitos; License_Plate__c, texto de 10; Status__c, uma lista de opções, obrigatório. Uma nota em baixo: o lógico pergunta o que Camião significa; o físico pergunta como o Salesforce o vai representar. Lógico: Camião o que Camião significa ID do camião Número da unidade VIN Marca Modelo Ano do modelo Matrícula Estado Físico: Truck__c como o Salesforce o vai representar Id: o ID de registo do Salesforce Name: texto, o número da unidade VIN__c: texto(17), único, ID externo Make__c: lista de opções Model__c: texto(40) Model_Year__c: número(4) License_Plate__c: texto(10) Status__c: lista de opções, obrigatório O lógico pergunta o que Camião significa. O físico pergunta como o Salesforce o vai representar. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Todo o tempo que gastámos com as relações compensa aqui. Já sabemos se cada uma é um-para-um, um-para-muitos ou muitos-para-muitos, obrigatória ou opcional, e se o seu histórico importa. Agora decidimos como o Salesforce a implementa: uma relação de pesquisa, uma mestre-detalhe ou um objeto de junção do Salesforce (Salesforce Junction Object), e talvez uma junção com atributos próprios, porque, como descobrimos, a própria relação pode ter significado de negócio.

Pense outra vez na Atribuição de equipa. Poderíamos ter começado este capítulo a dizer: «Vamos criar um objeto de junção do Salesforce entre equipa e camião.» Veja o que teríamos saltado: porque existe a relação, se precisa de uma data e de uma rota, se tem um estado, e se uma reclamação por danos semanas depois precisa do seu histórico. Estas perguntas de negócio dizem-nos o que uma Atribuição de equipa é. Só então devemos decidir como o Salesforce a constrói, e se o Salesforce já tem algo que faça o trabalho.

O diagrama muda outra vez. O modelo conceitual mostrava conceitos de negócio e linhas simples. O modelo lógico acrescentou atributos, chaves, cardinalidade e as entidades escondidas nas relações. Agora o modelo físico começa a parecer Salesforce: objetos padrão, objetos personalizados, campos, tipos de relação, e o que vive fora da plataforma.

O mesmo negócio em três níveis Três painéis, o mesmo recorte em três níveis. Conceitual, o que existe: um Parceiro retalhista, o retalhista para quem entregamos, envia Entregas, e cada Entrega, uma encomenda para um Destinatário, contém Itens de entrega, um produto numa entrega. Lógico, como os dados se estruturam: os mesmos três com IDs de registo e alguns campos; a Entrega também é conhecida pelo número de encomenda do parceiro; o Item de entrega carrega o ID do produto e uma quantidade. Físico, como o Salesforce vai construir: o Parceiro retalhista é uma Conta (Account) padrão com um tipo de registo Parceiro retalhista; a Entrega é um objeto personalizado, Delivery__c, com o número de encomenda do parceiro como ID externo e uma relação de pesquisa com a Conta; o Item de entrega é um objeto personalizado, Delivery_Item__c, numa relação mestre-detalhe com a sua Entrega, com uma quantidade. Uma nota em baixo: negócio, conceitual, lógico, físico; aponte qualquer coisa à direita e rastreie-a de volta até à esquerda. CONCEITUAL: O QUE EXISTE? LÓGICO: COMO OS DADOS SE ESTRUTURAM? FÍSICO: COMO O SALESFORCE VAI CONSTRUIR? envia contém envia contém pesquisa mestre detalhe Parceiro retalhista o retalhista para quem entregamos Entrega uma encomenda para um Destinatário Item de entrega um produto numa entrega Parceiro retalhista ID do parceiro retalhista ID DE REGISTO Nome Estado Entrega ID da entrega ID DE REGISTO Número de encomenda do parceiro TAMBÉM CONHECIDO COMO Data de entrega Estado Item de entrega ID do item de entrega ID DE REGISTO ID do produto Quantidade Conta (padrão) Id ID DE REGISTO Tipo de registo: Parceiro retalhista Nome Delivery__c Id ID DE REGISTO Partner_Order_Number__c ID EXTERNO Retail_Partner__c PESQUISA Delivery_Item__c Id ID DE REGISTO Delivery__c MESTRE-DETALHE Quantity__c Negócio → conceitual → lógico → físico: aponte qualquer coisa à direita e rastreie-a de volta até à esquerda. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Quero que consiga pôr estes três diagramas lado a lado e ver a progressão: não três diagramas sem relação, mas o mesmo negócio em três níveis.

Uma palavra sobre como desenho estes diagramas, porque o layout faz parte da mensagem. Ponho o objeto principal no meio, um pouco abaixo. Se tem objetos pais, ponho-os um pouco acima, para que se leia o modelo de cima para baixo, da esquerda para a direita, da forma como o negócio pensa nele. Os dados de referência vão para o lado. A cor também significa algo: faço sempre o Salesforce a azul, e escolho uma cor para os sistemas da própria empresa, normalmente verde, porque o verde é uma cor simpática. Não uso vermelho, e os amarelos são um pouco agressivos. Quando um modelo está organizado assim, canta para mim. Muitos dos diagramas que vai encontrar são, na verdade, gestão de espaço: como estaciono todos os meus carros na minha garagem cheia? Prefiro pintar um quadro lógico que a mente consiga captar.

O Salesforce não é uma base de dados relacional genérica. Tem opiniões sobre relações, propriedade, segurança e relatórios. Tem limites, comportamento de consulta e automação, e uma arquitetura que afeta como um modelo se comporta à escala. Por isso, um modelo lógico que parece perfeito num quadro branco pode ter de mudar quando se torna físico. Isso não é o Salesforce a atrapalhar. Significa que a plataforma tem uma forma, e os bons arquitetos entendem essa forma. O próximo capítulo trata exatamente disso.

Às vezes, também, o modelo físico vai diferir de propósito do modelo lógico limpo por causa das decisões de desnormalização que tomámos no módulo 5. Não há problema, desde que consigamos explicar porquê.

Há um hábito que quero que abandone, se o tiver: começar a sua arquitetura de dados em Setup → Gestor de objetos → Novo objeto personalizado e ir descobrindo o modelo pelo caminho. O Salesforce torna incrivelmente fácil criar coisas; essa é uma das suas forças, e um dos motivos pelos quais os modelos de dados fracos surgem tão depressa. Alguns cliques e tem um objeto, mais alguns e tem campos e uma relação. Depois chegam os dados, são construídos os flows, são criados os relatórios, as integrações passam a depender dele, e o objeto que criou em cinco minutos fica muito caro de mudar. É o Teste de Reversibilidade do capítulo 1. Por isso, antes de clicar em Novo objeto personalizado, desenhe o modelo.

Há outro motivo para eu manter os três modelos separados: a tecnologia muda. Hoje parte dos dados da Steve Trucking vive no núcleo do Salesforce. Amanhã parte deles pode viver no Data 360, num data warehouse ou num sistema que ainda nem escolhemos, e o assistente de IA precisa da sua própria representação. A arquitetura física pode mudar, enquanto os conceitos de negócio se mantêm notavelmente estáveis: Parceiros retalhistas, entregas e Destinatários continuam a existir. É isso que dá valor ao modelo lógico. É uma descrição duradoura do negócio que não está presa à implementação de hoje.

Quando transformo um modelo lógico num modelo físico do Salesforce, estou a decidir:

  • Que entidades de negócio correspondem a capacidades padrão do Salesforce, e quais precisam de objetos personalizados ou de outra representação.
  • Como os atributos lógicos se tornam campos físicos, e como as relações são implementadas na plataforma.
  • Onde a desnormalização deliberada entra no design físico.
  • Que dados pertencem ao Salesforce, e quais pertencem a outro lugar.
  • Que características da plataforma exigem que o modelo físico seja diferente do lógico.

Acima de tudo, quero conseguir rastrear cada decisão de trás para a frente. Se apontar para algo no meu modelo físico e perguntar «Porque é que isto está aqui?», devo conseguir levá-lo de volta pelo modelo lógico e pelo modelo conceitual até algo de que o negócio realmente precisa: negócio → conceitual → lógico → físico.

Além do exame: o que a IA muda. A IA consegue agora levar um documento de requisitos até objetos e campos do Salesforce num só salto. Isso torna a sequência mais importante, não menos: se salta dos requisitos para a configuração, peça-lhe que mostre o que aconteceu pelo meio: o que decidiu que era uma entidade, que chaves escolheu, que relações presumiu e onde desnormalizou. São decisões de arquitetura, e o arquiteto continua a precisar de as ver.

Começámos este capítulo numa primeira conversa, a ouvir substantivos, e terminamo-lo com um modelo físico que conseguimos rastrear até ao negócio. Agora que escolhemos construir no Salesforce, a pergunta seguinte vai mais a fundo: sobre que tipo de plataforma de dados estamos realmente a construir?