Automatiserad - Dataintegritet

Lär dig mer om Välarkitekturerad enkelhetAutomatiseradDataintegritetDatahantering

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 enkelhetAutomatiseradDataintegritetFelhantering

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 enkelhetAutomatiseradDataintegritetDatahantering

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 enkelhetAutomatiseradDataintegritetFelhantering

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