Incorporar páginas Qodly numa área web 4D sem custo adicional

Tradução automática de Deepl

Com 4D 21, uma nova oportunidade se abre: incorporar perfeitamente uma página Qodly dentro de uma área web em um formulário 4D sem necessidade de licença adicional 4D Client. Com 4D Qodly Pro, agora tem acesso total a uma nova geração de interfaces de usuário modernas e dinâmicas. Não há necessidade de escolher entre formulários desktop e web: combine ambos, e evolua a seu próprio ritmo.

HDI_Share_C-S_Web_Session

4D Qodly Pro está disponível fora da caixa dentro de 4D e fornece todas as ferramentas que precisa para desenhar, construir e executar formulários web para sua aplicação 4D.

A criação de páginas Qodly depende de sessões web escaláveis, que são necessárias para usar o comando Session e recuperar o objeto de sessão. Este objeto de sessão é uma pedra angular do 4D Qodly Pro: fornece armazenamento de sessão para dados específicos do utilizador e desempenha um papel fundamental na gestão de permissões de utilizador.

Em uma aplicação 4D cliente-servidor, 4D Server também gerencia uma sessão de usuário remoto para cada usuário. Isso é muito conveniente já que essa sessão também fornece o armazenamento da sessão!

Começando com 4D 21, essas sessões de usuário remoto podem agora também servir Páginas Qodly. Para desenvolvedores, o benefício imediato é a habilidade de incorporar uma página Qodly dentro de uma área web de um formulário 4D sem precisar de uma licença adicional de 4D Client. A licença já usada pelo usuário para mostrar o formulário 4D é reutilizada para renderizar a página Qodly embutida, graças à sessão de usuário remoto.

um exemplo concreto

Em formulários 4D, áreas web podem renderizar páginas Qodly, facilitando a introdução de conteúdo web em sua aplicação 4D Server em seu próprio ritmo. Isso permite tirar vantagem total de 4D Qodly Pro, especialmente seu design moderno e orientado para a web.

Para aceder a um formulário 4D ou a uma página Qodly, é necessária uma licença 4D Client, as mesmas regras de licenciamento aplicam-se em ambos os ambientes.

No entanto, graças ao mecanismo OTP, uma única licença pode ser usada tanto para um formulário 4D como para uma página Qodly dentro de uma área web interna.

O resultado? Um formulário 4D que combina perfeitamente os componentes tradicionais 4D UI com os modernos widgets 4D Qodly Pro.

Pode ver que o id da sessão é o mesmo tanto no formulário 4D (usando a sessão do utilizador remoto) como na área web que mostra uma página Qodly.

como fazer isso

O mecanismo otp

OTP significa One-Time-Passcode. Até agora, em uma aplicação 4D Qodly Pro, o uso de OTP permite recuperar uma sessão existente ao mudar de um dispositivo ou navegador para outro, ou ao implementar fluxos de trabalho de ida e volta com sistemas externos (como a criação de conta via e-mail, APIs de terceiros, etc.)

Em resumo:

  • Obter uma OTP para uma determinada sessão chamando a função Session.createOTP()
  • Utilize-a em qualquer navegador com um URL como https://my4Dapp/$lib/renderer/?w=myQodlyPage&$4DSID=”+OTP

A sessão original é recuperada usando o OTP fornecido.

Com 4D 21, Session.createOTP() não está mais limitado a sessões web, agora também funciona comsessões de usuários remotos!

Para recuperar e usar uma sessão de usuário remoto existente o mecanismo é o mesmo: forneça o valor OTP no parâmetro $4DSID do pedido web, e a sessão de usuário remoto correspondente será usada.

Implementação

Crie um método de projeto getOTP, ou uma função singleton, ou uma função ORDA. Certifique-se apenas de que este código é executado no servidor. A execução do comando Session num cliente devolve um valor nulo.

// In Client Server:
// ----------------
// This method is executed on the server because the session object is on the server
// The Session object is Null on the client 
//

#DECLARE() : Text

return Session.createOTP()

Carregar uma página Qodly (aqui abaixo ‘Produtos’) numa área web.


Form.otp:=getOTP

Form.url:="http://localhost/$lib/renderer/?w=Products&$4DSID="+Form.otp

WA OPEN URL(*; "QodlyPage"; Form.url)

gestão de privilégios

Qualquer privilégio necessário para a sua página Qodly pode ser definido previamente na Session, antes de abrir o URL na área Web utilizando a função setPrivileges() função.

Quando chamada numa sessão de utilizador remoto, adiciona privilégios à sessão para acessos subsequentes à Web.

desenvolva e teste seu app Cliente-Servidor num ambiente de desenvolvimento 4D

Porque o mecanismo OTP também é suportado num ambiente de desenvolvimento 4D, sua aplicação cliente-servidor pode ser facilmente desenvolvida e testada num ambiente de desenvolvimento 4D.

Neste ambiente de desenvolvimento, há agora uma verdadeira sessão independente capaz de gerar um OTP para lidar com o acesso à web, assim como uma sessão de usuário remoto.

Reproduza o HDI anexado tanto num ambiente cliente-servidor como num ambiente de desenvolvimento 4D.Não há diferença, e o comportamento é o mesmo.

Como demonstrado acima, a fórmula vencedora é: 4D Qodly Pro = 4D, fazendo com que seja fácil trazer interfaces modernas e dinâmicas para suas aplicações 4D Server.

O caminho está aberto, nada extra é necessário, e começar com 4D Qodly Pro é mais fácil do que nunca.

Avatar
• Proprietário do produto - Marie-Sophie Landrieu -Yvert entrou ao time 4D Product como Proprietária do Produto em 2017. Como tal, está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Marie-sophie se formou na Escola de Engenharia de ESIGELEC e começou sua carreira como engenheira da IBM em 1995. Participou em vários projetos (de manutenção e criação) e trabalhou como desenvolvedora de Cobol. Depois trabalhou como designer de UML e desenvolvedora de Java. Suas principais funções foram analisar e redigir requisitos funcionais, coordenar os times de negócio e de desenvolvimento.