Árvore de páginas

Versões comparadas

Chave

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

...

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:
Card
defaulttrue
idCusto Médio
label1. LIMITE DE CRÉDITO
Deck of Cards
startHiddenfalse
effectDuration0.5
idCards
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idCusto Médio
labelPontos de Entrada


Card
defaulttrue
id0607202023
labelExecAuto

Conceito (O que é um ExecAuto?)


Expandir
titleComo saber se um fonte possui 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):


Aviso
titleAtenção

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.




Card
defaulttrue
id0607202023
labelExecauto Via API REST

Para testes de chamada de execauto via API REST, siga os passos abaixo:

Deck of Cards
idVIA API REST
Card
label1 - Fonte de exemplo

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

WSRESTFULEXECTST2DESCRIPTION"TESTE"
    WSMETHODGETDESCRIPTION"TESTE"WSSYNTAX"/EXECTST"
ENDWSRESTFUL

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

Card
label2 - Ajustes no fonte

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

Card
label3 - Compilação dos fontes

Compilar os fontes:

1 - Fonte da API: execviarest.prw

2 - Fonte do execauto "ajustado"

Card
label4 - REST

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.

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


Dica
titleDica
  • Temos também uma documentação complementar sobre a configuração através do APWebWizard: Configurando REST
Card
label5 - Postman

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>
Card
label6 - Teste

No Postman clique no botão "Send" para executar a API:

Card
defaulttrue
id0607202023
labelExecauto Via API WebService

Para testes de chamada de execauto via API WebService, siga os passos abaixo:

Deck of Cards
idVIA API WS
Card
label1 - Fonte de exemplo

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

WSSERVICEwsteste01
    WSDATAcumped   ASstring
    WSDATAcRet     ASstring
    WSDATAUserCodeASString

    WSMETHODwsteste
ENDWSSERVICE

WSMETHODwstesteWSRECEIVEUserCode,cumpedWSSENDcRetWSSERVICEwsteste01
   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()

Card
label2 - Ajustes no fonte

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

Card
label3 - Compilação dos fontes

Compilar os fontes:

1 - Fonte da API: execviaws.prw

2 - Fonte do execauto "ajustado"

Card
label4 - WebService
Expandir
titleConfigurando o WEBSERVICE

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.


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.




Deck of Cards
idtdrf
Card
labelSe possuir apenas uma filial
Card
defaulttrue
idCusto Médio
labelConfiguração dos Web Services

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.


Expandir
titleC - Configurando HTTP/FTP
  • 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;


Dica
titleImportante

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:

Expandir
titleWS TOTVS Linha Protheus Web Services
  • 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)

Expandir
titlePP 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):

Expandir
titleAppServer.ini

[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


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


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:

Card
labelSe for multifilial
Card
defaulttrue
id060720201
labelConfiguração dos Web Services Multifilial

O processo de configuração para uma nova filial é basicamente o mesmo, mas é necessário ter um novo WebService e Portal.


Expandir
titleA - Configurar WS TOTVS Linha Protheus Web Services
  • 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.

Expandir
titleB - Configurar PP 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".


Finalizar e confirmar a configuração.

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.

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

Expandir
titleAppServer.ini

[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:

Card
label5 - SoapUI

Para fazer a chamada da API iremos utilizar o SoapUI:


1 - Baixar e instalar o SoapUI: https://www.soapui.org/downloads/latest-release/

Dica
iconfalse

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:

Dica
iconfalse
  • USERCODE: Admin
  • CUMPED: Senha do usuário admin
Card
label6 - Teste

No SoapUI dê um duplo clique em "Request 1" e clique no botão "play".


Pode lhe Interessar: