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




expandtitle e REST
Card
defaulttrue
id0607202023
labelExecauto Via API REST

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

titleexpandtitle
Deck of Cards
idVIA API REST
Card
label
Expandir
1 - Fonte de exemplo

Fonte de exemplo de API REST para chamada de execauto

Fonte de Exemplo

:

#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 -

No fonte do execauto não

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

2 -

No fonte do execauto fazer

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 -

Compilar o fonte

Fonte da API: execviarest.prw

2 -

Compilar o fonte

Fonte do execauto "ajustado"

Card
3
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

Expandir
title4 - Postman

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

1 - Instalar

o Postman: https://www.postman.com/downloads/

2 -

Configuração do Postman

Informar os dados de acesso ao Postman, campos a preencher na aba "Headers":

Em GET coloque 
  • GET: Coloque o endereço de seu REST + o texto: /EXECTST2
  • Key: tenantid
  • Value: 99,01 <empresa,filial>
Image Added
Card
label6 - Teste

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

Image Added
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:

Image Added

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:

Image Added

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"

Image Added


4 - No SoapUI dê um duplo clique em "Request 1" e configure da seguinte forma:

Image Added

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


Image Added

Pode lhe Interessar: