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!
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.
Y aquí está el resultado en acción; ¡mira el encabezado!
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!
¡No espere más para probar las nuevas funcionalidades de Qodly studio for 4D y hacer su aplicación web amigable y poderosa!