O SmartClient Desktop é uma aplicação C++ monolítica (independente) e apresenta caracteristicas diferentes em relação ao WebApp, que é executado a partir de um navegador.
Os navegadores acabam impondo algumas mudanças de comportamento ao WebApp, por consequencia, ao uso do ERP, que descrevemos neste documento para apoiar durante sua migração.
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
sta 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
Diferênç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
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 Compnents
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