Automatisert – dataintegritet

Lær mer om Well-Architected EasyAutomatedData IntegrityData Handling

Hvor skal du se?
Produktområde | Sted
Hvordan ser godt ut?
Mønster
Data 360 | Data Dictionary✅ Feltnivådata og prioriteringslogikk finnes for alle datakilder og datasjøobjekter
Data 360 | Organisasjon✅ Sammensatte nøkler brukes til å konstruere en unik primærnøkkel hvis det ikke finnes en. Bruk et formelfelt til å slå sammen flere felt fra datasettet når det ikke er et enkelt felt i datasettet som er unikt
Data 360 | Organisasjon✅ Datastrømmer som bruker CRM-koblingen, bruker den fullstendige oppdateringen hver eneste uke Når CRM-koblingen brukes til inkrementelle innlastinger, startes en full oppdatering hver andre uke. Selv om dette kan øke datainntaket, beskytter det dataintegritet for metadata (som formelfelt), som ikke utløser en DML-transaksjon og som et resultat ikke inkluderes i inkrementelle innlastinger
Data 360 | Organisasjon✅ Enkeltperson-ID brukes til å tilordne Data 360-data til andre systemer Tilordne enkeltpersoner i Data 360 til andre systemer som bruker Enkeltperson-ID. Abonnentnøkkelen for Marketing Cloud-engasjement kan for eksempel tilordnes til Enkeltperson-IDen fra Data 360
Data 360 | Organisasjon✅ Fullt kvalifiserte nøkler brukes til å tolke data nøyaktig Alle DLO-er som inneholder en nøkkelverdi, har et nøkkelkvalifikasjonsfelt og Fullt kvalifiserte nøkler (FQK) er aktivert i organisasjonen for å sikre at det unngås konflikter som kan oppstå når flere datastrømmer harmoniseres til ett datamodellobjekt (DMO)
Data 360 | Organisasjon✅ Normaliserte samsvarsmetoder brukes i samsvarsregler når de er tilgjengelige Nøyaktig normalisert samsvar transformerer kildedata for å løse vanlige samsvarsproblemer som etterfølgende mellomrom, inkonsekvent formatering og spesialtegn. Bruk denne metoden på felt der den er tilgjengelig i stedet for å bruke tilnærmet samsvar med mindre du har konfigurert flere regelsett for testing og har bekreftet at konsolideringsgraden ikke oppfyller forretningsbehovene
Einstein | Dokumentasjon✅ Datatilgjengelighet dokumenteres som en del av AI-prosjektutformingen Firmaets definisjon av datatilgjengelighet dokumenteres og opereres for å forbedre AI-svar
Plattform | Apex✅ Fremtidig Apex brukes sparsomt, for oppkall eller systemobjekt DML
Plattform | Apex✅ Asynkrone Apex bruker købar til "kjede"-komplekse DML på tvers av transaksjoner
Plattform | Apex✅ Batch Apex brukes utelukkende til store datavolumer Batch Apex er best til å behandle store mengder data. Asynkron Apex har høyere grenser enn synkron Apex slik at mer arbeid kan gjøres. Unngå svært små batchstørrelser der det er mulig for å unngå konsekvenser av Flow Control (køflom), overhead og uttømming av den daglige Asynkrone Apex grensen
Plattform | Apex✅ Alle synkrone DML-setninger eller Database-klassemetoder utføres i før utløserutførelseskontekster
Plattform | Apex✅ Bulk-API brukes bare når store mengder data må behandles Bulk-API brukes når store mengder data må behandles. Innebygde SOAP- og REST-API-er brukes til mindre databehandlingsmengder
Plattform | Data Dictionary✅ Felttilordning fra datasjøobjekt til datamodellobjekt finnes
Plattform | Flyt✅ Alle flyter som startes i brukerkontekst, abstrakterer alle systemkontekstraksjoner til underflyter, som plasseres konsistent etter et Pause-element, for å opprette en ny transaksjon
Plattform | Flyt✅ Alle postutløste flyter har utløserrekkefølgeverdier fylt ut
Plattform | Flyt✅ Flyter som involverer eksterne systemoppkall eller prosesser som kjører lenge, bruker asynkrone baner
Plattform | Flyt✅ Komplekse sekvenser av relaterte dataoperasjoner opprettes med Orchestrator (i stedet for å kalle opp flere underflyter i en monolittisk flyt)
Plattform | Organisasjon✅ Avstemmingsregler for Identitetsløsning følger prioriteringslogikken i datadialogen

Lær mer om Well-Architected EasyAutomatedData IntegrityFeilbehandling

Hvor skal du se?
Produktområde | Sted
Hvordan ser godt ut?
Mønster
Einstein | Organisasjon✅ Ledetekster angir forventede utdata Inkluder direkte instruksjoner for LLM for å generere bare den forventede typen innhold.
Plattform | Apex✅ Tilpassede unntak brukes til å opprette avanserte feilmeldinger og logikk
Plattform | Apex✅ Kode slår sammen alle DML, SOQL, oppkall og andre viktige prosesstrinn i try-catch blokker
Plattform | Apex✅ Databaseklassemetoder kan brukes eksklusivt for alle dataoperasjoner (i stedet for DML)
Plattform | Apex✅ I asynkrone og gruppekontekster brukes Database-klassemetoder i stedet for DML
Plattform | Aura✅ JavaScript pakker alle dataoperasjoner og viktige prosesstrinn i try-catch blokker
Plattform | Aura✅ Innenfor try-catch blokker brukes innebygd JavaScript Error i kastsetninger (ingen bruk av $A.error())
Plattform | Aura✅ All gjenopprettingsfeillogikk vises i catch og gir tydelige brukermeldinger
Plattform | Flyt✅ Flyter med dataoperasjoner, oppkall og annen viktig behandlingslogikk har feilbaner for alle viktige handlinger
Plattform | Flyt✅ Skjermflyter bruker konsekvent feilkoblinger til å vise feil til brukere
Plattform | Flyt✅ Tilpassede feilmeldinger konfigureres for feil som vises på skjermen
Plattform | Lightning Web Components (LWC)✅ JavaScript avslutter alle dataoperasjoner og viktige prosesstrinn i if ()/else if () blokker
Plattform | Lightning Web Components (LWC)✅ Alle @wire-funksjoner bruker data og error-egenskaper fra APIen
Plattform | Lightning Web Components (LWC)✅ Alle if (error)/else if (error)-setninger inneholder logikk for å behandle feil og gi informative meldinger

Lær mer om Well-Architected EasyAutomatedData IntegrityData Handling

Hvor skal du se?
Produktområde | Sted
Hva bør unngås?
Anti-mønster
Data 360 | Organisasjon⚡️ Felt med støttede normaliserte samsvarsmetoder bruker tilnærmet samsvar Tilnærmet samsvar brukes på felt som tilbyr eksakte normaliserte samsvarsmetoder
Data 360 | Organisasjon⚡️ Forente persondata-ID antas å være uforanderlig Forente persondata-ID brukes som en overordnet ID eller global ID som skal brukes av resten av organisasjonen
Data 360 | Organisasjon⚡️ Hendelsesdato er tilordnet til en variabel DateTime-verdi Hendelsesdato er tilordnet til et variabel DateTime-felt, som LastUpdated eller LastExtracted
Data 360 | Organisasjon⚡️ Primærnøkkel tilordnes til et felt som ikke er unikt Velge et felt som primærnøkkel for datastrømmen hvis det ikke finnes noe i datasettet uten først å validere at det valgte feltet er unikt
Data 360 | Organisasjon⚡️ Laste inn data i batcher og deretter forsøke å aktivere dem i sanntid. En vanlig, men feilaktig løsning kan for eksempel innebære å laste inn data hver time fra en Amazon S3-samlekategori og deretter aktivere den via datahandlinger.
Plattform | Apex⚡️ DML-setninger vises regelmessig i kode som kalles opp i etter utløserkontekster
Plattform | Apex⚡️ Apex for batcher har en meget liten omfangsstørrelse. Meget små batchstørrelser (som omfangsstørrelse = 1) brukes
Plattform | Apex⚡️ Batch Apex brukes til eksterne oppkall Store mengder Salesforce-data overføres fra Salesforce til et eksternt system ved bruk av batch Apex
Plattform | Apex⚡️ Publiser umiddelbart Plattformhendelser brukes adhoc Publiser umiddelbart (sanntid) hendelser brukes i stedet for Publiser etter bekreftelse (ikke sanntid) uavhengig av publiseringskrav eller postlåserisiko.
Plattform | Apex⚡️ Asynkrone Apex brukes vilkårlig Fremtidige metoder og Købar Apex brukes inkonsistent eller byttbart
Plattform | Apex⚡️ Asynkrone Apex brukes vilkårlig. Det er ikke klart at utviklere vet når de skal bruke fremtidig kontra købar Apex, når de skal overlevere DML til gruppejobber
Plattform | Apex⚡️ Asynkron Apex brukes sjelden
Plattform | Apex⚡️ Asynkrone Apex brukes vilkårlig Databaseoperasjoner har ikke klar, konsistent logikk for overføring av utførelse til Apex når det er nødvendig
Plattform | Data Dictionary⚡️ Felttilordning fra datasjøobjekter til datamodellobjekter er ikke inkludert
Plattform | Data Dictionary⚡️ Feltnivådata og prioriteringslogikk for datakilder og datasjøobjekter inkluderes ikke
Plattform | Flyt⚡️ Utføre DML med en samling som er et utdata fra en skjermkomponent Bruke innstillingen "Bruk ID-ene og alle feltverdiene fra en post- eller postsamling" på et opprette-, oppdatere- eller sletteelement, når denne samlingen er et utdata fra en skjermkomponent
Plattform | Flyt⚡️ Postutløste flyter bruker ikke noen attributter for utløserbestilling eller bruker ikke utløserbestillingsverdier konsistent
Plattform | Flyt⚡️ Asynkrone baner brukes ikke konsistent eller i det hele tatt
Plattform | Flyt⚡️ Store, monolittiske flyter forsøker å koordinere komplekse sekvenser av relaterte dataoperasjoner (med eller uten underflyter)
Plattform | Organisasjon⚡️ Avstemmingsregler for Identitetsløsning følger ikke prioriteringslogikk i datadiagrammet

Lær mer om Well-Architected EasyAutomatedData IntegrityFeilbehandling

Hvor skal du se?
Produktområde | Sted
Hva bør unngås?
Anti-mønster
Plattform | Apex⚡️ DML, SOQL, oppkall eller andre viktige prosesstrinn blir ikke konsekvent pakket inn i prøve-fangstblokker
Plattform | Apex⚡️ Ingen databaseklassemetoder brukes
Plattform | Apex⚡️ Dataoperasjoner utføres eksklusivt med DML
Plattform | Apex⚡️ System.debug vises i produksjonskode (og blir ikke kommentert)
Plattform | AuraJavaScript pakker ikke dataoperasjoner og viktige prosesstrinn konsekvent inn i try-catch blokker
Plattform | Aura⚡️ Komponenter bruker $A.error()
Plattform | Aura⚡️ Gjenopprettbar feillogikk vises ikke konsekvent i catch, og feilmeldinger til brukere er ikke klare
Plattform | Flyt⚡️ Flyter bruker ikke feilbaner konsistent eller i det hele tatt
Plattform | Flyt⚡️ Tilpassede feilmeldinger brukes ikke, så brukere ser standardmeldingen "En ubehandlet feil har skjedd i denne flyten"
Plattform | Lightning Web Components (LWC)⚡️ @wire-funksjoner bruker ikke data og error-egenskaper fra API (eller bruker dem ikke konsekvent)
Plattform | Lightning Web Components (LWC)⚡️ Hvis det brukes, inneholder ikke if (error)/else if (error)-setninger logikk for å behandle feil og gi nyttige feilmeldinger
Plattform | Lightning Web Components (LWC)JavaScript bruker ikke konsekvent if ()/else if () blokker med dataoperasjoner eller kritiske prosesstrinn