Automatiserad - Dataintegritet
Lär dig mer om Välarkitekturerad enkelhet → Automatiserad → Dataintegritet → Datahantering
| Var ska man leta? Produktområde | Plats | Hur ser bra ut? Pattern |
|---|---|
| Data 360 | Dataordbok | ✅ Fältnivådata och prioriteringslogik för alla datakällor och datasjöobjekt finns |
| Data 360 | Organisation | ✅ Sammansatta nycklar används för att konstruera en unik primär nyckel om en sådan inte finns Använd ett formelfält för att slå samman flera fält från din datauppsättning när det inte finns ett enda fält i datauppsättningen som är unikt |
| Data 360 | Organisation | ✅ Dataströmmar som använder CRM-anslutaren använder den fullständiga uppdateringen varannan vecka När CRM-anslutaren används för inkrementella inläsningar inleds en fullständig uppdatering varannan vecka. Även om detta kan öka dataintag skyddar det dataintegriteten för metadata (som formelfält), som inte utlöser en DML-transaktion, och som ett resultat av detta inte inkluderas i inkrementella inläsningar |
| Data 360 | Organisation | ✅ Individuellt ID används för att mappa Data 360-data till andra system Mappa individer i Data 360 till andra system med hjälp av Individuellt ID. Till exempel ska prenumerantnyckeln för Marketing Cloud-engagemang mappas till Individuellt ID från Data 360 |
| Data 360 | Organisation | ✅ Fullt kvalificerade nycklar används för att korrekt tolka data Alla DLO som innehåller ett nyckelvärde har ett nyckelkvalificeringsfält och Fullt kvalificerade nycklar (FQK) är aktiverade i organisationen för att säkerställa att undvika konflikter som kan uppstå när flera dataströmmar harmoniseras till ett enskilt datamodellobjekt (DMO) |
| Data 360 | Organisation | ✅ Normaliserade matchningsmetoder används i matchningsregler när de är tillgängliga Exakt normaliserad matchning transformerar källdata för att lösa vanliga matchningsproblem som efterföljande blanksteg, inkonsekvent formatering och specialtecken. Använd denna metod på fält där den är tillgänglig istället för att använda fuzzy matchning, om du inte har konfigurerat flera regler för tester och bekräftat att sammanslagningsresultatet inte uppfyller verksamhetsbehoven |
| Einstein | Dokumentation | ✅ Dataanvändbarhet dokumenteras som en del av AI-projektdesign Ditt företags definition av dataanvändbarhet dokumenteras och operationaliseras för att förbättra AI-svar |
| Platform | Apex | ✅ Future Apex används sparsamt, för anrop eller systemobjekt DML |
| Platform | Apex | ✅ Asynkrona Apex åberopningar använder kö för att "kedja" komplex DML över transaktioner |
| Platform | Apex | ✅ Batch Apex används uteslutande för stora datavolymer Batch Apex är bäst på att bearbeta stora mängder data. Asynkrona Apex har högre gränser än synkrona Apex så att mer arbete kan utföras. Undvik mycket små satsstorlekar där så är möjligt för att undvika konsekvenser av flödeskontroll (kööversvämning), överliggande och uttömning av den dagliga asynkrona Apex |
| Platform | Apex | ✅ Alla synkrona DML-uttryck eller databasklassmetoder utförs innan utlösarens utförandesammanhang |
| Platform | Apex | ✅ Bulk API används endast när stora mängder data måste bearbetas Bulk API används när stora mängder data måste bearbetas. Inbyggda SOAP- och REST API:er används för mindre mängder databearbetning |
| Plattform | Dataordbok | ✅ Fältmappning från datasjöobjekt till datamodellobjekt finns |
| Plattform | Flöde | ✅ Alla flöden som startas i användarsammanhang abstrakt alla systemsammanhangstransaktioner till underflöden, som konsekvent placeras efter ett pauselement, för att skapa en ny transaktion |
| Plattform | Flöde | ✅ Alla postutlösta flöden har utlösarordervärden ifyllda |
| Plattform | Flöde | ✅ Flöden som involverar externa systemanrop eller processer som körs länge använder asynkrona vägar |
| Plattform | Flöde | ✅ Komplexa sekvenser av relaterade dataoperationer skapas med Orchestrator (istället för att åberopa flera underflöden inom ett monolitiskt flöde) |
| Plattform | Organisation | ✅ Avstämningsregler för identitetslösning följer prioriteringslogiken i din dataordbok. |
Lär dig mer om Välarkitekturerad enkelhet → Automatiserad → Dataintegritet → Felhantering
| Var ska man leta? Produktområde | Plats | Hur ser bra ut? Pattern |
|---|---|
| Einstein | Organisation | ✅ Uppmaningar specificerar den förväntade utmatningen Inkludera direkta instruktioner för LLM att endast skapa den förväntade typen av innehåll. |
| Platform | Apex | ✅ Egna undantag används för att skapa avancerade felmeddelanden och logik |
| Platform | Apex | ✅ Kod omger alla DML, SOQL, anrop och andra viktiga processteg i try-catch |
| Platform | Apex | ✅ Databasklassmetoder kan endast användas för alla dataoperationer (istället för DML) |
| Platform | Apex | ✅ I asynkrona och masssammanhang används databasklassmetoder istället för DML |
| Plattform | Aura | ✅ JavaScript omger alla dataoperationer och viktiga processteg i try-catch |
| Plattform | Aura | ✅ Inom try-catch används inbyggd JavaScript Error i utkastuttryck (ingen användning av $A.error()) |
| Plattform | Aura | ✅ Alla återställningsbara fellogik visas i catch och ger tydliga användarmeddelanden |
| Plattform | Flöde | ✅ Flöden med dataoperationer, anrop och annan viktig bearbetningslogik har felvägar för alla nyckelåtgärder |
| Plattform | Flöde | ✅ Skärmflöden använder konsekvent felanslutare för att visa fel för användare |
| Plattform | Flöde | ✅ Egna felmeddelanden är konfigurerade för fel som visas på skärmen |
| Plattform | Lightning webbkomponenter (LWC) | ✅ JavaScript omger alla dataoperationer och viktiga processteg i if () /else if () block |
| Plattform | Lightning webbkomponenter (LWC) | ✅ Alla @wire använder data och error som tillhandahålls av API |
| Plattform | Lightning webbkomponenter (LWC) | ✅ Alla if (error) /else if (error) uttalanden innehåller logik för att bearbeta fel och ge informativa meddelanden |
Lär dig mer om Välarkitekturerad enkelhet → Automatiserad → Dataintegritet → Datahantering
| Var ska man leta? Produktområde | Plats | Vad ska man undvika? Anti-Pattern |
|---|---|
| Data 360 | Organisation | ⚠️ Fält med normaliserade matchningsmetoder som stöds använder fuzzy matchning Fuzzy matchning tillämpas på fält som erbjuder exakta normaliserade matchningsmetoder |
| Data 360 | Organisation | ⚠️ Sammanslaget individuellt ID antas vara oföränderligt Det sammanslagna individuella ID:t används som ett huvud-ID eller globalt ID som ska användas av resten av organisationen |
| Data 360 | Organisation | ⚠️ Händelsedatum mappas till ett muterbart DateTime-värde Händelsedatum mappas till ett muterbart DateTime-fält som LastUpdated eller LastExtracted |
| Data 360 | Organisation | ⚠️ Primär nyckel mappas till ett fält som inte är unikt Att välja något fält som en primär nyckel för din dataström om en sådan inte finns i din datauppsättning utan att först validera att det valda fältet är unikt |
| Data 360 | Organisation | ⚠️ Läsa in data i satser och sedan försöka aktivera dem i realtid. Till exempel kan en vanlig men felaktig metod involvera att läsa in data varje timme från en Amazon S3-hink och sedan aktivera dem genom dataåtgärder |
| Platform | Apex | ⚠️ DML-uttryck visas regelbundet i kod som kommer att åberopas i efterutlösarsammanhang |
| Platform | Apex | ⚠️ Batch Apex jobb har en mycket liten omfattning Mycket små satsstorlekar (som omfattningsstorlek = 1) används |
| Platform | Apex | ⚠️ Batch Apex används för externa anrop Stora volymer Salesforce-data pushas ut ur Salesforce till ett externt system med hjälp av Batch Apex |
| Platform | Apex | ⚠️ Publicera direkt plattformshändelser används ad hoc-händelser för Publicera omedelbart (i realtid) istället för Publicera efter åtagande (i icke realtid) oavsett publiceringsorderkrav eller låsningsrisker för poster. |
| Platform | Apex | ⚠️ Asynkrona Apex funktioner används godtyckligt Framtida metoder och Köbara Apex används inkonsekvent eller utbytbart |
| Platform | Apex | ⚠️ Asynkrona Apex funktioner används godtyckligt; det är inte klart när utvecklare vet när de ska använda framtida vs köbara Apex, när de ska lämna över DML till batchjobb |
| Platform | Apex | ⚠️ Asynkrona Apex används sällan |
| Platform | Apex | ⚠️ Asynkrona Apex används godtyckligt Databasoperationer har inte tydlig, konsekvent logik för att skicka körning till Apex vid behov |
| Plattform | Dataordbok | ⚠️ Fältmappning från datasjöobjekt till datamodellobjekt inkluderas inte |
| Plattform | Dataordbok | ⚠️ Fältnivådata och prioriteringslogik för datakällor och datasjöobjekt inkluderas inte |
| Plattform | Flöde | ⚠️ Utföra DML med en samling som är en utdata från en skärmkomponent Använd inställningen "Använd ID:n och alla fältvärden från en post eller postsamling" i ett element för att skapa, uppdatera eller ta bort, när den samlingen är en utdata från en skärmkomponent |
| Plattform | Flöde | ⚠️ Postutlösta flöden använder inte utlösarorderattribut alls eller använder inte utlösarordervärden konsekvent |
| Plattform | Flöde | ⚠️ Asynkrona vägar används inte enhetligt eller alls |
| Plattform | Flöde | ⚠️ Stora monolitiska flöden försöker koordinera komplexa sekvenser av relaterade dataoperationer (med eller utan underflöden) |
| Plattform | Organisation | ⚠️ Avstämningsregler för identitetslösning följer inte prioriteringslogiken i dataordlistan. |
Lär dig mer om Välarkitekturerad enkelhet → Automatiserad → Dataintegritet → Felhantering
| Var ska man leta? Produktområde | Plats | Vad ska man undvika? Anti-Pattern |
|---|---|
| Platform | Apex | ⚠️ DML, SOQL, anrop eller andra viktiga processteg omges inte konsekvent av försöksfångstblock |
| Platform | Apex | ⚠️ Inga databasklassmetoder används |
| Platform | Apex | ⚠️ Dataoperationer görs uteslutande med DML |
| Platform | Apex | ⚠️ System.debug visas i produktionskoden (och kommenteras inte) |
| Plattform | Aura | ⚠️ JavaScript omger inte konsekvent dataoperationer och viktiga processteg i try-catch |
| Plattform | Aura | ⚠️ Komponenter använder $A.error() |
| Plattform | Aura | ⚠️ Logik för återställningsbara fel visas inte konsekvent i catch och felmeddelanden till användare är inte tydliga |
| Plattform | Flöde | ⚠️ Flöden använder inte felvägar konsekvent eller alls |
| Plattform | Flöde | ⚠️ Egna felmeddelanden används inte, så användare ser standardmeddelandet "Ett ohanterat fel har inträffat i detta flöde" |
| Plattform | Lightning webbkomponenter (LWC) | ⚠️ @wire använder inte data och error som tillhandahålls av API (eller använder dem inte konsekvent) |
| Plattform | Lightning webbkomponenter (LWC) | ⚠️ Om det används alls innehåller if (error)/else if (error) inte logik för att bearbeta fel och ger användbara felmeddelanden |
| Plattform | Lightning webbkomponenter (LWC) | ⚠️ JavaScript använder inte if ()ellerelse if () blockerar konsekvent dataoperationer eller viktiga processteg |