Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

 

(Obrigatório)

Informações Gerais

 

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

EspecificaçãoEspecifica

Produto

TSS

Módulo

TSS 

Segmento Executor

SERVIÇOS

Projeto1

M_SER_TSS002

IRM1

PCREQ-8234

Requisito1

PCREQ-8235

Subtarefa1

 

Release de Entrega planejada

12.1.13

País

( X ) Brasil  (  ) Argentina  (  ) Mexico  México  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   Colômbia   (  ) Outro _____________.

Outros

.

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

(Obrigatório)


Objetivo

Disponibilizar uma interface para integração dos métodos WS SOAP com a API HTTP e gerenciar o processo de contingência do TSS OFFLINE.

(Obrigatório)

Definição da Regra de Negócio

 

Os métodos WS SOAP, de acordo com a especificação da segregação dos métodos (http://tdn.totvs.com.br/display/TSS/Web_Service_Fase1, http://tdn.totvs.com.br/display/TSS/Web_Service_Fase2 ), deverão estar condicionados para validação do tipo da requisição, através da função TSSAnalyseReq(), com o objetivo de verificar qual serviço está sendo utilizado.

 

 

A funcionalidade do serviço do TSSOFFLINE será definida através da chamada da função IsLocalBrocker().

A funcionalidade do serviço do TSS OFFLINE será definida através da chamada da função IsLocalBrocker(). Esta função será executada dentro da função TSSAnalyseReq(), onde é chamada na segregação dos métodos do TSS. E assim, direcionada para a função TSSBrokerReq() que será responsável por identificar o Web Service e o método em execução, através do Alias virtual HTTPHEADIN->MAIN e da função procname(), respectivamente.  

Após a identificação do Web Service e do Método, a rotina buscará Assim, a rotina TSSBrokerReq() será responsável por identificar o Web Service e o Método em execução, através do Alias virtual HTTPHEADIN->MAIN e da função procname(),respectivamente.  Após a identificação do Web Service e do Método, a rotina deverá buscar os dados referente ao método em execução para que seja feita a montagem da requisição à ser enviado enviada para o TSS ONLINE. Os dados deverão ser recuperados através da rotina TSSGetProcQueue(), que retornará um array com os dados do método. Por fim, deverá identificar   identificará a fila de processamento da requisição, onde será realizada através da função setProcQueue().

Assim definido definidos os dados para processamento, deverá ser  será executado o processamento da requisição através da função TSSLocalBroker().

A função TSSLocalBroker() será responsável por processar as requisições dos métodos do TSSOFFLINETSS OFFLINE.

Para toda requisição deverá ser realizado será realizada a validação de acordo com sua funcionalidade. Validado Quando ocorrer a requisição validação com sucesso, deverá verificar verificará o cache da requisição, onde é composto pela que é formada pela serialização da mensagem da requisição serializada e requisição e o código do processo, assim resultando numa mensagem Hash, obtida a partir da função sha1(). A consulta do cache deverá ser realizada ocorrerá através da função getCache(). Caso a requisição seja encontrada, a rotina deverá retornar imediatamente retornará a resposta em cache. Caso , caso contrário, o próximo passo consiste na identificação do cadastro de entidades, será realizado que ocorrerá através da função getEntidade().

Os métodos que precisarem de um pré-processamento deverão ser serão tratados pela função preProcReq(), já os métodos que precisarem apenas verificar se a requisição deve ou não ser enviada para o TSS ONLINE, precisarão apenas ser  apenas serão tratados pela função setSendReq(), por padrão sempre será enviado ao TSS ONLINE. E ainda de De acordo com a fila de processamento, deverá realizar  terá a definição da tabela de negócio, através da função setProcTable().

Algumas requisições o O processo poderá pode variar de acordo com o método executado . Onde poderão ser serão atendidos pelo próprio TSS OFFLINE, sem a necessidade do envio para o TSS ONLINE. Outros serão processados ,  processados apenas no TSS ONLINE ou ainda em ambos os ladosTSS.

 

  • Processamento no TSS OFFLINE:

As requisições definidas para processamento no TSS OFFLINE, deverão passar passarão por outras duas restrições antes de serem executadas no TSS OFFLINE:

  1. Somente requisições com código de entidade preenchido poderão ser serão processadas;
  2. Apenas processos do tipo 0,1 ou 2 serão processadas processados, sendo que:

0 - Admempresas

1 - Configuração

2 - Remessa de processamento

3 - Monitoramento

O processamento no TSS OFFLINE deverá ser realizado ocorrerá através das mesmas funções de processamento utilizadas no TSS ONLINE. 


  • Envio para TSS ONLINE:

As requisições que forem ser envidas para o TSS ONLINE, só poderão ser envidas caso o processamento tenha ocorrido com sucesso. Antes do processo de envio para o TSS ONLINE, deverá realizar busca o sistema verificará os parâmetros de configuração da entidade, através da função GetDocCfg(). E também deverá configurar configurará a sequência da requisição, através da função getReqSequence().

A requisição a ser envida para o TSS ONLINE, será uma mensagem JSON que deverá ser será obtida através da chamada da função getJSONRequest(), sendo que, só poderão ser envidas caso o processamento tenha ocorrido com sucesso.

O envio da requisição para o TSS ONLINE poderá ocorrer de forma duas formas Síncrona ou Assíncrona. Sendo:

Processo Síncrono

No processamento Síncrono, o envio da requisição para o TSS ONLINE será realizado na mesma conexão estabelecida pelo ERP com o TSS OFFLINE. Os processamentos síncronos serão identificados através das seguintes condições:

  1. Tipo = " " : Requisições sem definição de tipo.
  2. Tipo = 3 : Requisições do tipo consulta de documentos.
  3. Tipo = 0 : Requisição de cadastro de empresa.

Caso a requisição atenda algum dos Ao atender os critérios acima, deverá ser realizada uma ocorrerá a consulta do Status status de operação do TSS ONLINE. O status deverá ser obtido através da função isTSSCloudOnline() que caso retorne , se retornar inválido indica que o TSS ONLINE está fora de operação, impossibilitando o envio da requisição. Caso contrário, se o retorno for válido, a requisição poderá ser enviada através da função TSSPostQueueMessage().

De acordo com o retorno obtido pela função TSSPostQueueMessage() a  a rotina deverá se comportar da seguinte forma:

  1. Retorno de Ticket: Este caso, o TSS ONLINE retornou um ticket, indicando que o processamento no TSS ONLINE está utilizando processamento em Fila, neste caso deverá ser enviada uma outra requisição para consultar o próprio ticket, com a finalidade de obter o retorno do processamento do método. A função responsável pela montagem da requisição de consulta do ticket é getJsonTicket().
  2. Retorno com resultado do Processo: Este caso, o TSS ONLINE está realizando o processamento da requisição na mesma comunicação, retornando o resultado do processamento do método.
  3. Retorno invalido: Este caso, o TSS ONLINE está fora de operação, onde deverá ser tratado através da função procRetError().

D acordo com o processo, poderá Poderá haver a necessidade de realizar algum processamento com o retorno do TSS ONLINE. Dessa forma o retorno deverá ser tratado através da função procRetOnline()

Caso ocorra falha na consulta do status de operação do TSS ONLINE, os processos do tipo 3 "consulta de documentos", deverão ser atendidas pelo TSS OFFLINE, nesse caso deverá ser executada a função responsável pelo processamento do método, que retornará o status do documento na base de dados do TSS OFFLINE.


Processo Assíncrono

O processamento Assíncrono será realizado para os processos capazes de gerar a resposta para o ERP somente utilizando o serviço do TSS OFFLINE sem depender de uma resposta do TSSONLINE.

Neste caso a conexão com o ERP será liberada e a requisição será colocada em uma fila do TSS OFFLINE através da função putQueue()  para que essa possa ser envida posteriormente através do JOB do TSS OFFLINE( JOB_DLL( ) ). 

Por fim as requisições recebidas e atendidas com sucesso, serão armazenadas no cash cache da aplicação através da função grvCache(). 


Estrutura da função:

ÂncoraIsLocalBrockerFunção:  TSSAnalyseReq()IsLocalBrocker()

Função responsável pela verificação do serviço que está configurado.

A configuração é realizada no arquivo de configuração (.INI) do TOTVS Application Server.

Parâmetros:

Nulo

Retorno: 

lRetorno - Retorno verdadeiro caso o serviço específico esteja sendo utilizado.

 

 

Função: isLocalBroker()

Função responsável para verificar se o serviço será um

TSSOFFLINE

TSS OFFLINE.

A configuração é realizada no arquivo de configuração (.INI) do TOTVS Application Server, onde deverá ser informado em seu environment:

[TSSOFFLINE]

TSSOFFLINE=1              

Parâmetros:

Nulo

Retorno: 

lRetorno Retorno verdadeiro caso o serviço seja sendo utilizado.

 

ÂncoraTSSAnalyseReqTSSAnalyseReq

FunçãoTSSAnalyseReq()

Função responsável pela verificação do tipo de serviço que está sendo utilizado.

ONLINEURL=URL do TSS OnLine
ONLINEPORT=Porta do TSS OnLine


Parâmetros:

Nulo

Retorno: 

lRetorno lRetorno Retorno verdadeiro caso o serviço seja específicosendo utilizado.

  ÂncoraTSSBrokerReq()TSSBrokerReq()

Função: TSSBrokerReq TSSBrokerReq()

Função responsável pela definição básica do processamento da requisição, ou seja, responsável por identificar o Web Service e o Método em execução,

buscar

buscando os dados referente ao método para que seja feita a montagem da requisição e identificar a fila de processamento.

O retorno da função deverá ser de acordo com a estrutura de retorno definida para o método

WS

Web Service. Em caso de falha

de processamento que provoquem retorno

que provoque o etorno Soap fault, a rotina deverá preencher a variável cError com a mensagem Soap fault e retornar nil.

Parâmetros:

oWsRequest oWsRequest Mensagem Soap recebida pelo Método  WSWeb Service

cError cError Referência para mensagem de erro no processamento da requisição 

cWS cWS Web Service

cMethod cMethod Método

Retorno:

oRet oRet Mensagem Soap de Retorno do WSWeb Service.

  ÂncoraTSSLocalBroker()TSSLocalBroker()

Função: TSSLocalBroker TSSLocalBroker()

Função responsável pelo tratamento da requisição que está sendo

realizado

realizada com o serviço do

TSSOFFLINE

TSS OFFLINE, ou seja,

deverá realizar a validação do

validará o método em execução (TSVAL0002ADMEMPRESSAS link),

deverá verificar

verificando o cache da requisição,

identificar

o cadastro de entidades, verificar se

deverá ser

é somente processado no

TSSOFFLINE

TSS OFFLINE ou se deverá ser enviado para o

TSSONLINE

TSS ONLINE, de forma síncrona ou assíncrona,

verificar

consultar se o serviço do

TSSONLINE

TSS ONLINE está disponível para envio da requisição. Além de tratamentos para contingência para certos cenários e processos.

O retorno da função deverá ser de acordo com a estrutura de retorno definida para o método

WS

Web Service. Em caso de falha

de processamento que provoquem retorno

que provoque o etorno Soap fault, a rotina deverá preencher a variável cError com a mensagem Soap fault e retornar nil.

Parâmetros:

oWsRequest oWsRequest Mensagem Soap recebida pelo Método  WS Web Service

cWSRequest cWSRequest Mensagem Soap recebida serializadacom número de serial.

cError cError Referência para mensagem de erro no processamento da requisição requisição.

aProc aProc Vetor contendo os dados de processo do método.cMethod 

cMethod – Método.

Retorno:

oRet oRet Mensagem Soap de Retorno do WSWeb Service.

 

ÂncoraTSSGetProcQueue()TSSGetProcQueue()Função: TSSGetProcQueue()

Função responsável por retornar os dados do método do TSS. 

As informações estarão definidas na função: TSSInitServices(). Ao identificar o processo no cadastro a rotina deverá retornar um vetor com os dados do processo.

 

A busca pelo processo poderá ser realizada de duas formas,

WS

Web Service e Método ou através do código do processo.

Parâmetros:

cWS cWS Nome do Web Service

cMethod cMethod Nome do método

cCodProc cCodProc Código do Processo

Retorno: 

aProc aProc Vetor com os dados do Processo. Sendo:

aProc[1]

- WS

– WEB SERVICE;

aProc[2]

- METODO

– METODO;

aProc[3] - CODIGO DO PROCESSO;

aProc[4] - FUNCAO DE VALIDADE;

aProc[5] - FUNCAO DE PROCESSAMENTO;

aProc[6] - TIPO DE PROCESSOS;

aProc[7] - DEFINIÇÃO DA UTILIZAÇÃO DA FILA;

 

anchor

setProcQueue()setProcQueue()Função: SetProcQueue GetCache()

 

Função responsável

pela definição da fila de processamento da requisição que será utilizado no TSSONLINE.

Parâmetros:

cModel Fila de processamento

Retorno:

Nulo

ÂncoragetCache()getCache()

Função: GetCache()

Função responsável por recuperar a resposta de uma requisição gravada no cache do TSS OFFLINE.

A função receberá com parâmetro um Hash do tipo sha1 com a mensagem da requisição WS

por recuperar a resposta de uma requisição gravada no cache no TSS OFFLINE.

A função receberá com parâmetro um Hash do tipo sha1 com a mensagem da requisição Web Service. Através desse Hash a função deverá realizar uma busca no cadastro de cache Tabela DLL0002

O cache deverá ser

Que será considerado apenas para processos com tipo diferente de "1" (Configuração). 

Parâmetros:

cTypeProc cTypeProc Fila de processamento.

cHash cHash Hash da mensagem.

oRetMsgJson oRetMsgJson Objeto como referência de retorno do cache.

Retorno:

lRet lRet Retorno verdadeiro caso tenha encontrado o cache.

 anchor

getEntidade()getEntidade()Função: GetEntidade GetEntidade()

 Função responsável pela definição da entidade da requisição.

Parâmetros:

oJSON oJSON Mensagem Soap recebida pelo Método  WS Web ServiceoRet 

oRet Objeto como referência de retorno do processo ADMEMPRESAS.

cCodProc cCodProc - Código do Processoprocesso.

Retorno: 

cIdEnt cIdEnt Entidade do processo.

  ÂncorapreProcReq()preProcReq()

Função: preProcReq preProcReq()

Função responsável por concentrar qualquer pré-processamento necessário antes do envio da requisição para o TSS ONLINE.

Os seguintes processos

deverão ser

são tratados pela função:

  • Processo 0062(Monitor Sefaz) e processo Processo 0063(Monitor Sefaz Modelo): Deverá ser realizado a consulta do Consulta o Status de operação do TSS ONLINE. Caso o TSS ONLINE esteja fora de operação, o retorno da requisição deverá ser  será baseado no Status de Operação do TSS ONLINE, informando que o TSS ONLINE está fora de operação e que a contingência OFFLINE estará  está disponível. Vale lembrar que por se tratar de uma contingência do produto TSS, apenas a contingência OFFLINE estará disponível.  
    A resposta para informar a contingencia contingência do TSS ONLINE, deverá ser é montada através da função getCloudStatus(),.

 

  • Processo 0073(Remessa de NFC-e): Caso a modalidade esteja configurada como normal e o TSS ONLINE esteja fora de operação, os documentos deverão ser registrados na tabela SPED050 e realizada a configuração para modalidade para contingência OFFLINE.

Parâmetros:

oRequest oRequest Objeto da requisição.cIdEnt 

cIdEnt Código da Entidadeentidade.

cError cError Referência para atribuição de Erro no Processamento.oRet 

oRet Referência para retorno do Processo.

lSinc lSinc Referência para indicar se o processo será realizado de forma  Síncrona ou Assíncrona.

cCodProc cCodProc Código do processo.

Retorno: 

lRet lRet Indica se a requisição está válida para ser enviada para o TSS ONLINE.

 

ÂncorasetSendReq()setSendReq()Função: setSendReq setSendReq()

Função responsável por definir se deve ou não enviar a requisição para o TSS ONLINE. Por default sempre será enviado para o TSS ONLINE

e

os métodos do processo do tipo 1.

Parâmetros:

lSendReq lSendReq Indica se será enviado para o TSS ONLINE

Retorno:

Nulo

 

ÂncorasetProcTable()setProcTable()Função: setProcTable setProcTable()

Função responsável por definir a tabela de negócio através da definição da fila de processamento do TSS ONLINE.

Parâmetros:

cModel cModel Modelo da fila

cCodProc cCodProc Código do processamento

Retorno:

Nulo

anchor 

 

GetDocCFG()GetDocCFG()Função: GetDocCFG GetDocCFG()

Função responsável por buscar os parâmetros

(SPED000)

de configuração da entidade (SPED000).

Parâmetros:

cIdEnt cIdEnt Código da entidade

Retorno:

cJson cJson Mensagem com os parâmetros no formato Json.

anchor 

 

getReqSequence()getReqSequence()Função: getReqSequence getReqSequence()

Função responsável por buscar a sequência da requisição.

Parâmetros:

Nulo

Retorno:

cSequence cSequence Sequencia da requisição

anchor 

 

getJSonRequest()getJSonRequest()Função: getJSonRequest getJSonRequest()

 Função responsável pela montagem do leiaute padrão para envio de requisições para o TSS ONLINE. 

 A

 A Mensagem deverá ser estruturada com os seguintes atributos:

  • id_request:
 Id
  •  ID para identificação da requisição. Deverá ser obtido através da função FWUUIDV4().
  • sequence:
  
  •  Identificador de sequência da requisição
. A sequência da requisição poderá ser
  • , será utilizada para informar ao TSS ONLINE a ordem
de processamento
  • das requisições.
Devido a
  • O novo modelo de processamento do TSS ONLINE
ser realizado de
  • utiliza o modo distribuído, caso
esse parâmetro seja ignorado (seja informado com
  • o atributo esteja com o valor = 0
)
  • , não será possível garantir a sequência de processamento enviada pelo TSS OFFLINE.
Processos
  • Será necessário utilizar este atributo nas transmissões de NFS-e que necessitem de
um
  • controle de numeração
por exemplo como o caso de Emissão de NFS-e
  • para determinados
Municípios, deverão fazer uso desse parâmetro. Dessa
  • municípios, desta forma o TSS ONLINE garantirá a ordem de processamento informada.
A Sequência deverá ser recuperada através da
  • Caso haja necessidade de recuperação da sequência numérica, basta utilizar a função getReqSequence()
 
  • .
  • docModel: Identifica o
Modelo
  • modelo de documento da requisição
. A identificação do modelo do documento será utilizada
  • , é  utilizada pelo TSS ONLINE para definir a fila de processamento da requisição. O modelo deverá ser obtido através da função getProcQueue()
  • codProc: Indica o código do processo. Deverá ser obtido através do array __aProc[IND_PROC]
  • action: Indica a função responsável pelo processamento da função no TSS ONLINE. Deverá ser obtido através de __aProc[IND_ACTION].
  • valid: Indica a função responsável pelo validação da função no TSS ONLINE. Deverá ser obtido através de __aProc[IND_VALID].
  • docConfig: Estrutura com os parâmetros MV do TSS OFFLINE. Devido
o
  • ao TSS OFFLINE trabalhar com configurações locais, as requisições enviadas para o TSS ONLINE
deverão ser envidas com
  • devem conter os parâmetros configurados no TSS OFFLINE. Dessa forma ao receber a requisição o TSS ONLINE dará preferência para os parâmetros enviados na requisição
. Os parâmetros deverão ser
  • , que serão recuperados através da função getDocCfg().
  • receive: Estrutura com os parâmetros da requisição WS. Esse parâmetro deverá ser recuperado através da função FWJsonSerialize().

Parâmetros:

oReceive 

oReceive Objeto da requisição

WS

Web Service.

cMethod 

cMethod 

Método do

WS

Web Service.

aProc 

aProc 

Dados do método

cDocConfig 

cDocConfig Configuração da entidade (JSon).

cSequence 

cSequence Sequência de requisição.

Retorno:

cJSON 

cJSON String com a requisição para o TSS ONLINE.

Âncora

 

 

isTSSCloudOnline()isTSSCloudOnline()

Função:

 isTSSCloudOnline

 isTSSCloudOnline()

Função responsável pela consulta do

Status de

status da operação do TSS ONLINE.

A consulta será realizada através do processo 0015 (

TSS0015CFGCONNECT

TSProc0015CFGCONNECT ). A função

deverá montar

TSSPostQueueMessage(). montará a mensagem JSON da requisição e

realizar o Envio

enviando para o TSS ONLINE

através da função TSSPostQueueMessage()

.

As consultas deverão ser realizadas de forma moderada

. Devendo haver

, tendo um controle de intervalo entre as tentativas

de consultas.O controle

, o qual será realizado através da API para manipulação de variáveis Globais, devendo ser criado um array de 2 posições contendo o

Status

status de operação e o horário da última consulta realizada.

Caso a consulta seja realizada com Sucesso, o

Status

status deverá ser preenchido com ‘.T.’

e o Status de operação deverá permanecer

,  permanecendo enquanto não houver

uma

falha de comunicação com o TSS ONLINE.

A cada tentativa de consulta o horário deverá ser sempre atualizado

.As tentativas de consulta deverão ser realizadas em

, mantendo um intervalos de 10 segundos. 

Parâmetros:

lCheck 

lCheck Força a realização da consulta. 

cError 

cError Referência para retorno de erro no processamento.

   

   

Retorno:

aStatus[1] Status de Operação.

Âncora

 

 

procRetError()procRetError()

Função: procRetError()

Função responsável por realizar os

procedimentos necessários para os

processos em caso de falha na transmissão da requisição.

Deverão ser realizados tratamentos para os seguintes processos:

  • Processo 0073(Remessa NFC-e): Caso ocorra falha no envio de NFC-e a rotina
deverá executar
  • executará o processo configuração de modalidade
. Alterando
  • a alterando para
modalidade
  • OFFLINE. 

A configuração deverá ser realizada através do Processo 0021 (TSProc0021CfgModalidGRV)

Parâmetros:

cIdEnt 

cIdEnt Código da Entidade.

oWSRequest 

oWSRequest Objeto da requisição

WS

Web Service.

cCodProc 

cCodProc 

Código do processo.

Retorno:

oRet 

oRet Requisição com a Remessa da NFC-e.

anchor

 

procRetOnline()

 

procRetOnline()

Função:

 procRetOnline

 procRetOnline()

Função responsável por executar rotina para processamento de retorno do TSS ONLINE.

Parâmetros:

oWSResponse 

oWSResponse Retorno do TSS ONLINE

cCodProc 

cCodProc Código do processo.

Retorno:

oRet 

oRet Retorno do Processamento.

 

ÂncoraTSSInitServices

Função: TSSInitServices()

TSSInitServices()

FunçãoTSSInitServices()

Função responsável

Função responsável por armazenar no array todos as informações dos métodos do

WS

Web Service.

Parâmetros:

Nulo

Retorno:

aService 

aService Todos as informações dos métodos do

WS

Web Service.

anchor

 

getJsonTicket()

 

getJsonTicket()

Função: getJsonTicket()

 Função responsável pela montagem da requisição de consulta do ticket.

Parâmetros:

cTicket 

cTicket Ticket de consulta.

Retorno:

aService 

aService Todos as informações dos métodos do

WS

Web Service.

anchor

 

getCloudStatus()

 

getCloudStatus()

Função:

 getCloudStatus

 getCloudStatus()

Função responsável por montar e retornar

Status

status de operação do TSS ONLINE.

A função

deverá montar

montará a resposta com a estrutura da classe MonitorStatusSefazModelo, informado a indisponibilidade do TSS ONLINE.

Os atributos deverão ser preenchidos da seguinte forma:

Modelo: Informar o modelo de cada tipo de documento modelo Sefaz(55, 57, 58, 65).

VersaoMensagem: Preencher com conteúdo do parâmetro MV_VERSAO.

StatusCodigo: Preencher com "999".

StatusMensagem: "TSSCloud Fora de Operação".

UFOrigem: SPÈD0001->UF.

UFResposta: Preencher com vazio " ".

TempoMedioSef: 0

Motivo: "Falha de comunicação".

Observacao: vazio " ".

Sugestao: "Entrar em contingencia OFFLINE".

LogAuditoria: vazio " "

 

.

Parâmetros:

cIdEnt 

cIdEnt Código da Entidade

Retorno:

StatusSefazModelo 

StatusSefazModelo Estrutura MonitorStatusSefazModelo com mensagem de retorno.

anchor

 

getReqSequence()

 

getReqSequence()

Função: getReqSequence()

Função responsável por retornar à sequência definida para a requisição.

A sequência da requisição estará definida na variável __cSequence definida pela função setReqSequence(). A função deverá apenas retornar o conteúdo da variável.

Parâmetros:

Nulo

Retorno:

  

  

__

cSequence 

cSequence Sequência da Requisição.

Âncora

 

getProcQueue()getProcQueue()

Função: 

getProcQueue

setReqSequence()

Função responsável por

retornar o Modelo

definir a sequência do documento da requisição.

 

O modelo

A sequência do documento

estará

deverá ser definido na

variável

variável __

ProcModel definida pela função setProcQueue. A função deverá apenas retorno do conteúdo da variável. 

cSequence definida com escopo "static".

Parâmetros:

Nulo 

Retorno:

__

cProcModel 

cSequence 

Modelo

Sequência do documento

 .

Retorno:

Nulo

 

 

ÂncorasetProcQueue()setProcQueue()

Função:

 setProcQueue

 getProcQueue()

Função responsável por

definir

retornar o Modelo do documento da requisição. 

O modelo do documento

deverá ser

estará definido na

variável 

variável __

ProcModel definida com escopo "static"   

cProcModel definida pela função setProcQueue(). A função deverá apenas retorno do conteúdo da variável. 

Parâmetros:

Nulo 

Retorno:

__

cProcModel 

cProcModel Modelo do documento.

 

 

 Retorno:

Nulo

Função: setProcQueue()

Função responsável por definir o Modelo do documento da requisição. 

O modelo do documento deverá ser definido na variável __cProcModel definida com escopo "static"   

Parâmetros:

__cProcModel - Modelo do documento.

Retorno:

Nulo

 

 

Função: putQueue

ÂncoraputQueue()putQueue()Função: putQueue

()

Função responsável pela gravação da

tabela

Tabela DLL0001

,

onde serão armazenadas as requisições que

serão

enviadas pelo JOB do TSS OFFLINE.

Parâmetros:

cIdEnt 

cIdEnt Codigo da entidade

 

.

cReqId 

cReqId Hash da requisição

 

.

cWSRequest 

cWSRequest Mensagem JSon da requisição. 

cProc 

cProc Código do processo. 

cError 

cError Mensagem de Erro. 

Retorno:

  

  

lRet 

lRet 

Se foi gravado

Gravado com sucesso.

anchor

 

grvCache()

 

grvCache()

Função:

 grvCache

 grvCache()

Função responsável pela gravação do cache na

tabela

Tabela DLL0002. Somente será armazenado requisições do tipo diferente de ‘1’. 

Parâmetros:

cTypeProc 

cTypeProc Tipo de requisição. 

cIdEnt 

cIdEnt Código da entidade. 

cMsgHash 

cMsgHash Hash da requisição. 

cMsgJson 

cMsgJson Mensagem JSon da requisição. 

cMsgJsonRet 

cMsgJsonRet Mensagem JSon

da

do retorno do envio. 

cCodProc 

cCodProc Código do processo

  

.  

Retorno:

lRet 

lRet Se foi gravado com sucesso.

ÂncoraTabela DLL0001Tabela DLL0001Tabela:  DLL0001

Tabela:  DLL0001

Cadastro de requisições para envio ao TSS ONLINE.


 

Campo

Tipo

Tamanho

Descrição

Observação

ID_ENT

Caractere

040

Código da Entidade

Id da Entidade no TSS

REQ_ID

Caractere

003

Id da requisição

Id da Requisição

REQ_MSG

Binary

Indefinido

Mensagem da Requisição 

String Json com requisição para o TSS ONLINE

DOCUMENTO

Caractere

045

Tipo do Documento

Tipo do Documento : Ex:

Nfe, CTe

DATA_CONT

Date

008

Data do registro

Data da Inclusão do registro

HORA_CONT

Caractere

010

Hora do registro

Hora da Inclusão do registro

TICKET

Caractere

040

Ticket da Requisição

Ticket retornado pela Fila do TSS

TABELA

Caractere

040

Tabela do documento

 

PROCESSO

Caractere

004

Código do Processo

Código de acordo com a tabela TSS0006

HISTORICO

Caractere

250

Historico com os Tickets

String com tickets retornados pelo TSS delimitados por “,”

 

anchor 
Tabela DLL0002Tabela DLL0002Tabela:  DLL0002

Tabela de cadastro de cache de requisições.

Campo

Tipo

Tamanho

Descrição

Observação

ID_ENT

Caractere

040

Código da Entidade

Id da Entidade no TSS

CODPROC

Caractere

004

Código do Processo

Código de acordo com a tabela TSS0006

MSG_JSON

Binary

Indefinido

Mensagem da Requisição 

String da Requisição

MSG-HASH

Binary

indefinido

String com Hash da Mensagem

Hash da requisição WS

RMSG_JSON

Binary

indefinido

String com resposta da requisição

Resposta da requisição WS

DATA_CACHE

Date

008

Data do registro

Data da Inclusão do registro

HORA_CACHE

Caractere

010

Hora do registro

Hora da Inclusão do registro

 

                                                  

Fluxo do processamento

  1. Identificar Web Service e Método através do Alias Virtual  "HttpIn->main" da função procname(1).
  2. Identificar os Parâmetros para montagem da Mensagem JSON para o TSS Online. TSSGetProcQueue() .
  3. Montar String JSON com parametros da requisição WS.
  4. Criar Hash com String da requisição.
  5. verificar Cache de requisições.
  6. Definir Fila de processamento da requisição.
  7. Identificação da Entidade do processamento: getEntidade().

 

 

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

 

 

 Image Removed

 

 

 

 

 

 

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

 

Image AddedImage Added

 

 

 

 

 

 

(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.