Funciones
Dynamics 365 Fraud Protection le ofrece la flexibilidad de crear funciones que puede usar para realizar una tarea específica. Por ejemplo, puede usar funciones para combinar grupos de código que se deben ejecutar juntos. O bien, puede usar funciones para reutilizar el código, donde escribe el código una vez y accede a él desde otros lugares, lo que facilita el mantenimiento del código. En ese ejemplo, si desea llamar a un servicio externo para capturar un valor de él, la lógica se puede definir dentro de una función y la función se puede invocar desde otros recursos.
Definir una función
Las funciones constan de parámetros de entrada y propiedades de salida.
Parámetros de entrada
Las funciones pueden definir parámetros que se pasarán a la función en el momento de la invocación. Los parámetros de entrada se definen en la definición de función. El número de parámetros pasados a la función en la invocación debe coincidir exactamente con el número de parámetros definidos para la función. Los parámetros definidos se pueden usar dentro de las propiedades de salida para devolver un valor. Para obtener más información, consulte Propiedades de salida. La definición de parámetros de entrada es opcional.
Los parámetros de entrada constan de las tres partes siguientes.
Nombre del parámetro: un nombre al que se puede hacer referencia al parámetro.
Tipo de datos: cada parámetro de entrada debe tener un tipo de datos asociado. El tipo de datos que especifique convierte el valor del parámetro en el tipo correspondiente. Las funciones admiten los tipos de datos enumerados en la tabla siguiente.
Tipo de datos Valor de ejemplo Boolean True DateTime 22 de febrero de 2024 4:44PM Doble 10.0 Entero 10 Cadena "Hello" Valor predeterminado: se requiere un valor predeterminado para cada parámetro. El valor predeterminado se usa durante "Evaluación de funciones" o si hay un problema con la invocación de función.
Propiedades de salida
Puede definir el valor devuelto de una función mediante propiedades de salida. Las propiedades de salida usan la lógica "Lenguaje de consulta de fraude (FQL)" para devolver un valor de la función. A continuación, se puede acceder a las propiedades de salida desde otras funciones, reglas, velocidades, reglas de acción posteriores a la decisión y reglas de enrutamiento cuando se invoca la función. Una función puede tener hasta 30 propiedades de salida. Para obtener más información sobre FQL y cómo usarlo, consulte La guía de referencia del lenguaje.
Las propiedades de salida constan de las cuatro partes siguientes.
Descripción de la propiedad: descripción de la propiedad. La descripción es opcional.
Tipo de datos: tipo de datos del valor que se devuelve de la propiedad . Las funciones admiten todos los tipos de datos primitivos, como booleano, datetime, double, entero y cadena. Cada vez que se realiza un cambio importante en la propiedad de salida de una función a la que se hace referencia en otros recursos, el valor predeterminado de la propiedad de salida original "tipo de datos" se usa como reserva para continuar con la ejecución del recurso. Se recomienda actualizar los recursos después de realizar cambios importantes.
Valor predeterminado: el valor predeterminado se devuelve como resultado de una función cuando se encuentra una excepción durante la evaluación de la propiedad. Por ejemplo, las excepciones de división por 0 y Referencia nula.
Editor de código para devolver un valor: el editor de código se usa para devolver un valor de la función . A continuación se muestran maneras de devolver un valor de salida.
Los parámetros de entrada definidos dentro de una función se pueden usar para devolver valores.
Ejemplo de una propiedad de salida que devuelve un parámetro de entrada como valor devuelto. Para obtener más información sobre cómo definir parámetros de entrada, consulte la sección Parámetros de entrada anteriormente en este artículo.
RETURN _number1 + _number2
Los atributos de solicitud y respuesta (incluidos los datos personalizados) de una evaluación que contiene la regla que invoca la función. Puede acceder a estos atributos con el @ operador . Por ejemplo, @"salesTax".
Ejemplo de función mediante atributos de solicitud:
RETURN @"salesTax"
Datos de enriquecimiento de Protección contra fraudes. Por ejemplo, Geo.CountryCode().
Ejemplo de función mediante riskscore:
RETURN Geo.CountryCode(@"deviceContext.ipAddress")
Muestra las listas que se cargan en Protección contra fraudes. Para obtener información sobre cómo cargar listas, consulte Administrar listas.
Ejemplo de función mediante list:
RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
Velocidades definidas en Protección contra fraudes. Para más información, vea Realizar comprobaciones de velocidad.
Ejemplo de función mediante la velocidad:
RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
Llamadas externas que se crearon en Protección contra fraudes. Para obtener más información, consulte Llamadas externas.
Ejemplo de función mediante llamadas externas:
RETURN External.weather("Seattle").id
Evaluaciones externas creadas en Protección contra fraudes. Para obtener más información, vea Evaluaciones externas.
Ejemplo de una función que invoca la evaluación externa:
LET $result = Assessments.myAssessment.Evaluate($baseInput = @@) RETURN $result.ToStr()
Función de acceso dentro de las funciones.
Ejemplo de una función que invoca otra función:
RETURN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
Nota:
Puede crear funciones en cualquier entorno de la pila de varias jerarquías. Cuando una función hace referencia a recursos como velocidades, llamadas externas, listas y evaluaciones externas que están disponibles en el entorno, los entornos inferiores que invocan la función también heredan los recursos a los que hace referencia la función. Por ejemplo, si crea una función en la raíz que hace referencia a una llamada externa para devolver un valor, el entorno secundario que invoca la función también puede tener acceso al resultado de esa llamada externa. Para obtener más información sobre cómo heredar e invocar funciones, consulte la sección Herencia de funciones más adelante en este artículo.
Publicación de una función
En el portal protección contra fraudes, seleccione Funciones en la barra de navegación y, a continuación, seleccione Nueva función. Protección contra fraudes crea una función de borrador que se muestra solo para usted (el creador de la función). Todos los cambios que realice en el borrador se guardan automáticamente.
Para definir una nueva función desde cero, consulte la sección Definición de una función anteriormente en este artículo.
Para publicar la función, seleccione Publicar.
En el cuadro de diálogo de confirmación, puede cambiar el nombre y la descripción. Seleccione Publicar.
Nota:
Después de publicar la función, es visible para todos los usuarios. A continuación, se puede invocar la función dentro de otras funciones, reglas, velocidades, reglas posteriores a la decisión y reglas de enrutamiento.
Para obtener información sobre cómo usar funciones en otros recursos, como funciones, reglas, velocidades, acciones posteriores a la decisión y reglas de enrutamiento, consulte la sección Invocar funciones de recursos más adelante en este artículo.
Panel De ejemplo
Al crear o editar una función, el panel Ejemplo aparece en el lado de la página.
Las funciones no están vinculadas a ninguna evaluación. La carga de ejemplo se presenta como una guía útil para los usuarios que muestran todas las propiedades de evento a las que se puede hacer referencia en las funciones. Seleccione el tipo de evento en el campo Evento en la parte superior del panel.
La sección ejemplo de carga útil contiene un ejemplo de las propiedades que se pueden enviar en la API de solicitud para la evaluación.
Administración de una función
Para editar una función publicada anteriormente, seleccione la función y, a continuación, seleccione Editar. Se crea un borrador de la función publicada y solo está disponible para usted. Todos los cambios realizados en el borrador se guardan automáticamente. Para insertar los cambios en producción, seleccione Publicar. La función publicada anteriormente se sobrescribe con los cambios. Para descartar su borrador, seleccione Descartar.
Para eliminar una función existente, seleccione los puntos suspensivos (...) y, a continuación, seleccione Eliminar.
Para actualizar el nombre o la descripción de una función, seleccione los puntos suspensivos (...) y, a continuación, seleccione Cambiar nombre.
Para buscar una función, escriba una palabra clave en el campo Buscar . Se buscan todos los nombres y descripciones de función, y los resultados se filtran según las palabras clave de búsqueda.
Evaluación de una función
Antes de publicar una función, puede usar el panel Evaluación de funciones para asegurarse de que devuelve los resultados esperados.
- Para abrir el panel de evaluación de funciones, seleccione Expandir en la pestaña Funciones.
- Para cerrar el panel, seleccione Contraer.
Cuando se abre el panel de evaluación, la lista de propiedades de salida se muestra con su resultado. La evaluación usa valores predeterminados para los parámetros de entrada y los valores de la sección de carga de ejemplo al determinar lo que se debe devolver. Si se cambia alguno de esos valores, también se cambia la salida. De este modo, puede asegurarse de que se devuelven los valores correctos para cada propiedad de salida.
Invocación de funciones desde recursos
Las funciones publicadas se pueden invocar desde recursos como reglas, velocidades, acciones posteriores a la decisión y reglas de enrutamiento. Se puede acceder a todas las propiedades de salida definidas dentro de una función invocando la función . Los valores se pueden usar para la toma de decisiones.
Reglas
Las funciones se pueden invocar desde cualquier regla (dentro de cualquier evaluación) en el mismo entorno y desde entornos secundarios en la jerarquía siguiente. Para obtener más información sobre las reglas, consulte Reglas.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Velocidades
Las funciones se pueden invocar desde cualquier velocidad en el mismo entorno y desde entornos secundarios en la jerarquía siguiente. Para obtener más información sobre las velocidades, consulte Realizar comprobaciones de velocidad.
SELECT DistinctCount(@"device.deviceContextId") AS Devices_Per_IP
FROM AccountLogin
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum > 5
GROUPBY @"device.ipAddress"
Reglas posteriores a la decisión
Las funciones se pueden invocar desde cualquier regla de acción posterior a la decisión (dentro de cualquier evaluación) en el mismo entorno y desde entornos secundarios en la jerarquía siguiente. Para obtener más información sobre las reglas de acción posteriores a la decisión, vea Reglas de acción posteriores a la decisión.
DO SetResponse()
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum == 5
Reglas de enrutamiento
Las funciones se pueden invocar desde cualquier regla de enrutamiento en el mismo entorno y desde entornos secundarios en la jerarquía siguiente. Para obtener más información sobre las reglas de enrutamiento, consulte Administración de casos.
ROUTETO Queue("General Queue")
WHEN Functions.MyFunction(@"purchase.request.totalAmount", @"purchase.request.salesTax").Calculate_Sum > 5
Herencia de funciones
Las funciones se pueden invocar en el mismo entorno y desde entornos secundarios en la jerarquía siguiente. La sintaxis de invocación depende de dónde exista la función y de dónde se invoca. A continuación se muestran las distintas formas de invocar funciones dentro de una configuración de varias jerarquías.
Nota:
Si una función hace referencia a recursos como velocidades, listas, llamadas externas y evaluaciones externas, los recursos también se heredan de los entornos secundarios de la jerarquía siguiente cuando se invoca la función.
Invocar funciones creadas en el mismo entorno
En el ejemplo siguiente se invoca una función desde una regla en la que la regla y la función existen en el mismo entorno.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Invocar funciones creadas en el entorno raíz
En el ejemplo siguiente se invoca una función creada en la raíz desde un entorno secundario.
LET $sum = Functions.root.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Invocar funciones creadas en el entorno primario
En el ejemplo siguiente se invoca una función desde el entorno primario inmediato.
LET $sum = Functions.parent.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Invocar funciones creadas dentro de cualquier entorno encima de la pila
En el ejemplo siguiente se invoca una función creada en un entorno por encima de la pila y se hereda de una regla dentro de un entorno inferior.
LET $sum = Functions.environment["environmentid"].MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Límites de función y recursos
Protección contra fraudes tiene un límite en el número de funciones que se pueden crear por entorno y el número de recursos a los que se puede hacer referencia dentro de una función.
Recurso | Límite | |
---|---|---|
Número máximo de funciones que se pueden publicar en un entorno | 30 | |
Número máximo de propiedades de salida que pueden existir dentro de una función | 30 | |
Número máximo de velocidades únicas a las que puede hacer referencia una función | 15 | |
Número máximo de llamadas externas a las que puede hacer referencia una función | 2 | |
Número máximo de búsquedas de lista únicas a las que puede hacer referencia una función | 5 | |
Número máximo de evaluaciones externas únicas a las que puede hacer referencia una función | 2 | |
Número máximo de funciones que un conjunto de reglas puede invocar | 10 | |
Número máximo de funciones que una regla de enrutamiento puede invocar | 10 | |
Número máximo de funciones que una acción posterior a la decisión puede invocar | 10 | |
Número máximo de recursos que una velocidad puede invocar | 10 |