Árvore de páginas

Versões comparadas

Chave

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

...

OperaçãoDescrição
loginRecebe como cabeçalhos HTTP o nome do usuário ("username") e a senha ("password") e retorna um josso_session (JBoss) ou TOKEN JWT (Tomcat) que deve ser utilizado para as chamadas às outras operações.
userLoginRecebe como argumento ("arg0") o nome do usuário ou e-mail e retorna um josso_session (JBoss) ou TOKEN JWT (Tomcat).
userAndPasswordLoginRecebe como argumentos o nome do usuário ("arg0"), senha ("arg1") e retorna um josso_session (JBoss) ou TOKEN JWT (Tomcat).
logoutSession

Foi Enviar o josso_session (JBoss). Para o Tomcat, foi mantido apenas para compatibilidade pois não é utilizado nesta versão, uma vez que o TOKEN JWT expira automaticamente.

callProcedureRecebe como cabeçalho HTTP o josso_session (JBoss) ou TOKEN JWT (Tomcat) ("usertoken") e como argumentos o nome do programa ("arg0"), o nome do procedimento ("arg1") e os parâmetros desta ("arg2").
callProcedureWithCompanyRecebe como cabeçalho HTTP o josso_session (JBoss) ou TOKEN JWT (Tomcat) ("usertoken") e como argumentos o código da companhia ("arg0"), nome do programa ("arg1"), o nome do procedimento ("arg2") e os parâmetros desta ("arg3").
callProcedureWithTokenRecebe como argumentos o josso_session (JBoss) ou TOKEN JWT (Tomcat) ("arg0"), o nome do programa ("arg1"), o nome do procedimento ("arg2") e os parâmetros desta ("arg3").
callProcedureWithTokenAndCompany

Recebe como argumentos o josso_session (JBoss) ou TOKEN JWT (Tomcat)("arg0"), o código da companhia ("arg1"), o nome do programa ("arg2"), o nome do procedimento ("arg3") e os parâmetros desta ("arg4").

Aviso
titleAviso

A partir da release 12.1.31, foi implementada uma propriedade para restringir a utilização das operações de login (login, userLogin e userAndPasswordLogin). Em seu lugar, é recomendado a utilização de um serviço de autenticação próprio do produto TOTVS Linha Datasul (http://[SERVIDOR]:[PORTA]/josso/signon/auth.do)

Para mais informações de como utlizar este serviço, consultar DFWKTOOLS-2307 DT Autenticação usuário para acesso via endpoints Datasul


JBoss

No arquivo datasul_framework.properties, incluir a propriedade login.webexecbo.allowed=false. Caso esta propriedade não esteja configurada no arquivo, o padrão é permitir o acesso as operações de login.


Exemplo com a utilização de um Token JWT

...

Expandir
titleClique para visualizar o conteúdo

A nível de teste pode-se utilizar a ferramenta SOAPUI ou Postman. Neste caso foi utilizado o SOAPUI 5.5.0.

Supondo que a ferramenta esteja instalada, pode-se seguir as etapas abaixo para validação e testes:


1- Clicar no botão "Explorer EndPoint" e informar a URL onde se encontra o serviço. Caso a URL esteja funcional, será retornado o arquivo com as informações do WSDL (É a mesma situação que ocorre em execuções direta da URL pelo navegador):


2- Criar um projeto:


3- Adicionar a URL WSDL (Project → Add WSDL) → informar a URL onde se encontra a descrição WSDL do serviço):



Com isto, são carregados uma coleção com os endpoints/operações deste serviço, as quais já estão informadas no quadro acima, sendo disponíveis para utilização.


4- Efetuar uma requisição de "login". Neste exemplo foi realizado a requisição ao endpoint/operador userLogin como parâmetro no arg0 o nome do usuário cadastrado no produto Datasul. Após a execução é retornado o token JWT.


5- Com base no token JWT gerado, efetuar a chamada aos programas Progress com o endpoint/operador desejado. Neste exemplo foi utilizado o callProcedureWithToken.


O exemplo acima utiliza o programa Progress "CalculadoraSimples.p", abaixo está o trecho de código para testes.

Bloco de código
languagexml
titlejava/CalculadoraSimples.p
        <!--Optional:-->
		<arg1>java/CalculadoraSimples.p</arg1>
	    <!--Optional:-->
	    <arg2>pi-calc</arg2>
         <!--Optional:-->
         <arg3>[ { "name":"pOperador", "type":"input", "dataType":"character", "value":"+"},
				{ "name":"pNum1", "type":"input", "dataType":"decimal", "value":1},
				{ "name":"pNum2", "type":"input", "dataType":"decimal", "value":1},
				{ "name":"pResult", "type":"output", "dataType":"decimal", "value":0 } ]
	    </arg3>

...