Cómo crear un escáner de códigos de barras en Power Apps / Power Platform
Este tutorial muestra cómo crear un escáner de códigos de barras en Power Apps / Power Platform que usa la cámara del móvil para leer códigos y grabar resultados en SharePoint o Dataverse — útil para inventario, registro de activos o cribado rápido. Explicaré por qué se toman las decisiones y un paso a paso práctico, incluyendo el tratamiento de errores comunes.
Requisitos previos
- Cuenta con licencia Power Apps y acceso para crear Canvas Apps.
- Un sitio SharePoint con una lista o un entorno Dataverse (elige dónde guardar los registros).
- Móvil con cámara y la aplicación Power Apps instalada para probar el escáner.
Paso 1: Crear la lista en SharePoint (o tabla en Dataverse)
Necesitamos un lugar para guardar los datos leídos. Si optas por SharePoint, crea una lista con columnas simples: Title (único), BarcodeText, DataHora, Observações. En Dataverse crea una tabla con columnas equivalentes.
Paso 2: Crear un Canvas App en blanco
Crea un Canvas App (Phone layout) en Power Apps Studio. El Phone layout facilita el uso de la cámara. Nombra la app como 'ScannerBarcodeApp' para fácil identificación.
Paso 3: Añadir la cámara de escáner
Usa el control BarcodeScanner incorporado. Este control simplifica la lectura de códigos 1D y 2D sin bibliotecas externas.
Inserir > Media > BarcodeScanner
Define propiedades esenciales: OnScan para procesar el resultado y Visible para controlar cuándo mostrar el escáner.
Paso 4: Guardar el resultado en la fuente de datos
Añade la conexión a la lista SharePoint (o Dataverse). Luego usa la función Patch o Collect en el evento OnScan del BarcodeScanner para grabar. Explicación: Patch permite crear un nuevo registro y devolver errores; Collect crea sin retroalimentación inmediata.
// Exemplo usando Patch para SharePoint
OnScan =
If(
!IsBlank(BarcodeScanner1.Value),
Patch(
'ListaInventario',
Defaults('ListaInventario'),
{
Title: BarcodeScanner1.Value,
BarcodeText: BarcodeScanner1.Value,
DataHora: Now(),
Observações: "Lido via BarcodeScanner"
}
);
Notify("Código gravado com sucesso", NotificationType.Success),
Notify("Erro ao ler ou gravar o código", NotificationType.Error)
)
Paso 5: Mostrar feedback y evitar lecturas duplicadas
Es común que el escáner lea el mismo código varias veces. Usa una variable para debouncing y una comprobación de duplicados antes de grabar.
// Variável para evitar leituras rápidas em OnScan
Set(varLastScan, BarcodeScanner1.Value);
Set(varScanTime, Now());
// Verificar duplicado (exemplo SharePoint)
If(
CountRows(Filter('ListaInventario', BarcodeText = varLastScan)) = 0,
// Guardar
Patch('ListaInventario', Defaults('ListaInventario'), { Title: varLastScan, BarcodeText: varLastScan, DataHora: Now() }),
Notify("Código já existe", NotificationType.Information)
)
Paso 6: Manejar errores y mejorar la experiencia
Gestiona escenarios comunes: sin permiso de cámara, código ilegible o problemas de red. Usa IfError, Notify y verifica permisos con App.IsDevicePermissionGranted('Camera').
// Exemplo de verificação de permissão antes de mostrar scanner
If(
App.IsDevicePermissionGranted("Camera"),
Set(varShowScanner, true),
RequestDevicePermissions("Camera")
)
// Exemplo simples de tratamento de erro no Patch
IfError(
Patch('ListaInventario', Defaults('ListaInventario'), { Title: varLastScan, BarcodeText: varLastScan, DataHora: Now() }),
Notify("Falha ao gravar. Tenta novamente.", NotificationType.Error)
)
Verificar el resultado
Prueba en la aplicación móvil de Power Apps: abre la app en el móvil, permite acceso a la cámara, lee un código y confirma si el registro aparece en la lista SharePoint (o tabla Dataverse). Verifica los mensajes Notify y confirma si se previenen los duplicados. Errores comunes: cámara bloqueada, nombre de la lista diferente o columnas ausentes — ajusta los nombres en las fórmulas.
Conclusión
Ahora tienes un escáner de códigos de barras funcional en Power Apps / Power Platform que graba en SharePoint o Dataverse y trata duplicados y permisos. Próximos pasos: añadir la identificación del tipo de código (QR vs EAN), obtener información externa vía Custom Connector, o mostrar la imagen del producto tras la lectura. Consejo: prueba en diferentes condiciones de iluminación para mejorar la tasa de lectura — ¿cuál será el próximo campo que quieres automatizar en el inventario?