Power Apps es una herramienta poderosa para crear aplicaciones móviles multiplataforma y mejorar los formularios de SharePoint. Sin embargo, no es posible llamar directamente a un procedimiento almacenado de SQL Server desde Power Apps. En este artículo, exploraremos una solución a este problema utilizando Power Automate para cerrar la brecha entre Power Apps y SQL Server.
Componentes de la solución
La solución consta de tres componentes principales:
- El procedimiento almacenado: Utilizaremos un ejemplo de procedimiento almacenado para crear un inicio de sesión y un usuario en SQL Server.
- Flujo de Power Automate: Este flujo se activará por un evento en la aplicación de Power Apps y llamará al procedimiento almacenado.
- Aplicación de Power Apps: Esta aplicación servirá como punto de partida para que un usuario cree automáticamente su inicio de sesión y usuario de SQL.
Procedimiento almacenado
A continuación se muestra un ejemplo de código para crear un inicio de sesión y un usuario en SQL Server:
CREATE PROCEDURE dbo.CreateLoginAndUser(
@login VARCHAR(100),
@password VARCHAR(20),
@db VARCHAR(100))
AS
DECLARE @sql NVARCHAR(MAX)
SET @sql = 'USE ' + @db + ';' +
'CREATE LOGIN ' + @login +
' WITH PASSWORD = ''' + @password + '''; ' +
'CREATE USER pa_usr_' + @login + ' from login ' + @login + ';'
EXEC (@sql)
GO
Tenga en cuenta que el manejo de errores puede ser complicado en caso de que el flujo falle al ejecutar el procedimiento almacenado, por lo que es importante implementar validación de datos para el inicio de sesión y la contraseña en la aplicación de Power Apps.
Power Automate
Para construir el puente entre Power Apps y SQL Server, utilizaremos Power Automate. Aquí están los pasos:
- Ir a flow.microsoft.com y hacer clic en “Nuevo flujo” y elegir “Flujo en la nube instantáneo”.
- Darle un nombre a su flujo y elegir el desencadenador de PowerApps de la lista de desencadenadores.
- En el lienzo de construcción del flujo, hacer clic en “Nuevo paso” y escribir “procedimiento almacenado” en la barra de búsqueda para filtrar las acciones relevantes.
- Seleccionar la acción “Ejecutar procedimiento almacenado de SQL Server”. Tenga en cuenta que esta es una acción premium y puede requerir una licencia para escenarios de producción.
- Establecer una conexión con SQL Server haciendo clic en los tres puntos en la esquina superior derecha de la tarjeta de acción y haciendo clic en “+ Agregar nueva conexión”.
- Configurar la conexión con SQL Server.
- Establecer los parámetros requeridos para ejecutar el procedimiento almacenado haciendo clic en los campos vacíos y seleccionando “Preguntar en PowerApps”.
- Guardar el flujo e ir a Power Apps.
Power App
Para integrar la ejecución del procedimiento almacenado en la aplicación de Power Apps, siga estos pasos:
- Ir a powerapps.com y crear una nueva aplicación o abrir una aplicación existente.
- Agregar los elementos necesarios a la aplicación, como entradas de texto para el inicio de sesión y la contraseña, un menú desplegable para seleccionar el nombre de la base de datos y etiquetas para las descripciones.
- Agregar un elemento de botón y configurar su propiedad OnSelect para llamar al flujo de Power Automate.
- Pasar los valores para los parámetros esperados del procedimiento almacenado y asegurarse de que todas las entradas cumplan con los requisitos de los parámetros.
- Opcionalmente, agregar un mensaje de éxito utilizando la fórmula Notify.
- Implementar notificaciones de éxito/error a nivel de flujo utilizando acciones de Enviar un correo electrónico.
- Deshabilitar el botón de creación después de hacer clic en él para evitar múltiples ejecuciones del procedimiento almacenado.
- Opcionalmente, agregar un botón de cancelar para restablecer los campos de entrada.
Con estas configuraciones, ahora puede integrar la ejecución de un procedimiento almacenado de SQL Server en su aplicación de Power Apps.
Recuerde probar su aplicación de Power Apps a fondo y tener en cuenta las políticas de prevención de pérdida de datos que puedan afectar el flujo.
Siguiendo estos pasos, puede mejorar sus aplicaciones de Power Apps con la capacidad de llamar a procedimientos almacenados de SQL Server y automatizar tareas en su base de datos.