Complementos automatizados

Completado

Los complementos automatizados con poco código trabajan con la ejecución de su lógica de Power Fx en respuesta a los eventos de tabla de Microsoft Dataverse. Al crear su complemento, puede elegir una tabla Dataverse y el evento que desea gestionar.

Puede elegir que la lógica del complemento se ejecute en función de uno o más de los siguientes eventos.

  • Creado: cuando alguien crea una fila de la tabla Dataverse.

  • Actualizado: cuando alguien modifica una fila de la tabla Dataverse, lo que incluye las columnas.

  • Eliminado: cuando alguien elimina una fila de la tabla Dataverse.

Si desea que se ejecute la misma lógica en varias tablas, debe crear complementos separados para cada tabla.

Cuando se ejecuta el complemento

De forma predeterminada, la lógica del complemento se ejecuta después de que ocurra el evento tras la operación. Por ejemplo, si elige el evento Creado, la lógica se ejecuta después de crear la fila Dataverse. Este evento es útil si desea crear filas de datos relacionados en su complemento. Por ejemplo, si el complemento se ejecuta en la creación de filas en la tabla Project, su lógica podría agregar automáticamente al usuario que creó la fila como miembro del equipo de Project.

Si ejecuta el complemento después de crear la fila, no podrá verificar si la fila es válida y detener luego la creación. En la sección Opciones avanzadas, puede modificar la opción Cuándo debe ejecutarse para que sea antes de la operación y no después. Esta configuración hace que la lógica del complemento se ejecute antes de crear la fila, de modo que pueda detener la creación devolviendo un Error(). En el siguiente ejemplo, desea deshabilitar la eliminación de una fila de la tabla Contact si el Estado es Activo. Para lograrlo, debe registrar el complemento como previo al evento Eliminado en la tabla Contact. La lógica verificaría si la fila de datos está inactiva y, de no ser así, le indicaría al usuario que primero debe desactivar la fila. El siguiente ejemplo muestra la expresión para el complemento:

If(ThisRecord.Status = 'Status (Contacts)'.Active, Error("You must deactivate the row first"))

Otro caso de uso para configurar el complemento de modo que ejecute la operación previa es si la lógica de su complemento necesita modificar la fila antes de crearla. Al seleccionar actualizar una fila antes de crearla, puede evitar la sobrecarga de una actualización adicional, ya que el sistema actualiza la fila antes de guardarla en Dataverse. Por ejemplo, supongamos que desea marcar cualquier fila de Contact que cree con (Datos de prueba) como el sufijo de la columna Last Name. Puede lograrlo configurando un complemento en la tabla Contact para el evento Creado y la etapa previa a la operación. La fórmula tendría un aspecto similar al de la siguiente lógica de ejemplo.

Set('Last Name', Concatenate(ThisRecord.'Last Name',"(Test Data)"))

Otro ejemplo del uso de complementos automatizados para implementar la lógica empresarial: desea crear la siguiente lógica automatizada en una tabla Project.

  • Valide columnas específicas en la fila Project antes de crearla.

  • Obtenga un código de proyecto a partir de otros datos en la fila y, luego, almacene el código de proyecto en la fila en el momento de la creación de la fila.

  • Cree automáticamente una fila Project Team (en la tabla independiente Project team) que la lógica asocie con la fila de Project creada en esta tabla de Project, y añada al usuario creador como miembro inicial del equipo.

El objeto visual anterior le propone que implemente tres complementos con poco código para cumplir los requisitos. Los tres complementos se ejecutan en el evento Creado de la tabla Project. La siguiente lista describe por qué cada complemento está configurado para la etapa específica.

  • Validar proyecto: este complemento se ejecuta antes de la operación porque lo que usted quiere es detener la creación de la fila del proyecto si existen datos no válidos.

  • Actualizar código de proyecto: este complemento se ejecuta antes de la operación para que pueda modificar la fila de Project a fin de agregar el código del proyecto antes de que alguien cree la fila de datos en Dataverse. Si bien puede combinar esta lógica en el complemento Validar proyecto, mantenerlas separadas contribuirá a que sea más fácil de controlar.

  • Agregar creador a la tabla Project team: este complemento debe ejecutarse después de la operación porque necesita que la fila de Project esté en Dataverse para poder asociar esa fila con la nueva fila Project Team que se crea.

Múltiples automatizaciones en el mismo evento

Cuando crea complementos con poco código para ejecutar en un evento, debe valorar disponer de otra automatización que se active también en el mismo evento y para la misma tabla. Dataverse hace posible que los flujos y complementos de código tradicionales de Power Automate se ejecuten en los mismos eventos. Podría tener un complemento con poco código, un complemento de código tradicional y un flujo de Power Automate ejecutándose simultáneamente en la misma combinación de tabla/evento. Antes de agregar automatización, debe evaluar siempre qué automatización existente está en curso y asegurarse de que no haya conflictos.

También debe tener en cuenta el impacto de la lógica que coloca en sus complementos, ya que puede provocar la ejecución de otros complementos o flujos. Por ejemplo, si actualiza la fila de datos en la operación posterior en la lógica de su complemento, esto puede desencadenar otras automatizaciones. Asegúrese de especificar solo las columnas en las que necesita cambiar los valores.

Evitar los bucles infinitos

Los complementos con poco código se ejecutan en el desencadenador del evento Actualizado si cambian los valores en la fila de datos. Si el complemento se ejecuta después de la operación y la lógica actualiza la misma fila que activó el complemento, se genera un bucle infinito y la operación falla. Si necesita actualizar la fila que inició el evento, utilice un complemento en la etapa previa a la operación.