Arquivo de etiquetas: off

Como desligar temporariamente uma Power App?

Olá,
uma das ferramentas com que lido diariamente são as Power Apps.
Em determinada altura surgiu a necessidade de colocar uma dessas aplicações em estado inacessível. O propósito prende-se com a necessidade da app ficar disponível apenas duas semanas por mês, evitando alterações aos dados nas outras semanas.

Na procura por algo que ajudasse, eis que surgiu a resposta na net: “How to turn app off temporarily?

“…Model-Driven Apps can be Deactivated via the maker portal. For Canvas Apps, there is no deactivate option unfortunately, so your best bet would be to modify the app permissions so that only yourself/admins can access it. For an On-Premise Data Gateway, you can similarly modify the permissions so only admins have access. The other option is to stop and disable the Gateway service on your servers where the gateway is installed… ”

Alterar permissões ou definições do gateway pode significar problemas noutras apps, além da necessária reconfiguração para ativar/inativar a app.

Algumas formas de abordar a inativação da app sem recorrer à solução anterior poderiam ser estas:

1) Alterar ao nível do SQL: se a app se basear numa tabela temporária onde possam ser eliminados ou alteradas permissões aos dados até à próxima atualização seria uma possibilidade – o utilizador acederia à app e não poderia fazer alterações por não ver registos ou ter apenas acesso de visualização.
2) Alterar ao nível da app: no local de edição dos registos colocar o modo “DisplayMode.Disabled” ou “DisplayMode.View”, em detrimento de “DisplayMode.Edit”. Para automatizar este processo poder-se-ía colocar o seguinte código do campo “DisplayMode” da galeria onde estão os registos editáveis:

If(Today()<=Date(Year(Now()), Month(Now()), 15),DisplayMode.Edit,DisplayMode.Disabled)

O código anterior coloca em modo de edição caso o dia actual seja inferior ao dia 16, no caso do dia ser maior ou igual a 16 os registos ficam impossibilitados de edição.

Ambas as soluções permitem de facto evitar edição dos dados a partir de determinado momento mas não são elegantes e muito menos facilmente configuráveis – o utilizador conseguirá aceder sempre à aplicação e tentará, com certeza, clicar e editar os registos. Mesmo colocando uma mensagem de aviso haveria um sentimento de que a app estaria com erros de edição.

Uma forma mais elegante e que não deixará em dúvida o utilizador, será mostrar uma mensagem no acesso à app especificando que a mesma está bloqueada (porque ultrapassou determinada data) não havendo acesso ao seu interface gráfico de edição.

Esta será uma solução mais intuitiva e simples, e passará pelos seguintes passos:

  • Criar “New Screen” ou replicar um existente por forma a manter as formatações:
  • Alterar o nome do novo screen, optei por “MessageScreen”
  • Colocar no novo screen o que achar interessante para mostrar uma mensagem – no caso foram icons e labels:
  • Por fim, no objeto “App”, alterar o “StartScreen” colocando o seguinte código:
    If(Today()>=Date(Year(Now()), Month(Now()), 16),MessageScreen,BrowseScreen1)

    Este código permite aceder ao screen de edição da app (“BrowseScreen1” ) até ao dia 15 de cada mês,inclusivé. Após esse dia será redirecionado para o screen “MessageScreen” onde apenas verá uma mensagem com aviso de indisponibilidade, com possibilidade de fecho da aplicação.

Forma muito rápida, simples e intuitiva de colocar uma app fora de serviço temporariamente.

Espero que vos seja útil,

JG