O SmartClient Desktop é uma aplicação C++ monolítica (independente), enquanto o WebApp é executado á partir dos navegadores.
Os navegadores possuem características e medidas de segurança, que podem trazer mudanças de comportamento ao WebApp durante o uso do ERP, este documento descreve essas características, para apoia-los durante a transição.
🚨 Um bom exemplo é o TWebEngine, no SmartClient Desktop este componente é um Chromium embutido na aplicação, enquanto no WebApp, ele é um iframe.
Onde encontro as informações consolidadas sobre o WebApp?
Neste link você terá acesso às informações de download, configuração e notas de release do WebApp:
Ao utilizar o TWebEngine (iframe), não é possivel executar o método navigate para a página https://www.google.com/
A maioria dos site, incluido do google, impede seu uso através de um iframe por questões de segurança, não existe contorno para essa questão, porem pode ser utilizada a função ShellExecute para exibir a página em um navegador apartado do WebApp, mais informações no link: TWebEngine:Navigate
Ao utilizar o TWebEngine (iframe), não é possivel executar o método navigate para um arquivo local, exemplo: file:///dir/arquivo
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
A importância do WebAgent para a integração com a estação de trabalho
O navegador não permite que você acesse arquivos locais, 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 seguro, que permite esses acessos bloqueados pelos navegadores, mais informações no link: 2. WebApp - WebAgent
Passagem de parâmetros na abertura do ERP através do Navegador
O SmartClient desktop permite a passagem de parâmetros na abertura do ERP, o WebApp também, utilizando, por exemplo, na URL de seu navegador o link:
http://10.173.9.215:5011?E=ambiente&P=SIGAFAT&A=param1&A=param2&A=param3
Mais informações no link: Parâmetros de Linha do SmartClient HTML
Passagem de parâmetros na abertura do ERP através do WebAgent (parâmetro launch)
É possivel também executar o WebAgent passando parâmetros de abertura, uma caracteristica importante caso queira automatizar algum processo customizado, sem precisar utilizar seu navegador para isso.
Exemplo:
C:\Users\Administrator\AppData\Local\Programs\web-agent\web-agent.exe launch "http://10.173.9.215:5011?E=ambiente&P=SIGAFAT&A=param1&A=param2&A=param3" --browser="C:\Program Files\Google\Chrome\Application\chrome.exe"
Mais informações no link: 2. WebApp - WebAgent#2.WebAppWebAgent-Launch
Execução de rotina sem interface através do WebAgent (parâmetro launch com --headless)
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.
Exemplo:
C:\Users\Administrator\AppData\Local\Programs\web-agent\web-agent.exe launch "http://10.173.9.215:5011?E=ambiente&P=u_headless" --browser="C:\Program Files\Google\Chrome\Application\chrome.exe" --headless
Mais informações no link: 2. WebApp - WebAgent#2.WebAppWebAgent-Headless
Diferenças na aplicação de CSS (SetCSS) entre o WebApp e o SmartClient Desktop
Dadas as diferenças de tecnologia entre os dois Clients, a renderiação de estilo (CSS) também sofre diferenças de comportamento.
No ERP essas diferenças são tratadas pelas Squads responsaveis pelo produtos, e caso sua empresa possua customizações que utilizam CSS, podem ser necessários ajustes caso comece a utilizar o WebApp.
Mais informações nos links:
Limite de conexões por browser
Todos os browsers no mercado possuem um limite máximo de conexões (paralelas) por domínio, no caso do ERP, não serão possiveis mais conexões com o Servidor de Aplicação quando este limite for atingido.
Mais informações no link: Limite de conexões por browser
Browser | Número de conexões simultâneas |
Firefox® | 6 |
Chrome™ | 6 |
Safari® | 6 |
Opera® | 6 |
Edge® | 6 |
Yandex® | 5 |
iOS® | 6 |
Android™ | 6 |
Teclas de atalho bloqueadas pelos navegadores
Existe um conjunto de teclas bloquados pelos navegadores, impedindo seu uso através do WebApp.
Mais informações no link: SetKey no Webapp
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 |
InactiveTimeout ao utilizar uma aplicação HTML através do componente TWebEngine
Para o WebApp confirmar se o usuário ainda esta utilizando o ERP, enquanto digita/navega em uma aplicação HTML carregada em um iframe, impedindo que o inactive timeout derrube esta sessão, precisamos executar um conjunto de scripts.
Porém, um iframe só permite a execução de scripts quando a página carregada nele possui o mesmo protocolo+host-name+porta da página onde se encontra este iframe.
Exemplo:
Se a página "mãe" é a http://www.totvs.com:8080/index.html
Seria possivel usar um iframe apontando para http://www.totvs.com:8080/app1.php
Mas seria bloqueada a execução de scripts no caso de utilizar a página https://www.totvs.com:8080/pag1.html, pois o protocolo foi alterado de HTTP para HTTPS.
Mais informações no link: WebEngine+InactiveTimeout
Evolução do WebApp com a adoção de Web Components
A adoção da biblioteca LitElement permitiu uma grande evolução da camada de interface do WebApp.
Mais informações no link: WebApp - Web Components (Versão 9.0.0)
WebApp em dispositivos móveis
O WebApp é homolodado para Tablets, é possivel fazer sua utilização a partir de um celular, porém a experiência de navegação será prejudica, motivo pelo qual não é homologado.
Mais informações no link: SmartClient HTML (WebApp) - Navegadores homologados
WebApp em telas sensiveis ao toque
É possivel utilizar o WebApp em telas sensiveis 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 (touchscreen) / mobile - mudança de comportamento