Passo a passo: | Conceito (O que é um ExecAuto?)
Basicamente, as funções que recebem parâmetros podem ser chamadas via ExecAuto, parâmetros são passados entre parênteses após o nome da função.
Exemplo de Função que possui parâmetros: Exemplo de função que não possui parâmetros:
Após verificar se a função tem parâmetros, deve-se verificar se existe um Modelo de ExecAuto para esta função publicado no TDN. Páginas de Rotinas Automáticas (ExecAuto):
Caso a rotina possua parâmetros e não possua um exemplo publicado no TDN, é necessário solicitar a documentação do ExecAuto ao time de desenvolvimento através de uma Issue de Documentação. |
|
|
Para testes de chamada de execauto via API REST, siga os passos abaixo: Fonte de exemplo de API REST para chamada de execauto: #INCLUDE 'PROTHEUS.CH' #INCLUDE 'TOTVS.CH' #INCLUDE 'RESTFUL.CH' #INCLUDE 'RWMAKE.CH' #INCLUDE 'TOPCONN.CH' #INCLUDE "FWMVCDEF.CH"
// API para chamar execauto via REST
WSRESTFUL EXECTST2 DESCRIPTION "TESTE" WSMETHOD GET DESCRIPTION "TESTE" WSSYNTAX "/EXECTST" END WSRESTFUL
WSMETHOD GET WSSERVICE EXECTST2 U_MyMata410() //Função a ser chamada Return |
---|
1 - Salvar o fonte com o nome "execviarest.prw". 2 - Na "Função a ser chamada" colocar o nome da função do execauto que irá utilizar: Exemplo: U_MyMata410() |
Compilar os fontes: 1 - Fonte da API: execviarest.prw 2 - Fonte do execauto "ajustado" |
Subir um serviço de REST, para isso utilize o exemplo abaixo: ;===================================== ;============== WEB REST =============== ;===================================== [HTTPV11] Enable=1 AddressFamily=1 Sockets=HTTPREST [HTTPREST] Port=8086 <<-- Porta do REST IPsBind= MaxQueue=10 URIs=HTTPURI SECURITY=0 [HTTPURI] URL=/rest PrepareIn=ALL Instances=1,10 OnStart=REST_START OnConnect=REST_CONNECT OnExit=REST_EXIT [HTTPJOB] MAIN=HTTP_START ENVIRONMENT=12.1.2310 <<-- Nome do seu ambiente [ONSTART] jobs=HTTPJOB RefreshRate=120 ;===================================== |
---|
Não se esqueça de validar se o REST está no ar, feche o console do App Server e abra novamente verificando se exibe a mensagem de REST, validando também se o REST está no ar através do navegador da internet. "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." |
- Temos também uma documentação complementar sobre a configuração através do APWebWizard: Configurando REST
|
|
Para fazer a chamada da API iremos utilizar o Postman.
1 - Baixar e instalar o Postman: https://www.postman.com/downloads/ 2 - Informar os dados de acesso ao Postman, campos a preencher na aba "Headers": - GET: Coloque o endereço de seu REST + o texto: /EXECTST2
- Key: tenantid
- Value: 99,01 <empresa,filial>
|
No Postman clique no botão "Send" para executar a API: |
|
|
Para testes de chamada de execauto via API WebService, siga os passos abaixo: Fonte de exemplo de API WS para chamada de execauto: #include "protheus.ch" #include "totvs.ch" #include "apwebsrv.ch" // API para chamar execauto via WS
WSSERVICE wsteste01 WSDATA cumped AS string WSDATA cRet AS string WSDATA UserCode AS String
WSMETHOD wsteste ENDWSSERVICE
WSMETHOD wsteste WSRECEIVE UserCode, cumped WSSEND cRet WSSERVICE wsteste01 U_MyMata410() //função a ser chamada
RetURN.T. |
---|
1 - Salvar o fonte com o nome "execviaws.prw". 2 - Na "Função a ser chamada" colocar o nome da função do execauto que irá utilizar: Exemplo: U_MyMata410() |
Compilar os fontes: 1 - Fonte da API: execviaws.prw 2 - Fonte do execauto "ajustado" |
Para utilizar a API é necessário que os WebServices estejam ativos. Ambos serviços dependem do serviço HTTP do Protheus, que permite que as informações sejam publicadas na WEB. A configuração inicia-se habilitando o serviço HTTP e configurando a porta que todos os outros serviços dependentes deste irão utilizar para a publicação das informações.
Os serviços devem ser configurados pelo WIZARD, 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. No exemplo acima, a configuração está sendo realizada para o caminho LOCALHOST. Para publicá-lo informe o nome da máquina ou o endereço IP. Caso seu serviço HTTP esteja configurado para a porta 80, não deve informá-lo no host. Exemplo localhost/ws. |
A - Acesse o Wizard de configuração dos Serviços;
B - Em Servidor Internet (HTTP/FTP), verifique se o serviço de HTTP já existe, confirme se está habilitado e para qual porta está configurada. Pois estas são informações indispensáveis para o correto funcionamento dos WebServices e Portais.
- Realize o Download dos Arquivos de Portais (web_files) do Portal do Cliente;
- Inclua uma pasta web dentro da Protheus Data do Sistema e insira os web_files;
- Insira também os arquivo web_files na pasta systemload
- Selecionar a opção: <HTTP> e clicar na barra superior <Editar> conforme exemplo;
- O sistema apresentará a tela para Configuração da Seçãoonde os principais campos são:
- Flag para Habilitar o Protocolo;
- Path de Arquivos = Caminho da Pasta Web;
- Ambiente = Nome do Ambiente;
- Porta de Conexão = Porta de configuração dos Serviços;
Na configuração da Seção, inserimos como exemplo a porta 92, porém ela pode ser alterada caso prefira. Caso definida a porta padrão do serviço HTTP que é a 80, não é necessário especificá-la na configuração do WS e Portais. |
Basta confirmar e gravar as configurações |
D - Configure os Módulos da Web: - Realize as configurações básicas, campos importantes:
- Módulo Web = WS - TOTVS Linha Protheus Web Services;
- Nome da Instância = ws;
- Diretório Raiz das Imagens (Web Path) = Diretório da Pasta Web onde o sistema irá criar a pasta "ws";
- Selecione o Environment = Nome do Ambiente;
- Flag para habilitar processos na inicialização do Servidor.
- Realize a Configuração de Host x Empresas/Filiais, campos importantes:
- Host = Server e porta dos Web Services (Deve ser informada a porta informada na Configuração HTTP/FTP);
- Selecione a Empresa/Filial = Empresa e Filial de acesso (Para configuração Multifilial, consulte a respectiva aba).
- Clique em "Relacionar" e em "Avançar".
Finalizar e confirmar a configuração. |
E - Configure o Portal (Protheus) - Realize as configurações básicas, campos importantes:
- Módulo Web = PP - Portal Protheus;
- Nome da Instância = pp;
- Diretório Raiz das Imagens (Web Path) = Diretório da Pasta Web onde o sistema irá criar a pasta "pp";
- Selecione o Environment = Nome do Ambiente;
- URL do Protheus Web Services = Server e Porta de configuração dos Web Services.
- Realize a Configuração de Host x Empresas/Filiais, campos importantes:
- Host = Server e porta do Portal (Deve ser informada a porta informada na Configuração HTTP/FTP);
- Selecione a Empresa/Filial = Empresa e Filial de acesso (Para configuração Multifilial, consulte a respectiva aba).
- Clique em "Relacionar" e em "Avançar".
- Realize a Configuração de Usuários, onde irá definir o número mínimo e máximo de usuários para acesso.
Finalizar e confirmar a configuração. Inclua na pasta pp os colocar o arquivos da pasta web na systemload |
F - Após as configurações acima, o sistema irá inserir as informações de acesso aos Web Services no arquivo AppServer.ini do Protheus, verifique se as informações estão de acordo com o exemplo abaixo, caso não estejam realize ajustes (Lembrando que a Porta e o Nome do Ambiente serão os que preencheu durante a configuração): [HTTP] ENABLE=1 PORT=81
[localhost:92/ws] ENABLE=1 PATH=c:\seuambiente\Protheus_Data\web\ws ENVIRONMENT=12.1.025 INSTANCENAME=ws RESPONSEJOB=JOB_WS_9901 DEFAULTPAGE=wsindex.apw SECURITY=0
[JOB_WS_9901] TYPE=WEBEX ENVIRONMENT=12.1.025 INSTANCES=1,1 SIGAWEB=WS INSTANCENAME=ws ONSTART=__WSSTART ONCONNECT=__WSCONNECT PREPAREIN=99,01 SECURITY=0
[localhost:92/pp] ENABLE=1 PATH=c:\seuambiente\Protheus_Data\web\pp ENVIRONMENT=12.1.025 INSTANCENAME=pp RESPONSEJOB=JOB_PP SECURITY=0
[JOB_PP] TYPE=WEBEX ENVIRONMENT=ENVIRONMENT INSTANCES=1,1 SIGAWEB=PP INSTANCENAME=pp ONSTART=STARTWEBEX ONCONNECT=CONNECTWEBEX ONEXIT=FINISHWEBEX WEBSERVICELOCATION=http://localhost:92/ws SECURITY=0
"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." |
|
G - Por fim, reinicie o Server do Protheus e verifique se o serviço do WebService subiu de forma correta no Browser, basta digitar o caminho que configurou no Wizard e verificar se o sistema indica como Habilitado: |
|
O processo de configuração para uma nova filial é basicamente o mesmo, mas é necessário ter um novo WebService e Portal.
- Realize as configurações básicas, campos importantes:
- Módulo Web = WS - TOTVS Linha Protheus Web Services;
- Nome da Instância = ws;
- Diretório Raiz das Imagens (Web Path) = Diretório da Pasta Web onde o sistema irá criar a pasta "ws";
- Selecione o Environment = Nome do Ambiente;
- Flag para habilitar processos na inicialização do Servidor.
- Realize a Configuração de Host x Empresas/Filiais, campos importantes:
- Host = Server e porta dos Web Services (Deve ser informada a porta informada na Configuração HTTP/FTP);
- Selecione a Empresa/Filial = Empresa e Filial de acesso (Para configuração Multifilial, consulte a respectiva aba).
- Clique em "Relacionar" e em "Avançar".
Finalizar e confirmar a configuração. |
- Realize as configurações básicas, campos importantes:
- Módulo Web = PP - Portal Protheus;
- Nome da Instância = pp;
- Diretório Raiz das Imagens (Web Path) = Diretório da Pasta Web onde o sistema irá criar a pasta "pp";
- Selecione o Environment = Nome do Ambiente;
- URL do Protheus Web Services = Server e Porta de configuração dos Web Services.
- Realize a Configuração de Host x Empresas/Filiais, campos importantes:
- Host = Server e porta do Portal (Deve ser informada a porta informada na Configuração HTTP/FTP);
- Selecione a Empresa/Filial = Empresa e Filial de acesso (Para configuração Multifilial, consulte a respectiva aba).
- Clique em "Relacionar" e em "Avançar".
Finalizar e confirmar a configuração. |
Os serviços devem ser configurados pelo WIZARD, 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. No exemplo acima, a configuração está sendo realizada para o caminho LOCALHOST. Para publicá-lo informe o nome da máquina ou o endereço IP. Caso seu serviço HTTP esteja configurado para a porta 80, não deve informá-lo no host. Exemplo localhost/ws. Pra cada filial nova é necessário configurar um novo portal. |
C - Após as configurações acima, o sistema irá inserir as informações de acesso aos Web Services no arquivo AppServer.ini do Protheus, verifique se as informações estão de acordo com o exemplo abaixo, caso não estejam realize ajustes (Lembrando que a Porta e o Nome do Ambiente serão os que preencheu durante a configuração): [HTTP] ENABLE=1 PATH=C:\nome do ambiente\Protheus_Data\Web PORT=91 ENVIRONMENT=nome do ambiente [localhost:91/ws] ENABLE=1 PATH=C:\nome do ambiente\Protheus_Data\web\WS ENVIRONMENT=nome do ambiente INSTANCENAME=WS RESPONSEJOB=JOB_WS_9901 → (Filial 01) DEFAULTPAGE=wsindex.apw [JOB_WS_9901] TYPE=WEBEX ENVIRONMENT=nome do ambiente INSTANCES=1,1 SIGAWEB=WS INSTANCENAME=WS ONSTART=__WSSTART ONCONNECT=__WSCONNECT PREPAREIN=99,01 → (Filial 01) [ONSTART] ;JOBS=JOB_WS_9901,JOB_PP,JOB_WS02_9902,JOB_PP02 [localhost:91/pp] ENABLE=1 PATH=C:\nome do ambiente\Protheus_Data\web\pp ENVIRONMENT=nome do ambiente INSTANCENAME=pp RESPONSEJOB=JOB_PP [JOB_PP] TYPE=WEBEX ENVIRONMENT=nome do ambiente INSTANCES=1,1 SIGAWEB=PP INSTANCENAME=PP ONSTART=STARTWEBEX ONCONNECT=CONNECTWEBEX ONEXIT=FINISHWEBEX WEBSERVICELOCATION=http://localhost:91/ws → (URL da filial 01)
[localhost:91/ws02] ENABLE=1 PATH=C:\nome do ambiente\Protheus_Data\web\WS02 ENVIRONMENT=nome do ambiente INSTANCENAME=WS02 RESPONSEJOB=JOB_WS02_9902 → (Filial 02) DEFAULTPAGE=wsindex.apw [JOB_WS02_9902] TYPE=WEBEX ENVIRONMENT=nome do ambiente INSTANCES=1,1 SIGAWEB=WS INSTANCENAME=WS02 ONSTART=__WSSTART ONCONNECT=__WSCONNECT PREPAREIN=99,02 → (Filial 02) [localhost:91/pp02] ENABLE=1 PATH=C:\nome do ambiente\Protheus_Data\web\pp02 ENVIRONMENT= nome do ambiente INSTANCENAME=pp02 RESPONSEJOB=JOB_PP02 [JOB_PP02] TYPE=WEBEX ENVIRONMENT=nome do ambiente INSTANCES=1,1 SIGAWEB=PP INSTANCENAME=pp02 ONSTART=STARTWEBEX ONCONNECT=CONNECTWEBEX ONEXIT=FINISHWEBEX WEBSERVICELOCATION=http://localhost:91/ws02 → (URL da Filial 02) |
D - Por fim, reinicie o Server do Protheus e verifique se o serviço do WebService subiu de forma correta no Browser, basta digitar o caminho que configurou no Wizard e verificar se o sistema indica como Habilitado: |
|
|
|
|
Para fazer a chamada da API iremos utilizar o SoapUI:
1 - Baixar e instalar o SoapUI: https://www.soapui.org/downloads/latest-release/ Para fazer a configuração do SoapUI é necessário compilar o fonte da API e subir o appserver do WebService. |
2 - No SoapUI clicar em: File > New SOAP Project
3 - Informar os dados de acesso ao SoapUI, campos a preencher: - Project Name: Nome do seu projeto
- Initial WSDL: Coloque o endereço de seu Webservice + o texto: /WSTESTE01.apw?WSDL
- Clicar em "OK"
4 - No SoapUI dê um duplo clique em "Request 1" e configure da seguinte forma: - USERCODE: Admin
- CUMPED: Senha do usuário admin
|
|
No SoapUI dê um duplo clique em "Request 1" e clique no botão "play".
|
|
|
|
|
|