Precisa de um “logbook” de desenvolvimento individual que vários colaboradores preenchem ao mesmo tempo, sem ver dados uns dos outros, e que continue a evoluir sem perder histórico? Este guia prático mostra como montar essa solução no Microsoft 365 usando SharePoint/Microsoft Lists + Power Apps + permissões por item, com interface amigável e modelo flexível.
Por que um logbook evolutivo é diferente
Um registo de desenvolvimento bem‑sucedido precisa equilibrar quatro exigências: múltiplas entradas simultâneas, privacidade rigorosa (cada funcionário só vê o próprio registo; o gestor vê tudo), capacidade de evolução do esquema (adicionar/remover campos e mudar o layout) e uma interface que seja melhor do que a grelha padrão de listas. A arquitetura certa resolve tudo isso com baixo custo e alta manutenção.
Arquitetura recomendada
Consolide tudo numa única lista — sem duplicar dados — e use o Power Apps apenas como camada de apresentação.
Camada | Ferramenta Microsoft 365 | Motivo principal |
---|---|---|
Armazenamento de dados | SharePoint List / Microsoft Lists | Estrutura tabelar flexível; novos campos não corrompem linhas antigas; histórico via versionamento. |
Privacidade | Permissões por item (Definições da Lista → Avançadas → Read/Edit only items created by the user) | Cada colaborador lê/edita apenas as próprias entradas; o gestor (Owner) mantém acesso total. |
Interface | Power Apps (Customize forms) | Formulários com separadores, validações e melhor usabilidade; ligação direta à lista, sem replicar dados; pode gerar app móvel. |
Resultado: um único modelo de lista serve todas as contas; qualquer ajuste de colunas ou de layout do Power Apps atualiza‑se para todos sem tocar no conteúdo já gravado.
Passo a passo de implementação
Criar a lista “Logbook”
Em Microsoft Lists, crie a lista Logbook e ative o versionamento. Defina colunas claras desde o início (o nome interno é fixo). Um conjunto inicial robusto é:
Nome (exibição) | Nome interno sugerido | Tipo | Descrição | Obrigatório | Indexar? |
---|---|---|---|---|---|
Funcionário | Funcionario | Pessoa (apenas utilizadores) | Quem preencheu o registo (preenchido automaticamente no app). | Sim | Sim |
E‑mail do Funcionário | FuncionarioEmail | Texto (uma linha) | Auxilia filtros, RLS no Power BI e pesquisas. | Sim | Sim |
Data | DataAtividade | Data | Quando a atividade ocorreu. | Sim | Sim |
Projeto | Projeto | Texto | Nome do projeto/área de atuação. | Não | Opcional |
Tipo | TipoAtividade | Escolha | Treino, Operação, Pesquisa, Reunião, Outro… | Sim | Sim |
Duração (min) | DuracaoMin | Número | Minutos dedicados à atividade. | Não | Não |
Metas | Metas | Texto (várias linhas) | Objetivos relacionados. | Não | Não |
Observações | Observacoes | Texto (várias linhas) | Detalhes e contexto. | Não | Não |
Estado | Estado | Escolha | Aberto, Em andamento, Concluído. | Não | Sim |
Avaliação do Gestor | AvaliacaoGestor | Texto (várias linhas) | Campo visível e editável apenas para gestores. | Não | Não |
Anexos | (padrão) | Anexos | Capturas, relatórios, etc. (ativar em Definições Avançadas). | Opcional | — |
Ative o versionamento em Configurações da Lista → Definições de versão (guardar sempre pelo menos as últimas 10–20 versões). Assim, cada edição fica auditável e revertível.
Configurar privacidade por item
- Vá em Configurações da Lista → Configurações Avançadas.
- Em Permissões ao nível do item:
- Leitura: Ler itens criados pelo utilizador.
- Criação/Edição: Criar itens e editar itens criados pelo utilizador.
- Adicione o(s) Gestor(es) ao grupo Owners do site (ou dê Full Control apenas à lista). Owners veem e editam todos os itens, independentemente da restrição por item.
Dica: não quebre a herança por item (evita milhares de permissões únicas). A configuração por item na lista já entrega isolamento sem sobrecarga administrativa.
Proteger a experiência padrão
- Oculte ou limite o Quick Edit para membros, priorizando o formulário do Power Apps.
- Mantenha as visualizações com filtro para o utilizador atual ([Created By] é igual a [Eu]) apenas como conveniência. A segurança real já está na permissão por item.
- Indexe colunas usadas para filtrar (por exemplo, FuncionarioEmail, DataAtividade, Estado) para performance em listas grandes.
Criar o formulário no Power Apps
Na Lista, clique em Integrar → Power Apps → Personalizar formulários. Estruture a interface em separadores (ex.: Training, Metas, Observações) usando Buttons ou Tabs com navegação entre Screens ou Containers.
Filtros e isolamento de dados na aplicação
Embora a segurança esteja garantida pela lista, filtre a galeria para simplificar a UX:
// Variáveis úteis (App.OnStart)
Set(varUserEmail, Lower(User().Email));
// Itens da Galeria (apenas registos do utilizador)
SortByColumns(
Filter(Logbook, Lower('Created By'.Email) = varUserEmail),
"Created",
Descending
)
No envio do formulário, preencha automaticamente quem é o funcionário e o e‑mail (ótimo para relatórios):
// Botão "Novo"
NewForm(EditForm1);
UpdateContext({showForm: true});
// No OnSuccess do EditForm1
Notify("Registo guardado com sucesso.", NotificationType.Success);
ResetForm(EditForm1);
NewForm(EditForm1);
// Campos "Funcionario" e "FuncionarioEmail" (Default/Update)
Funcionario_Default = User()
FuncionarioEmail_Default = Lower(User().Email)
Campo visível só para gestores
Crie uma lista simples chamada Gestores com uma coluna Pessoa (multi‑valor) chamada Gestor. No Power Apps:
// Verificar se o utilizador é gestor
Set(varIsGestor, CountRows(Filter(Gestores, Lower(Gestor.Email)=Lower(User().Email))) > 0);
// Cartão da "AvaliacaoGestor"
AvaliacaoGestor_DataCard.Visible = varIsGestor;
AvaliacaoGestor_DataCard.DisplayMode = If(varIsGestor, DisplayMode.Edit, DisplayMode.View);
Validações e UX que fazem diferença
- Obrigatoriedade condicional: torne TipoAtividade obrigatório quando DuracaoMin > 0.
- Datas coerentes: impeça datas futuras em DataAtividade.
- Feedback imediato: use
Notify()
para sucesso/erro e tooltips claros.
// Exemplo de validação em "Guardar"
If(
IsBlank(DataAtividade.SelectedDate) || DataAtividade.SelectedDate > Today(),
Notify("Data inválida.", NotificationType.Error),
SubmitForm(EditForm1)
);
Evoluir o modelo sem perder dados
O segredo é separar dados de apresentação. A lista guarda o conteúdo; o Power Apps decide o que mostrar e como.
- Adicionar um novo campo: crie a coluna na Lista → atualize o formulário no Power Apps → publique.
- Remover um campo: preferencialmente oculte no app; se apagar a coluna, exporte os dados antes.
- Renomeações: o nome interno da coluna não muda; por isso, planeie nomes internos curtos e estáveis na criação.
- Reutilizar a solução: padronize com Content Types ou um template de site/lista; para automação de instalação, avalie provisioning com PnP.
Relatórios e partilha segura com Power BI
Para dashboards sem comprometer a privacidade:
- Inclua a coluna de texto FuncionarioEmail preenchida pelo app.
- No Power BI, crie uma regra de Row‑Level Security (RLS) filtrando a tabela do Logbook por
FuncionarioEmail = USERPRINCIPALNAME()
. - Publique o relatório e partilhe apenas com o gestor e os próprios utilizadores. O gestor pode ter uma visualização global sem RLS, se necessário.
Nota: se ligar o Power BI diretamente à lista, a RLS protege a visualização no relatório; a leitura bruta da lista continua respeitando as permissões por item no SharePoint.
Automatizações úteis no Power Automate
Cenário | Trigger | Ação | Objetivo |
---|---|---|---|
Lembrete semanal ao colaborador | Recurrence (semanal) | Enviar e‑mail Teams/Outlook ao FuncionarioEmail | Incentivar preenchimento do logbook às sextas‑feiras. |
Sumário para gestor | Recurrence (semanal) | Obter itens da semana → Agregar por funcionário → Enviar resumo | Visão rápida do progresso da equipa. |
Backup incremental | When an item is created or modified | Copiar para lista “LogbookBackup” ou exportar para ficheiro | Resiliência e auditoria extra. |
Validação extra | When an item is created | Conferir DuracaoMin e TipoAtividade → Update item ou notificar | Conformidade automática. |
Opções alternativas e quando usar
Necessidade | Opção | Quando faz sentido |
---|---|---|
Relatórios avançados | Power BI ligado à lista | Dashboards em tempo quase real; aplicar RLS. |
Automatizações | Power Automate | Lembretes, aprovações, backups, sincronizações. |
Simplicidade extrema | Microsoft Forms + fluxo para gravar na lista | Coleta rápida, mas menos flexível para evoluções. |
Offline robusto / dados relacionais | Dataverse | Melhor para apps móveis com sincronização offline e relações complexas (licença adicional). |
Boas práticas que evitam dores de cabeça
- Nomeie colunas com cuidado (nome interno curto, sem espaços). O rótulo pode ter acentos; o nome interno, não.
- Documente mudanças (o que mudou, por quê, quando e por quem). Anexe um CHANGELOG à lista.
- Pilote antes de publicar (site de teste com 5–10 utilizadores) e só depois migre.
- Forme os utilizadores com um vídeo de 3–5 minutos demonstrando o formulário e as regras básicas.
- Desempenho: indexe colunas usadas em filtros e ordenações; evite mais de 12 colunas de Pesquisa/Lookup; use visualizações com filtros pré‑definidos.
- Conformidade: se necessário, aplique rótulos de retenção e aprovações de conteúdo.
- Não confie só em filtros da app para segurança — use sempre as permissões por item.
Checklist rápido de configuração
- Lista Logbook criada com colunas essenciais e nomes internos bem definidos.
- Versionamento ativo e anexos permitidos.
- Permissões por item configuradas (ler/editar apenas os próprios itens).
- Gestor no grupo Owners (acesso total).
- Aplicação do Power Apps publicada, com separadores e validações.
- Filtros por utilizador aplicados na galeria do app (conveniência).
- Colunas indexadas para pesquisa e desempenho (FuncionarioEmail, DataAtividade, Estado).
- Fluxos do Power Automate (lembretes, sumários, backup) ativados.
- Power BI com RLS por FuncionarioEmail (se houver relatórios).
FAQ — questões que sempre aparecem
Privacidade depende do Power Apps?
Não. A proteção real está nas permissões por item da lista. A app apenas facilita a experiência.
O gestor consegue ver tudo mesmo com “ler apenas itens próprios”?
Sim. Membros do grupo Owners (ou quem tem Full Control na lista) veem e gerem todos os itens.
Posso mudar o layout do formulário sem perder dados?
Sim. Mudar o layout no Power Apps não mexe nos dados. Adições/remoções de colunas na lista preservam o histórico existente.
O que fazer quando preciso remover um campo?
Prefira ocultar no app. Se tiver de eliminar, exporte o conteúdo antes (Excel/CSV) para arquivo.
O desempenho caiu com muitos registos. E agora?
Indexe colunas filtradas, limite visualizações, e evite pesquisas/joins excessivos. Se crescer demais ou precisar de offline robusto, considere Dataverse.
Os colaboradores podem anexar comprovativos?
Sim, ative Anexos na lista. Defina limites e orientações (ex.: apenas PDF/PNG, até X MB).
Como garanto que o “Funcionário” é sempre o utilizador logado?
Defina o Default/Update do campo Pessoa para User()
e desative a edição desse cartão para não gestores.
É possível aprovar registos?
Ative Content Approval na lista e crie um fluxo de aprovação no Power Automate, com notificações ao gestor.
Exemplo completo de fluxo de trabalho
- Colaborador abre a app, vai ao separador Training e preenche Data, Tipo, Duração e Observações.
- Ao guardar, a app preenche Funcionario e FuncionarioEmail automaticamente.
- A lista grava a nova versão; um fluxo dispara para validar e enviar um recibo por e‑mail.
- Semanalmente, um resumo agrupado por funcionário é enviado ao gestor com KPIs (quantidade, tempo total, tipos mais frequentes).
- Mensalmente, o Power BI atualiza e o gestor acompanha tendências por equipa e por projeto.
Modelo de governança mínima
- Ambientes: Site de Dev para testes, Site de Produção para uso real.
- Política de mudanças: toda alteração de coluna ou regra de validação documentada; versões do app numeradas (v1.1, v1.2…).
- Backups: exportação mensal da lista (CSV) e cópia para lista LogbookBackup via fluxo.
- Controlo de acesso: Owners para gestores e equipa de TI; Members para colaboradores; Visitors vazio.
Erros comuns e como evitar
- Criar colunas com nomes longos e com espaços → Prefira nomes internos curtos (FuncionarioEmail, DataAtividade).
- Usar apenas filtros na app para “segurança” → Configure sempre permissões por item.
- Romper herança por item em massa → Evite; confie na configuração por item da lista.
- Não indexar colunas filtradas → Em listas grandes, isto degrada a performance.
- Esquecer de ativar versionamento → Perde trilha de alterações e auditoria.
Conclusão
Com SharePoint/Microsoft Lists como repositório, permissões por item para privacidade, e Power Apps para a UI, constrói‑se um logbook que cresce com o negócio sem sacrificar dados, usabilidade ou governança. Esta combinação é simples de manter, funciona nos países lusófonos e cobre desde equipas pequenas até organizações de grande porte — mantendo gestores com visão total e colaboradores com autonomia e segurança.
Resumo rápido: uma única lista, um formulário moderno, regras de acesso consistentes e disciplina de evolução do modelo. O resto é iterar com segurança.