Funktioner
Dynamics 365 Fraud Protection giver dig fleksibiliteten til at oprette funktioner, som du kan bruge til at udføre en bestemt opgave. Du kan f.eks. bruge funktioner til at kombinere grupper af kode, der skal udføres sammen. Eller du kan bruge funktioner til at genbruge kode, hvor du skriver koden én gang og får adgang til den fra andre steder, hvilket gør det nemmere at vedligeholde koden. Hvis du i dette eksempel vil kalde en ekstern tjeneste for at hente en værdi fra den, kan logikken defineres i en funktion, og funktionen kan aktiveres fra andre ressourcer.
Definer en funktion
Funktioner består af inputparametre og outputegenskaber.
Inputparametre
Funktioner kan definere parametre, der skal overføres til funktionen på aktiveringstidspunktet. Inputparametre defineres i funktionsdefinitionen. Antallet af parametre, der overføres til funktionen ved aktivering, skal svare nøjagtigt til det antal parametre, der er defineret for funktionen. De definerede parametre kan bruges i outputegenskaberne til at returnere en værdi. Du kan få flere oplysninger under Outputegenskaber. Det er valgfrit at definere inputparametre.
Inputparametre består af følgende tre dele.
Parameternavn: Et navn, som parameteren kan refereres til.
Datatype: Hver inputparameter skal have en datatype tilknyttet. Den datatype, du angiver, konverterer værdien af parameteren til den tilsvarende type. Funktioner understøtter de datatyper, der er angivet i følgende tabel.
Datatype Eksempelværdi Boolean True Dato/klokkeslæt 22. februar 2024 kl. 16:44 Dobbelt 10,0 Heltal 10 String "Hej" Standardværdi: Der kræves en standardværdi for hver parameter. Standardværdien bruges under "Function Evaluation", eller hvis der er problemer med funktionsaktivering.
Outputegenskaber
Du kan definere returværdien for en funktion ved hjælp af outputegenskaber. Outputegenskaber bruger logikken "Fraud Query Language (FQL)" til at returnere en værdi for funktionen. Outputegenskaberne kan derefter tilgås fra andre funktioner, regler, hastighed, handlingsregler efter beslutning og routingregler, når funktionen aktiveres. En funktion kan have op til 30 outputegenskaber. Du kan få flere oplysninger om FQL, og hvordan du bruger den, i Vejledning til sprogreference.
Outputegenskaber består af følgende fire dele.
Beskrivelse af egenskab: En beskrivelse af egenskaben. Beskrivelsen er valgfri.
Datatype: Datatypen for den værdi, der returneres fra egenskaben. Funktioner understøtter alle primitive datatyper, f.eks. boolesk, datetime, dobbelt, heltal og streng. Når der foretages en afbrydelsesændring af outputegenskaben for en funktion, der refereres til i andre ressourcer, bruges standardværdien for den oprindelige outputegenskab "datatype" som reserve for at fortsætte med ressourceudførelsen. Vi anbefaler, at du opdaterer dine ressourcer, når ændringerne er brudt.
Standardværdi: Standardværdien returneres som resultat af en funktion, når der registreres en undtagelse under evalueringen af egenskaben. F.eks. undtagelserne Division med 0 og Null Reference.
Kodeeditor til at returnere en værdi: Kodeeditoren bruges til at returnere en værdi fra funktionen. Følgende er måder at returnere en outputværdi på.
Inputparametre, der er defineret i en funktion, kan bruges til at returnere værdier.
Eksempel på en outputegenskab, der returnerer en inputparameter som returværdi. Du kan finde flere oplysninger om, hvordan du definerer inputparametre, i afsnittet Inputparametre tidligere i denne artikel.
RETURN _number1 + _number2
Både anmodnings- og svarattributterne (herunder brugerdefinerede data) for en vurdering, der indeholder den regel, der aktiverer funktionen. Du kan få adgang til disse attributter med operatoren @ . F.eks., @"salesTax".
Eksempel på funktion, der bruger anmodningsattributter:
RETURN @"salesTax"
Oplysningerne om berigning af bedrageribeskyttelse. F.eks. Geo.CountryCode().
Eksempel på funktion ved hjælp af riskscore:
RETURN Geo.CountryCode(@"deviceContext.ipAddress")
Lister, som du uploader til Fraud Protection. Du kan finde flere oplysninger om upload af lister i Administrere lister.
Eksempel på funktion ved hjælp af liste:
RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
Hastighed, der er defineret i Fraud Protection. Du kan få flere oplysninger under Udføre hastighedskontroller.
Eksempel på funktion ved hjælp af hastighed:
RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
Eksterne opkald, der blev oprettet i Fraud Protection. Du kan finde flere oplysninger under Eksterne kald.
Eksempel på funktion ved hjælp af eksterne kald:
RETURN External.weather("Seattle").id
Eksterne vurderinger, der blev oprettet i Fraud Protection. Du kan få flere oplysninger under Eksterne vurderinger.
Eksempel på en funktion, der aktiverer ekstern vurdering:
LET $result = Assessments.myAssessment.Evaluate($baseInput = @@) RETURN $result.ToStr()
Funktionen Access i funktioner.
Eksempel på en funktion, der aktiverer en anden funktion:
RETURN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
Bemærk
Du kan oprette funktioner i et hvilket som helst miljø i stakken med flere hierarkier. Når en funktion refererer til ressourcer, f.eks. hastighed, eksterne kald, lister og eksterne vurderinger, der er tilgængelige i miljøet, arver de lavere miljøer, der aktiverer funktionen, også de ressourcer, som funktionen refererer til. Hvis du f.eks. opretter en funktion i roden, der refererer til et eksternt kald for at returnere en værdi, kan det underordnede miljø, der aktiverer funktionen, også få adgang til resultatet af det eksterne kald. Du kan finde flere oplysninger om, hvordan du nedarver og aktiverer funktioner, i afsnittet Funktionsarvning senere i denne artikel.
Publicer en funktion
På portalen Fraud Protection skal du vælge Funktioner på navigationslinjen og derefter vælge Ny funktion. Fraud Protection opretter en kladdefunktion, der kun vises for dig (forfatteren af funktionen). Alle ændringer, du foretager af kladden, gemmes automatisk.
Hvis du vil definere en ny funktion fra bunden, skal du se afsnittet Definer en funktion tidligere i denne artikel.
Hvis du vil publicere funktionen, skal du vælge Publicer.
I bekræftelsesdialogboksen kan du ændre navnet og beskrivelsen. Vælg Udgiv.
Bemærk
Når du har publiceret funktionen, er den synlig for alle brugere. Funktionen kan derefter aktiveres inden for andre funktioner, regler, hastighed, regler efter beslutning og routingregler.
Du kan finde oplysninger om, hvordan du bruger funktioner i andre ressourcer, f.eks. funktioner, regler, hastighed, handlinger efter beslutninger og routingregler, i afsnittet Kald funktioner fra ressourcer senere i denne artikel.
Ruden Eksempel
Når du opretter eller redigerer en funktion, vises ruden Eksempel på siden af siden.
Funktioner er ikke knyttet til nogen vurderinger. Nyttedataeksemplet præsenteres som en nyttig vejledning til brugere, der viser alle de hændelsesegenskaber, der kan refereres til i dine funktioner. Vælg hændelsestypen i feltet Hændelse øverst i ruden.
Afsnittet nyttedataeksempel indeholder et eksempel på de egenskaber, der kan sendes i API-anmodningen til vurdering.
Administrer en funktion
Hvis du vil redigere en tidligere publiceret funktion, skal du vælge funktionen og derefter vælge Rediger. Der oprettes en kladde af den publicerede funktion, som kun er tilgængelig for dig. Alle de ændringer, du foretager i kladden, gemmes automatisk. Hvis du vil overføre dine ændringer til produktion, skal du vælge Publicer. Den tidligere publicerede funktion overskrives med dine ændringer. Hvis du vil kassere kladden, skal du vælge Kassér.
Hvis du vil slette en eksisterende funktion, skal du vælge ellipsen (...) og derefter vælge Slet.
Hvis du vil opdatere navnet eller beskrivelsen af en funktion, skal du vælge ellipsen (...) og derefter vælge Omdøb.
Hvis du vil søge efter en funktion, skal du angive et nøgleord i feltet Søg . Der søges i alle funktionsnavne og -beskrivelser, og resultaterne filtreres i henhold til søgeordene.
Evaluer en funktion
Før du publicerer en funktion, kan du bruge ruden Funktionsevaluering til at sikre, at den returnerer de resultater, du forventer.
- Hvis du vil åbne ruden til funktionsevaluering, skal du vælge Udvid under fanen Funktioner .
- Vælg Skjul for at lukke ruden.
Når evalueringsruden er åben, vises listen over outputegenskaber med resultatet. Evalueringen bruger standardværdier til inputparametre og værdier fra afsnittet med eksempeldata, når det bestemmes, hvad der skal returneres. Hvis nogen af disse værdier ændres, ændres outputtet også. På den måde kan du sikre dig, at de korrekte værdier for hver outputegenskab returneres.
Aktivér funktioner fra ressourcer
De publicerede funktioner kan aktiveres fra ressourcer, f.eks. regler, hastighed, handlinger efter beslutning og routingregler. Du kan få adgang til alle de outputegenskaber, der er defineret i en funktion, ved at aktivere funktionen. Værdierne kan derefter bruges til beslutningstagning.
Regler
Funktioner kan aktiveres fra en hvilken som helst regel (i en hvilken som helst vurdering) i det samme miljø og fra underordnede miljøer i hierarkiet nedenfor. Du kan få flere oplysninger om regler under Regler.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Hastigheder
Funktioner kan aktiveres fra enhver hastighed i det samme miljø og fra underordnede miljøer i hierarkiet nedenfor. Du kan få mere at vide om hastighed under Udfør hastighedskontroller.
SELECT DistinctCount(@"device.deviceContextId") AS Devices_Per_IP
FROM AccountLogin
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum > 5
GROUPBY @"device.ipAddress"
Regler efter beslutning
Funktioner kan aktiveres fra en hvilken som helst handlingsregel efter beslutningen (i en hvilken som helst vurdering) i det samme miljø og fra underordnede miljøer i hierarkiet nedenfor. Du kan få flere oplysninger om handlingsregler efter beslutning under Regler for handling efter beslutning.
DO SetResponse()
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum == 5
Ruteregler
Funktioner kan aktiveres fra alle routingregler i det samme miljø og fra underordnede miljøer i hierarkiet nedenfor. Du kan få flere oplysninger om distributionsregler under Sagsstyring.
ROUTETO Queue("General Queue")
WHEN Functions.MyFunction(@"purchase.request.totalAmount", @"purchase.request.salesTax").Calculate_Sum > 5
Nedarvning af funktion
Funktioner kan aktiveres i det samme miljø og fra underordnede miljøer i hierarkiet nedenfor. Aktiveringssyntaksen afhænger af, hvor funktionen findes, og hvor den aktiveres fra. Nedenfor kan du se de forskellige måder at aktivere funktioner på i et multihierarki, der er konfigureret.
Bemærk
Hvis en funktion refererer til ressourcer som f.eks. hastighed, lister, eksterne kald og eksterne vurderinger, nedarves ressourcerne også fra underordnede miljøer i hierarkiet nedenfor, når funktionen aktiveres.
Aktivér funktioner, der er oprettet i det samme miljø
I nedenstående eksempel aktiveres en funktion fra en regel, hvor både reglen og funktionen findes i det samme miljø.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Aktivér funktioner, der er oprettet i rodmiljøet
I eksemplet nedenfor aktiveres en funktion, der er oprettet i roden fra et underordnet miljø.
LET $sum = Functions.root.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Aktivér funktioner, der er oprettet i det overordnede miljø
I eksemplet nedenfor aktiveres en funktion fra det direkte overordnede miljø.
LET $sum = Functions.parent.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Aktivér funktioner, der er oprettet i et hvilket som helst miljø over stakken
I eksemplet nedenfor aktiveres en funktion, der er oprettet i et miljø over stakken og nedarvet fra en regel i et lavere miljø.
LET $sum = Functions.environment["environmentid"].MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Funktions- og ressourcegrænser
Fraud Protection har en grænse for antallet af funktioner, der kan oprettes pr. miljø, og antallet af ressourcer, der kan refereres til i en funktion.
Ressource | Maksimum | |
---|---|---|
Maksimalt antal funktioner, der kan publiceres i et miljø | 30 | |
Det maksimale antal outputegenskaber, der kan findes i en funktion | 30 | |
Det maksimale antal entydige hastighedshastigheder, som en funktion kan referere til | 15 | |
Det maksimale antal eksterne kald, som en funktion kan referere til | 2 | |
Det maksimale antal entydige listeopslag, som en funktion kan referere til | 5 | |
Maksimalt antal entydige eksterne vurderinger, som en funktion kan referere til | 2 | |
Det maksimale antal funktioner, som et regelsæt kan aktivere | 10 | |
Det maksimale antal funktioner, som en routingregel kan aktivere | 10 | |
Det maksimale antal funktioner, som en handling efter beslutning kan aktivere | 10 | |
Det maksimale antal ressourcer, som en hastighed kan aktivere | 10 |