Insertar páginas Qodly en un espacio web 4D sin costo adicional

Traducido automáticamente de Deepl

Con 4D 21, se abre una nueva oportunidad: integrar de manera transparente una página Qodly dentro de un área web en un formulario 4D sin necesidad de licencia 4D Client adicional. Potenciado por 4D Qodly Pro, ahora tiene acceso completo a una nueva generación de interfaces de usuario modernas y dinámicas. Ya no necesita elegir entre formularios de escritorio y web: combine ambos y evolucione a su propio ritmo.

HDI_Share_C-S_Web_Session

4D Qodly Pro está disponible en 4D y ofrece todas las herramientas que necesita para diseñar, crear y ejecutar formularios web para su aplicación 4D.

La creación de Qodly Pages depende de sesiones web escalables, las cuales son requeridas para utilizar el comando Session y recuperar el objeto session. Este objeto de sesión es una piedra angular de 4D Qodly Pro: ofrece almacenamiento de sesión para datos específicos de usuario y juega un papel fundamental en la gestión de permisos de usuario.

En una aplicación 4D cliente-servidor, 4D Server también gestiona una sesión de usuario remota para cada usuario. Esto es muy conveniente ya que esta sesión también ofrece el almacenamiento de la sesión.

A partir de 4D 21, estas sesiones de usuario remotas también pueden servir las páginas Qodly. Para los desarrolladores, el beneficio inmediato es la posibilidad de integrar una página Qodly dentro de un área web de un formulario 4D sin requerir una licencia 4D Client adicional. La licencia ya utilizada por el usuario para visualizar el formulario 4D es reutilizada para renderizar la Página Qodly integrada, gracias a la sesión de usuario remota.

un ejemplo concreto

En los formularios 4D, las áreas web pueden renderizar páginas Qodly, lo que facilita la introducción de contenido web en su aplicación 4D Server a su propio ritmo. Esto le permite aprovechar al máximo 4D Qodly Pro, especialmente su diseño moderno y orientado a la web.

Para acceder a un formulario 4D o a una página Qodly, se requiere una licencia 4D Client, las mismas reglas de licencia se aplican en ambos entornos.

Sin embargo, gracias al mecanismo OTP, una sola licencia puede ser utilizada tanto para un formulario 4D como para una Página Qodly integrada en una área web interna.

¿Cuál es el resultado? Un formulario 4D que combina a la perfección los componentes de interfaz de usuario 4D tradicionales con los widgets 4D Qodly Pro modernos.

Puede ver que el id de sesión es el mismo tanto en el formulario 4D (utilizando la sesión de usuario remota) como en el área web que muestra una página Qodly.

cómo hacer esto

El mecanismo otp

OTP significa One-Time-Passcode. Hasta ahora en una aplicación 4D Qodly Pro, el uso de OTP le permite recuperar una sesión existente al cambiar de un dispositivo o navegador a otro, o al implementar flujos de trabajo de ida y vuelta con sistemas externos (como la creación de cuentas a través de correo electrónico, APIs de terceros, etc.)

En resumen:

  • Obtener una OTP para una sesión determinada llamando a la función Session.createOTP().
  • Utilícela en cualquier navegador con una url como https://my4Dapp/$lib/renderer/?w=myQodlyPage&$4DSID=»+OTP

 

La sesión original se recupera utilizando el OTP proporcionado.

Con 4D 21, Session.createOTP() ya no se limita a las sesiones web, ¡ahora también funciona con sesiones de usuarios remotos!

Para recuperar y utilizar una sesión de usuario remoto existente el mecanismo es el mismo: proporcione el valor OTP en el parámetro $4DSID de la petición web, y se utilizará la sesión de usuario remoto correspondiente.

Implementación

Cree un método de proyecto getOTP, o una función singleton, o una función ORDA. Asegúrese de que este código se ejecuta en el servidor. Ejecutar el comando Session en un cliente devuelve null.

// 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()

Cargar una página Qodly (aquí debajo ‘Products’) en un área web.


Form.otp:=getOTP

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

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

GESTIÓN de privilegios

Todos los privilegios requeridos para su página Qodly pueden ser definidos en la Sesión previa, antes de abrir la URL en el área Web usando la función setPrivileges().

Cuando se llama en una sesión de usuario remota, añade privilegios a la Sesión para los accesos web posteriores.

desarrolle y pruebe su aplicación Cliente-Servidor en un entorno de desarrollo 4D

Debido a que el mecanismo OTP también es soportado en un entorno de desarrollo 4D, su aplicación cliente-servidor puede ser fácilmente desarrollada y probada en un entorno de desarrollo 4D.

En este entorno de desarrollo, existe ahora una verdadera sesión autónoma capaz de generar una OTP para manejar el acceso web, igual que una sesión de usuario remoto.

 

Reproduzca el IDH adjunto tanto en un entorno cliente-servidor como en un entorno de desarrollo 4D. No hay diferencia, y el comportamiento es el mismo.

Como se ha demostrado anteriormente, la fórmula ganadora es: 4D Qodly Pro = 4D, por lo que es muy fácil aportar interfaces modernas y dinámicas a sus aplicaciones 4D Server.

El camino está abierto, no se necesita nada extra, y empezar con 4D Qodly Pro es más fácil que nunca.

Avatar
• Propietario de producto - Marie-Sophie Landrieu-Yvert ingresó al equipo de 4D Product como Propietario de producto en 2017. Como tal, está a cargo de escribir las historias de los usuarios y luego traducirlas en especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Marie-Sophie se graduó en la Escuela de Ingeniería de ESIGELEC y comenzó su carrera como ingeniera en IBM en 1995. Participó en varios proyectos (de mantenimiento y creación) y trabajó como desarrolladora de Cobol. Luego trabajó como diseñadora de UML y desarrolladora de Java. Sus principales funciones fueron analizar y redactar requisitos funcionales, coordinar los equipos de negocio y de desarrollo.