Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
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).
Disponibilizar uma API que possa ativar ou inativar cliente no TSS quando utilizado o Cloud.
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:
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.
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": [
{
"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": [
{
"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.
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.
Função: GetJSONResp()
cJSONResponse – String na estrutura JSON.