Exemplos de formas para testar pontos de entrada e execauto

Produto:

Microsiga Protheus®

Ambiente:Faturamento (SIGAFAT)

Ocorrência:

Exemplos de teste e informações sobre teste de Pontos de entrada e ExecAuto

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

Ajustes a serem feitos no fonte do execauto:

1 - Não fazer a abertura do ambiente: PREPARE ENVIRONMENT ou RpcSetEnv.

2 - Fazer o tratamento para a função "MostraErro" conforme documentação abaixo:

Cross Segmento - TOTVS Backoffice Linha Protheus - ADVPL - Erro: job threads doesn't support remoto/visual components

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

Ajustes a serem feitos no fonte do execauto:

1 - Não fazer a abertura do ambiente: PREPARE ENVIRONMENT ou RpcSetEnv.

2 - Fazer o tratamento para a função "MostraErro" conforme documentação abaixo:

Cross Segmento - TOTVS Backoffice Linha Protheus - ADVPL - Erro: job threads doesn't support remoto/visual components

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


Pode lhe Interessar: