O Portal Protheus disponibiliza serviços na Web para agilizar e facilitar o compartilhamento de informações entre seus clientes, fornecedores, parceiros, usuários internos e externos; toda a comunicação entre os servidores Web e os servidores Corporativos é efetuada através de Web Services.
Para habilitar os WebServices é necessário que o Serviço HTTP esteja ativo. Este serviço permite que as informações sejam publicadas na WEB.
Assim, a configuração inicia-se habilitando o serviço HTTP e configurando a porta aos quais todos os outros serviços dependentes deste irão utilizar para a publicação das informações.
Observação: Os serviços devem ser configurados pelo WIZARD (SRVWIZARD), pois a cada módulo WEB instalado são descompactados arquivos importantes no diretório informado na configuração. Estes arquivos são de extensão exclusiva da Microsiga, os *.MZP, e que apenas com o Wizard será possível a correta instalação.
Alteração de comportamento 1
Alteração efetiva a partir da LIB Label 20170208, com o font XmlWsCvs.prw de data igual ou superior a 29/03/2017, nas versões 11 e 12 do Protheus.
Para atender a orientação de mercado, os serviços SOAP do Protheus não retornam mais o stack completo de error.log.
Ao ocorrer um erro no sistema, é gerado um SoapFault 500, somente com a mensagem “Internal Server Error”. O envio do error.log pelo canal HTTP não será mais realizado.
O erro ainda poderá ser verificado no sistema através dos arquivos de log do appserver.exe.
Fonte: http://tdn.totvs.com/pages/viewpage.action?pageId=311632028
Alteração de comportamento 2
A partir da release 12.1.31 do Protheus, a ser liberada em Abril de 2021, o comportamento padrão de autenticação de WebServices SOAP e REST será alterado. A partir desta versão, caso a chave Security não seja informada no arquivo appserver.ini, os serviços serão iniciados exigindo autenticação de usuário. Caso seja necessário trabalhar sem autenticação, a chave deverá ser configurada com o valor 0 (Exemplo: Security=0).
Autenticação
A partir da LIB 20201123 o WS SOAP do Protheus passa a trabalhar também com a autenticação do tipo BEARER. Para a geração do token, foi disponibilizado o serviço FWAuthentication, método token.
Para configurar, siga o procedimento abaixo:
- Primeiramente, baixe os Arquivos de portais no Portal do Cliente, e descompacte na pasta Systemload
- Portal do Cliente: http://suporte.totvs.com - Clique em Downloads
- Na opção Outras linhas de Produto selecione Protheus
- MICROSIGA PROTHEUS VERSÃO 12.1.XX (onde XX é a versão da sua release)
- Todos
- Categoria: Arquivos de portais
- Baixe o arquivo ARQUIVOS DE PORTAIS
Obs.: se não estiverem aparecendo as versões, em "Filtros de pacotes" selecione "Todos pacotes disponíveis" e selecione a categoria novamente.
- Após baixar e descompactar o arquivo, abra o Smartclient, e no Programa Inicial, digite: SRVWIZARD
- Clique 2 vezes em Servidor Internet (HTTP/FTP) para expandir, clique em HTTP, e verifique se a caixinha Protocolo Habilitado está marcada, e confirme a Porta de Conexão (recomendamos que seja diferente de 80, que é a porta padrão do HTTP, e é utilizada por serviços do Windows).
- Após a confirmação, clique em Módulos Web e então clique em Novo Módulo
- Em Módulo Web, selecione WS - Microsiga Protheus Web Services
- Em Nome da Instância digite ws
- O Diretório Raiz das imagens será preenchido automaticamente
- Em Selecione o Environment, clique e selecione o ambiente do Protheus que será utilizado
- Marque a caixinha Habilitar processos na Inicialização do Servidor, e clique em Avançar
- Na tela Configuração de Hosts X Empresas/Filiais, em Hosts, digite o endereço, porta e pasta da instância do Webservice, conforme exemplo: localhost:8079/ws (não digite o "http"). Caso o servidor não seja local, digite o IP do servidor.
- Em Selecione a Empresa/Filial, selecione a Empresa que estará vinculada a este Webservice, então clique em Relacionar. A ligação entre o Host e a Empresa será listada em Relacionamentos
- Clique em Avançar
- Na tela Configuração de usuários, em Mínimo Usuários e Máximo Usuários, que é a quantidade de threads que será aberta em execução (Mínimo) e a quantidade de threads que será aberta em espera (Máximo), digite as quantidades desejadas e clique em Finalizar
- Será exibida uma janela de confirmação da criação do Módulo Web. Clique em Sim
- Ao final será exibido um aviso solicitando a reinicialização do Protheus para que a configuração entre em vigor. Clique em Fechar
- Após configurar o Webservice, é necessário configurar o Portal. Clique novamente em Módulos Web e clique em Novo Módulo
- Em Módulo Web selecione PP - Portal Protheus
- Em Nome da Instância digite pp
- O Diretório Raiz das imagens será preenchido automaticamente
- Em Selecione o Environment, clique e selecione o ambiente do Protheus que será utilizado
- Marque a caixinha Habilitar processos na Inicialização do Servidor
- Em URL do Protheus Web Services, preencha o endereço que foi criado na etapa anterior para o Webservice. No nosso exemplo: http://localhost:8079/ws
- Clique em Avançar
- Na tela Configuração de Hosts X Empresas/Filiais, em Hosts, digite o endereço, porta e pasta da instância do Portal, conforme exemplo: localhost:8079/pp (não digite o "http"). Caso o servidor não seja local, digite o IP do servidor.
- Em Selecione a Empresa/Filial, selecione a Empresa que estará vinculada a este Portal (geralmente será exibida apenas uma opção Todas as Empresas e Filiais), então clique em Relacionar. A ligação entre o Host e a Empresa será listada em Relacionamentos
- Clique em Avançar
- Na tela Configuração de usuários, em Mínimo Usuários e Máximo Usuários, que é a quantidade de threads que será aberta em execução (Mínimo) e a quantidade de threads que será aberta em espera (Máximo), digite as quantidades desejadas e clique em Finalizar
- Será exibida uma janela de confirmação da criação do Módulo Web. Clique em Sim
- Ao final será exibido um aviso solicitando a reinicialização do Protheus para que a configuração entre em vigor. Clique em Fechar
- Após essa configuração, finalize o Totvs Wizard e reinicie o Protheus para que as alterações passem a vigorar. O arquivo appserver.ini será alterado com essas configurações, e a parte da configuração HTTP, WebService e Portal deve ficar semelhante ao exemplo abaixo:
[HTTP] ENABLE=1 PORT=8079 PATH=C:\TOTVS 12\Microsiga\help-online Environment=P12 [localhost:8079/ws] ENABLE=1 PATH=C:\TOTVS 12\Microsiga\protheus_data\web\ws ENVIRONMENT=P12 INSTANCENAME=ws RESPONSEJOB=JOB_WS_01010101 DEFAULTPAGE=wsindex.apw [JOB_WS_01010101] TYPE=WEBEX ENVIRONMENT=P12 INSTANCES=1,1 SIGAWEB=WS INSTANCENAME=ws ONSTART=__WSSTART ONCONNECT=__WSCONNECT PREPAREIN=01,010101 [ONSTART] JOBS=JOB_WS_01010101,JOB_PP [localhost:8079/pp] ENABLE=1 PATH=C:\TOTVS 12\Microsiga\protheus_data\web\pp ENVIRONMENT=P12 INSTANCENAME=pp RESPONSEJOB=JOB_PP [JOB_PP] TYPE=WEBEX ENVIRONMENT=P12 INSTANCES=1,1 SIGAWEB=PP INSTANCENAME=pp ONSTART=STARTWEBEX ONCONNECT=CONNECTWEBEX ONEXIT=FINISHWEBEX WEBSERVICELOCATION=http://localhost:8079/ws
- Após reiniciar o Application Server, para testar se o serviço dos Webservices iniciou corretamente, abra o endereço do WebService no navegador (Internet Explorer, que é o navegador homologado para Portais e Webservices), conforme exemplo: http://localhost:8079/ws
Configuração de segurança para um Webservice SOAP:
A chave abaixo deve ser incluída na seção do JOB de requisições:
Security | Indica se a autenticação de requisição esta habilitada |
Observação
O HTTP do SOAP verifica existência do campo Authorization no HEADER da requisição, porém a autorização é realizada pelo framework do produto que está utilizando o protocolo.
Somente é permitida autenticação do tipo Basic no webservice SOAP do Protheus.
Para facilitar o desenvolvimento e testes pode-se configurar a chave Security com valor 0 (zero) para desabilitar a autenticação
Exemplo
[JOB_WS] TYPE=WEBEX ONSTART=__WSSTART ONCONNECT=__WSCONNECT SECURITY=1
Alerta de risco
Fique atento ao utilizar o parâmetro de configuração com a chave Security=0, pois isso fará com que as integrações (APIs) não exijam autenticação, consequentemente dados do seu ambiente poderão ser consultados sem qualquer controle de autorização.