ORDA: Noticias de última hora para los métodos de selección de entidades

Traducido automáticamente de Deepl

Cuando se trata de ORDA, 4D v18 R3 está lleno de buenas noticias. Nuevos métodos de miembros están a su disposición para mejorar aún más su experiencia de codificación.

Para empezar, la extracción de datos de una selección de entidades se ha enriquecido enormemente permitiéndole construir una colección totalmente personalizada con los datos de su selección de entidades.

Además, le proporcionamos una forma de indicar a una selección de entidades que sus datos deben ser actualizados desde el servidor inmediatamente, invalidando los datos almacenados en caché.

¿Está interesado en algunos detalles? Siga leyendo, todo lo que necesita saber está abajo.

extraer datos de una selección de entidades

El método new extract() está disponible en una selección de entidades.

Ahora puede construir una colección personalizada a partir de una selección de entidades.

Ejemplo 1

En el método extract() puede especificar los atributos de la clase de datos que desea extraer y sus nombres en la colección resultante.

Dada esta simple base de datos:

Construimos una colección $mailing de objetos con nombres de propiedades específicas: «destinatario», «ciudad», «código postal».

C_COLLECTION($mailing)
$mailing :=ds.Interns.all().extract("apellidos"; "destinatario";\️
"empleador.ciudad"; "ciudad";\️
"empleador.código postal"; "código postal")

y aquí está el resultado de la

$mailing resultante:

[
{recipient:Hodge,city:Blakeslee,zipCode:18610},
{recipient:Metzler,city:Medfield,zipCode:02052},
{recipient:Broyles,city:Madison,zipCode:13402}
]

Ejemplo 2

Tenga en cuenta que los atributos de las clases de datos que son una entidad relacionada pueden extraerse como una colección de entidades.

Un posible caso de uso es manejar una colección de entidades de diferentes clases de datos.

En el siguiente ejemplo, construimos la colección Form.partners que contiene entidades de las clases de datos Empresa y Escuela.

blank

C_COLLECTION($companies;$schools)

// $companies is a collection of entities of Company dataclass
$companies :=ds.Interns.all().extract("empleador")

// $schools is a collection of entities of School dataclass
$schools :=ds.Interns.all().extract("escuela")

Form .partners:=$companies.concat($schools) // Form.partners is a collection

A continuación, la colección Form.partners está lista para ser mostrada en un cuadro de lista.blank

Consulte la documentación de los métodos refresh() y extract() para obtener más información.

Actualizar una selección de entidades

El nuevo método refresh() está disponible en una selección de entidades. Invalida los datos de la selección de entidades en la caché de ORDA para que la próxima vez que se usen los datos, se desencadene una actualización desde el servidor.

Por defecto, la caché de ORDA expira después de 30 segundos, así que use el método refresh() en caso de que necesites datos actualizados inmediatamente.

Ejemplo

Tienes algunos atributos de la selección de entidades de Form.invoices mostrados en un cuadro de lista y en un momento dado, quieres mostrar las actualizaciones hechas por otros clientes en esos atributos de selección de entidades. Es muy fácil. Sólo tienes que utilizar el método refresh() método miembro.

Form.invoices.refresh() // The Form.invoices entity selection displayed data will be refreshed from the server

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.