Mudanças entre as edições de "Informações de endereço por CEP"

De GeoSales
Ir para navegação Ir para pesquisar
 
(38 revisões intermediárias por 5 usuários não estão sendo mostradas)
Linha 11: Linha 11:
 
|  01/02/2017  ||  Anderson Gomes ||  Criação do Documento
 
|  01/02/2017  ||  Anderson Gomes ||  Criação do Documento
 
|-
 
|-
dd/mm/aaaa ||                 ||  Análise e Aprovação da Arquitetura
+
06/02/2017 || Leonardo Sousa ||  Solicitação de correção
 +
|-
 +
|  07/02/2017  ||  Leonardo Sousa ||  Análise e Aprovação da Arquitetura
 
|-
 
|-
 
|}
 
|}
Linha 31: Linha 33:
 
| | ''Anderson Gomes''
 
| | ''Anderson Gomes''
 
| | '''Arquiteto SoftSite:'''
 
| | '''Arquiteto SoftSite:'''
| | ''Jefferson Quesado''
+
| | ''Luan Lima''
 
|-  
 
|-  
 
| | '''Aplicação(s):'''
 
| | '''Aplicação(s):'''
Linha 40: Linha 42:
  
 
==Necessidade==
 
==Necessidade==
''Alterar informações cadastrais do cliente no Mobile e essas informações serem atualizadas no Protheus. Um dos pontos mais importantes para o cliente é o sistema atualizar as informações de endereço baseado no CEP, ele deseja que o sistema busque no site dos correios os dados a partir do CEP.''
+
''Durante a alteração/cadastro de informações de cliente no GeoSales (Mobile e Portal) ser possível após a inserção de um determinado CEP que o sistema preencha os dados do endereço de forma automática caso existam informações para o CEP. e essas informações serem atualizadas no Protheus. Também é preciso que o sistema atualize as informações de endereço baseado no CEP.''
  
 
==Exemplo==
 
==Exemplo==
''O vendedor cadastrará um novo cliente, ao digitar o CEP a aplicação Mobile-GS deve trazer as informações do endereço. Além de incluir um novo cliente, também deve ser possível alterar o cadastro do cliente da mesma forma.''
+
''O vendedor cadastrará um novo cliente, ao digitar o CEP o GeoSales deverá trazer as informações do endereço. Além de incluir um novo cliente, também deverá ser possível alterar o cadastro de um cliente já existente.''
  
 
==Solução==
 
==Solução==
''Ao digitar o CEP na aplicação Mobile-GS, na inclusão ou alteração de um cliente, o sistema deve buscar o endereço através do CEP digitado. Os seguintes campos devem ser preenchidos: logradouro/endereço, bairro, cidade e estado. Esses campos devem permanecer editáveis, pois se o vendedor não possuir conexão ativa com a rede de dados, o sistema deve permitir que o usuário digite manualmente.''
+
''Ao digitar o CEP no GeoSales e clicar em um botão de pesquisa de endereço, na inclusão ou alteração de um cliente, o sistema deve buscar o endereço através do CEP digitado. Os seguintes campos devem ser preenchidos: endereço, bairro, cidade e estado. Esses campos devem permanecer editáveis, pois se o vendedor não possuir conexão ativa com a rede de dados, o sistema deve permitir que o usuário digite manualmente. Além disso, o usuário precisará digitar também as informações complementares, como número, bloco e etc.''
''Inicialmente, identificamos duas formas buscar essas informações:''
+
 
*''Através de um serviço gratuito chamado ViaCEP (https://viacep.com.br/), cujo a SoftSite não pode garantir seu funcionamento;''
+
As informações serão buscadas de um Web Service da SoftSite que buscará as informações de outros provedores desse serviço, cujo a SoftSite não pode garantir seu funcionamento, pois trata-se de um serviço de terceiro.''
*''Através de um serviço pago disponível pelos Correios (https://www.correios.com.br/para-voce/consultas-e-solicitacoes/precos-e-prazos/servicos-nacionais_pasta/e-dne), cujo gerará um custo adicional para o cliente.''
+
 
 +
Para acessar o Web Service o sistema GeoSales deve mandar na requisição o nome da empresa/usuário/senha para se autenticar. Devido a isso o sistema deverá ter comunicação com a base de dados que contém essas informações.
 +
 
 +
Para cada empresa existirá um limite mensal de requisições, definido por configuração. Entretanto, a cada requisição a resposta é salva na base durante um intervalo de tempo que garanta a validade da informação, definido por configuração. Caso o dado (CEP) consultado conste nessa base não será contado como requisição.
 +
 
 +
==Criação de Estruturas de Banco==
 +
 
 +
Deverá ser criado um novo banco de dados específico para o Web Service. Ele terá as seguintes estruturas para controlar as requisições e para salvar os endereços pesquisados a fim de otimizar as consultas mais frequentes.
 +
 
 +
*ENDERECO
 +
{| class="wikitable"
 +
! NOME DO CAMPO !! TIPO !! ANULÁVEL !! CHAVE !! AUTO INCREMENT 
 +
|-
 +
| CD_EMPRESA || INT || NOT NULL || TRUE || TRUE
 +
|-
 +
| CEP || VARCHAR(8) || NOT NULL || FALSE || FALSE
 +
|-
 +
| ESTADO || VARCHAR(2) || NULL || FALSE || FALSE
 +
|-
 +
| CIDADE || VARCHAR(50) || NULL || FALSE || FALSE
 +
|-
 +
| DS_ENDERECO || VARCHAR(70) || NULL || FALSE || FALSE
 +
|-
 +
| BAIRRO || VARCHAR(40) || NULL || FALSE || FALSE
 +
|-
 +
| DT_VALIDADE || DATETIME || NULL || FALSE || FALSE
 +
|-
 +
|}
 +
 
 +
*EMPRESA_UTILIZACAO
 +
{| class="wikitable"
 +
! NOME DO CAMPO !! TIPO !! ANULÁVEL !! CHAVE !! AUTO INCREMENT 
 +
|-
 +
| CD_EMPRESA_UTILIZACAO  || INT || NOT NULL || TRUE || TRUE
 +
|-
 +
| NM_EMPRESA  || VARCHAR(55) || NOT NULL || FALSE || FALSE
 +
|-
 +
| COMPETENCIA  || VARCHAR(7) || NULL || FALSE || FALSE
 +
|-
 +
| CONTADOR  || INT || NULL || FALSE || FALSE
 +
|-
 +
|}
 +
 
 
'' A solução deve ser implementada para permitir que a mudança da origem de busca das informações seja de simples alteração.''
 
'' A solução deve ser implementada para permitir que a mudança da origem de busca das informações seja de simples alteração.''
  
Linha 56: Linha 100:
  
 
==Regras de Negócios==
 
==Regras de Negócios==
*''Liste aqui as regras de negócios necessárias para a funcionalidade.  (Quando se aplicam)''
+
*Para a validação do CEP as seguintes regras devem ser analisadas
 +
**O CEP deve ter 8 caracteres
 +
**O CEP deve conter somente números
  
 
==Regras de Exceções==
 
==Regras de Exceções==
*''Liste aqui as regras de exceções necessárias para a funcionalidade.  (Quando se aplicam)''
+
*O Web Service retornará o JSON {"erro": "true"} quando um CEP analisado não foi encontrado na análise;
 +
*Para o erro de limite de requisições será retornado o erro 403;
  
 
==Protótipos==
 
==Protótipos==
Linha 76: Linha 123:
 
====Operação====
 
====Operação====
 
#Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;  
 
#Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;  
#Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual(60813670);
+
#Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual(60813670) e clica no botão de pesquisar endereço;
  
 
====Assertiva====
 
====Assertiva====
#O sistema geosales valida se o CEP é válido
+
#O sistema GeoSales valida se o CEP é válido
#O sistema geosales faz uma consulta no serviço dos correios pelos dados do CEP informado;
+
#O sistema GeoSales faz uma consulta no web service pelos dados do CEP informado;
#O serviço dos correios retorna os dados do endereço do CEP escolhido;
+
#O web service retorna os dados do endereço do CEP escolhido;
 +
#O sistema GeoSales interpreta as informações retornadas e atualiza os campos correspondentes
  
 
===Cenário de Fluxo de Exceção===
 
===Cenário de Fluxo de Exceção===
Linha 92: Linha 140:
 
====Operação====
 
====Operação====
 
#Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;  
 
#Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;  
#Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (00000);
+
#Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (00000) e clica no botão de pesquisar endereço;
  
 
====Assertiva====
 
====Assertiva====
#O sistema geosales valida se o CEP é válido
+
#O sistema GeoSales valida se o CEP é válido
#O sistema geosales manda a mensagem que o CEP digitado é inválido e não preenche os dados do endereço;
+
#O sistema GeoSales manda a mensagem que o CEP digitado é inválido e não preenche os dados do endereço;
 +
 
 +
===Cenário de Fluxo de Exceção===
 +
''CEP não existente na base de dados''
 +
 
 +
====Dados====
 +
#Cliente: João
 +
#Usuário: Pedro
  
 +
====Operação====
 +
#Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;
 +
#Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (99999000) e clica no botão de pesquisar endereço;
 +
 +
====Assertiva====
 +
#O sistema GeoSales valida se o CEP é válido;
 +
#O sistema GeoSales faz uma consulta pelo CEP informado;
 +
#O serviço retorna que o CEP escolhido não consta na sua base de dados mandando o json de retorno da seguinte forma {"erro": "true"};
 +
#O sistema GeoSales manda a mensagem que o CEP digitado é não consta na base de dados pesquisada e não preenche os dados do endereço;
  
 
===Cenário de Fluxo de Exceção===
 
===Cenário de Fluxo de Exceção===
''CEP não existente na base de dados''
+
''Serviço de consulta de informações não está funcionando''
  
 
====Dados====
 
====Dados====
Linha 108: Linha 172:
 
====Operação====
 
====Operação====
 
#Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;  
 
#Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;  
#Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (99999000);
+
#Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (60813670) e clica no botão de pesquisar endereço;
  
 
====Assertiva====
 
====Assertiva====
#O sistema geosales valida se o CEP é válido;
+
#O sistema GeoSales valida se o CEP é válido;
#O sistema geosales faz uma consulta no serviço dos correios pelos dados do CEP informado;
+
#O sistema GeoSales faz uma consulta no web service pelos dados do CEP informado;
#O serviço dos correios retorna que o CEP escolhido não consta na sua base de dados;
+
#O web service não envia resposta dentro do tempo limite estipulado ou retorna erro 404
#O sistema geosales manda a mensagem que o CEP digitado é não consta na base de dados pesquisada e não preenche os dados do endereço;
+
#O sistema GeoSales manda a mensagem que o serviço está indisponível no momento;
  
 
===Cenário de Fluxo de Exceção===
 
===Cenário de Fluxo de Exceção===
''Serviço de consulta de informações não está funcionando''
+
''Limite de requisições alcançado''
  
 
====Dados====
 
====Dados====
Linha 125: Linha 189:
 
====Operação====
 
====Operação====
 
#Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;  
 
#Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;  
#Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (60813670);
+
#Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (60813670) e clica no botão de pesquisar endereço;
  
 
====Assertiva====
 
====Assertiva====
#O sistema geosales valida se o CEP é válido;
+
#O sistema GeoSales valida se o CEP é válido;
#O sistema geosales faz uma consulta no serviço dos correios pelos dados do CEP informado;
+
#O sistema GeoSales faz uma consulta no web service pelos dados do CEP informado;
#O serviço dos correios retorna que o CEP escolhido não consta na sua base de dados;
+
#O web service verifica o contador de requisições da empresa solicitante e verifica que o limite foi alcançado e retorna o código de erro 403.
#O sistema geosales manda a mensagem que o CEP digitado é não consta na base de dados pesquisada e não preenche os dados do endereço;
+
#O sistema GeoSales manda a mensagem que o limite de requisições foi alcançado;
  
 
==Aprovação==
 
==Aprovação==

Edição atual tal como às 13h15min de 7 de fevereiro de 2017

Logo geosales.png

Histórico de Revisões

Data Revisor Comentário
01/02/2017 Anderson Gomes Criação do Documento
06/02/2017 Leonardo Sousa Solicitação de correção
07/02/2017 Leonardo Sousa Análise e Aprovação da Arquitetura

Informações Gerais

Cliente: Rio Mix Projeto: Rio Mix
Gerente/Sponsor: Dolavale Gerente SoftSite: Liliana Carrha
Analista SoftSite: Anderson Gomes Arquiteto SoftSite: Luan Lima
Aplicação(s): Mobile-GS

Necessidade

Durante a alteração/cadastro de informações de cliente no GeoSales (Mobile e Portal) ser possível após a inserção de um determinado CEP que o sistema preencha os dados do endereço de forma automática caso existam informações para o CEP. e essas informações serem atualizadas no Protheus. Também é preciso que o sistema atualize as informações de endereço baseado no CEP.

Exemplo

O vendedor cadastrará um novo cliente, ao digitar o CEP o GeoSales deverá trazer as informações do endereço. Além de incluir um novo cliente, também deverá ser possível alterar o cadastro de um cliente já existente.

Solução

Ao digitar o CEP no GeoSales e clicar em um botão de pesquisa de endereço, na inclusão ou alteração de um cliente, o sistema deve buscar o endereço através do CEP digitado. Os seguintes campos devem ser preenchidos: endereço, bairro, cidade e estado. Esses campos devem permanecer editáveis, pois se o vendedor não possuir conexão ativa com a rede de dados, o sistema deve permitir que o usuário digite manualmente. Além disso, o usuário precisará digitar também as informações complementares, como número, bloco e etc.

As informações serão buscadas de um Web Service da SoftSite que buscará as informações de outros provedores desse serviço, cujo a SoftSite não pode garantir seu funcionamento, pois trata-se de um serviço de terceiro.

Para acessar o Web Service o sistema GeoSales deve mandar na requisição o nome da empresa/usuário/senha para se autenticar. Devido a isso o sistema deverá ter comunicação com a base de dados que contém essas informações.

Para cada empresa existirá um limite mensal de requisições, definido por configuração. Entretanto, a cada requisição a resposta é salva na base durante um intervalo de tempo que garanta a validade da informação, definido por configuração. Caso o dado (CEP) consultado conste nessa base não será contado como requisição.

Criação de Estruturas de Banco

Deverá ser criado um novo banco de dados específico para o Web Service. Ele terá as seguintes estruturas para controlar as requisições e para salvar os endereços pesquisados a fim de otimizar as consultas mais frequentes.

  • ENDERECO
NOME DO CAMPO TIPO ANULÁVEL CHAVE AUTO INCREMENT
CD_EMPRESA INT NOT NULL TRUE TRUE
CEP VARCHAR(8) NOT NULL FALSE FALSE
ESTADO VARCHAR(2) NULL FALSE FALSE
CIDADE VARCHAR(50) NULL FALSE FALSE
DS_ENDERECO VARCHAR(70) NULL FALSE FALSE
BAIRRO VARCHAR(40) NULL FALSE FALSE
DT_VALIDADE DATETIME NULL FALSE FALSE
  • EMPRESA_UTILIZACAO
NOME DO CAMPO TIPO ANULÁVEL CHAVE AUTO INCREMENT
CD_EMPRESA_UTILIZACAO INT NOT NULL TRUE TRUE
NM_EMPRESA VARCHAR(55) NOT NULL FALSE FALSE
COMPETENCIA VARCHAR(7) NULL FALSE FALSE
CONTADOR INT NULL FALSE FALSE

A solução deve ser implementada para permitir que a mudança da origem de busca das informações seja de simples alteração.

Pré-Requisitos

  • Para que essa customização funcione é preciso que a conexão de rede de dados esteja ativa no dispositivo do usuário e que o serviço utilizado para consultas as informações do endereço esteja funcionando.

Regras de Negócios

  • Para a validação do CEP as seguintes regras devem ser analisadas
    • O CEP deve ter 8 caracteres
    • O CEP deve conter somente números

Regras de Exceções

  • O Web Service retornará o JSON {"erro": "true"} quando um CEP analisado não foi encontrado na análise;
  • Para o erro de limite de requisições será retornado o erro 403;

Protótipos

Inclua protótipos que facilite a visualização da funcionalidade. (Quando se aplicam)

Cenários

Inclua os cenários deseja atingir, a começar pelo caminho feliz.

Cenário Happy Day

Usuário edita o endereço de um cliente já cadastrado

Dados

  1. Cliente: João
  2. Usuário: Pedro

Operação

  1. Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;
  2. Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual(60813670) e clica no botão de pesquisar endereço;

Assertiva

  1. O sistema GeoSales valida se o CEP é válido
  2. O sistema GeoSales faz uma consulta no web service pelos dados do CEP informado;
  3. O web service retorna os dados do endereço do CEP escolhido;
  4. O sistema GeoSales interpreta as informações retornadas e atualiza os campos correspondentes

Cenário de Fluxo de Exceção

CEP inválido

Dados

  1. Cliente: João
  2. Usuário: Pedro

Operação

  1. Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;
  2. Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (00000) e clica no botão de pesquisar endereço;

Assertiva

  1. O sistema GeoSales valida se o CEP é válido
  2. O sistema GeoSales manda a mensagem que o CEP digitado é inválido e não preenche os dados do endereço;

Cenário de Fluxo de Exceção

CEP não existente na base de dados

Dados

  1. Cliente: João
  2. Usuário: Pedro

Operação

  1. Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;
  2. Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (99999000) e clica no botão de pesquisar endereço;

Assertiva

  1. O sistema GeoSales valida se o CEP é válido;
  2. O sistema GeoSales faz uma consulta pelo CEP informado;
  3. O serviço retorna que o CEP escolhido não consta na sua base de dados mandando o json de retorno da seguinte forma {"erro": "true"};
  4. O sistema GeoSales manda a mensagem que o CEP digitado é não consta na base de dados pesquisada e não preenche os dados do endereço;

Cenário de Fluxo de Exceção

Serviço de consulta de informações não está funcionando

Dados

  1. Cliente: João
  2. Usuário: Pedro

Operação

  1. Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;
  2. Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (60813670) e clica no botão de pesquisar endereço;

Assertiva

  1. O sistema GeoSales valida se o CEP é válido;
  2. O sistema GeoSales faz uma consulta no web service pelos dados do CEP informado;
  3. O web service não envia resposta dentro do tempo limite estipulado ou retorna erro 404
  4. O sistema GeoSales manda a mensagem que o serviço está indisponível no momento;

Cenário de Fluxo de Exceção

Limite de requisições alcançado

Dados

  1. Cliente: João
  2. Usuário: Pedro

Operação

  1. Pedro escolhe na listagem de clientes o cliente João e clica no botão detalhes;
  2. Pedro preenche o campo CEP da aba "Clien. Cont." com o CEP atual (60813670) e clica no botão de pesquisar endereço;

Assertiva

  1. O sistema GeoSales valida se o CEP é válido;
  2. O sistema GeoSales faz uma consulta no web service pelos dados do CEP informado;
  3. O web service verifica o contador de requisições da empresa solicitante e verifica que o limite foi alcançado e retorna o código de erro 403.
  4. O sistema GeoSales manda a mensagem que o limite de requisições foi alcançado;

Aprovação

Considero aprovada a documentação da funcionalidade especificada acima, e autorizo a implementação da mesma no Sistema GeoSales, em nome da Organização a qual estou vinculado.

Setor Aprovado Por E-Mail Data Assinatura
Tecnologia da Informação Nome do Aprovador Email do Aprovador Data da Aprovação Assinatura do Aprovador
Comercial Nome do Aprovador Email do Aprovador Data da Aprovação Assinatura do Aprovador