Functions
Dynamics 365 Fraud Protection biedt u de flexibiliteit om functies te maken die u kunt gebruiken om een specifieke taak uit te voeren. U kunt functies bijvoorbeeld gebruiken om groepen code te combineren die samen moeten worden uitgevoerd. U kunt ook functies gebruiken om code opnieuw te gebruiken, waarbij u de code eenmaal schrijft en deze opent vanaf andere locaties, waardoor de code gemakkelijker te onderhouden is. Als u in dat voorbeeld een externe service wilt aanroepen om er een waarde uit op te halen, kan de logica binnen een functie worden gedefinieerd en kan de functie worden aangeroepen vanuit andere resources.
Een functie definiëren
Functies bestaan uit invoerparameters en uitvoereigenschappen.
Invoerparameters
Functies kunnen parameters definiëren die moeten worden doorgegeven aan de functie op het moment van aanroepen. Invoerparameters worden gedefinieerd in de functiedefinitie. Het aantal parameters dat is doorgegeven aan de functie bij aanroep, moet exact overeenkomen met het aantal parameters dat is gedefinieerd voor de functie. De gedefinieerde parameters kunnen worden gebruikt in de uitvoereigenschappen om een waarde te retourneren. Zie Uitvoereigenschappen voor meer informatie. Het definiëren van invoerparameters is optioneel.
Invoerparameters bestaan uit de volgende drie onderdelen.
Parameternaam: een naam waarmee naar de parameter kan worden verwezen.
Gegevenstype: aan elke invoerparameter moet een gegevenstype zijn gekoppeld. Het gegevenstype dat u opgeeft, converteert de waarde van de parameter naar het bijbehorende type. Functies ondersteunen de gegevenstypen die worden vermeld in de volgende tabel.
Gegevenstype Voorbeeldwaarde Booleaanse waarde Waar Datum en tijd 22 februari 2024 16:44 Dubbel 10.0 Geheel getal 10 String Hallo Standaardwaarde: voor elke parameter is een standaardwaarde vereist. De standaardwaarde wordt gebruikt tijdens 'Functie-evaluatie' of als er een probleem is met de aanroep van de functie.
Uitvoereigenschappen
U kunt de retourwaarde van een functie definiëren met behulp van uitvoereigenschappen. Uitvoereigenschappen gebruiken de logica Fraudequerytaal (FQL) om een waarde van de functie te retourneren. De uitvoereigenschappen kunnen vervolgens worden geopend vanuit andere functies, regels, snelheid, actieregels na beslissing en routeringsregels wanneer de functie wordt aangeroepen. Een functie kan maximaal 30 uitvoereigenschappen hebben. Zie de referentiehandleiding voor talen voor meer informatie over FQL en hoe u deze kunt gebruiken.
Uitvoereigenschappen bestaan uit de volgende vier onderdelen.
Beschrijving van eigenschap: Een beschrijving van de eigenschap. De beschrijving is optioneel.
Gegevenstype: het gegevenstype van de waarde die wordt geretourneerd door de eigenschap. Functies ondersteunen alle primitieve gegevenstypen, zoals Booleaanse gegevenstypen, datum/tijd, dubbel, geheel getal en tekenreeks. Wanneer er een belangrijke wijziging wordt aangebracht in de uitvoereigenschap van een functie waarnaar wordt verwezen in andere resources, wordt de standaardwaarde van de oorspronkelijke uitvoereigenschap 'gegevenstype' gebruikt als een terugval om door te gaan met de uitvoering van de resource. U wordt aangeraden uw resources bij te werken na belangrijke wijzigingen.
Standaardwaarde: De standaardwaarde wordt geretourneerd als resultaat van een functie wanneer er een uitzondering optreedt tijdens de evaluatie van de eigenschap. Bijvoorbeeld deling op 0 en null-verwijzingsuitzondering.
Code-editor om een waarde te retourneren: de code-editor wordt gebruikt om een waarde van de functie te retourneren. Hier volgen manieren om een uitvoerwaarde te retourneren.
Invoerparameters die in een functie zijn gedefinieerd, kunnen worden gebruikt om waarden te retourneren.
Voorbeeld van een uitvoereigenschap die een invoerparameter retourneert als de retourwaarde. Zie de sectie Invoerparameters eerder in dit artikel voor meer informatie over het definiëren van invoerparameters.
RETURN _number1 + _number2
Zowel de aanvraag- als antwoordkenmerken (inclusief aangepaste gegevens) van een evaluatie die de regel bevat die de functie aanroept. U kunt deze kenmerken openen met de @ operator. Bijvoorbeeld: @"salesTax".
Voorbeeld van functie met behulp van aanvraagkenmerken:
RETURN @"salesTax"
De fraudebeschermingsverrijkingsgegevens. Bijvoorbeeld Geo.CountryCode().
Voorbeeld van functie met riskscore:
RETURN Geo.CountryCode(@"deviceContext.ipAddress")
Lijsten die u uploadt naar Fraudebeveiliging. Zie Lijsten beheren voor informatie over het uploaden van lijsten.
Voorbeeld van een functie met behulp van de lijst:
RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
Snelheid die is gedefinieerd in Fraudebescherming. Zie Velociteitscontrole uitvoeren voor meer informatie.
Voorbeeld van een functie met snelheid:
RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
Externe aanroepen die zijn gemaakt in Fraudebeveiliging. Zie Externe aanroepen voor meer informatie.
Voorbeeld van een functie met behulp van externe aanroepen:
RETURN External.weather("Seattle").id
Externe evaluaties die zijn gemaakt in Fraudebescherming. Zie Externe evaluaties voor meer informatie.
Voorbeeld van een functie die externe evaluatie aanroept:
LET $result = Assessments.myAssessment.Evaluate($baseInput = @@) RETURN $result.ToStr()
De functie Access binnen functies.
Voorbeeld van een functie die een andere functie aanroept:
RETURN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
Notitie
U kunt functies maken in elke omgeving in de stack met meerdere hiërarchieën. Wanneer een functie verwijst naar resources zoals snelheid, externe aanroepen, lijsten en externe evaluaties die beschikbaar zijn in de omgeving, nemen de lagere omgevingen die de functie aanroepen ook de resources over die de functie verwijst. Als u bijvoorbeeld een functie maakt in de hoofdmap die verwijst naar een externe aanroep om een waarde te retourneren, heeft de onderliggende omgeving die de functie aanroept, ook toegang tot het resultaat van die externe aanroep. Raadpleeg de sectie Functieovername verderop in dit artikel voor meer informatie over het overnemen en aanroepen van functies.
Een functie publiceren
Selecteer functies in de navigatiebalk in de portal fraudebeveiliging en selecteer vervolgens Nieuwe functie. Fraudebeveiliging maakt een conceptfunctie die alleen voor u wordt weergegeven (de maker van de functie). Alle wijzigingen die u in het concept aanbrengt, worden automatisch opgeslagen.
Als u een nieuwe functie helemaal zelf wilt definiëren, raadpleegt u de sectie Een functie definiëren eerder in dit artikel.
Als u de functie wilt publiceren, selecteert u Publiceren.
In het bevestigingsdialoogvenster kunt u de naam en beschrijving wijzigen. Selecteer Publiceren.
Notitie
Nadat u de functie hebt gepubliceerd, is deze zichtbaar voor alle gebruikers. De functie kan vervolgens worden aangeroepen binnen andere functies, regels, snelheid, regels na beslissing en routeringsregels.
Raadpleeg de sectie Aanroepen van resources verderop in dit artikel voor informatie over het gebruik van functies in andere resources, zoals functies, regels, snelheid, acties na beslissingen en routeringsregels.
Het deelvenster Voorbeeld
Wanneer u een functie maakt of bewerkt, wordt het deelvenster Voorbeeld weergegeven aan de zijkant van de pagina.
Functies zijn niet gekoppeld aan evaluaties. De voorbeeldpayload wordt weergegeven als een handige handleiding voor gebruikers die alle gebeurteniseigenschappen weergeven waarnaar in uw functies kan worden verwezen. Selecteer het gebeurtenistype in het veld Gebeurtenis boven in het deelvenster.
De sectie met het payloadvoorbeeld bevat een voorbeeld van de eigenschappen die kunnen worden verzonden in de aanvraag-API voor de beoordeling.
Een functie beheren
Als u een eerder gepubliceerde functie wilt bewerken, selecteert u de functie en selecteert u Vervolgens Bewerken. Er wordt een concept van de gepubliceerde functie gemaakt en is alleen beschikbaar voor u. Alle wijzigingen die u in het concept aanbrengt, worden automatisch opgeslagen. Als u uw wijzigingen naar productie wilt pushen, selecteert u Publiceren. De eerder gepubliceerde functie wordt overschreven met uw wijzigingen. Selecteer Verwijderen om uw concept te wissen.
Als u een bestaande functie wilt verwijderen, selecteert u het beletselteken (...) en selecteert u Vervolgens Verwijderen.
Als u de naam of beschrijving van een functie wilt bijwerken, selecteert u het beletselteken (...) en selecteert u Naam wijzigen.
Als u een functie wilt zoeken, voert u een trefwoord in het zoekveld in. Alle functienamen en beschrijvingen worden doorzocht en de resultaten worden gefilterd op basis van de trefwoorden.
Een functie evalueren
Voordat u een functie publiceert, kunt u het deelvenster Functie-evaluatie gebruiken om ervoor te zorgen dat deze de verwachte resultaten retourneert.
- Als u het evaluatievenster van de functie wilt openen, selecteert u Uitvouwen op het tabblad Functies .
- Selecteer Samenvouwen als u het deelvenster wilt sluiten.
Wanneer het evaluatievenster is geopend, wordt de lijst met uitvoereigenschappen weergegeven met het resultaat. In de evaluatie worden standaardwaarden gebruikt voor invoerparameters en -waarden uit de sectie nettolading van het voorbeeld bij het bepalen wat moet worden geretourneerd. Als een van deze waarden wordt gewijzigd, wordt de uitvoer ook gewijzigd. Op die manier kunt u ervoor zorgen dat de juiste waarden voor elke uitvoereigenschap worden geretourneerd.
Functies aanroepen vanuit resources
De gepubliceerde functies kunnen worden aangeroepen vanuit resources zoals regels, snelheid, acties na beslissingen en routeringsregels. Alle uitvoereigenschappen die in een functie zijn gedefinieerd, kunnen worden geopend door de functie aan te roepen. De waarden kunnen vervolgens worden gebruikt voor besluitvorming.
Regels
Functies kunnen worden aangeroepen vanuit elke regel (binnen elke evaluatie) in dezelfde omgeving en vanuit onderliggende omgevingen in de onderstaande hiërarchie. Zie Regels voor meer informatie over regels.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Snelheden
Functies kunnen worden aangeroepen vanuit elke snelheid in dezelfde omgeving en vanuit onderliggende omgevingen in de onderstaande hiërarchie. Zie Snelheidscontroles uitvoeren voor meer informatie over snelheid.
SELECT DistinctCount(@"device.deviceContextId") AS Devices_Per_IP
FROM AccountLogin
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum > 5
GROUPBY @"device.ipAddress"
Regels na beslissing
Functies kunnen worden aangeroepen vanuit elke actieregel na beslissing (binnen elke evaluatie) in dezelfde omgeving en vanuit onderliggende omgevingen in de onderstaande hiërarchie. Zie Regels voor actie na beslissing voor meer informatie over regels voor actie na beslissingen.
DO SetResponse()
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum == 5
Regels voor doorsturen
Functies kunnen worden aangeroepen vanuit alle routeringsregels in dezelfde omgeving en vanuit onderliggende omgevingen in de onderstaande hiërarchie. Zie Case Management voor meer informatie over routeringsregels.
ROUTETO Queue("General Queue")
WHEN Functions.MyFunction(@"purchase.request.totalAmount", @"purchase.request.salesTax").Calculate_Sum > 5
Functieovername
Functies kunnen worden aangeroepen in dezelfde omgeving en vanuit onderliggende omgevingen in de onderstaande hiërarchie. De aanroepsyntaxis is afhankelijk van waar de functie bestaat en waar deze wordt aangeroepen. Hieronder ziet u de verschillende manieren om functies binnen een set met meerdere hiërarchieën aan te roepen.
Notitie
Als een functie verwijst naar resources zoals snelheid, lijsten, externe aanroepen en externe evaluaties, worden de resources ook overgenomen van onderliggende omgevingen in de onderstaande hiërarchie wanneer de functie wordt aangeroepen.
Functies aanroepen die in dezelfde omgeving zijn gemaakt
In het onderstaande voorbeeld wordt een functie aangeroepen vanuit een regel waarin zowel de regel als de functie in dezelfde omgeving aanwezig zijn.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Functies aanroepen die zijn gemaakt in de hoofdomgeving
In het onderstaande voorbeeld wordt een functie aangeroepen die is gemaakt in de hoofdmap van een onderliggende omgeving.
LET $sum = Functions.root.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Functies aanroepen die zijn gemaakt in de bovenliggende omgeving
In het onderstaande voorbeeld wordt een functie aangeroepen vanuit de directe bovenliggende omgeving.
LET $sum = Functions.parent.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Functies aanroepen die zijn gemaakt binnen een omgeving boven de stack
In het onderstaande voorbeeld wordt een functie aangeroepen die is gemaakt in een omgeving boven de stack en overgenomen van een regel in een lagere omgeving.
LET $sum = Functions.environment["environmentid"].MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Functie- en resourcelimieten
Fraudebeveiliging heeft een limiet voor het aantal functies dat per omgeving kan worden gemaakt en het aantal resources waarnaar binnen een functie kan worden verwezen.
Bron | Limiet | |
---|---|---|
Maximum aantal functies dat kan worden gepubliceerd binnen een omgeving | 30 | |
Maximum aantal uitvoereigenschappen dat kan bestaan binnen een functie | 30 | |
Maximum aantal unieke snelheid waarnaar een functie kan verwijzen | 15 | |
Maximum aantal externe aanroepen waarnaar een functie kan verwijzen | 2 | |
Maximumaantal unieke lijstzoekacties waarnaar een functie kan verwijzen | 5 | |
Maximum aantal unieke externe evaluaties waarnaar een functie kan verwijzen | 2 | |
Maximum aantal functies dat een regelset kan aanroepen | 10 | |
Maximum aantal functies dat een routeringsregel kan aanroepen | 10 | |
Maximum aantal functies dat een actie na beslissing kan aanroepen | 10 | |
Maximum aantal resources dat een snelheid kan aanroepen | 10 |
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor