ORDA fue uno de los principales anuncios de 4D Summit 2018, abriendo un mundo de nuevas posibilidades en 4D. Para saber más sobre ORDA y sus beneficios, consulte este post para ver cómo ORDA cambiará su forma de trabajar.
INTRODUCCIÓN
Con ORDA, se accede a los datos a través de una capa de abstracción: el datastore. Un datastore es un objeto que proporciona una interfaz a la base de datos y sus datos a través de objetos. Por ejemplo, una tabla es mapeada a un objeto dataclass, un campo es un atributo de un dataclass. El comando new ds devuelve una referencia en el almacén de datos de la aplicación. Si quieres saber más, echa un vistazo al artículo de resumen en la documentación.
Para guiarle en la exploración de las características de ORDA , hemos preparado un glosario de los diferentes términos y conceptos, junto con su definición.
ORDA también proporciona alguna información útil sobre la estructura de la base de datos.
Esto puede ser muy útil cuando se escribe código genérico…. sin conocer la estructura de una base de datos.
Descargar la herramienta de ordenación dinámica TIP
Aquí hay un ejemplo:
Como el dataStore devuelto por el comando ds es un objeto, se puede iterar a través de él utilizando un bucle for each para obtener sus atributos (también conocidos como dataClasses).
Esto permite escribir código genérico aplicable a todas las tablas expuestas en el dataStore.
En el siguiente ejemplo, construimos una colección de objetos que contienen las dataClasses.
C_OBJECT Form($dataClassObj)
C_TEXT ($dataClassName)
For each ($dataClassName;ds)
$dataClassObj :=New object
$dataClassObj .name:=$dataClassName
$dataClassObj .value:=ds[$dataClassName]
.dataClassList.push($dataClassObj)
End for each
Esta colección puede mostrarse en un cuadro de lista para que los usuarios puedan seleccionar una dataClass. Luego, podemos continuar con el código genérico en la dataClass seleccionada.
Un objeto dataClass también se puede recorrer con un bucle for each para obtener sus atributos que contienen propiedades útiles:
-
- name: nombre del dataClassAttribute en el modelo de datos
- tipo: la categoría del atributo:
- «storage»: equivalente a un campo en la base de datos 4D
- «relatedEntity»: un atributo de relación N -> 1
- «relatedEntities»: un atributo de relación 1 -> N
- relatedDataClass: el nombre de la clase de datos relacionada con el atributo (si el tipo es «relatedEntity» o «relatedEntities»)
Con toda esta información, puedes escribir código genérico sin conocer la estructura de tu base de datos.
En el ejemplo de base de datos TIP proporcionado, aprenderás a
- seleccionar una dataClass del dataStore,
- construir un cuadro de lista con todas las propiedades de la dataClass, incluyendo la entidad relacionada de primer nivel, y
- construir una herramienta de ordenación.
A continuación, un resumen de este TIP: