Árvore de páginas

Versões comparadas

Chave

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

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

title
Deck of Cards
idVIA API REST
Card
label
Expandir
1 - 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"

coloque

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:

  • Exemplo: "U_MyMata410()".
  • Expandir
    title2 - Ajustes 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>
    Image Added
    Card
    label6 - Teste

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

    Image Added
    Via API WS
    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

    Card
    defaulttrue
    id0607202023
    label

    Pode lhe Interessar: