Delen via


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.

    1. 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
    
    1. 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"
    
    1. De fraudebeschermingsverrijkingsgegevens. Bijvoorbeeld Geo.CountryCode().

      Voorbeeld van functie met riskscore:

    RETURN Geo.CountryCode(@"deviceContext.ipAddress")
    
    1. 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")
    
    1. 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)
    
    1. 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
    
    1. 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()
    
    1. 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

  1. 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.

  2. Als u een nieuwe functie helemaal zelf wilt definiëren, raadpleegt u de sectie Een functie definiëren eerder in dit artikel.

  3. Als u de functie wilt publiceren, selecteert u Publiceren.

  4. 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

  1. 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.

  2. Als u een bestaande functie wilt verwijderen, selecteert u het beletselteken (...) en selecteert u Vervolgens Verwijderen.

  3. Als u de naam of beschrijving van een functie wilt bijwerken, selecteert u het beletselteken (...) en selecteert u Naam wijzigen.

  4. 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