Mudanças entre as edições de "Configuração das Agendas"

(Conceito)
Linha 1: Linha 1:
==='''Conceito'''===
+
==='''Exportar e Importar'''===
  
Este é o cadastro das diferentes informações que serão unificadas na exibição da Agenda. Cada registro representa uma origem de compromissos, e a tela da Agenda apresenta todas as origens juntas, no mesmo calendário, como se fossem uma coisa só.
+
A tela permite levar a configuração de uma Agenda de um ambiente para outro: exportar gera um arquivo com tudo o que a Agenda precisa para funcionar, e importar grava esse arquivo no ambiente atual. É o caminho para publicar em produção uma Agenda montada em homologação, ou para repetir num cliente uma configuração já pronta na base modelo.
  
Cada registro aponta para um cadastro do sistema e ensina a Agenda a lê-lo como compromisso: qual campo guarda a data, quais guardam a hora de início e de fim, e qual guarda o recurso responsável. É o que permite informações de naturezas diferentes, lançadas em telas diferentes, dividirem a mesma visão de calendário.
+
O arquivo leva só a configuração. Nenhum compromisso é exportado, e nenhum é criado na importação.
  
Os compromissos de todas as origens aparecem juntos, cada um com a sua cor, e o usuário decide pelo filtro quais deseja enxergar.
+
O '''Nome''' é a chave. Existindo uma Agenda com o mesmo nome no destino, ela é atualizada; não existindo, uma nova é criada. Importar o mesmo arquivo duas vezes, portanto, não duplica a Agenda.
  
==='''O que é'''===
+
Tudo o que aponta para outro cadastro viaja pelo '''nome''', nunca pelo código interno, porque os códigos de um ambiente não significam nada no outro. Na importação cada nome é resolvido contra os cadastros do destino:
 
 
É o cadastro que define uma origem de compromissos para a Agenda. Um registro aqui não guarda compromisso nenhum: ele descreve onde os compromissos estão e como devem ser exibidos.
 
 
 
Por isso, incluir uma Agenda nova é trabalho de configuração, não de programação. Cadastros que hoje não aparecem na Agenda podem passar a aparecer desde que tenham data, hora e recurso.
 
 
 
==='''Para que serve'''===
 
 
 
Serve para dar ao usuário uma visão única da ocupação dos recursos, sem que ele precise abrir cada cadastro para descobrir o que está agendado. A partir dessa visão ele consegue:
 
 
 
* enxergar a ocupação de um recurso por dia, semana ou mês, e comparar recursos lado a lado;
 
* localizar espaço livre antes de assumir um novo compromisso;
 
* abrir o registro de origem direto pelo compromisso, sem procurar na tela do cadastro;
 
* incluir um compromisso novo clicando no espaço vazio da agenda.
 
 
 
==='''Quais os benefícios e/ou ganhos de uso'''===
 
 
 
O ganho principal é o compromisso deixar de existir só dentro do cadastro em que foi lançado e passar a disputar espaço na agenda do recurso junto com todos os demais. Quem marca passa a ver o que já está marcado, e a sobrecarga de um recurso fica visível antes de virar atraso.
 
 
 
O segundo ganho é a regra de persistência. Um compromisso cuja situação ainda não foi resolvida continua aparecendo na data de hoje mesmo depois de a data original passar, em vez de ficar para trás no calendário. Ele só sai da frente do usuário quando a situação muda para uma que não persiste, o que transforma a agenda também em lista do que está pendente.
 
 
 
O terceiro é a configuração ser por cadastro. Cada empresa decide o que vira compromisso, com que texto, com que cor e sob que condição, sem depender de versão nova do sistema.
 
 
 
==='''Exemplos'''===
 
 
 
Uma empresa de serviços usa duas Agendas. A primeira lê os apontamentos de ordem de serviço, para o técnico enxergar os atendimentos do dia. A segunda lê as anotações da agenda, usadas para lembretes e retornos a clientes.
 
 
 
Nessa mesma empresa, o apontamento que já virou item de ordem de serviço aparece numa cor própria e não aceita ser arrastado, porque o trabalho já foi registrado. A anotação com situação de pendência continua aparecendo hoje até alguém trocá-la por uma situação concluída.
 
 
 
Uma terceira Agenda pode ser criada para visitas comerciais, apontando para o cadastro de visitas, sem nenhuma alteração de programa.
 
 
 
==='''Cadastro'''===
 
  
 
{| class="wikitable"
 
{| class="wikitable"
!Campo
+
!O que viaja por nome
!Finalidade
+
!O que precisa existir no destino
|-
 
|'''Nome'''
 
|Identificação da Agenda. É por ele que a Agenda é reconhecida ao exportar e importar a configuração entre ambientes.
 
|-
 
|'''Legenda'''
 
|Texto apresentado ao usuário, inclusive na lista de Agendas do filtro.
 
 
|-
 
|-
|'''Cadastro'''
+
|Cadastro de origem
|Cadastro de origem dos compromissos. Define a tabela que a Agenda lê e também qual tela é aberta quando o usuário clica em um compromisso.
+
|O cadastro, apontando para a mesma tabela
 
|-
 
|-
|'''Campo Data'''
+
|Campo Data, Campo Hora Início, Campo Hora Fim e Campo Recurso
|Coluna que guarda a data do compromisso. É por ela que a Agenda decide se o registro cai dentro do período exibido.
+
|As colunas, na tabela do cadastro de origem
 
|-
 
|-
|'''Campo Hora Início'''
+
|Formulário de filtro e o campo dele, em cada filtro
|Coluna com a hora de início. Define onde o card começa na grade de horas.
+
|O formulário e o campo, com os mesmos nomes
 
|-
 
|-
|'''Campo Hora Fim'''
+
|Campo comparado, em cada filtro
|Coluna com a hora de término. Define a altura do card na grade de horas.
+
|A coluna, na tabela do cadastro de origem
|-
 
|'''Campo Recurso'''
 
|Coluna que liga o compromisso ao recurso responsável. É ela que distribui os compromissos entre as colunas de recurso e que faz valer a permissão de enxergar a agenda de outro recurso.
 
|-
 
|'''Título'''
 
|Expressão que monta o texto principal do card.
 
|-
 
|'''Expressão'''
 
|Expressão que monta o texto complementar, exibido como segunda linha do card quando há espaço.
 
|-
 
|'''Condição SQL'''
 
|Condição adicional aplicada à busca dos compromissos desta Agenda. Serve para restringir o que aparece, por exemplo ignorando registros cancelados.
 
|-
 
|'''Expressão Cor'''
 
|Expressão que devolve a cor do card. Em branco, o card assume a cor do recurso.
 
|-
 
|'''Expressão Persistir'''
 
|Condição que, sendo verdadeira, mantém o compromisso visível na data de hoje depois de a data original passar. Em branco, o compromisso aparece apenas na data dele.
 
|-
 
|'''Expressão Leitura'''
 
|Condição que, sendo verdadeira, trava o compromisso: ele não aceita ser arrastado nem redimensionado na agenda. Em branco, nada é travado.
 
|-
 
|'''Margem Direita'''
 
|Espaço reservado à direita do card no aplicativo, útil quando o card precisa conviver com um ícone.
 
|-
 
|'''Máximo de Linhas'''
 
|Quantidade máxima de linhas do texto complementar no card do aplicativo.
 
|-
 
|'''Padrão'''
 
|Marca a Agenda usada quando o usuário pede um compromisso novo sem partir de um compromisso existente. Somente uma Agenda fica marcada: ao marcar uma, as demais são desmarcadas.
 
 
|}
 
|}
  
====Sobre as expressões====
+
As expressões — Título, Expressão, Condição SQL, Expressão Cor, Expressão Persistir e Expressão Leitura — vão como texto, sem tradução nenhuma. São SQL sobre a tabela do cadastro de origem, que é a mesma nos dois ambientes.
 
 
As três expressões são escritas em SQL e valem sobre o registro do compromisso, que na consulta recebe o apelido '''A'''. Uma coluna do próprio cadastro é referenciada como ''A.NOMEDACOLUNA''.
 
 
 
Quando a expressão precisa de informação de outra tabela, ela é escrita como subconsulta, e não como junção. Assim a expressão se basta e a Agenda não exige nenhuma configuração adicional de relacionamento.
 
 
 
Funções de data e outras que mudam de nome conforme o banco de dados são escritas com os marcadores do sistema, como ''@DATA'', que são substituídos no momento da consulta. Isso permite que a mesma expressão funcione em qualquer banco homologado.
 
 
 
