Páginas filhas
  • Execução de aplicações WEB Logix utilizando componente LWebDialog - LGX

Versões comparadas

Chave

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

Índice
maxLevel4
minLevel2

INTRODUÇÃO

A partir do pacote Logix 12.1.2507 ou Fix Framework Logix 12.1.2503.FIX01 é possível executar programas com interface WEB, desenvolvidos com base em PO-UI(biblioteca de componentes basedos em Angular), mas para isso existem pré-requisitos envolvendo:

  • Versões de build SmartClient e AppServer
  • Configurações de ambiente WEB no arquivo de configuração do AppServer
  • Disponibilização de artefatos das aplicações WEB para o AppServer

Veja abaixo mais detalhes a respeito de cada um destes dois três itens acima, para viablizar a execução de aplicações WEB a partir do Menu Logix.


Versões de build SmartClient e AppServer



(informação) A versão Smartclient que é 100% compatível para executar telas com interface WEB desenvolvidas com base em PO-UI é referente ao build HARPIA (7.210324P). (informação)


A versão Smartclient do build 7.00.131227A, NÃO É COMPATÍVEL e o sistema irá bloquear qualquer tentativa de execução de uma tela WEB Logix para o componente LGX - LWEBDIALOG.


Já a versão Smartclient do build 7.00.170117A (LOBO GUARÁ) compatível com o build AppServer 7.00.131227A (32 bits), permite executar as telas WEB Logix, no entanto com uma restrição:

  • Devido a incompatibilidade da atual da versão Angular com a versão da biblioteca Chromium embutida no build Smartclient LOBO GUARÁ, a interface da tela WEB Logix não é apresentada como conteúdo da aba do menu Logix, mas é disponibilizado ao usuário um LINK na lateral direita da tela que permite a abertura da respectiva tela WEB Logix em uma nova janela utilizando um navegador WEB externo que será de escolha do usuário.


Independente desta exceção de incompatibilidade com a versão do Chromium embutido no SmartClient Desktop, este link de acesso em navegador externo para as telas WEB Logix sempre estará disponível para o usuário utilizar caso surja qualquer tipo de incompatibilidade com a tela WEB que impeça a visualização da sua interface com sucesso no conteúdo da aba do menu Logix.


Configurações de ambiente WEB no arquivo de configuração do AppServer



É necessário definir algumas seções no arquivo de configuração do Appserverque viabilizem:

  • Ativem os serviços HTTP e/ou HTTPS para execuções com interface WEB.
  • Ativem os serviços de requisições HTTP REST para requisições de APIs REST invocadas pelas aplicações WEB para busca de informações exibidas em tela ao usuário.


Ativando o serviço HTTP/HTTPS para execução da interface das aplicações WEB


Para ativar o serviço HTTP e/ou HTTPS e o ambiente para execuções das aplicações WEB Logix, é preciso definir as seções abaixo, ficando como opcional definir apenas a seção HTTPS ou HTTP ou então definir ambas.

No exemplo abaixo apesar de definir a seção HTTP, foi configurada como ENABLE=0 para inativar o acesso HTTP (sem segurança).

