PowerLens
Todas las publicaciones
Power Apps8 de julio de 2025· 4 min de lectura

Reemplaza los formularios predeterminados de SharePoint con formularios personalizados en Power Apps

J

Juan Carlos Santiago

Reemplaza los formularios predeterminados de SharePoint con formularios personalizados en Power Apps

¿Por qué reemplazar los formularios predeterminados de SharePoint?

Los formularios estándar de SharePoint son funcionales, pero tienen limitaciones importantes. No permiten personalizaciones avanzadas, validaciones complejas, o flujos de trabajo condicionales sofisticados. Power Apps te ofrece un control total sobre la experiencia del usuario, permitiéndote crear interfaces intuitivas, validaciones en tiempo real y lógica de negocio compleja.

Al migrar a formularios de Power Apps personalizados, logras:

  • Mayor control visual: Diseña la interfaz exactamente como necesitas
  • Validaciones avanzadas: Implementa reglas de negocio complejas
  • Mejor experiencia móvil: Formularios responsivos y optimizados
  • Automatizaciones integradas: Conecta con Power Automate directamente
  • Campos calculados dinámicos: Actualiza valores en tiempo real

Paso a paso: Creando tu primer formulario personalizado

Paso 1: Preparar la conexión a SharePoint

Primero, abre Power Apps Studio y crea una nueva aplicación de lienzo (Canvas App). Agrega una conexión a tu sitio de SharePoint:

1. Selecciona "Datos" en el panel izquierdo
2. Haz clic en "Agregar datos"
3. Busca y selecciona tu sitio de SharePoint
4. Elige la lista que deseas personalizar

Paso 2: Insertar controles básicos

Crea la estructura de tu formulario con controles estándar:

// Para un campo de texto simple
TextInput_Nombre.Value

// Para un campo de fecha
DatePicker_Fecha.Value

// Para un campo de número
Value(TextInput_Cantidad.Value)

Organiza los controles en secciones lógicas usando contenedores para mantener la coherencia visual.

Paso 3: Guardar datos en SharePoint

Crea un botón de guardar con esta lógica:

Patch(
    'Mi Lista SharePoint',
    Defaults('Mi Lista SharePoint'),
    {
        Title: TextInput_Nombre.Value,
        Descripcion: TextArea_Descripcion.Value,
        FechaVencimiento: DatePicker_Fecha.Value,
        Estado: Dropdown_Estado.Value
    }
);
Notify("Registro guardado exitosamente", NotificationType.Success)

Manejo de casos complejos

Columnas de búsqueda (Lookups)

Las columnas de búsqueda requieren un enfoque especial. Usa un combo box en lugar de un dropdown:

// En las propiedades del ComboBox
Items: 'Lista Relacionada'
Value: ThisItem.LookupColumn.Value

// Al guardar
Patch(
    'Mi Lista',
    ThisItem,
    {
        ClienteLookup: ComboBox_Cliente.Selected
    }
)

Selectores de personas (People Picker)

Para campos de personas, utiliza el control PeoplePicker oficial:

// En la propiedad Value del PeoplePicker
Value: ThisItem.'Aprobador@odata.navigationProperty'

// Al guardar
Patch(
    'Mi Lista',
    ThisItem,
    {
        Aprobador: PeoplePicker_Aprobador.SelectedPeople
    }
)

Manejo de adjuntos

Este es uno de los desafíos más frecuentes. Power Apps no tiene un control nativo para adjuntos de SharePoint, pero puedes usar este enfoque:

// Usar el control de carga de archivos
AddColumns(
    'Mi Lista',
    "URL Adjunto",
    Attachment_Control.Value
)

// Para guardar el archivo primero en una ubicación (OneDrive/SharePoint)
// Luego vincularlo a la lista mediante una columna de URL
Patch(
    'Mi Lista',
    ThisItem,
    {
        URLAdjunto: Attachment_Control.Value
    }
)

Alternativamente, considera almacenar archivos en OneDrive e incluir enlaces en tu formulario.

Errores comunes y cómo evitarlos

❌ No validar datos antes de guardar

// ✅ Correcto: Validar antes de guardar
If(
    IsBlank(TextInput_Nombre.Value),
    Notify("El nombre es obligatorio", NotificationType.Error),
    Patch('Mi Lista', ...)
)

❌ Olvidar desconectar flujos cuando migras

Asegúrate de que los flujos de Power Automate apunten a tus nuevos formularios.

❌ No manejar la concurrencia

Cuando múltiples usuarios editan el mismo elemento:

IfError(
    Patch('Mi Lista', ThisItem, {...}),
    Notify("Error: Otro usuario modificó este registro", NotificationType.Error)
)

❌ Ignorar el rendimiento en listas grandes

Usa delegación y filtros en lugar de cargar todos los datos:

// ✅ Correcto: Delegar a SharePoint
Filter('Mi Lista', StartsWith(Title, TextInput_Busqueda.Value))

Pro Tip 💡

Antes de implementar en producción, prueba el formulario con datos reales en un ambiente de desarrollo. Documenta todos los flujos de trabajo integrados y crea un registro de cambios. Considera implementar versionado de formularios para poder revertir cambios rápidamente si es necesario. Finalmente, establece un plan de capacitación para los usuarios finales mostrándoles las nuevas funcionalidades y ventajas de los formularios personalizados.

#power-apps#sharepoint#formularios-personalizados#desarrollo#buenas-prácticas