Complementos con poco código

Completado

Los complementos con poco código de Dataverse ayudan a los creadores a centralizar la lógica de Power Fx y a ejecutarla bajo demanda o en respuesta a un evento de tabla de Dataverse. Con los complementos con poco código, los creadores pueden usar Power Fx para algo que antes solo se podía hacer con programación .NET tradicional.

Puede crear complementos con poco código para resolver dos problemas comunes que pueden ocurrir al crear una aplicación o automatización:

  • Al hacer una aplicación de lienzo de Microsoft Power Apps, puede repetir las mismas expresiones de Power Fx varias veces dentro de una sola aplicación o en varias aplicaciones. Esta duplicación crea un problema de mantenimiento porque, si necesita actualizar la lógica, debe actualizarla en varios lugares.

    Al crear un complemento con poco código, puede centralizar su lógica de Power Fx y reutilizarla desde múltiples aplicaciones de Power Apps o flujos de Microsoft Power Automate.

  • Cuando coloca su lógica dentro de una aplicación o flujo que crea o actualiza una fila de la tabla, la lógica solo se ejecuta cuando la aplicación o el flujo crea o actualiza la fila de la tabla. Si alguien crea una nueva aplicación o flujo y luego olvida agregar la misma lógica, no se ejecuta. Por lo tanto, los datos no se procesan según un conjunto de reglas uniforme.

    Al crear un complemento que se ejecuta en un evento de tabla, como cuando alguien crea o actualiza una fila, su lógica siempre se ejecuta, independientemente de la aplicación o el flujo que crea o modifica los datos.

Complementos bajo demanda

Los complementos bajo demanda solo se ejecutan cuando los invoca desde una expresión de Power Apps o un paso de flujo de Power Automate. Este tipo de complemento se denomina complemento instantáneo. Es instantáneo porque ejecuta la lógica de Power Fx inmediatamente y le da los resultados cuando lo invoca.

Cuando crea un complemento instantáneo, puede proporcionar parámetros de entrada que le permitan pasar datos al complemento. La lógica de Power Fx puede utilizar estos parámetros. Los parámetros contribuyen a que la lógica Power Fx del complemento sea independiente de la aplicación que lo invoca. También puede definir parámetros de salida para que la lógica Power Fx devuelva valores al invocador del complemento instantáneo.

Por ejemplo, imagine que tiene números de cuenta y desea validar si el valor del número de cuenta es válido o no. En este ejemplo, supongamos que los números de cuenta correctos deben comenzar con dos caracteres alfabéticos (A-Z) seguidos de un número de cuatro dígitos. Por lo tanto, la cuenta AA9999 sería válida, mientras que la cuenta A999CCC no lo sería.

Para implementar este ejemplo como un complemento con poco código, crearía un complemento instantáneo llamado IsValidAccountNumber. Luego, definiría un parámetro de entrada de AccountNumber como un tipo de datos de cadena. Usaría fórmulas de Power Fx para evaluar el contenido de AccountNumber a fin de determinar si es válido. A continuación, definiría un parámetro de salida de tipo booleano denominado Valid para indicarle a la persona que llama si el número de cuenta es válido. La expresión se parecería al siguiente ejemplo de lógica de complementos:

{Valid: IsMatch(AccountNumber,"^[A-Za-z]{2}\d{4}$")}

Muchas aplicaciones y flujos podrían reutilizar esta lógica de validación de datos y usted usaría la misma lógica siempre. Cada aplicación o flujo podría tener la flexibilidad de determinar cuándo informar sobre la validación y qué hacer en caso de que el número de cuenta no sea válido.

Complementos automatizados

Los complementos automatizados siempre están vinculados a un evento de fila de tabla Dataverse, como crear, actualizar o eliminar. Dataverse ejecuta este tipo de complemento cuando ocurre el evento. No está controlado por ninguna aplicación o flujo. A diferencia de un complemento instantáneo, donde puede proporcionar los parámetros de entrada, los complementos automatizados solo tienen un único parámetro, la fila de datos, que es el destino del evento.

Como en el ejemplo anterior, imagine que desea asegurarse de que la columna Número de cuenta en cualquier fila de la tabla Solicitud de servicio sea válida. Si la columna no es válida, no quiere permitir que se realice el cambio.

Para implementar este escenario, crearía un complemento automatizado y, luego, lo asociaría con las operaciones de creación y actualización de la tabla Solicitud de servicio de Dataverse. La lógica verificará el valor del Número de cuenta y, si no es válido, generará un error que evitará que la operación Dataverse finalice. La expresión del complemento se parecerá al siguiente ejemplo de lógica:

If(!IsMatch(ThisRecord.contoso_accountnumber,"^[A-Za-z]{2}\d{4}$"), Error({ Kind: ErrorKind.Validation , Message: "Account number must be 6 characters that start with two letters followed by 4 digits" }))

Esta lógica de validación de datos siempre se ejecuta, independientemente de si crea o actualiza la fila desde una aplicación, un flujo, un copiloto o mediante la API Dataverse con código tradicional. Esta separación hace que los complementos automatizados sean una excelente opción para garantizar que su lógica se ejecute de manera uniforme.