QODLY STUDIO FOR 4D: NOVEDADES DE 4D 20 R7

Estamos seguros de que estará encantado de explorar las nuevas funcionalidades que Qodly Studio for 4D trae con 4D 20 R7.

 

Siga descubriendo esta poderosa plataforma, una solución robusta y fácil de usar para crear aplicaciones web profesionales con un mínimo esfuerzo de codificación.

 

Integrado dentro de 4D, Qodly Studio for 4D le permite aprovechar la lógica de negocio existente desarrollada para aplicaciones de escritorio.

 

Profundicemos en los detalles y veamos cómo su aplicación puede ofrecer algo más que datos, al tiempo que ofrece una interfaz de usuario dinámica y una sólida protección de los datos mediante el establecimiento de privilegios.

 

 

ENTREGAR MÁS QUE DATOS CON LA NUEVA clase 4D.IncomingMessage

 

Con su aplicación Qodly, ahora puede habilitar fácilmente la descarga de archivos para sus usuarios finales.

 

Utilice la nueva clase 4D.OutgoingMessage que su aplicación puede recuperar mediante una llamada a una función ORDA o una llamada a una función singleton.

 

Esto lleva a devolver contenido web completo con un cuerpo, encabezados HTTP y códigos de estado listos para que el navegador los procese.

 

Basta con implementar una función que devuelva una instancia de la nueva clase 4D.OutgoingMessage configurar la llamada a la función, y el navegador web gestionará la clase 4D.OutgoingMessage automáticamente. No son necesarios pasos adicionales.

 

Lea esta entrada del blog para obtener más información.

 

ejemplo

 

En el siguiente ejemplo, la función getThumbnail() de la clase de datos Products recibe como parámetro un nombre de producto, una anchura y una altura. Devuelve al navegador una instancia de la nueva clase 4D.OutgoingMessage cuyo cuerpo contiene una miniatura de la imagen del producto con el tamaño requerido.

 

Observe el uso de la palabra clave new onHTTPGet. Si esta palabra clave se aplica a una función, ¡esta función es invocable con un verbo GET! Para descargar un archivo basta con hacer clic en un enlace.

 

Class extends DataClass


exposed onHTTPGet Function getThumbnail($name : Text; $width : Integer; $height : Integer) : 4D.OutgoingMessage
	
var $file:=File("/RESOURCES/Images/"+$name+".jpg")
var $image; $thumbnail : Picture
var $response:=4D.OutgoingMessage.new()
	
READ PICTURE FILE($file.platformPath; $image)
CREATE THUMBNAIL($image; $thumbnail; $width; $height; Scaled to fit)
$response.setBody($thumbnail)
$response.setHeader("Content-Type"; "image/jpeg")
	
return $response

 

¡Es tan fácil configurar esta llamada a función en Qodly!

 

 

¡Y aquí está el resultado en acción!

 

blank

 

nuevo evento OnPrivilegeChange

 

Si ha configurado privilegios para proteger sus datos, el acceso a los datos no se concede si los privilegios apropiados no están en la Sesión.

 

Esto puede llevar a escenarios molestos como este:

 

    • El usuario no está autenticado, y la sesión no contiene privilegios, por lo que la carga de una fuente Qodly (referida a datos protegidos por permisos) al inicio de la aplicación falla porque faltan los privilegios apropiados

 

    • El usuario se autentica, los privilegios apropiados están ahora en la sesión, pero … la aplicación no es notificada de esto para cargar la fuente Qodly

 

 

 

Gracias al nuevo evento OnPrivilegeChange disponible en la Página, puede disparar una acción (acción estándar, navegación o llamada a función) cuando los privilegios en la Sesión en el servidor han cambiado.

 

ejemplo

 

En el siguiente ejemplo, la aplicación HealthCare tiene un encabezado que muestra estadísticas (número de médicos, número de pacientes, …). Este encabezado también muestra el médico principal (el médico que tiene el mayor número de citas). Se trata de una fuente Qodly compartida (mostBusyDoctor) que se carga al iniciar la aplicación.

 

Mientras el usuario no esté autenticado, esta información no está disponible porque no se le concede acceso para leer los médicos. Una vez realizada la autenticación, gracias al nuevo evento OnPrivilegeChange definido en la página Header, esta fuente de datos puede ser cargada.

 

blank

 

Y aquí está el resultado en acción; ¡mira el encabezado!

 

blank

 

Roles y privilegios – Mostrar/ocultar los privilegios heredados

 

Si ya ha utilizado la interfaz Roles y privilegios y ha configurado algunos privilegios integrados, sabrá que es bueno ver qué permisos se heredan de otros.

 

Pero a veces, debe centrarse en una vista más clara con sólo los permisos que configuró explícitamente para un privilegio.

 

Ahora esto es posible. ¡Sólo tiene que activar un conmutador para ello!

 

blank

 

¡No espere más para probar las nuevas funcionalidades de Qodly studio for 4D y hacer su aplicación web amigable y poderosa!

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.