Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 10 Próxima »

01. DADOS GERAIS

Produto:

TOTVS CRM Automação da Força de Vendas

Linha de Produto:

Linha TOTVS CRM

ERPs impactados:Todos
Módulo:Formulário
Função:Campos adicionais
Ambiente:Web/Mobile
Ticket:
Requisito/Story/Issue:

DTSFAPD-2616 - Obtendo detalhes do item... STATUS

02. ESCOPO FUNCIONAL

CAMPOS ADICIONAIS PARA CONTEXTO FORMULÁRIO

Para que seja possível incluir outros tipos de campos nos formulários, será necessário implementar campos adicionais para o contexto de Formulários, de forma que seja possível criar facilmente novas possibilidades de campos para os formulários, permitindo ainda a reutilização dos campos customizados em mais de um mesmo formulário.

Estes campos adicionais devem ser cadastrados na tela de cadastro de campos adicionais da ferramenta (Cadastro -> Geral -> Campos Adicionais), onde deve haver um novo tipo de contexto, chamado “FORMULARIO”.

Protótipo




CONSULTA SQL EM CAMPOS ADICIONAIS

Nos campos adicionais, será necessário criar uma nova busca para o tipo de campo “Pesquisa em Entidade”, chamado “Entidade Genérica”, o qual permitirá a utilização de Consulta SQL em banco de dados, para que seja possível criar campos customizados, usando as informações do sistema.

Ao utilizar esta nova busca, a aplicação apresentará alguns novos campos na tela de cadastro de campos adicionais, para que seja possível informar a fonte dos dados para a consulta, adicionar as consultas SQL, confirmar a consulta, pré-visualizar os resultados da consulta, validar entrada de dados, permitir utilização de filtro de usuário logado e confirmação do campo adicional.

Segue abaixo o detalhamento dos itens a serem criados:

 

Busca Entidade Genérica

Será necessário implementar um novo tipo de busca para campos adicionais do tipo Pesquisa em Entidade, chamado “Entidade Genérica”, a qual vai ser apresentada inicialmente para campos do contexto de Formulário.

A busca de entidade genérica permitirá ao usuário que selecione a fonte de dados de consulta da entidade, assim como permitirá que o usuário informe uma consulta SQL customizada, para a definição das informações que serão utilizadas neste campo adicional.

Portanto, ao selecionar essa nova opção “Entidade Genérica”, devem ser apresentados os campos “Base de dados” e “Consulta”, conforme descrito a seguir.

Protótipo




Base de Dados

Será necessário implementar um novo campo para a busca por Entidade Genérica, onde será possível selecionar a base de dados a ser utilizada na busca das informações do campo adicional.

Este campo terá o seu comportamento similar ao campo de seleção de Base de Dados da tela de cadastro de indicadores do SFA.

Protótipo



Consulta

Será necessário implementar um novo campo para as entidades Genéricas, para que seja possível selecionar a Consulta que será utilizada para buscar as informações do campo adicional.

Este campo terá o seu comportamento similar ao campo de seleção de Base de Dados da tela de cadastro de indicadores da ferramenta, onde o usuário poderá selecionar alguma consulta, ou poderá utilizar as configurações avançadas, para informar a sua consulta SQL customizada.

Protótipo



Consulta SQL

Será necessário implementar um campo, onde o usuário poderá incluir as consultas SQL, que trarão os dados para o campo adicional.

Este campo será implementado de maneira similar ao existente no cadastro de indicadores de BI, respeitando inclusive as seguintes características:

  • Quando este campo estiver visível, ele deve ter o seu preenchimento obrigatório;
  • Deve ter uma white-list, para definir comandos/ações SQLs permitidos, evitando assim a inclusão de comandos SQL indesejados;
  • Deve ser possível incluir uma variável na consulta, para filtrar pelo usuário logado (WS_USUARIO_LOGADO);
  • A consulta precisa ser padronizada, onde o retorno da mesma precisa ser obrigatoriamente duas colunas:
    • Chave
    • Valor
  • Deve haver um botão para confirmar a consulta SQL. Durante a confirmação, a aplicação deve validar se as regras definidas acima estão sendo respeitadas, e caso alguma delas não seja respeitada, deve ser apresentada uma mensagem de erro ao usuário, informando qual regra que não está sendo cumprida;
  • Deve haver um botão, que permita a pré-visualização dos resultados retornados com a consulta SQL, conforme descrito a seguir.

Protótipo


CADASTRO DE FORMULÁRIOS

Será necessário implementar a utilização de “campos adicionais” nas perguntas dos Formulários, de forma que o usuário possa utilizar em seus formulários os campos adicionais previamente criados.

Na tela de edição de formulários, dentro do cadastro de perguntas, será necessário implementar um novo “Tipo da Pergunta”, onde haverá a opção “Campo Adicional”. Essa opção abrirá um novo campo ao usuário, onde ele poderá selecionar um dos campos adicionais cadastrados para o contexto de formulários.

Tipo da Pergunta

Será necessário implementar uma nova opção para o Tipo da Pergunta dos formulários chamada “Campo Adicional”, a qual ao ser selecionada, abrirá um novo campo, para a seleção do adicional desejado.

Protótipo


Nova opção no cadastro de Tipo da Pergunta do formulário


Seleção do campo

Será necessário implementar um novo campo no cadastro de perguntas do formulário, onde o usuário poderá selecionar qual o campo adicionar que deseja incluir no formulário.

Este campo será apresentado apenas quando o tipo de pergunta selecionada tenha sido “Campo Adicional”.

Quando apresentado em tela, o preenchimento de campo é obrigatório.

Protótipo


Campo para seleção do campo adicional para o Formulário


Pré-visualização do campo adicional no formulário[a]

Será necessário implementar a pré-visualização do campo adicional na tela de edição de formulários, de modo que seja possível pré-visualizar as opções que serão apresentadas no campo.

A pré-visualização dos campos adicionais será similar à pré-visualização das perguntas do tipo “Campos cadastrados”, onde ao clicar sobre a lupa na lateral direita do campo, será apresentada uma popup com a lista de resultados do campo, permitindo inclusive a filtragem dos resultados pela descrição (Valor) do campo.

Nessa popup, será apresentado o conteúdo definido na coluna “valor” do campo adicional.

Protótipo


Popup de visualização dos dados que o campo adicional está retornando.


RESPONDER FORMULÁRIO - WEB

Será necessário implementar o campo adicional do tipo Consulta SQL na tela de “responder formulário” da Web do SFA.

Ao carregar a tela de responder, a aplicação efetuará a consulta SQL no banco de dados para gerar as opções do campo, apresentando em tela o Valor encontrado para cada um dos registros.

Os campos adicionais serão apresentados de maneira similar aos campos do tipo “Campos cadastrados”, onde ao clicar sobre a lupa na lateral direita do campo, será apresentada uma popup com a lista de resultados do campo, permitindo inclusive a filtragem dos resultados pela descrição (Valor) do campo.

Nessa popup, será apresentado o conteúdo definido na coluna “valor” do campo adicional.

Quando a aplicação for registrar em banco as respostas destes campos adicionais, deve ser armazenado em banco tanto a Chave quanto o Valor do registro que foi selecionado no formulário, permitindo assim a posterior visualização das respostas incluídas pelo profissional.

Protótipo

Exibição do campo complementar do tipo Consulta SQl


Popup com a lista de opções do campo adicional Consulta SQL, apresentando o Valor.


VISUALIZAR ENVIADOS - WEB

Será necessário implementar a visualização do campo adicional do tipo Consulta SQL na tela de “Visualizar Formulários Enviados” da Web do SFA.

Ao carregar a tela de visualização das respostas, a aplicação deve resgatar no banco de dados as informações registradas para o campo adicional, apresentando em tela a descrição do registro (Valor) conforme o que está registrado na resposta do banco de dados.

Como a Consulta SQL pode ter sido totalmente customizada, e a Chave também pode ter sido customizada, a aplicação NÃO deve realizar uma nova Consulta SQL para buscar a descrição do registro, devendo simplesmente apresentar a descrição do registro selecionado.

Protótipo

Visualização do campo adicional na tela de Visualização de Formulários Enviados


SINCRONIZAÇÃO DE CAMPOS CONSULTA SQL

Será necessário implementar a sincronização de campos adicionais do tipo Consulta SQL para o Android, de forma que estes campos possam ser utilizados de forma offline no Android.

Para isso, durante a sincronização, devem ser preparadas as opções selecionáveis do campo através de “views”, onde essas opções serão armazenadas dentro de um novo DATS do aparelho.

Dessa forma, será possível utilizar os formulários com perguntas geradas a partir de consultas SQL, uma vez que a consulta foi realizada no momento da sincronização, e o seu resultado está permitido na memória do aparelho.

A cada nova sincronização, as opções selecionáveis serão atualizadas, de forma que elas sempre estejam atualizadas no aparelho do usuário.

RESPONDER FORMULÁRIO - ANDROID

Será necessário implementar o campo adicional do tipo Consulta SQL na tela de “responder formulário” do APP Mobile do SFA.

Ao carregar a tela de responder, a aplicação efetuará a busca a busca das opções do campo de maneira offline, através dos registros presentes na tabela/entidade criada durante a sincronização dos dados.

Como a sincronização atualiza os dados do campo adicional a cada nova sincronização, as informações que estão sendo visualizadas pelo profissional no campo adicional se referem ao momento em que a sincronização foi realizada, assim como ocorre com os demais dados do SFA. Não haverá consulta online para gerar os dados do campo adicional em tempo de execução no APP Mobile.

Os campos adicionais serão apresentados de maneira similar aos campos do tipo “Campos cadastrados”, onde ao clicar sobre o campo, será apresentada uma popup com a lista de resultados do campo, permitindo inclusive a filtragem dos resultados pela descrição (Valor) do campo.

Nessa popup, será apresentado o conteúdo definido na coluna “valor” do campo adicional.

Quando a aplicação for registrar em banco as respostas destes campos adicionais, deve ser armazenado em banco tanto a Chave quanto o Valor do registro que foi selecionado no formulário, permitindo assim a posterior visualização das respostas incluídas pelo profissional.


Protótipo

 

Campo adicional com tipo Consulta SQL no Android, com a popup de opções.


VISUALIZAR ENVIADOS - ANDROID

Será necessário implementar a visualização do campo adicional do tipo Consulta SQL na tela de “Visualizar Formulários Enviados” do APP Mobile do SFA.

Ao carregar a tela de visualização das respostas, a aplicação deve resgatar no banco de dados as informações registradas para o campo adicional, apresentando em tela a descrição do registro (Valor) conforme o que está registrado na resposta do banco de dados/memória do aparelho.

Como a Consulta SQL pode ter sido totalmente customizada, e a Chave também pode ter sido customizada, a aplicação NÃO deve realizar uma nova Consulta SQL para buscar a descrição do registro, devendo simplesmente apresentar a descrição do registro selecionado.


Protótipo


Visualização campo adicional SQL respondido - Android.


02. ESCOPO TÉCNICO

Banco de dados

  • Pelo tools, opção 3, o sistema deverá fazer a criação dos seguintes campos na tabela campo:
    • idconsulta: integer, nullable, FK para tabela consulta
    • idconexao: integer, nullable, FK para tabela conexao
    • sql: bytea, nullable
  • Pelo tools, opção 3, o sistema deverá fazer a criação dos seguintes campos na tabela pesquisapergunta:
    • idcampo: integer, nullable, FK para tabela campo
  • Pelo tools, opção 3, o sistema deverá fazer a criação dos seguintes campos na tabela pesquisapergresulopcao:
    • respostacodigo: varchar(200), nullable

Menu consulta

  • A opção do menu "Cadastro > Dashboard > Consulta" deverá ser endereçado para "Cadastro > Geral > Consulta" visto que será dependência para campos adicionais, não somente de dashboards

Cadastro de campos adicionais

  • Na Web, Na tela de cadastro de campos adicionais gerais (Cadastro > Geral > Campos adicionais),
    • No campo "Contexto",
      • O sistema deverá adicionar nova opção selecionável de label "Formulário" e valor "FORM", que deverá ser persistido no campo campo.sglentidade
    • Quando selecionado o campo "Contexto" = "Formulário",
      • Quando selecionado o campo "Tipo de campo" = "Pesquisa em entidade"
        • O sistema deve mostrar nova opção selecionável no campo "Busca" de label "Entidade genérica" e valor "GENERICO" que deverá ser persistido no campo campo.nometabela
      • Quando selecionado o campo "Busca" = "Entidade genérica", os seguintes novos campos deverão ser exibidos abaixo do campo "Busca", sendo eles:
        • "Consulta": Campo de pesquisa, cujas opções selecionáveis serão resultado da consulta a seguir:
            • /* select idconexao as chave, descricao as valor from consulta where idnativo = 1 */
          • O campo deverá ser persistido no campo campo.idconsulta
          • Ao lado do campo drop-down, o sistema deverá exibir botão de label "Configurações avançadas"
            • Quando o botão for clicado,
              • O sistema deverá tornar o campo "Consulta" não-editável
              • O sistema deverá exibir novos campos, sendo eles:
                • "Base de dados": Campo de seleção (Drop-down), cujas opções selecionáveis serão resultado da consulta a seguir:
                    • /* select idconexao as chave, descricao as valor from conexao where idnativo = 1 */
                  • O campo deverá ser persistido no campo campo.idconexao
                • "Consulta SQL": text-area obrigatório
                  • O campo somente será obrigatório caso esteja visível
                  • Ao lado do campo, deverá ser exibido novo botão de label "Confirmar", de cor azul.
                    • Ao clicar em "Confirmar", o sistema deverá executar a select cadastrada no campo "Consulta SQL" e caso haja algum erro de sintaxe, o sistema deverá retornar a mensagem de erro do banco de dados em tela, em mensagem toast.
                      • Caso a consulta for executada com sucesso, o sistema deverá validar se os campos "chave" e "valor" foram campos resultantes da consulta acima,
                        • Caso não forem,
                          • O sistema deverá retornar a mensagem toast de erro: "Os campos chave e valor devem ser declarados na consulta"
                        • Caso forem
                          • O sistema deverá retornar mensagem toast de sucesso: "A consulta foi executada com sucesso"
                  • O campo deverá ser persistido no campo campo.sql

