Dynamics do Zero ao PRO · Lição 25 de 48 · Módulo 4

LIÇÃO 25Seu Primeiro Power App Conectado ao Dynamics

O Customer Service Hub cobre o atendimento. Mas e o técnico em campo que precisa ver os casos no celular? E a recepção que quer uma tela simples para registrar chamados sem abrir o CRM inteiro? O Power Apps resolve isso — uma interface personalizada, conectada ao mesmo Dataverse, em qualquer dispositivo.

🎯

Resultado desta lição

Ao final, você terá um Canvas App com duas telas: uma lista de casos do Dynamics com busca e filtro de prioridade, e uma tela de detalhe que mostra os dados completos de cada caso — rodando no navegador e no celular.

Dois tipos de app — cada um para um cenário

Canvas App

Você desenha tudo

  • Interface completamente livre
  • Drag-and-drop de componentes
  • Ideal para mobile e telas simples
  • Fórmulas do tipo Excel (Power Fx)
  • Conecta a qualquer fonte de dados
Model-driven App

O sistema monta a tela

  • Interface gerada pelo Dataverse
  • Configuração, não design
  • Ideal para processos complexos
  • O Customer Service Hub É um Model-driven App
  • Só funciona com Dataverse

Nesta lição criamos um Canvas App — o tipo que você desenha. As lições seguintes cobrem a integração avançada com Dataverse e a publicação para usuários.


Passo a passo

  1. Crie um novo Canvas App em branco

    → make.powerapps.com
    → + Create → Canvas app from blank
    App name: Portal de Casos — Suporte
    Format: Phone (formato vertical, funciona em celular e web)

    O editor do Power Apps abre com uma tela em branco. À esquerda, o painel de telas e componentes. Ao centro, o canvas. À direita, as propriedades do elemento selecionado. Na barra superior, a barra de fórmulas — onde toda a lógica vive.

    Phone vs. Tablet: O formato Phone (portrait) funciona tanto no celular quanto no navegador — o conteúdo centraliza em telas maiores. O formato Tablet (landscape) é melhor para dashboards complexos. Para apps de atendimento no campo, Phone é o ideal.
  2. Adicione a fonte de dados — Dataverse Cases

    → Menu lateral → Data → + Add data
    → Pesquise: Dataverse
    → Selecione: Microsoft Dataverse
    → Procure e selecione a tabela Cases

    A tabela Cases agora está disponível como fonte de dados. Toda vez que o app precisar de dados dos casos, ele vai buscar diretamente no Dataverse do seu ambiente Dynamics.

    Ambiente correto: Verifique que o Power Apps está conectado ao mesmo ambiente onde está seu Dynamics. No canto superior direito, o nome do ambiente aparece. Se estiver errado, troque antes de adicionar a fonte de dados.
  3. Adicione uma Gallery para listar os casos

    → Menu superior → Insert → Gallery → Vertical
    → Redimensione a gallery para ocupar a tela toda

    Com a gallery selecionada, configure no painel direito:

    Items (na barra de fórmulas):
    Filter(Cases, statuscode = 1, IsBlank(SearchInput.Text) Or StartsWith(title, SearchInput.Text))

    Esse filtro mostra apenas casos ativos (statuscode = 1) e filtra pelo texto digitado na busca.

    Power Fx — a linguagem do Power Apps: É baseada em Excel. Filter() filtra uma tabela, StartsWith() verifica se o texto começa com a busca, IsBlank() verifica se o campo está vazio. Se você conhece Excel, a curva de aprendizado é pequena.
  4. Configure os campos dentro da gallery

    Dentro da gallery, cada linha tem um template com os componentes que se repetem. Configure:

    Label (título do caso):
    Text: ThisItem.title

    Label (prioridade):
    Text: If(ThisItem.prioritycode = 1, "Alta", If(ThisItem.prioritycode = 2, "Normal", "Baixa"))
    Fill: If(ThisItem.prioritycode = 1, RGBA(239,68,68,0.15), If(ThisItem.prioritycode = 2, RGBA(91,141,239,0.15), RGBA(139,150,172,0.1)))
    ThisItem: Dentro de uma gallery, ThisItem se refere ao registro atual da linha sendo renderizada — como o "linha atual" de um loop. Cada linha usa o mesmo template mas com os dados do seu próprio registro.
  5. Adicione a barra de busca

    → Insert → Input → Text input
    → Posicione no topo da tela, acima da gallery
    → Renomeie para: SearchInput
    Hint text: "🔍 Buscar casos..."
    Default: ""

    A gallery já está usando SearchInput.Text na fórmula Filter — então a busca já funciona automaticamente ao digitar.

  6. Crie a tela de detalhe do caso

    → Painel esquerdo → + New screen → Blank
    → Renomeie para: DetalheScreen

    Na propriedade OnSelect de cada linha da gallery (na Tela 1):

    Navigate(DetalheScreen, ScreenTransition.Cover, {SelectedCase: ThisItem})

    Na tela de detalhe, adicione Labels para cada campo:

    Título: SelectedCase.title
    Cliente: SelectedCase.'Customer Name'
    Prioridade: If(SelectedCase.prioritycode=1,"🔴 Alta","🟡 Normal")
    Descrição: SelectedCase.description
    Criado em: Text(SelectedCase.createdon, "dd/mm/yyyy")
    Navigate() com parâmetros: O terceiro parâmetro do Navigate passa dados para a tela de destino. O registro selecionado fica disponível como SelectedCase em toda a DetalheScreen. Não é necessário buscar o registro novamente — ele já foi passado na navegação.
  7. Adicione botão de voltar na tela de detalhe

    → Insert → Icon → Back arrow
    → Posicione no canto superior esquerdo
    OnSelect: Back()

    Salve o app (Ctrl+S) e teste no modo preview (F5 ou botão ▶ no topo). Clique em um caso da lista — a tela de detalhe deve abrir com os dados corretos.

  8. Publique e compartilhe o app

    → Menu File → Save → Publish
    → Após publicar: File → Share
    → Adicione usuários ou grupos que devem ter acesso

    O app publicado fica disponível em make.powerapps.com → Apps e também no aplicativo Power Apps para iOS e Android. Os usuários acessam com a conta Microsoft 365 deles — sem precisar instalar nada além do app Power Apps.

    Licença necessária: Para usar um Canvas App conectado ao Dataverse/Dynamics, os usuários precisam de uma licença Power Apps. No ambiente de desenvolvimento trial, todos os usuários do trial têm acesso. Em produção, verifique as licenças antes de publicar.

Checklist

Power Fx — a lógica do Power Apps

Power Fx é a linguagem de fórmulas do Power Apps. Se você já usou Excel, já conhece a base: funções como If(), Filter(), Sort(), Concatenate(). A diferença é que aqui as fórmulas se conectam a dados reais no Dataverse em tempo real.

Fórmulas mais usadas com Dynamics:
Filter(Cases, prioritycode = 1) — filtra alta prioridade
Sort(Cases, createdon, Descending) — ordena por data
Patch(Cases, LookUp(Cases, caseid = varId), {title: txtTitulo.Text}) — atualiza um registro
Collect(varCasos, Filter(Cases, ownerid = User().Email)) — coleta em variável local

Na Lição 26 você vai explorar o Patch() — a função que cria e atualiza registros no Dataverse diretamente do app, sem precisar do Power Automate.

Foto de Pablo Maruk
Pablo Maruk
Analista Funcional de Dynamics · 16 anos de TI · EUA & Europa