====Filtros====
 
 
 
Cada Agenda aceita uma lista de filtros, que ligam um campo do formulário de filtro da Agenda a uma coluna do cadastro de origem, com o operador desejado. É assim que um campo novo no formulário passa a filtrar os compromissos, sem alteração de programa.
 
 
 
{| class="wikitable"
 
!Campo
 
!Finalidade
 
|-
 
|'''Formulário Campo'''
 
|Campo do formulário de filtro que fornece o valor informado pelo usuário.
 
|-
 
|'''Operação'''
 
|Forma de comparação entre o valor informado e a coluna: igual, diferente, maior ou igual, menor ou igual, contém ou em.
 
|-
 
|'''Campo'''
 
|Coluna do cadastro de origem que será comparada.
 
|}
 
 
 
Campo do formulário deixado em branco pelo usuário não gera filtro, o que permite um formulário com vários campos sem obrigar o preenchimento de todos. Recurso, Agenda e situação das anotações são filtros próprios da tela e não precisam ser configurados aqui.
 
 
 
==='''Conclusão'''===
 
  
Uma Agenda bem configurada resume-se a responder três perguntas: de onde vêm os compromissos, como eles se apresentam e sob que condição continuam exigindo atenção. As duas primeiras são atendidas pelos campos de cadastro e de texto; a terceira, pelas expressões.
+
A marca '''Padrão''' acompanha a Agenda. Importando uma que esteja marcada, as demais do destino são desmarcadas, do mesmo modo que aconteceria marcando pela tela.
  
Vale rever a configuração sempre que o cadastro de origem ganhar um campo relevante, como uma situação nova, já que a cor e a persistência são consequência do que estiver escrito nas expressões.
+
Os '''filtros''' são regravados por inteiro: a importação descarta a lista que a Agenda tiver no destino e grava a que veio no arquivo. Filtro cujo formulário, campo do formulário ou coluna não existam no destino fica de fora, e o restante da Agenda é gravado normalmente — por isso vale conferir a lista de filtros depois de importar para um ambiente que ainda não tenha o formulário correspondente.

Edição das 17h36min de 13 de setembro de 2026

Exportar e Importar

A tela permite levar a configuração de uma Agenda de um ambiente para outro: exportar gera um arquivo com tudo o que a Agenda precisa para funcionar, e importar grava esse arquivo no ambiente atual. É o caminho para publicar em produção uma Agenda montada em homologação, ou para repetir num cliente uma configuração já pronta na base modelo.

O arquivo leva só a configuração. Nenhum compromisso é exportado, e nenhum é criado na importação.

O Nome é a chave. Existindo uma Agenda com o mesmo nome no destino, ela é atualizada; não existindo, uma nova é criada. Importar o mesmo arquivo duas vezes, portanto, não duplica a Agenda.

Tudo o que aponta para outro cadastro viaja pelo nome, nunca pelo código interno, porque os códigos de um ambiente não significam nada no outro. Na importação cada nome é resolvido contra os cadastros do destino:

O que viaja por nome O que precisa existir no destino
Cadastro de origem O cadastro, apontando para a mesma tabela
Campo Data, Campo Hora Início, Campo Hora Fim e Campo Recurso As colunas, na tabela do cadastro de origem
Formulário de filtro e o campo dele, em cada filtro O formulário e o campo, com os mesmos nomes
Campo comparado, em cada filtro A coluna, na tabela do cadastro de origem

As expressões — Título, Expressão, Condição SQL, Expressão Cor, Expressão Persistir e Expressão Leitura — vão como texto, sem tradução nenhuma. São SQL sobre a tabela do cadastro de origem, que é a mesma nos dois ambientes.

A marca Padrão acompanha a Agenda. Importando uma que esteja marcada, as demais do destino são desmarcadas, do mesmo modo que aconteceria marcando pela tela.

Os filtros são regravados por inteiro: a importação descarta a lista que a Agenda tiver no destino e grava a que veio no arquivo. Filtro cujo formulário, campo do formulário ou coluna não existam no destino fica de fora, e o restante da Agenda é gravado normalmente — por isso vale conferir a lista de filtros depois de importar para um ambiente que ainda não tenha o formulário correspondente.