Versões comparadas

Chave

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

 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 TOTVS Service SOA

 

Segmento Executor

 

Projeto1

 

IRM1

 

Requisito1

 

Subtarefa1

 

Chamado2

 

Release de Entrega Planejada

 

Réplica

 

País

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

(  X) USA  ( X ) 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

 Definir uma a estrutura padrão para implementação a segregação dos métodos do TSS, para que possa ser utilizado tanto  pela DLL quanto pelo Web service do TSS.Web Services dos TSS. A segregação dos métodos será necessária para que as funcionalidades do TSS estejam disponíveis tanto por chaadas via Web Service quanto as chamadas que seãp realizadas pela DLL do TSS, que será através de comunicação via HTTPS com mensagens no formato JSON. Dessa os serviços oferecidos pelo TSS estarão disponíveis para acesso através de qualquer interface de comunicação   

(Obrigatório)

Definição da Regra de Negócio

Deverá ser retirado todo o processamento dos métodosPara que os métodos do TSS funcionem apenas como uma interface de comunicação entre os ERPs e o TSS, os métodos deverão ser restruturados, ficando livre de qualquer acoplamento de implementação de processamento das requisições. Os métodos deverão conter apenas as validações específicas dos métodos, a chamada para a função de validação e processamento da requisição e a validação verificação do retorno para o Web Service.

Tanto a função de processamento quanto a função de validação, serão originadas a partir da segregação do método 

As entradas de requisições para processamento via DLL ou sem DLL, serão realizadas através dos mesmos métodos já existentes no TSS. De acordo com a configuração do appserver do Web Server, as requisições seguirão o seguinte fluxo.     

. O método deverá estar estruturado para funcionar tanto para requisições da DLL quanto para as requisições enviadas diretamente pelos Web Services do TSS. Caso a requisição seja recebida pela para processamento via DLL, o processo será direcionado para a função DLLProcRequest() que fará o processamento requerido pela DLL  , caso contrário a requisição será enviada para a função TSSProcRequest(). A Decisão de qual função chamar, deverá ser definida na compilação através de uma diretiva de compilação.responsável pelo processamento da requisição WS. Todos os métodos deverá ser definidos com a segguinte estrutura:

 

WSMETHOD  XXXXXXXXX     WSRECEIVE  XXXXXX, XXXXXX, XXXXXXX       WSSEND XXXX            WSSERVICE XXXXXX

    local cError := ""
    local lRetorno := .T. private oJSON := nil
private oJSONRet := nil

 

//VALIDAÇÕES ESPECÍFICAS DO MÉTODO. MANTER TODAS AS VALIDAÇÕES EXISTENTES.

fwJsonDeserialize( getWSJsonRequest() , @oJSON)if( type("oJSON") <> "U")
//Define o processo de acordo com a chamada: DLL ou Web Service
#IFDEF PROCDLL
fwJsonDeSerialize( DLLProcRequest( oJSON ), @oJSONRet)
#ELSE
fwJsonDeSerialize( TSSProcRequest( oJSON ), @oJSONRet)
#ENDIF
if( type("oJSONRet") == "U" .or. oJSONRet:result == "false" )
lRetorno := .F.
setSoapfault( STR0001, if( type("oJSONRet:error") <> "U", oJSONRet:error, getJSONError() ) )
else
self:NFeOk := oJSONRet:send
endif
else
lRetorno := .F.
setSoapfault( STR0001, getJSONError() )

    if( lRetorno := TSval0002admempresas(self, @cError) )

        if( isDll())

            self:ID_ENT := DLLProcRequest( self, @cError )

        else
            self:ID_ENT := TSProcXXXXXXXXXX( self, @cError )

        endif

    else
        self:ID_ENT := nil

    endif

    if !( lRetorno := valType(self:ID_ENT) <> "U" )
        setSoapFault(WS_PROC, cError)

    endif

    delClassIntf()

return finishSped(lRetorno)

 

Onde TSSProcXXXXXXXXXX será o nome da função segregada do método WS.

endif

return finishSped(lRetorno)

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

 

Opcional

Fluxo do Processo

1. Fluxo Principal:

1.1. Valida parâmetros específicos do método Realiza validação da Requisição através. 

1.2. Dados inválidoRequisição  inválida[2.1]

1.3.Monta mensagem JSON padrão de processamento do TSS Verifica se o processamento passara pela DLL. 

1.4. Envia requisição para processamento Se o processamento for para DLL, envia requisição para função DLLpRocRequest. caso contrário executa função do método.  

1.5. Verifica se houve falha no processamento.Retorno Inválido[2.2]

1.6.Falha na execução da requisição[2.1] Se retorno for nil, retorna Soap Fault com erro do processo. Caso contrário retorna resultado de acordo com estrutura esperada pelo Web service 

1.7. retorna resposta da requisição. Realiza limpeza do objetos instanciados 

 

2. Fluxo Secundário

    2.1. Falha na validação

        2.1.1.  Retorna String Soap Fault com erro da validação.

    2.1. Falha no processamento

        2.1.1.  Retorna String Soap Fault com erro do processamento.

 

 

Image Added

 

Opcional

 

Dicionário de Dados

(Opcional)

Grupo de Perguntas

<Informações utilizadas na linha Protheus>.

(Opcional)

Consulta Padrão

<Informações utilizadas na linha Protheus>

(Opcional)

Estrutura de Menu

<Informações utilizadas na linha Datasul>.

Procedimentos

Programas 

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


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