Bloco de código
languagebash
themeMidnight
[HTTP]
ENABLE=0   ;*** Pode ser habilitada, se optar por ativar sem segurança HTTPS.
PORT=9193  ;*** Número da porta para viabilizar acesso HTTP ao AppServer
ENVIRONMENT=logix12_ora  ;*** Ambiente de referência para requisição HTTP
DEFAULTPAGE=wsindex.apw  ;*** Recurso web inicial acessado, nas requisições HTTP quando não informado na URL (Exemplo: http://localhost:9193/) 
PATH=c:\totvs\http

[HTTPS]
ENABLE=1
PORT=9194  ;*** Número da porta para viabilizar acesso HTTPS ao AppServer
ENVIRONMENT=logix12_ora  ;***  Ambiente de referência para requisição HTTPS
DEFAULTPAGE=wsindex.apw  ;*** Recurso web inicial acessado, nas requisições HTTP quando não informado na URL (Exemplo: https://localhost:9194/)
PATH=c:\totvs\http

[<SERVER_IP>:9194/apps]
ENVIRONMENT=logix12_ora  ;*** Ambiente de referência para requisição HTTPS no endpoint /apps 
RESPONSEJOB=JOBWEB
DEFAULTPAGE=index.html ;*** Recurso web inicial acessado na pasta da aplicação web, quando não for informado na URL (Exemplo: https://localhost:9194/apps/gtrib/gtr10000)
PATH=c:\totvs\web\apps 
UPLOADPATH=\upload
CACHE-CONTROL=no-store
PRAGMA=no-cache
Painel
borderColorred
borderStyledashed

A pasta configurada na chave PATH para as aplicações WEB Logix SEMPRE deve ser uma pasta localizada no servidor com nome de pasta raiz como apps.

Para execução das aplicações WEB Logix é obrigatório definir a seção com o endpoint /apps indicando a pasta raiz onde os artefatos WEB são disponibilizados.

No exemplo acima [<SERVER_IP>:<PORT_HTTP_or_HTTPS>/apps] indica que pode ser definida a seção do endpoint /apps usando o número do IP do servidor de aplicação e foi definido apenas para a porta 9194 (acesso via HTTPS).

Caso opte em informar o HOSTNAME do servidor ao invés do número do IP, é possível configurar no arquivo de profile do Logix a chavelogix.app.hostname com o nome do servidor.


Informações
titleEXEMPLO

No profile se estiver definida a chave desta forma:


       logix.app.hostname = "meuservidor"


Lembrando que "meuservidor" é um hostname com um IP válido, no arquivo appserver.ini a seção do endpoint /apps estará definida da seguinte forma:


[meuservidor:9194/apps]
ENVIRONMENT=logix12_ora
RESPONSEJOB=JOBWEB
DEFAULTPAGE=index.html ;*** Recurso web inicial acessado na pasta da aplicação web, quando não for informado na URL (Exemplo: https://localhost:9194/apps/gtrib/gtr10000)
PATH=c:\totvs\web\apps
UPLOADPATH=\upload
CACHE-CONTROL=no-store
PRAGMA=no-cache


Ativando o serviço HTTP REST para requisições API REST


O serviço que permite acionar requisições HTTP REST no AppServer é disponibilizado em uma porta diferente das portas definidas para os serviços HTTP e HTTPS, e este serviço HTTP REST não basta definir o ambiente do Logix e em que porta ficará disponivel para acesso, mas precisa executar um JOB em execução que disponibiliza um conjunto de Threads, denominadas "Working Threads" que ficam "a espera" de requisições API REST para serem executadas. Apesar do serviço HTTP REST funcionar semelhante ao serviço de requisições HTTP SOAP, este serviço responde única e exclusivamente requisições no formato REST.


As configurações para ativar o serviço REST para atender as requisições HTTP REST das aplicações WEB resume-se a:

Bloco de código
languagebash
themeMidnight
[ONSTART]
REFRESHRATE=30
JOBS=HTTPJOB 

[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=logix12_ora  ;*** Nome do Ambiente Logix, pode ser modificado

[HTTPV11]
ENABLE=1
SOCKETS=HTTPREST
TIMEOUT=600 

[HTTPREST]
PORT=8580   ;*** Porta utilizada na URI, pode ser modificada
URIS=URIAPPS
SECURITY=0 

[URIAPPS]
URL=/   ;*** Endereço base pra atender as requisições REST. Exemplo: http://localhost:8580/api/vdp/v1/clientes
INSTANCES=2,10   ;*** Número de instâncias utilizadas para atender as requisições REST (quantidade inicial e máxima de instâncias)
ONSTART=LOGIXRESTSTART
ONCONNECT=LOGIXRESTCONNECT
ONEXIT=LOGIXRESTEXIT 
CORSENABLE=1
ALLOWORIGIN=*  ;;*** Aqui o padrão assumido é * mas caso exista uma restrição de acessos é preciso configurar a lista de permissões


Seção ONSTART

A seção ONSTART é responsável por definir a lista de JOBS que serão iniciados automaticamente no momento em que o AppServer é iniciado e a chave REFRESHRATE é responsável por monitorar se a lista de JOBS indicados está em execução a cada intervalo de segundos informado. Quando algum JOB informado na lista não estiver em execução, o AppServer automaticamente irá colocar o JOB para executar, garantindo assim que não ficará inativo, caso ocorra qualquer interrupção.

No exemplo abaixo veja que foi definido o JOB chamado HTTPJOB, sendo que o AppServer pode ter definido na chave JOBS uma lista, separada por vírgula ( , ).


Seção HTTPJOB

Na seção HTTPJOB, a chave MAIN é definida com a função HTTP_START existente no Repositório Logix e que é responsavel por dar início a um conjunto de "Working Treads" que se mantém em execução no AppServer, a espera de requisições API REST para execução.

As quantidade de Working Threads (instâncias) para atender as requisições HTTP REST simultâneas é configurada conforme Instances.


Seção HTTPV11

Para habilitar o HTTP para REST criar a seção abaixo no appserver.ini:

[HTTPV11]
Enable=1
Sockets=HTTPREST
Timeout=600

Parâmetro

Descrição

Obrigatório

EnableIndica se o HTTP esta habilitado.   (1 - Habilitado    0 - Desabilitado)x
Sockets

A chave Sockets referencia as seções com a configuração de porta e URL que a mesma irá atender, permitindo que o Application Server seja configurado com mais de uma porta HTTP do REST.   Exemplo:  Sockets=HTTPREST,HTTPREST2

É necessário definir ao menos uma seção.

x
TimeoutTempo (em segundos) que uma requisição REST aguarda para obter uma resposta, sem emitir falha por tempo excedido.


Seção Socket HTTPREST

Para a seção Socket chamada HTTPREST deve-se indicar algumas configurações como URIS que apontam os endPoints disponiveis pra requisições REST, número de porta em que as requisições REST podem ser acionadas, determinar a segurança, onde irá exigir ou não autenticação.

[HTTPREST] 
Port=8085
URIs=URIAPPS
Security=1

Parâmetro

Descrição

Obrigatório

PortNúmero da porta que o serviço HTTP REST irá assumir.x
URIs

A chave URIs referencia as seções com a configuração da URL que a porta irá atender, permite também que seja configurado com mais de uma URL.
Exemplo: URIs=HTTPURI,HTTPURI2

Configure ao menos uma seção.

x
Security

Indica se a autenticação de requisição esta habilitada.

Recomenda-se fortemente que esta chave seja configurada como 1 (Habilitado) para garantir a exigência de autenticação em todas as requisições HTTP REST executadas pelo AppServer.

Ao ativar SECURITY=1 é preciso também configurar outras chaves que indicará o caminho do certificado e chave e também qual é o protocolo de segurança utilizado (SSL/TLS).

Acesse LGX - Comunicação REST e leia as orientações a respeito de como ativar a autenticação REST no tópico Ativando Autenticação REST.
x



O HTTP do REST verifica existência do campo Authorization no HEADER da requisição para requisições REST em geral, mas para requisições REST realizadas a partir de aplicações WEB a autenticação é realizada exclusivamente pelo existência do campo AppSession no HEADER, e ambos os controles de autorização são realizados pelo framework do produto que esta utilizando o protocolo.

Seção URIAPPS 

Exemplo de configuração da seção URIAPPS para requisições REST das aplicações WEB Logix:

Parâmetro

Descrição

Obrigatório

URLIndica o endereço URL que será atendida a requisição REST.x
Instances

Configuração de inicialização de working threads. 

A chave Instances é configurada como no HTTP do SOAP. Para mais detalhes acesse Instances.

x
OnStart

Sempres manter como LOGIXRESTSTART para produto ERP Logix.

x
OnConnect

Sempre manter como LOGIXRESTCONNECT para produto ERP Logix.

x
OnExit

Sempre manter como LOGIXRESTEXIT para produto ERP Logix.

x
CorsEnable

Ativa o recurso para gerenciamento de páginas permissíveis de recebimento de dados do servidor, recurso anti-CSRF.

É sugerido manter esta chave com o valor 1 para permitir aceitar requisições de APPs Web Logix.

x
AllowOrigin

Essa chave limita os IPs que o REST do Logix pode responder, deve conter o valor * (responder para qualquer IP) ou informar a lista de IPs aceitos.

É importante sempre avaliar o conceito de uso para avaliar o uso ou não das chaves CORSENABLE e ALLOWORIGIN.

Por padrão é sugerido informar como * (Qualquer IP).

x


Disponibilização de artefatos das aplicações WEB Logix no AppServer



Após configurar e ativar os serviços HTTP e HTTP REST no AppServer, falta apenas disponibilizar os artefatos WEB para execução da interface das aplicações WEB Logix

Para isso você precisará descompactar o os arquivos de artefatos WEB correspondentes a cada aplicação WEB na respectiva pasta e subpasta indicada na documentação disponibilizada por cada time Logix responsável pela aplicação.

Na pasta principal de cada aplicação WEB existirá o arquivo inicial chamado Index.html.

Segue um exemplo para a aplicação WEB Logix GTR10000, disponibilizada na estrutura /apps/gtrib/gtr10000:


PRONTO! Agora que os artefatos WEB das aplicações Logix já estão devidamente alocados na pasta raiz apps, que é a mesma pasta configurada nas chave PATH da seção [<SERVER_IP>:<PORT_HTTP_or_HTTPS>/apps] do appserver, é só realizar o teste de acesso da aplicação WEB a partir do menu Logix.


Mas não esqueça que você precisa cadastrar a aplicação WEB Logix no menu do produto e registrar também as devidas permissões de acesso para o usuário conseguir encontrar o atalho dessa aplicação no menu OK?


Painel
borderColorgray
borderStyledashed

Se surgir qualquer dúvida ou problema com relação a algum tópico aqui descrito, entre em contato com o suporte do time Framework Logix para apoiar no que for preciso.