Páginas filhas
  • ER_PCREQ-8286_Busca_informações_do_documento

Busca informações do documento

 

 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

 

Release de Entrega planejada

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 com a finalidade de retornar os dados de um determinado documento.

(Obrigatório)

Definição da Regra de Negócio

A API será na estrutura WS REST com o nome RestInfDoc e com apenas o método GET, que receberá a mensagem JSON codificada em base64 e chamará a função GetInfDoc() passando a mensagem JSON decodificada.

Através da API de busca informações do documento, os clientes do TSS poderão obter as informações do documento que estão contidos nas tabelas do TSS.

A consulta será para um documento.

O critério para consulta será com base nos dados de entrada.

A API terá como retorno um array contendo os dados em objeto.

O consumo da API deverá ser realizado através de mensagens JSON codificado em base64 definidas na WebService RestInfDoc.

O processo de Deserialização de mensagens deverá ser realizado através da função FwJsonDeserialize().

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: RestInfDoc
WebService responsável pela definição da Interface da API de busca informações do documento.
O WebService deverá receber mensagens na estrutura JSON codificado em base64, onde serão decodificadas e passadas como parâmetro para a função GetInfDoc().
O retorno do WebService será uma mensagem JSON.
Todos os parâmetros da mensagem serão obrigatórios.

Parâmetros: 

JSon = ew0KImVtcHJlc2EiOg0KeyJFbnRpZGFkZSI6ICIwMDAwMDEifSwNCiAidGlwZG9jIjoibmZlIiwNCiAicGFyYW1ldHJvcyI6eyJkb2NpZCI6IjAwMTAwMDAwMSJ9DQp9
 

Mensagem JSON decodificada:

{

"empresa":

{"Entidade": "000001"},

 "tipdoc":"nfe",

 "parametros":{"docid":"001000001"}

}


Retorno:

Retorno Negativo:

{

  "result":

   {

    "documento": ""

   },

"error": "Estrutura do objeto inválida." }
 

Retorno Positivo:

{ "result":{"Campos":[{"CAMPO":"ID_ENT","DESCRICAO":"ID da Entidade Empresa","CONTEUDO":"000002"},{"CAMPO":"NFE_ID","DESCRICAO":"ID de vinculo com o ERP","CONTEUDO":"754000582"},{"CAMPO":"DATE_NFE","DESCRICAO":"Data de transmissão do ERP para o TSS","CONTEUDO":"20150611"},{"CAMPO":"TIME_NFE","DESCRICAO":"Hora de transmissão do ERP para o TSS","CONTEUDO":"19:34:25"},{"CAMPO":"AMBIENTE","DESCRICAO":"Ambiente de operação","CONTEUDO":"2"},{"CAMPO":"MODALIDADE","DESCRICAO":"Modalidade de operação","CONTEUDO":"1"},{"CAMPO":"STATUSCANC","DESCRICAO":"Status de transmissão do cancelamento/inutilização da NFe","CONTEUDO":"0"},{"CAMPO":"STATUSMAIL","DESCRICAO":"Status de transmissão do e-mail para o destinatário da NFe","CONTEUDO":"2"},{"CAMPO":"NFE_PROT","DESCRICAO":"Numero do ultimo protocolo da NFE","CONTEUDO":"135150002553049"},{"CAMPO":"DELETEDATE","DESCRICAO":"Data imposta pelo ERP para exclusão dos dados do TSS","CONTEUDO":""},{"CAMPO":"EMAIL","DESCRICAO":"eMail de distribuição da NFe.","CONTEUDO":"eduardo.mantoan@totvspartners.com.br"},{"CAMPO":"MODELO","DESCRICAO":"Modelo do Documento","CONTEUDO":"55"},{"CAMPO":"CNPJDEST","DESCRICAO":"CNPJ do Destinatário","CONTEUDO":"65576143000191"},{"CAMPO":"REG_DPEC","DESCRICAO":"Numero do Registro da DPEC","CONTEUDO":""},{"CAMPO":"STATUSDPEC","DESCRICAO":"Status de transmissão do DPEC","CONTEUDO":"0"},{"CAMPO":"NUM_NSE","DESCRICAO":"Numero da NFS-e gerada pela prefeitura","CONTEUDO":""},{"CAMPO":"PED_NFE","DESCRICAO":"Campo com o saldo de notas transmitidas","CONTEUDO":""},{"CAMPO":"PED_DPEC","DESCRICAO":"Campo com o saldo de DPEC transmitidas","CONTEUDO":""},{"CAMPO":"DATE_ENFE","DESCRICAO":"Data que o TSS enviou a nota para o ERP","CONTEUDO":"20150611"},{"CAMPO":"TIME_ENFE","DESCRICAO":"Hora que o TSS enviou a nota para o ERP","CONTEUDO":"19:35:02"},{"CAMPO":"CODCONT","DESCRICAO":"Número do código seqüencial gerado pelo TSS","CONTEUDO":"0"},{"CAMPO":"MODALCTE","DESCRICAO":"Código do modal da nota CTE.","CONTEUDO":""},{"CAMPO":"TIPO_CANC","DESCRICAO":"TIPO_CANC","CONTEUDO":"0"},{"CAMPO":"DOC_ID","DESCRICAO":"Documento","CONTEUDO":"582"},{"CAMPO":"DOC_SERIE","DESCRICAO":"Serie","CONTEUDO":"754"},{"CAMPO":"DOC_CHV","DESCRICAO":"Chave","CONTEUDO":"35150653113791000122557540000005821002811119"},{"CAMPO":"CNPJREM","DESCRICAO":"CNPJ do Remetente","CONTEUDO":""},{"CAMPO":"LOGID","DESCRICAO":"Id Log","CONTEUDO":""},{"CAMPO":"VERSAO","DESCRICAO":"Versao do documento","CONTEUDO":""}]} , "error": null }

 

Função: GETINFDOC()

Função responsável pela definição da Interface da API busca informações do documento.

A função GetInfDoc definirá a estrutura da API.

A função deverá ser definida em um fonte.prw definido com o mesmo nome da função.

A função GetInfDoc deverá ser implementada apenas como função de interface para a API. Deverá ser totalmente desacoplada de qualquer definição de instrução de processamento, devendo apenas realizar as devidas validações das mensagens. Todo o processamento deverá estar definido em funções auxiliares.

A função GetInfDoc() 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 GetFIeldDoc(), passando como parâmetro o objeto deserializado.

A função GetFIeldDoc () retornará um array, contendo todos os campos da tabela SPED050, caso o tipo de documento seja ‘NFE’ e SPED051 caso o tipo de documento seja ‘NFSE’. Esse array será passado como parâmetro na chamada da função getJSONResp() junto com o código de status e mensagem de erro (caso exista). O retorno da função getJSONResp() é a mensagem  já na estrutura JSON.

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

Parâmetros: 

cJsonRequest=
{

"empresa":

{"Entidade": "000001"},

 "tipdoc":"nfe",

 "parametros":{"docid":"001000001"}

}

Retorno:

Retorno Negativo:

{

  "result":

   {

    "documento": ""

   },

"error": "Estrutura do objeto inválida." }

Retorno Positivo:

{ "result":{"Campos":[{"CAMPO":"ID_ENT","DESCRICAO":"ID da Entidade Empresa","CONTEUDO":"000002"},{"CAMPO":"NFE_ID","DESCRICAO":"ID de vinculo com o ERP","CONTEUDO":"754000582"},{"CAMPO":"DATE_NFE","DESCRICAO":"Data de transmissão do ERP para o TSS","CONTEUDO":"20150611"},{"CAMPO":"TIME_NFE","DESCRICAO":"Hora de transmissão do ERP para o TSS","CONTEUDO":"19:34:25"},{"CAMPO":"AMBIENTE","DESCRICAO":"Ambiente de operação","CONTEUDO":"2"},{"CAMPO":"MODALIDADE","DESCRICAO":"Modalidade de operação","CONTEUDO":"1"},{"CAMPO":"STATUSCANC","DESCRICAO":"Status de transmissão do cancelamento/inutilização da NFe","CONTEUDO":"0"},{"CAMPO":"STATUSMAIL","DESCRICAO":"Status de transmissão do e-mail para o destinatário da NFe","CONTEUDO":"2"},{"CAMPO":"NFE_PROT","DESCRICAO":"Numero do ultimo protocolo da NFE","CONTEUDO":"135150002553049"},{"CAMPO":"DELETEDATE","DESCRICAO":"Data imposta pelo ERP para exclusão dos dados do TSS","CONTEUDO":""},{"CAMPO":"EMAIL","DESCRICAO":"eMail de distribuição da NFe.","CONTEUDO":"eduardo.mantoan@totvspartners.com.br"},{"CAMPO":"MODELO","DESCRICAO":"Modelo do Documento","CONTEUDO":"55"},{"CAMPO":"CNPJDEST","DESCRICAO":"CNPJ do Destinatário","CONTEUDO":"65576143000191"},{"CAMPO":"REG_DPEC","DESCRICAO":"Numero do Registro da DPEC","CONTEUDO":""},{"CAMPO":"STATUSDPEC","DESCRICAO":"Status de transmissão do DPEC","CONTEUDO":"0"},{"CAMPO":"NUM_NSE","DESCRICAO":"Numero da NFS-e gerada pela prefeitura","CONTEUDO":""},{"CAMPO":"PED_NFE","DESCRICAO":"Campo com o saldo de notas transmitidas","CONTEUDO":""},{"CAMPO":"PED_DPEC","DESCRICAO":"Campo com o saldo de DPEC transmitidas","CONTEUDO":""},{"CAMPO":"DATE_ENFE","DESCRICAO":"Data que o TSS enviou a nota para o ERP","CONTEUDO":"20150611"},{"CAMPO":"TIME_ENFE","DESCRICAO":"Hora que o TSS enviou a nota para o ERP","CONTEUDO":"19:35:02"},{"CAMPO":"CODCONT","DESCRICAO":"Número do código seqüencial gerado pelo TSS","CONTEUDO":"0"},{"CAMPO":"MODALCTE","DESCRICAO":"Código do modal da nota CTE.","CONTEUDO":""},{"CAMPO":"TIPO_CANC","DESCRICAO":"TIPO_CANC","CONTEUDO":"0"},{"CAMPO":"DOC_ID","DESCRICAO":"Documento","CONTEUDO":"582"},{"CAMPO":"DOC_SERIE","DESCRICAO":"Serie","CONTEUDO":"754"},{"CAMPO":"DOC_CHV","DESCRICAO":"Chave","CONTEUDO":"35150653113791000122557540000005821002811119"},{"CAMPO":"CNPJREM","DESCRICAO":"CNPJ do Remetente","CONTEUDO":""},{"CAMPO":"LOGID","DESCRICAO":"Id Log","CONTEUDO":""},{"CAMPO":"VERSAO","DESCRICAO":"Versao do documento","CONTEUDO":""}]} , "error": null }

 

Função: GETFIELDDOC()

A função GetFieldDoc() 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, todos os campos são necessários para o retorno.

A função validará o tipo de documento afim de identificar se é válida, esta informação estará contida dentro do objeto recebido como parâmetro.

Será chamada a função FieldsTss() para que sejam processados os dados validados. Para essa função serão passados como parâmetros: código da entidade do cliente, o tipo de documento e o NFE_ID. O retorno desta função será um array contendo os o nome do campo e o conteúdo.

A função GetFieldDoc() será encerrada, retornando o array obtido na função FieldsTss.

Parâmetros: 

oDados – Objeto contendo as informações da requisição: Entidade, número do documento, série do documento, tipo de documento.

cError – Mensagem de erro, caso exista.

Retorno:

aArray -> contém todos os campos da tabela do TSS correspondente ao tipo de documento (SPE050 / SPED051 / SPED201 / SPED400 / SPED090 / SPED202).

 

Função: FieldsTss()

A função FieldsTss() receberá como parâmetro, a entidade do cliente, o tipo de documento, série do documento, mensagem de erro(caso exista) e código do status, processará os dados afim de obter a mensagem XML.

A função verificará qual o tipo de documento, afim de identificar qual tabela irá buscar o XML.

A função por meio de Query, localizará o documento na tabela correspondente, obtendo todos os campos da tabela e atribuindo-os a um array, no array será atribuído o nome do campo e seu conteúdo. O array será o retorno da função.

Parâmetros: 

(cEnt,cTipo,cDoc,cError,cHttpStatus)

cEnt – Código da entidade do cliente.

cTipo – Tipo de documento: ‘NFE’;’NFSE’, etc.

cDoc – Nfe_Id.

cError – Mensagem de erro, caso exista.

Retorno:

aMatriz – Array contendo o nome dos campos e o seu conteúdo.

 

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.

 

 

 

 

 

 

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