Fonctions
Dynamics 365 Fraud Protection vous offre la possibilité de créer des fonctions que vous pouvez utiliser pour effectuer une tâche spécifique. Par exemple, vous pouvez utiliser des fonctions pour combiner des groupes de code qui doivent être exécutés ensemble. Vous pouvez également utiliser des fonctions pour réutiliser le code, où vous écrivez le code une fois et y accéder à partir d’autres emplacements, ce qui facilite la maintenance du code. Dans cet exemple, si vous souhaitez appeler un service externe pour extraire une valeur, la logique peut être définie dans une fonction et la fonction peut être appelée à partir d’autres ressources.
Définir une fonction
Les fonctions se composent de paramètres d’entrée et de propriétés de sortie.
Paramètres d’entrée
Les fonctions peuvent définir des paramètres à passer à la fonction au moment de l’appel. Les paramètres d’entrée sont définis dans la définition de fonction. Le nombre de paramètres passés dans la fonction à l’appel doit correspondre exactement au nombre de paramètres définis pour la fonction. Les paramètres définis peuvent être utilisés dans les propriétés de sortie pour retourner une valeur. Pour plus d’informations, consultez Propriétés de sortie. La définition des paramètres d’entrée est facultative.
Les paramètres d’entrée se composent des trois parties suivantes.
Nom du paramètre : nom avec lequel le paramètre peut être référencé.
Type de données : chaque paramètre d’entrée doit avoir un type de données qui lui est associé. Le type de données que vous spécifiez convertit la valeur du paramètre en type correspondant. Les fonctions prennent en charge les types de données répertoriés dans le tableau suivant.
Type de données Exemple de valeur Boolean True Date/Heure 22 février 2024 4 :44PM Double 10.0 Entier 10 Chaîne "Hello" Valeur par défaut : une valeur par défaut est requise pour chaque paramètre. La valeur par défaut est utilisée pendant « Évaluation de la fonction » ou s’il existe un problème avec l’appel de fonction.
Propriétés de sortie
Vous pouvez définir la valeur de retour d’une fonction à l’aide des propriétés de sortie. Les propriétés de sortie utilisent la logique « Fraud Query Language (FQL) » pour retourner une valeur de la fonction. Les propriétés de sortie sont ensuite accessibles à partir d’autres fonctions, règles, vitesses, règles d’action post-décision et règles de routage lorsque la fonction est appelée. Une fonction peut avoir jusqu’à 30 propriétés de sortie. Pour plus d’informations sur FQL et sur son utilisation, consultez le guide de référence du langage.
Les propriétés de sortie se composent des quatre parties suivantes.
Description de la propriété : description de la propriété. La description est facultative.
Type de données : type de données de la valeur retournée par la propriété. Les fonctions prennent en charge tous les types de données primitifs, tels que booléen, datetime, double, entier et chaîne. Chaque fois qu’une modification cassant est apportée à la propriété de sortie d’une fonction référencée dans d’autres ressources, la valeur par défaut de la propriété de sortie d’origine « type de données » est utilisée comme secours pour poursuivre l’exécution de la ressource. Nous vous recommandons de mettre à jour vos ressources après des changements cassants.
Valeur par défaut : la valeur par défaut est retournée à la suite d’une fonction lorsqu’une exception est rencontrée pendant l’évaluation de la propriété. Par exemple, division par 0 et exceptions de référence Null.
Éditeur de code pour retourner une valeur : l’éditeur de code est utilisé pour renvoyer une valeur de la fonction. Les méthodes suivantes permettent de retourner une valeur de sortie.
Les paramètres d’entrée définis dans une fonction peuvent être utilisés pour retourner des valeurs.
Exemple de propriété de sortie retournant un paramètre d’entrée comme valeur de retour. Pour plus d’informations sur la définition des paramètres d’entrée, consultez la section Paramètres d’entrée plus haut dans cet article.
RETURN _number1 + _number2
Les attributs de requête et de réponse (y compris les données personnalisées) d’une évaluation qui contient la règle qui appelle la fonction. Vous pouvez accéder à ces attributs avec l’opérateur @ . Par exemple : @"salesTax".
Exemple de fonction utilisant des attributs de requête :
RETURN @"salesTax"
Données d’enrichissement de la protection contre les fraudes. Par exemple, Geo.CountryCode().
Exemple de fonction utilisant le score de risque :
RETURN Geo.CountryCode(@"deviceContext.ipAddress")
Répertorie les listes que vous chargez dans La protection contre les fraudes. Pour plus d’informations sur la façon de charger des listes, consultez Gérer les listes.
Exemple de fonction utilisant la liste :
RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
Les vitesses définies dans la protection contre les fraudes. Pour plus d’informations, voir Effectuer des contrôles de vitesse.
Exemple de fonction utilisant la vélocité :
RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
Appels externes créés dans La protection contre les fraudes. Pour plus d’informations, voir la rubrique Appels externes.
Exemple de fonction utilisant des appels externes :
RETURN External.weather("Seattle").id
Évaluations externes créées dans La protection contre les fraudes. Pour plus d’informations, consultez Évaluations externes.
Exemple d’une fonction appelant une évaluation externe :
LET $result = Assessments.myAssessment.Evaluate($baseInput = @@) RETURN $result.ToStr()
Fonction d’accès dans les fonctions.
Exemple de fonction appelant une autre fonction :
RETURN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
Remarque
Vous pouvez créer des fonctions dans n’importe quel environnement dans la pile multi-hiérarchie. Lorsqu’une fonction fait référence à des ressources telles que des vitesses, des appels externes, des listes et des évaluations externes disponibles dans l’environnement, les environnements inférieurs qui appellent la fonction héritent également des ressources référencées par la fonction. Par exemple, si vous créez une fonction à la racine qui fait référence à un appel externe pour retourner une valeur, l’environnement enfant qui appelle la fonction peut également accéder au résultat de cet appel externe. Pour plus d’informations sur la façon d’hériter et d’appeler des fonctions, reportez-vous à la section Héritage des fonctions plus loin dans cet article.
Publier une fonction
Dans le portail Fraud Protection, sélectionnez Fonctions dans la barre de navigation, puis sélectionnez Nouvelle fonction. Fraud Protection crée une fonction brouillon qui s’affiche uniquement pour vous (le créateur de la fonction). Toutes les modifications que vous apportez au brouillon sont automatiquement enregistrées.
Pour définir une nouvelle fonction à partir de zéro, reportez-vous à la section Définition d’une fonction plus haut dans cet article.
Pour publier la fonction, sélectionnez Publier.
Dans la boîte de dialogue de confirmation, vous pouvez modifier le nom et la description. Sélectionnez Publier.
Remarque
Après avoir publié la fonction, elle est visible pour tous les utilisateurs. La fonction peut ensuite être appelée dans d’autres fonctions, règles, vitesses, règles de post-décision et règles de routage.
Pour plus d’informations sur l’utilisation de fonctions dans d’autres ressources, telles que des fonctions, des règles, des vitesses, des actions post-décision et des règles de routage, reportez-vous à la section Appeler des fonctions à partir de ressources plus loin dans cet article.
Volet Exemple
Lorsque vous créez ou modifiez une fonction, le volet Exemple s’affiche sur le côté de la page.
Les fonctions ne sont liées à aucune évaluation. L’exemple de charge utile est présenté comme un guide utile pour les utilisateurs qui affichent toutes les propriétés d’événement qui peuvent être référencées dans vos fonctions. Sélectionnez le type d’événement dans le champ Événement en haut du volet.
La section Exemple de charge utile contient un exemple des propriétés qui peuvent être envoyées dans l’API de requête pour l’évaluation.
Gérer une fonction
Pour modifier une fonction précédemment publiée, sélectionnez la fonction, puis sélectionnez Modifier. Un brouillon de la fonction publiée est créé et est disponible uniquement pour vous. Toutes les modifications apportées au brouillon sont automatiquement enregistrées. Pour envoyer vos modifications en production, sélectionnez Publier. La fonction précédemment publiée est remplacée par vos modifications. Pour supprimer votre brouillon, sélectionnez Ignorer.
Pour supprimer une fonction existante, sélectionnez les points de suspension (...), puis sélectionnez Supprimer.
Pour mettre à jour le nom ou la description d’une fonction, sélectionnez les points de suspension (...), puis sélectionnez Renommer.
Pour rechercher une fonction, entrez un mot clé dans le champ De recherche. Tous les noms et descriptions des fonctions sont recherchés, et les résultats sont filtrés en fonction des mot clé de recherche.
Évaluer une fonction
Avant de publier une fonction, vous pouvez utiliser le volet d’évaluation de la fonction pour vous assurer qu’elle retourne les résultats attendus.
- Pour ouvrir le volet d’évaluation des fonctions, sélectionnez Développer sous l’onglet Fonctions .
- Pour fermer le volet, cliquez sur Réduire.
Lorsque le volet d’évaluation est ouvert, la liste des propriétés de sortie s’affiche avec son résultat. L’évaluation utilise des valeurs par défaut pour les paramètres d’entrée et les valeurs de la section de charge utile de l’exemple lors de la détermination de ce qui doit être retourné. Si l’une de ces valeurs est modifiée, la sortie est également modifiée. Ainsi, vous pouvez vous assurer que les valeurs correctes pour chaque propriété de sortie sont retournées.
Appeler des fonctions à partir de ressources
Les fonctions publiées peuvent être appelées à partir de ressources telles que des règles, des vitesses, des actions post-décision et des règles de routage. Toutes les propriétés de sortie définies dans une fonction sont accessibles en appelant la fonction. Les valeurs peuvent ensuite être utilisées pour la prise de décision.
Règles
Les fonctions peuvent être appelées à partir de n’importe quelle règle (dans n’importe quelle évaluation) dans le même environnement et à partir d’environnements enfants dans la hiérarchie ci-dessous. Pour plus d’informations sur les règles, consultez Règles.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Vitesses
Les fonctions peuvent être appelées à partir de n’importe quelle vitesse dans le même environnement et à partir d’environnements enfants dans la hiérarchie ci-dessous. Pour plus d’informations sur les vitesses, consultez Effectuer des case activée de vitesse.
SELECT DistinctCount(@"device.deviceContextId") AS Devices_Per_IP
FROM AccountLogin
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum > 5
GROUPBY @"device.ipAddress"
Règles post-décision
Les fonctions peuvent être appelées à partir de n’importe quelle règle d’action post-décision (dans n’importe quelle évaluation) dans le même environnement et à partir d’environnements enfants dans la hiérarchie ci-dessous. Pour plus d’informations sur les règles d’action post-décision, consultez Règles d’action post-décision.
DO SetResponse()
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum == 5
Règles de routage
Les fonctions peuvent être appelées à partir de toutes les règles de routage dans le même environnement et à partir d’environnements enfants dans la hiérarchie ci-dessous. Pour plus d’informations sur les règles de routage, consultez Gestion des cas.
ROUTETO Queue("General Queue")
WHEN Functions.MyFunction(@"purchase.request.totalAmount", @"purchase.request.salesTax").Calculate_Sum > 5
Héritage des fonctions
Les fonctions peuvent être appelées dans le même environnement et à partir d’environnements enfants dans la hiérarchie ci-dessous. La syntaxe d’appel dépend de l’emplacement de la fonction et de l’emplacement à partir duquel elle est appelée. Vous trouverez ci-dessous les différentes façons d’appeler des fonctions au sein d’une configuration multi-hiérarchie.
Remarque
Si une fonction fait référence à des ressources telles que les vitesses, les listes, les appels externes et les évaluations externes, les ressources sont également héritées d’environnements enfants dans la hiérarchie ci-dessous lorsque la fonction est appelée.
Appeler des fonctions créées dans le même environnement
L’exemple ci-dessous appelle une fonction à partir d’une règle où la règle et la fonction existent dans le même environnement.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Appeler des fonctions créées dans l’environnement racine
L’exemple ci-dessous appelle une fonction créée à la racine à partir d’un environnement enfant.
LET $sum = Functions.root.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Appeler des fonctions créées dans l’environnement parent
L’exemple ci-dessous appelle une fonction de l’environnement parent immédiat.
LET $sum = Functions.parent.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Appeler des fonctions créées dans n’importe quel environnement au-dessus de la pile
L’exemple ci-dessous appelle une fonction créée dans un environnement au-dessus de la pile et héritée d’une règle dans un environnement inférieur.
LET $sum = Functions.environment["environmentid"].MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Limites des fonctions et des ressources
La protection contre les fraudes a une limite sur le nombre de fonctions qui peuvent être créées par environnement et le nombre de ressources qui peuvent être référencées dans une fonction.
Ressource | Limite | |
---|---|---|
Nombre maximal de fonctions pouvant être publiées dans un environnement | 30 | |
Nombre maximal de propriétés de sortie pouvant exister dans une fonction | 30 | |
Nombre maximal de vitesses uniques qu’une fonction peut référencer | 15 | |
Nombre maximal d’appels externes qu’une fonction peut référencer | 2 | |
Nombre maximal de recherches de liste uniques qu’une fonction peut référencer | 5 | |
Nombre maximal d’évaluations externes uniques qu’une fonction peut référencer | 2 | |
Nombre maximal de fonctions qu’un jeu de règles peut appeler | 10 | |
Nombre maximal de fonctions qu’une règle de routage peut appeler | 10 | |
Nombre maximal de fonctions qu’une action post-décision peut appeler | 10 | |
Nombre maximal de ressources qu’une vélocité peut appeler | 10 |