Histórico da Página
...
Neste link você terá acesso às informações de download, configuração e notas de release do WebApp:
Configurando a Porta Multiprotocolo
...
A porta multiprotocolo é um facilitador, criando rotas para ferramentas como o WebApp, WebMonitor, Rest e outras.
A documentação abaixo é importante para sua correta configuração:
- Application Server - Porta Multiprotocolo
- Porta Multiprotocolo - Geração de Certificado
- Porta Multiprotocolo - Instalação de Certificado
Configurando o Broker HTTP
...
Em ambientes com multiplos Servidores é conselhavel o uso do Broker HTTP, para balanceamento via WebApp.
A importância do WebAgent para a integração com a estação de trabalho
...
Informações |
---|
Para uso das rotinas padrão, como cadastros e relatórios, não existe impedimento no uso do ERP sem a utilização do WebAgent. |
O navegador não permite que você acesse arquivos locais, ou aplicações instaladas em sua estação de trabalho, mais uma vez, por questões de segurança.
Isso implica no bloqueio de funções importantes ao ERP, como por exemplo, a FCREATE(), para criar um arquivo, ou mesmo a integração com o Excel.
O WebAgent é um serviço websocket, seguro, que permite esses acessos bloqueados pelos navegadores, mais informações no link: 2. WebApp - WebAgent
Ao utilizar o TWebEngine (iframe):
Não é possível executar o método navigate para a página https://www.google.com/
...
Caso seja imprescindível para sua aplicação abrir um site com este bloqueio, pode utilizar a função ShellExecute, mais informações no link: TWebEngine:Navigate
Exemplo:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
// Exemplo de uso para Windows ShellExecute( "open", "http://www.google.com.br", "", "", 1 ) // Exemplo de uso para Linux shellExecute("Browser", "/usr/bin/firefox", "http://www.google.com.br", "/", 1 ) |
...
Esta também é uma medida de segurança dos navegadores, como contorno, recomendamos copiar o arquivo em questão para uma pasta temporária no Servidor através da função CpyF2Web, acessando este arquivo na sequencia, mais informações no link: TWebEngine:Navigate
Exemplo:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
DEFINE DIALOG oDlg TITLE "Contorno para file://" FROM 0,0 TO 800,1200 PIXEL // Copia o arquivo da Estacao para o Servidor, retornando seu caminho // Este exemplo foi escrito para Linux, ao utilizar em Windows, // basta mudar o caminho para o arquivo, ex: "c:/dir/arquivo" cFilePath := CpyF2Web("l:/home/mansano/totvs/file.txt", .T., .F., .F., .F.) oWebEngine := TWebEngine():New(oDlg, 0, 0, 100, 100,,) oWebEngine:Align := CONTROL_ALIGN_ALLCLIENT // Executa o Navigate para o arquivo temporario no Servidor oWebEngine:navigate(cFilePath) ACTIVATE DIALOG oDlg CENTERED |
...
Protocolo | Host name / IP | Porta | Rota |
---|---|---|---|
http:// | 10.173.1.12 | :8081 | /webapp |
http:// | 10.173.1.12 | :8081 | /webmonitor |
A importância do WebAgent para a integração com a estação de trabalho
Informações |
---|
Para uso das rotinas padrão, como cadastros e relatórios, não existe impedimento no uso do ERP sem a utilização do WebAgent. |
O navegador não permite que você acesse arquivos locais, ou aplicações instaladas em sua estação de trabalho, mais uma vez, por questões de segurança.
Isso implica no bloqueio de funções importantes ao ERP, como por exemplo, a FCREATE(), para criar um arquivo, ou mesmo a integração com o Excel.
...
WebApp
...
WebApp em dispositivos móveis
...
O WebApp é homologado para Tablets, sem qualquer configuração adicional.
...
Cadastro de Clientes sendo executado em um Galaxy S a partir do Samsung Dex
Como identificar corretamente a versão do Client em uso
...
Ao utilizar o WebApp em conjunto com o WebAgent, o retorno da função GetRemoteType() será o mesmo do SmartClient Desktop, exemplo: 1=Windows / 2=Linux/MacOS.
Caso precise confirmar se esta executando o WebApp, utilize o trecho abaixo, capturando a informação adcional por referência:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
function u_remoteType()
Local cLib
Local cRmtType := GetRemoteType(@cLib)
conout("Tipo do remote: " + cValToChar(cRmtType)) // -> Ex: 1=Windows | 2=Linux/MacOS
conout("Info adicional: " + cLib) // -> Exemplo ao utilizar o WebApp: "HTML-9.1.6 LINUX"
return
// Retorno
// Tipo do remote: 2
// Info adicional: HTML-9.1.6 LINUX |
Mais informações no link: GetRemoteType
Passagem de parâmetros na abertura do ERP através do Navegador
...
Execução de rotinas sem interface através do WebAgent (parâmetro launch com --headless)
...
Informações |
---|
O parâmetro --headless está disponível a partir da versão 1.0.9 do WebAgent. |
Existem algumas rotinas de processamento que não necessitam de interface (tela), é possivel executar essas rotinas utilizando em conjunto os parâmetros launch e --headless.
...
Teclas de atalho | Descrição | |
---|---|---|
Windows/Linux | Mac | |
Ctrl+T | ⌘+t | Abrir uma nova guia do navegador. |
Ctrl+Shift+T | ⌘+Shift+t | Reabrir guias fechadas anteriormente na ordem em que foram fechadas. |
Ctrl+N | ⌘+n | Abrir uma nova janela do navegador. |
Ctrl+Shift+N | ⌘+Shift+n | Abrir uma nova janela de navegação anônima. |
Ctrl+Tab ou Ctrl+PgDn | ⌘+Option+seta para a direita | Navegar entre as abas do navegador. |
Ctrl+Shift+Tab ou Ctrl+PgUp | ⌘+Option+seta para a esquerda | Acessar a guia aberta anterior |
Alt+Home | Abrir a página inicial na guia atual | |
Ctrl+W ou Ctrl+F4 | ⌘+w | Fechar a guia atual do navegador. |
Ctrl+Shift+W ou Alt+F4 | ⌘+Shift+w | Fechar a janela do navegador. |
Alt+Espaço+n | ⌘+m | Minimizar a janela atual |
Alt+Espaço+x | Maximizar a janela atual |
Arquitetura do WebApp
...
Uma seção do WebApp consome cerca de 300Kb a mais que o SmartClient Desktop, relativos ao motor que traduz as telas AdvPL/TLPP em conteúdo HTML.
O processamento e a manipulação de dados (CRUD), continua sendo de responsabilidade do AppServer/DBAccess, não havendo diferença no consumo de recursos, independente do Client utilizado.
WebApp em telas sensíveis ao toque
...
É possível utilizar o WebApp em telas sensíveis ao toque, seja um notebook ou um tablet, mas existem algumas diferenças de comportamento para facilitar seu uso.
...
Mais informações no link: Telas de toque Toque (touchscreen) / mobile - mudança de comportamentoTouchscreen) / Mobile - Mudança de Comportamento
Depuração via WebApp
...
Na sequencia demonstramos os passos para depuração via WebApp utilizando o TDS-VSCode, mais informações sobre depuração aqui.
- Acesse no painel lateral esquedo a opção "Depuração".
- Clique na engrenagem superior para acessar o arquivo launch.json.
- Clique no botão "Adicionar Configuração"
- Selecione a opção "TOTVS Language Debug via Web App"
- Na tag smartclientUrl informe o ip:porta para seu servidor
- Atente para a tag "name", onde será definido o nome para o launcher, pois será utilizado na sequencia.
- Selecione o launcher que foi criado.
- Acesse "Configurações".
- No campo de pesquisa preencha: navigador
- Selecione a aba "Usuário"
- Informe o caminho completo para o navegador de sua preferência, para verificar os navegadores homologados acesse aqui.
- Inicie normalmente a depuração, da mesma forma que faria utilizando o SmartClient Desktop.
- Ponto de parada
- Programa sendo exibido no navegador, da mesma forma que seria exibido utilizando o SmartClient Desktop.
Templatedocumentos |
---|
...