I Salesforce er validering av dataene før/etter innsetting veldig viktig og bør tas i betraktning. I de fleste av scenariene, etter å ha lagt inn dataene i Salesforce -objektet, må noen datamanipulering skje, og gale innsettinger/slettinger/oppdateringer må valideres og håndteres. For å oppnå dette introduserte Salesforce et Apex -skript som er kjent som "Trigger". Dykk raskt inn i guiden som omhandler triggerhendelser, kontekstvariabler, typer og scenarier med sanntidseksempler.
Apex trigger
I Salesforce er Trigger en toppkode (.APXT) som skyter før eller etter datamanipulasjonsforekomstene. Basert på hendelsen som er spesifisert i avtrekkeren, skyter den på spesifiserte objekter i Salesforce. Vi kan også spesifisere kontekstene som hjelper oss med å få tilgang til kjøretidskontekstene. Dette hjelper oss å forhindre uønskede/unødvendige handlinger på gjenstander i Salesforce. Si, i kontoobjektet, må vi bare oppdatere telefonen når "industrien" er "landbruk".
Utløse hendelser
Som vi allerede har diskutert, skyter en trigger før eller etter at DML -operasjonene oppstår. Det er tre DML -operasjoner som oppstår på Salesforce -objektet.
Nok en triggerhendelse som kan avfyres etter UNDELETION er "After Undelete".
Utløser typer
I utgangspunktet er det to typer triggere: "før" -utløseren og "etter" -utløseren.
Utløser kontekstvariabler
Det er viktig å se hvilket trigger -scenario som blir avfyrt. Vi må spore på hvilken utløserkontekst som utløser blir avfyrt. Alle triggerkontekstvariabler returnerer sant hvis avtrekkeren blir avfyrt på grunn av den hendelsen. La oss se på dem en etter en.
1. Isinsert: Hvis avtrekkeren blir avfyrt på grunn av en innsats DML -hendelse, blir IsInsert sann.
Eksempel: Opprette kontakt når "konto" opprettes.
2. ISUPDATE: Hvis avtrekkeren blir avfyrt på grunn av en oppdatering DML -hendelse, blir Isupdate sann.
Eksempel: Hvis "kontonavnet" ikke er null, kan du befolke "årlige inntekter".
3. ISDELETE: Hvis avtrekkeren blir avfyrt på grunn av en slett DML -hendelse, blir IsDelete sann.
Eksempel: Kontooppføringer kan ikke slette hvis "Kontoklassifisering" er "Hot".
4. Isundelete: Hvis avtrekkeren blir avfyrt på grunn av en uklettet DML -hendelse, blir Isundelete sann.
Eksempel: Kontopostene blir hentet fra Salesforce papirkurven.
Utløser syntaks:
Vi kan lage et Apex -skript som branner basert på DML -forekomster ved å bruke "Trigger" nøkkelordet etterfulgt av utløsernavnet. Det spør om hvilket Salesforce -objekt gjør at utløseren skal skje under opprettelsen av selve Apex -skriptet. Alle triggerhendelsene er spesifisert etter Salesforce -objektet.
trigger trigger_name på Salesforce_object_api (trigger_events)Miljøoppsett
1. Gå til "Developer Console" og gå til "Velg nye" -filen. Velg deretter “Apex Trigger”.
2. Den spør skriptnavnet og Salesforce -objektet slik at avtrekkeren blir avfyrt på dette objektet. Klikk på "Send" for å opprette en ny Apex -trigger.
Scenario 1: Før innsats
Når kontoen opprettes med "utdanning" -industrien, skyter vi en utløser som tildeler "typen" -feltet til "teknologipartner" [Objekt - konto].
utløser før_insert på konto (før innsats)"Først itererer vi kontojournalene og sjekker om bransjen er" utdanning "eller ikke. Hvis det er "utdanning", tildeler vi "teknologipartneren" til "typen" -feltet.
Testforsøk:
Gå til fanen "Kontoer" fra app -lanseringen og opprett en konto med bransjen som "utdanning". Sjekk om "type" -feltet er befolket med "teknologipartner" eller ikke.
Når du klikker på "Lagre", kan du se at "Type" er opprettet med "Technology Partner".
Scenario 2: Etter innsetting og etter oppdatering
Når kontoen opprettes med den "varme" rangeringen, skyter vi en utløser som oppretter en kontakt med "kontakt etternavn" som "Linuxhint-Account", "Tittel" som "Manager" og "Department" som "salg" [objekt - Regnskap].
Trigger After_Insert_Trigger på konto (After INSERT, After Update)Først oppretter vi en liste over "kontakt" -type og itererer "Konto" -objektet. Inne i "for" -sløyfen sjekker vi om "kontovurderingen" er "varm" eller ikke. Hvis det er "varmt", oppretter vi "kontakt" og tildeler tre felt med verdiene og legger dette objektet til kontaktlisten (erklært tidligere). Til slutt setter vi inn disse tre feltene i "kontakt" -objektet ved hjelp av innsatsen DML.
Testforsøk:
Gå til fanen "Kontoer" fra appstarteren og opprett en konto med "rangering" som "varm". Sjekk om kontaktposten er opprettet med tre spesifiserte felt.
Når du klikker på "Lagre", kan du se at "kontakt" er opprettet med tre felt. Gå til fanen "Kontakter".
Vi kan se at tre felt er opprettet. Gå til fanen "Detaljer" for å se feltene.
Scenario 3: Før oppdatering
Når kampanjen oppdateres med "Conference" -type, skyter vi en utløser som oppdaterer "Status" -feltet til "Fullført" [Object - Campaign].
utløser før_update_trigger på kampanjen (før oppdatering)Først itererer vi kampanjegistrene og sjekker om "typen" er "konferanse" eller ikke. Hvis det er "konferanse", oppdaterer vi "status" -feltet til "fullført".
Testforsøk:
Gå til "Kampanjer" -fanen fra App Launcher og åpne enhver eksisterende post.
Denne posten er av "webinar" -type og statusen er "planlagt". Rediger nå denne posten ved å oppdatere typen til "Conference".
Vi kan se at "statusen" blir oppdatert til "fullført".
Scenario 4: Slett (før)
Når vi prøver å slette postene til kampanjeobjektet når statusen er "fullført" eller typen er "konferanse", kaster vi en feil slik at vi ikke vil kunne slette postene. Vi viser feilen ved å bruke Adderror () -metoden [Object - Campaign].
Trigger Delete_Trigger på kampanjen (før slett)Testforsøk:
Gå til fanen "Kampanjer" fra app -lanseringen og åpne en hvilken som helst eksisterende post med "fullført" status eller med "konferans" -typen ".
Klikk på “Slett” på rullegardinmenyen til høyre.
Vi kan se at feilen blir kastet og den ikke blir slettet.
Konklusjon
Trigger er et Apex -skript som avfyrer før eller etter datamanipulasjonsforekomstene. Basert på hendelsen som er spesifisert i avtrekkeren, skyter den på spesifiserte objekter i Salesforce. Vi lærte de fire forskjellige scenariene for å skyte utløseren ved innsetting, oppdatering og sletting med forskjellige eksempler på forskjellige objekter. Her benyttet vi kontoen, kontakten og kampanjeobjektene for demonstrasjon. Du kan følge de samme eksemplene på dine tilpassede objekter.