Páginas filhas
  • ER_PCREQ-8286 - Ativa / Inativa Cliente

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Ativa/Inativa Cliente

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

(Obrigatório)

Informações Gerais

 

Especificação

Produto

TSS

Módulo

TSS

Segmento Executor

SERVIÇOS

Projeto1

M_SER_TSS002

IRM1

PCREQ-8285

Requisito1

PCREQ-8286

Subtarefa1

 

Chamado2

12.1.13

País

( X ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>.

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 

(Obrigatório)

Objetivo

 

Disponibilizar uma API que possa ativar ou inativar cliente no TSS quando utilizado o Cloud.

(Obrigatório)

Definição da Regra de Negócio

 

Através da API de ativa ou inativa cliente, as aplicações cliente do TSS poderão liberar ou bloquear o cliente de transmitir documentos eletrônicos ao cloud. A atualização será realizada com base nos dados: CNPJ, CPF, Inscrição Estadual, UF, ativar ou inativar. O critério para a atualização na base de dados será obtido através dos parâmetros recebidos pela API. A API terá como retorno um array contendo objetos, cada objeto representa uma entidade.

O consumo da API deverá ser realizado através de mensagens JSON codificada em base64 definidas no WebService RestAtBlqEnt().

O processo de Serialização e Deserialização de mensagens deverá ser realizado através das funções FwJsonSerialize() e FwJsonDeserialize() respectivamente.

Os códigos de status serão baseados no formato padrão de mensagens HTTP, conforme o link:

https://pt.wikipedia.org/wiki/Lista_de_c%C3%B3digos_de_status_HTTP

 

WebService: RestAtBlqEnt()

WebService responsável pela definição da Interface da API de ativa ou inativa cliente.

O WebService deverá receber mensagens na estrutura JSON codificado em base64, onde serão decodificadas e passadas como parâmetro para a função AtBlqEnt().

Pode ser enviado mais de um cliente por requisição.

A chave para ativar ou inativar o cliente é:

Onde "Parametro" é do tipo numérico.

1 significa que o cliente será inativado.

2 significa que o cliente será ativado.

Portanto na linha de requisição abaixo, todas as entidades que contenham a chave CNPJ + CPF + IE + UF serão inativadas.

{"tipopessoa":2,"cgc":"53113791000122","IE":"111010945111","UF":"SP","Parametro":1},

No momento do retorno, será apresentado todas as entidades pertencentes a chave CNPJ + CPF + IE + UF, exemplo:

            {"CNPJ": "53113791000122","CPF": "","IE": "111010945111","UF": "SP","IDEMPRESA": "00000000000000000001","Entidade": "000002","OK": true,"mensagem": "Cliente bloqueado","error": "null"},

            {"CNPJ": "53113791000122","CPF": "","IE": "111010945111","UF": "SP","IDEMPRESA": "00000000000000000002","Entidade": "000121","OK": true,"mensagem": "Cliente bloqueado","error": "null"},

            { "CNPJ": "53113791000122","CPF": "","IE": "111010945111","UF": "SP","IDEMPRESA": "00000000000000000003","Entidade": "000122","OK": true,"mensagem": "Cliente bloqueado","error": "null"},

Quando a solicitação for bem-sucedida, o atributo "OK" virá com o conteúdo lógico True, mas caso não seja possível ativar ou inativar, o atributo virá com o conteúdo False.

O retorno do WebService será uma mensagem JSON contendo um array com objetos, cada objeto representa uma entidade.

 

Parâmetros: 

Mensagem JSON codificado em base 64.

 

JSON =

 

ew0KCSJFbXByZXNhcyI6DQoJCVsNCgkJCXsidGlwb3Blc3NvYSI6MiwiY2djIjoiNTMxMTM3OTEwMDAxMjIiLCJJRSI6IjExMTAxMDk0NTExMSIsIlVGIjoiU

1AiLCJQYXJhbWV0cm8iOjF9LA0KCQkJeyJ0aXBvcGVzc29hIjoyLCJjZ2MiOiIwMTE1OTQzNTAwMDE0NiIsIklFIjoiSVNFTlRPIiwiVUYiOiJQRSIsIlBhcmFtZ

XRybyI6Mn0sDQoJCQl7InRpcG9wZXNzb2EiOjIsImNnYyI6IjUzMTEzNzkxMDAwMTg1IiwiSUUiOiIwMDE0OTUxNzgwMDU0IiwiVUYiOiJNRyIsIlBhcmFtZX

RybyI6MX0NCgkJXQ0KfQ==

 

Mensagem JSON decodificada:

 

{

            "Empresas":

                        [

                                    {"tipopessoa":2,"cgc":"53113791000122","IE":"111010945111","UF":"SP","Parametro":1},

                                   {"tipopessoa":2,"cgc":"01159435000146","IE":"ISENTO","UF":"PE","Parametro":2},

                                    {"tipopessoa":2,"cgc":"53113791000185","IE":"0014951780054","UF":"MG","Parametro":1}

                        ]

}

Retorno Negativo:

{

   "result": [],

   "error": " Dados de entrada não podem ser processados: 'Empresas[3]:cgc'. "

}

Retorno Positivo:

{

   "result":    [

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000001",

         "Entidade": "000002",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000002",

         "Entidade": "000121",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000003",

         "Entidade": "000122",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "01159435000146",

         "CPF": "",

         "IE": "ISENTO",

         "UF": "PE",

         "IDEMPRESA": "",

         "Entidade": "000003",

         "OK": true,

         "mensagem": "Cliente liberado",

         "error": "null"

      },

            {

         "CNPJ": "53113790001285",

         "CPF": "",

         "IE": "0014951780054",

         "UF": "MG",

         "IDEMPRESA": "",

         "Entidade": "",

         "OK": false,

         "mensagem": null,

         "error": "Entidade nao encontrada."

      }

   ],

   "error": null

}

Função: AtBlqEnt()

A função deverá receber mensagens na estrutura JSON, onde serão convertidas em objeto pela função fwJsonDeserialize().

Caso não haja erro na deserialização de JSON para objeto, será chamada a rotina ValEntrada(), passando como parâmetro o objeto.

A função ValEntrada() retornará uma matriz , onde cada linha do array será uma entidade diferente. Essa matriz será passada como parâmetro na chamada da função getJSONResp() junto com a mensagem de erro (caso exista). O retorno da função getJSONResp() é a mensagem  já na estrutura JSON.

A rotina ArBlqEnt() será finalizada e como retorno será passado a mensagem na estrutura JSON.

Parâmetros:

cJsonRequest =

 

{

            "Empresas":

                        [

                                    {"tipopessoa":2,"cgc":"53113791000122","IE":"111010945111","UF":"SP","Parametro":1},

                                   {"tipopessoa":2,"cgc":"01159435000146","IE":"ISENTO","UF":"PE","Parametro":2},

                                    {"tipopessoa":2,"cgc":"53113791000185","IE":"0014951780054","UF":"MG","Parametro":1}

                        ]

}

Retorno Negativo:

{

   "result": [],

   "error": " Dados de entrada não podem ser processados: 'Empresas[3]:cgc'. "

}

Retorno Positivo:

{

   "result":    [

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000001",

         "Entidade": "000002",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000002",

         "Entidade": "000121",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000003",

         "Entidade": "000122",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "01159435000146",

         "CPF": "",

         "IE": "ISENTO",

         "UF": "PE",

         "IDEMPRESA": "",

         "Entidade": "000003",

         "OK": true,

         "mensagem": "Cliente liberado",

         "error": "null"

      },

            {

         "CNPJ": "53113790001285",

         "CPF": "",

         "IE": "0014951780054",

         "UF": "MG",

         "IDEMPRESA": "",

         "Entidade": "",

         "OK": false,

         "mensagem": null,

         "error": "Entidade nao encontrada."

      }

   ],

   "error": null

}

Função:  ValEntrada()

A função receberá como parâmetro o objeto da requisição, validará todos os campos quanto a obrigatoriedade, tamanho e tipo de dados. Se algum dado estiver inconsistente, deverá retorna a mensagem de validação correspondente informando.

Os dados contidos no objeto recebido como parâmetro, serão validados afim de identificar quais foram preenchidos, os campos: TipoPessoa, CGC, IE, UF, Parametro são obrigatórios.

Com as informações validadas, será chamada a função AtBlq(), para essa função serão passados como parâmetros: o CNPJ,CPF, IE, Uf e Parametro para a consulta no banco e atualização. O retorno desta função será uma matriz.

Após obter o retorno da rotina AtBlq, a função ValEntrada() será encerrada, retornando a matriz.

 

Parâmetros: 

oObjeto – Mensagem JSon deserializada e transformada em Objeto.

@cError – Mensagem de erro.

 

Retorno:

 aMatriz – matriz contendo os dados das entidades encontradas.

 

Função: AtBlq()

A rotina deverá executar o filtro na tabela SPED001 e retornando todas as entidades encontradas.

A rotina tentara atualizar o campo BLQCLI, o retorno sendo positivo ou não, será gerado um array temporário onde serão armazenados os dados daquele CNPJ ou CPF e as informações de sucesso ou não na atualização do campo.   

Parâmetros: 

cCNPJ – CNPJ do cliente.

cCPF  - CPF do cliente.

cIE – Inscrição estadual do cliente .

cUF – Unidade da Federação do cliente.

cParametro – parâmetro de controle, se 1 bloqueia cliente se 2 desbloqueia cliente.

Retorno:

aMatriz  -  Matriz multidimensional contendo objetos.

 

 

Função: GetJSONResp()

A rotina consiste em obter os dados de entrada e gerar a mensagem em estrutura JSON.

A rotina retornará uma string na estrutura JSON

 

Parâmetros: 

aArray– Array multidimensional.

cError – Mensagem de erro.

Retorno:

cJSONResponse – String na estrutura JSON.

Opcional

Protótipo de Tela

 

<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.

 

Protótipo 01

 

 

 

 

 

 

 

 

 

Opcional

Fluxo do Processo

 

<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 

Opcional

Dicionário de Dados

 

Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/

  

Índice

Chave

01

<FI9_FILIAL+FI9_IDDARF+FI9_STATUS>

02

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF>

03

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO>

Campo

<AAA_PERESP>

Tipo

<N>

Tamanho

<6>

Valor Inicial

<Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. 

Mandatório

Sim (  ) Não (  )

Descrição

<Referência Mínima para Cálculo>

Título

<Ref.Calc.>

Picture

<@E999.99>

Help de Campo

<Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação>

 

(Opcional)

Grupo de Perguntas

 

<Informações utilizadas na linha Protheus>.

 

Nome: FINSRF2

X1_ORDEM

01

X1_PERGUNT

Emissão De

X1_TIPO

D

X1_TAMANHO

8

X1_GSC

G

X1_VAR01

MV_PAR01

X1_DEF01

Comum

X1_CNT01

'01/01/08'

X1_HELP

Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório 

 

(Opcional)

Consulta Padrão

<Informações utilizadas na linha Protheus>

 

Consulta: AMB

Descrição

Configurações de Planejamento

Tipo

Consulta Padrão

Tabela

“AMB”

Índice

“Código”

Campo

“Código”; ”Descrição”

Retorno

AMB->AMB_CODIGO

 

(Opcional)

Estrutura de Menu

 

<Informações utilizadas na linha Datasul>.

 

Procedimentos

 

Procedimento

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Módulo

 

 

 

Programa base

 

 

 

Nome Menu

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Registro padrão

Sim

Sim

Sim

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Release de Liberação

 

 

 

 

 

 

Programas

 

Programa

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Nome Externo

 

 

 

Nome Menu/Programa

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Nome Verbalizado[1]

(Max 254 posições)

(Max 254 posições)

(Max 254 posições)

Procedimento

 

 

 

Template

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

Tipo[2]

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Categoria[3]

 

 

 

Executa via RPC

Sim/Não

Sim/Não

Sim/Não

Registro padrão

Sim

Sim

Sim

Outro Produto

Não

Não

Não

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Query on-line

Sim/Não

Sim/Não

Sim/Não

Log Exec.

Sim/Não

Sim/Não

Sim/Não

Rotina (EMS)

 

 

 

Sub-Rotina (EMS)

 

 

 

Localização dentro da Sub Rotina (EMS)

 

 

 

Compact[4]

Sim/Não

Sim/Não

Sim/Não

Home[5]

Sim/Não

Sim/Não

Sim/Não

Posição do Portlet[6]

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

Informar os papeis com os quais o programa deve ser vinculado

 

 

 

 

Cadastro de Papéis

<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.

<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.

 

Código Papel

(máx 3 posições)

Descrição em Português*

 

Descrição em Inglês*

 


[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.

[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante

[3] Categorias são obrigatórias para os programas FLEX.

[4] Obrigatório quando o projeto for FLEX

[5] Obrigatório quando o projeto for FLEX

[6] Obrigatório quando o projeto for FLEX

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.