Cadastro de formulário

  • Na Web, Na tela de cadastro de formulários,
    • Na aba "Formulário"
      • Na seção de "Cadastro de perguntas"
        • No campo "Tipo da pergunta",
          • O sistema deverá adicionar nova opção selecionável de label "Campo adicional" e valor "ADIC" que deve ser persistido no campo pesquisapergunta.sglcomponente
        • Quando selecionado campo "Tipo da pergunta" = "Campo adicional",
          • O sistema deverá exibir campo de label "Campo adicional", campo drop down, cujas opções selecionáveis é o resultado da consulta a seguir:
            • select idcampo as chave, descricao as valor from campo where sglentidade = 'FORM' and idnativo = 1 and idcampotipo = (select idcampotipo from campotipo where sglcampotipo = 'PESENT')
            • O campo deverá ser persistido no campo pesquisapergunta.idcampo

Responder formulário

  • Na web, na tela de responder formulários
    • O sistema deverá implementar os novos tipos de pergunta do tipo "Campo adicional"
      • Para campos adicionais do tipo "PESENT" (Pesquisa em entidade), o sistema deverá mostrar o campo como campo de pesquisa (Chave e valor)
        • As opções selecionáveis serão o resultado da consulta persistida no campo campo.idconsulta > sql associado ao campo adicional do campo pesquisapergunta.idcampo
          • Caso não tenha valor cadastrado no campo acima, será resultado da consulta cadastrada no campo campo.sql
          • A grid de seleção dos registros deverá mostrar a coluna "Valor" referente à campo valor da consulta
  • No Android, na tela de responder formulários
    • O sistema deverá implementar os novos tipos de pergunta do tipo "Campo adicional"
      • Para campos adicionais do tipo "PESENT" (Pesquisa em entidade), o sistema deverá mostrar o campo como campo de pesquisa (Chave e valor)
        • Especificamente no Android, visto que não é possível fazer consultas com sintaxe SQL no contexto offline
          • No momento da sincronização de dados
            • O sistema deverá preparar view ventidadegenerica com as seguintes colunas:
                • idcampo
                  • Referência do campo adicional do tipo "Pesquisa entidade" com consulta "Entidade genérica"
                • chave
                  • Será resultado do campo chave da consulta cadastrada no campo campo.idconsulta > sql
                    • Caso não tenha valor cadastrado no campo acima, será resultado do campo chave da consulta cadastrada no campo campo.sql
                • valor
                  • Será resultado do campo chave da consulta cadastrada no campo campo.idconsulta > sql
                    • Caso não tenha valor cadastrado no campo acima, será resultado do campo chave da consulta cadastrada no campo campo.sql
              • Dessa forma, o sistema já carregará previamente as opções selecionáveis de todos os campos adicionais de formulários, para que o contexto offline continue funcional
        • As opções selecionáveis serão o resultado da consulta da view ventidadegenerica, associada ao campo ventidadegenerica.idcampo
          • A grid de seleção dos registros deverá mostrar a coluna "Valor" referente à campo valor da consulta
  • A opção selecionada na pergunta deverá ser persistida na tabela pesquisapergresulopcao, segundo a lógica
    • "Chave": pesquisapergresulopcao.respostacodigo
    • "Valor": pesquisapergresulopcao.respostadescricao

Visualizar formulário

  • Na web e Android, na tela de visualizar formulários respondidos
    • O sistema deverá implementar a visualização da resposta de campos adicionais do tipo pesquisa em entidade genérica, buscando o valor do campo do campo pesquisapergresulopcao.respostadescricao associado à resposta


  • Sem rótulos