Registar QR em SharePoint com Power Apps / Power Platform
Registar QR em SharePoint com Power Apps / Power Platform é útil para inventários, check‑ins ou rastreio de activos. Este tutorial mostra como criar uma Canvas app que usa o control BarcodeScanner para capturar um código e gravar o valor, o utilizador e a hora numa lista SharePoint.
Pré‑requisitos
- Conta com acesso ao Power Apps e ao SharePoint (permissões para criar listas).
- SharePoint Online para criar uma lista onde gravar os scans.
- Power Apps Mobile ou browser com câmara (o BarcodeScanner funciona melhor no telemóvel).
Passo 1: Criar a lista SharePoint
Cria uma lista nova chamada QRLog com colunas básicas. Exemplo de colunas:
Title (Single line) – pode usar para identificar o registo
Barcode (Single line)
ScannedBy (Single line)
ScannedAt (Date and Time)
Deixa a coluna Title obrigatória (ou utiliza outra lógica) — vamos preenchê‑la automaticamente na app.
Passo 2: Criar a Canvas app e ligar a lista
No Power Apps Studio cria uma Canvas app (recomenda‑se o layout para telemóvel). Em Data, adiciona a fonte de dados SharePoint e escolhe a lista QRLog.
Passo 3: Inserir o BarcodeScanner e um EditForm
No ecrã principal insere um BarcodeScanner (p.ex. BarcodeScanner1) e um EditForm (FormScan) ligado a QRLog. Define o FormMode para New:
FormScan.Mode = FormMode.New
FormScan.DataSource = QRLog
FormScan.Item = Defaults(QRLog)
Inclui os DataCards para Barcode, Title, ScannedBy e ScannedAt (o EditForm gera‑os automaticamente se escolheres os campos).
Passo 4: Preparar variáveis e ligar o scan ao formulário
Vamos usar uma variável para guardar temporariamente o valor do scanner e preencher os DataCards antes de submeter.
Seleciona o control BarcodeScanner1 e, na propriedade OnScan, coloca:
Set(varScannedValue, BarcodeScanner1.Value);
Set(varScannedTime, Now());
Set(varScannedBy, User().FullName);
SubmitForm(FormScan)
Agora ajusta os DataCards para usar essas variáveis como valores por omissão:
/* No DataCardValue do campo Barcode */
DataCardValue_Barcode.Default = varScannedValue
/* No DataCardValue do campo ScannedAt */
DataCardValue_ScannedAt.Default = varScannedTime
/* No DataCardValue do campo ScannedBy */
DataCardValue_ScannedBy.Default = varScannedBy
/* Opcional: Title automático */
DataCardValue_Title.Default = "Scan-" & Text(varScannedTime, "yyyy-mm-dd_hhmmss")
Notas: se os nomes dos DataCardValue forem diferentes, ajusta conforme. O SubmitForm enviará os valores actuais do formulário para o SharePoint.
Passo 5: Tratar sucesso e erro
Para confirmar que a submissão correu bem, usa os eventos OnSuccess e OnFailure do FormScan. Exemplos simples:
/* FormScan.OnSuccess */
Notify("Scan registado com sucesso", NotificationType.Success);
ResetForm(FormScan);
Set(varScannedValue, "");
/* FormScan.OnFailure */
Notify("Erro ao registar. Verifica ligação e permissões.", NotificationType.Error);
Estas acções limpam o formulário e informam o utilizador.
Erros comuns e como resolver
- O BarcodeScanner não abre a câmara no browser: testa a app no Power Apps mobile (iOS/Android) — a funcionalidade pode ser limitada no browser.
- Permissões da lista: confirma que a conta usada tem permissões para adicionar itens à lista do SharePoint.
- Campos não aparecem no Form: abre o formulário, escolhe Edit Fields e adiciona os campos correctos (Barcode, ScannedBy, ScannedAt, Title).
- Formato de data: se o ScannedAt estiver incorrecto, confirma o tipo de coluna no SharePoint (Date and Time) e o formato usado no Default.
Verificar o resultado
Abre a lista QRLog no SharePoint e verifica se aparecem novos itens com o valor do código, o nome do utilizador e o timestamp. No Power Apps, testa a app num telemóvel: abre, pressiona o BarcodeScanner, escaneia um QR e observa as notificações de sucesso.
Conclusão
Agora tens uma Canvas app simples que regista QR/Barcode em SharePoint com Power Apps / Power Platform, sem código complexo. Próximos passos: adicionar geolocalização com Location, suportar modo offline usando Collections e SaveData/LoadData, ou validar duplicados antes de gravar. Dica: testaste a leitura em várias condições de luz e ângulos para garantir a robustez do BarcodeScanner?