Criação de WebService Protheus

Olá amigos,

WebServiceVou estar explicando nesse artigo, como criar um WebService no Protheus, serviço esse que vai servir para uma série de posts que estou planejando fazer, entre elas está a integração do Protheus com Android.

Para quem está achando estranho a palavra, segue abaixo um breve conceito:

Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Com esta  tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis. Os Web services são componentes que permitem às aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria “linguagem”, que é traduzida para uma linguagem universal, um formato intermediário como XML, Json, CSV, etc.

Para as empresas, os Web services podem trazer agilidade para os processos e eficiência na comunicação entre cadeias de produção ou de logística. Toda e qualquer comunicação entre sistemas passa a ser dinâmica e principalmente segura, pois não há intervenção humana. Abrindo com isso um leque de alternativas, interagindo com diversas outras fontes de informações. O SEFAZ mesmo é um exemplo disso, recebendo dados de forma padronizada dos mais diversos sistemas existentes no Brasil…

Ótimo, agora que já sabemos o que significa, vamos criar o nosso….rsrsr

O Protheus já possui esse serviço embutido, bastando para nós usuários apenas a configuração e ativação do mesmo. Particularmente, eu prefiro criar um serviço separado par o o WebService, com isso, seguindo a forma como gosto de fazer!

1 -Minha estrutura de pastas no Protheus é a seguinte:

Estrutura de pastas

 

E dentro da pasta /apo, tenho todas as versoes, que trabalho, seja pra testes ou pra desenvolvimento. Supondo que você tem apenas um rpo, sendo /apo/apo, faça uma cópia dessa pasta gerando um novo repositório e colocando um sufixo “_wsdl”, isso mantem nossa estrutura organizada, no meu caso ficou, /apo/apo_wsdl:

Estrutura de pastas 2

2 – Vamos agora fazer uma cópia também dos binários, ou seja da pasta /bin/appserver, seguindo o mesmo conceito, vamos por um sufixo “_wsdl”, ficando:

Estrutura de pastas 3

3 – Vamos agora editar o arquivo /bin/appserver_wsdl/appserver.ini. Como esse arquivo será atenderá apenas o WebService, então podemos apagar dele tudo que não for necessário, deixando bem enxuto, removendo ambientes, e tags desnecessárias. O que vai ser acrescentado nele caso não exista é essa configuração abaixo:

Caso exista, altera deixando semelhantes a isso, lembrando que os paths contidos devem ser alterados para sua realidade. Outra questão é que a porta usada abaixo é a 8090, ela é a mesma usada por padrão no WebService de Nota fiscal eletrônica, sendo que na minha configuração esta desse jeito devido o servidor TSS está instalado em outro servidor. Se por ventura esse não ser o seu caso, ou seja, todos os serviços rodam no mesmo servidor, altere essa porta para sua realidade, para evitar choque. Podendo ser uma a seu criterio, 8091, 8092…., que será a porta vista na URL e publicada.

Altere também a porta de comunicação TCP, para uma diferente da que o seu serviço ou seus serviços balances usam. No nosso caso aqui está rodando a na porta 9025.

[http]
enable=1
path=C:\Protheus11\Protheus11\web\WS
port=8090
Environment=WEBSERVICE
INSTANCENAME=WS
RESPONSEJOB=JOB_WS_0101
DEFAULTPAGE=wsindex.apw

[ONSTART] 
RefreshRate=180 
jobs=JOB_WS_0101

[JOB_WS_0101]
TYPE=WEBEX
ENVIRONMENT=WEBSERVICE
INSTANCES=1,20
SIGAWEB=WS
INSTANCENAME=WS
ONSTART=__WSSTART
ONCONNECT=__WSCONNECT
PREPAREIN=01,01

Renomeie o único ambiente agora para WEBSERVICE, ou outro de sua preferencia. Abaixo pode ver todo o arquivo, onde, o SourcePath agora aponta para a cópia do RPO que fizemos anteriormente APO_WSDL,

[WEBSERVICE]
SourcePath=C:\Protheus11\Protheus11\apo\APO_wsdl
RootPath=C:\Protheus11\Protheus11
StartPath=\system\
x2_path=
RpoDb=Top
RpoLanguage=portuguese
RpoVersion=110
LocalFiles=ads
Trace=0
localdbextension=.dbf
PictFormat=DEFAULT
DateFormat=DEFAULT
RegionalLanguage=BRA
helpserver=help.microsiga.com.br
TOPDataBase=MSSQL7
TopServer=127.0.0.1
TopALIAS=PRODUCAO_11

[DBAccess]
PROTHEUSONLY=0

[Drivers]
Active=TCP

[TCP]
TYPE=TCPIP
Port=9025

[General]
InstallPath=C:\Protheus11\Protheus11
Segmento=pZFVvWym
Serie===AV
BuildKillUsers=1
consolelog=1

[LICENSESERVER]
enable=0
port=5555
ShowStatus=1

[LICENSECLIENT]
Server=127.0.0.1
port=5555

[SERVICE]
Name=TOVS_WSDL
DisplayName=TOTVS_WSDL

[http]
enable=1
path=C:\Protheus11\Protheus11\web\WS
port=8090
Environment=WEBSERVICE
INSTANCENAME=WS
RESPONSEJOB=JOB_WS_0101
DEFAULTPAGE=wsindex.apw

[MAIL]
Protocol=POP3

[ONSTART] 
RefreshRate=180 
jobs=JOB_WS_0101

[JOB_WS_0101]
TYPE=WEBEX
ENVIRONMENT=WEBSERVICE
INSTANCES=1,20
SIGAWEB=WS
INSTANCENAME=WS
ONSTART=__WSSTART
ONCONNECT=__WSCONNECT
PREPAREIN=01,01

4 – Como estamos configurando o serviço nesse momento, é ideal acompanharmos os logs antes de instalá-lo como serviço do windows, portanto, criem um atalho para o executavel appserver.exe, que esta localizado em /bin/appserver_wsdl/appserver.exe, em seguida vamos editar esse atalho criado, clicando nas propriedades dele.

Nesse arquivo vamos incluir no campo Destino, no final do Patch existente a tag “-CONSOLE”, como na imagem abaixo, para que possamos acompanhar o WebService sendo executado desde o inicio.

Atalho2

Após isso, clique em OK e vamos iniciar o WebService.

5 – Para iniciar basta que executemos o atalho criado, e devemos ver algo como na imagem abaixo

Console WebService

Na imagem podemos ver a porta que foi configurada no meu caso a 8090, e a mensagem que o serviço foi Iniciado.

6 – Agora que o serviço foi iniciado, podemos fazer um teste do nosso WebService usando um Browser, se for no mesmo servidor podemos rodar como http://127.0.0.1:8090, e devemo ver algo como:

WebService URL

 

7 – O sistema pode se manter rodando dessa forma, agora isso é o ideal pra quem vai desenvolver, ou executar o WebService de vez em quando. Caso ele vá passar a ser um serviço oficial, é ideal transformá-lo em serviço do Windows, para isso basta alterar novamente o atalho criado anteriormenet, substituindo a tag “-CONSOLE” por “-INSTALL”. Feche o console se tiver aberto, e execute novamente o atalho. O aplicativo vai abrir rapidamente e fechar, pois, foi executado apenas para criar o serviço.

Para iniciá-lo, será necessário que você vá nos serviços do windows Painel de controle >> Ferramentas administrativas >> Serviços, e localize o serviço criado, no nosso caso ele irá criar com o nome TOTVS_WSDL, que é nome que definimos nas configurações no parâmetro [SERVICE], você pode deixar o nome como achar melhor.

Clicar com o botão direito sobre o serviço e iniciar, antes altere ele para iniciar automaticamente.

Pronto, seu WebService está configurado e funcionando…. só não tem serviços agregados ao mesmo….

Ele servirá de base para os próximos posts, onde, criaremos uma aplicação para integração com o Android, não deixe de acompanhar, se cadastra na NewsLetter para receber as próximas atualizações em primeira mão!!

Caso tenha ocorrido algum erro, participe deixando seu comentário abaixo,  e vamos ver onde está o problema!

Fica ai a dica…

 

5 Comments

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="">

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.