(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como criar um scanner de códigos de barras em Power Apps / Power Platform

João Barros 11 de October de 2026 4 min de leitura

Este tutorial mostra como criar um scanner de códigos de barras em Power Apps / Power Platform que usa a câmara do telemóvel para ler códigos e gravar resultados em SharePoint ou Dataverse — útil para inventário, registo de ativos ou triagem rápida. Explicarei o porquê das escolhas e um passo-a-passo prático, incluindo tratamento de erros comuns.

Pré-requisitos

  • Conta com licença Power Apps e acesso para criar Canvas Apps.
  • Um site SharePoint com uma lista ou um ambiente Dataverse (escolhe onde guardar os registos).
  • Telemóvel com câmara e a aplicação Power Apps instalada para testar o scanner.

Passo 1: Criar a lista em SharePoint (ou tabela em Dataverse)

Precisamos de um local para guardar os dados lidos. Se optares por SharePoint, cria uma lista com colunas simples: Title (único), BarcodeText, DataHora, Observações. Em Dataverse cria uma tabela com colunas equivalentes.

Passo 2: Criar um Canvas App em branco

Cria um Canvas App (Phone layout) no Power Apps Studio. O Phone layout facilita o uso da câmara. Nomeia a app como 'ScannerBarcodeApp' para fácil identificação.

Passo 3: Adicionar a câmara de scanner

Usa o controlo BarcodeScanner incorporado. Este controlo simplifica a leitura de códigos 1D e 2D sem bibliotecas externas.

Inserir > Media > BarcodeScanner

Define propriedades essenciais: OnScan para tratar o resultado e Visible para controlar quando mostrar o scanner.

Passo 4: Guardar o resultado na fonte de dados

Adiciona a ligação à lista SharePoint (ou Dataverse). Depois usa a função Patch ou Collect no evento OnScan do BarcodeScanner para gravar. Explicação: Patch permite criar um novo registo e devolver erros; Collect cria sem feedback imediato.

// 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)
)

Passo 5: Mostrar feedback e evitar leituras duplicadas

É comum o scanner ler o mesmo código várias vezes. Usa uma variável para debouncing e uma verificação de duplicados antes de gravar.

// 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)
)

Passo 6: Tratar erros e melhorar a experiência

Trata cenários comuns: sem permissão de câmara, código ilegível, ou problemas de rede. Usa IfError, Notify e verifica permissões com 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 o resultado

Testa na aplicação móvel do Power Apps: abre a app no telemóvel, permite acesso à câmara, lê um código e confirma se o registo aparece na lista SharePoint (ou tabela Dataverse). Verifica as mensagens Notify e confirma se os duplicados são prevenidos. Erros comuns: câmara bloqueada, nome da lista diferente, ou colunas ausentes — ajusta os nomes nas fórmulas.

Conclusão

Agora tens um scanner de códigos de barras funcional em Power Apps / Power Platform que grava para SharePoint ou Dataverse e trata duplicados e permissões. Próximos passos: adicionar a identificação do tipo de código (QR vs EAN), obter informações externas via Custom Connector, ou mostrar a imagem do produto após a leitura. Dica: testa em diferentes condições de iluminação para melhorar a taxa de leitura — qual será o próximo campo que queres automatizar no inventário?