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 | <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)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.
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.
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:
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.
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:
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:
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:
IsLocalBrockerFunção: TSSAnalyseReq() Âncora
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
TSSOFFLINETSS 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.
Função: TSSAnalyseReq()
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.
TSSBrokerReq() Âncora
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,
buscarbuscando 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
WSWeb Service. Em caso de falha
de processamento que provoquem retornoque 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.
Âncora
Função: TSSLocalBroker TSSLocalBroker()
Função responsável pelo tratamento da requisição que está sendo
realizadorealizada com o serviço do
TSSOFFLINETSS OFFLINE, ou seja,
deverá realizar a validação dovalidará o método em execução (TSVAL0002ADMEMPRESSAS link),
deverá verificarverificando o cache da requisição,
identificaro cadastro de entidades, verificar se
deverá seré somente processado no
TSSOFFLINETSS OFFLINE ou se deverá ser enviado para o
TSSONLINETSS ONLINE, de forma síncrona ou assíncrona,
verificarconsultar se o serviço do
TSSONLINETSS 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
WSWeb Service. Em caso de falha
de processamento que provoquem retornoque 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.
Âncora
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,
WSWeb 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
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
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 WSpor 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á serQue 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
Função responsável pela definição da entidade da requisição.
Parâmetros:
oJSON oJSON - Mensagem Soap recebida pelo Método WS Web Service. oRet
oRet - Objeto como referência de retorno do processo ADMEMPRESAS.
cCodProc cCodProc - Código do Processoprocesso.
Retorno:
cIdEnt cIdEnt - Entidade do processo.
preProcReq() Âncora
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 sersão tratados pela função:
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.
Âncora
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
eos métodos do processo do tipo 1.
Parâmetros:
lSendReq lSendReq - Indica se será enviado para o TSS ONLINE
Retorno:
Nulo
Âncora
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
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
Função responsável por buscar a sequência da requisição.
Parâmetros:
Nulo
Retorno:
cSequence cSequence - Sequencia da requisição
anchor
Função responsável pela montagem do leiaute padrão para envio de requisições para o TSS ONLINE.
AA Mensagem deverá ser estruturada com os seguintes atributos:
Parâmetros:
oReceiveoReceive - Objeto da requisição
WSWeb Service.
cMethod
cMethod- Método do
WSWeb Service.
aProc
aProc- Dados do método
cDocConfigcDocConfig - Configuração da entidade (JSon).
cSequencecSequence - Sequência de requisição.
Retorno:
cJSONcJSON - String com a requisição para o TSS ONLINE.
Função:
isTSSCloudOnlineisTSSCloudOnline()
Função responsável pela consulta do
Status destatus da operação do TSS ONLINE.
A consulta será realizada através do processo 0015 (TSProc0015CFGCONNECT ). A função
deverá montarTSSPostQueueMessage(). montará a mensagem JSON da requisição e
realizar o Envioenviando 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
Statusstatus de operação e o horário da última consulta realizada.
Caso a consulta seja realizada com Sucesso, o
Statusstatus deverá ser preenchido com ‘.T.’
e o Status de operação deverá permanecer, permanecendo enquanto não houver
umafalha 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:
lChecklCheck - Força a realização da consulta.
cErrorcError - Referência para retorno de erro no processamento.