green reptile

💡 Introducción: La Evolución de la Barra de Comandos

Tradicionalmente, la personalización de la barra de comandos (el Ribbon) en Model-Driven Apps y Dynamics 365 requería complejas soluciones basadas en JavaScript, herramientas de terceros y el tedioso Ribbon Workbench.

Hoy, la Microsoft Power Platform ha revolucionado esta experiencia al integrar Power Fx, el lenguaje de expresiones de bajo código que usamos en Canvas Apps, directamente en la lógica de los comandos. Esto permite a los Makers crear comandos dinámicos, contextuales y eficientes sin escribir ni una línea de código tradicional.

El objetivo de este artículo es mostrar cómo aprovechar el Diseñador de Comandos (Command Designer) para usar Power Fx en las propiedades Visible y Action de nuestros botones, transformando la experiencia del usuario.

🛠️ Entendiendo el Diseñador de Comandos

El Diseñador de Comandos es la interfaz visual que nos permite crear, ocultar o modificar los botones en la barra de comandos para Tablas (formularios y vistas) y Sub-cuadrículas.

Contexto y Alcance de Power Fx en Comandos

Power Fx en Model-Driven Apps opera en un contexto ligeramente diferente al de Canvas Apps. Las fórmulas se evalúan en función del registro o la vista que se esté mostrando.

Propiedad del BotónUso de Power FxVariables de Contexto Clave
VisibleFórmula que devuelve true o false. Controla si el botón se muestra al usuario.Self.Selected.Item (registro actual), Self.Selected.AllItems (registros de vista/subcuadrícula)
ActionFórmula que se ejecuta al hacer clic en el botón.MapsPatchNotifyLaunch (todas disponibles)

💻 Integrando Acciones de Flujos de Nube con Launch

Una de las integraciones más poderosas es la capacidad de iniciar un Flujo de Nube (Power Automate) contextual directamente desde un botón de la barra de comandos, usando la función Launch.

Lanzando un Flujo de Instancia (Instant Flow)

Para conectar un botón con un flujo, el Flujo de Nube debe usar el disparador «Manually trigger a flow» (v2), el cual puede aceptar el Contexto de Dataverse.

Pasos Clave de Integración:

  1. Crea el Flujo de Nube y asegúrate de que acepte la Fila de Dataverse (Record) como entrada.
  2. En el Diseñador de Comandos, usa la función Launch en la propiedad Action.

Ejemplo de Action (Power Fx):

Queremos lanzar un flujo que procese el registro de Cuenta actual.

Launch(
    "https://make.powerautomate.com/environments/[EnvId]/flows/[FlowId]/run",
    {
        recordId: Self.Selected.Item.'Cuenta (Account)'.Account, // Pasa el ID del registro
        recordLogicalName: "account"
    }
);

Notify("Procesando la cuenta, recibirá una notificación al terminar.", NotificationType.Success)

Al utilizar esta técnica, el flujo recibe el ID del registro, permitiéndole ejecutar lógica de negocio avanzada (generación de documentos, comunicación con APIs externas, etc.) sin impactar el rendimiento del formulario.

✍️ Mini Ejercicio Práctico: Botón Condicional

Escenario: En la tabla «Proyecto», queremos un botón llamado «Aprobar» que solo sea visible si el campo «Estatus de Aprobación» es «Pendiente».

Pasos a Seguir:

  1. Abre la Model-Driven App en Power Apps Maker Portal y selecciona Comandos.
  2. Selecciona la tabla Proyecto y elige la ubicación (ej. Main form).
  3. Crea un Nuevo Comando (botón).
  4. En la propiedad Visible (Visibility), ingresa la siguiente fórmula Power Fx (asumiendo que el nombre lógico del campo es cr_estatusaprobacion y el valor de pendiente es 1):
If(Self.Selected.Item.'cr_estatusaprobacion' = 1, true, false)
  1. En la propiedad Action, puedes usar un simple Notify("Proyecto aprobado temporalmente") para la prueba.
  1. Guarda y publica la aplicación para verificar que el botón solo aparezca cuando el campo «Estatus de Aprobación» tenga el valor Pendiente.

📚 Fuentes Consultadas

Para dominar la personalización de la interfaz de usuario en Model-Driven Apps, consulta los siguientes recursos de Microsoft Learn:

📌 Conclusión: El Futuro del Desarrollo Low-Code

La llegada de Power Fx al Diseñador de Comandos ha democratizado la personalización de las Model-Driven Apps. Ya no necesitas ser un desarrollador de JavaScript para crear experiencias de usuario sofisticadas y contextuales. Al dominar el uso de Power Fx en la visibilidad y acción de tus botones, puedes diseñar soluciones empresariales más intuitivas y potentes, directamente sobre la base de Dataverse.

Identifica el botón más complejo en tu Model-Driven App actual y desafíate a refactorizar su lógica de visibilidad o acción usando únicamente Power Fx.

Deja un comentario

¡Gracias por tu mensaje!

Me pondré en contacto tan rápido como pueda.

Descubre más desde Power Platform En Español

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo