Aller et venir entre les sélections actuelles et ORDA

Traduit automatiquement de Deepl

ORDA est une innovation majeure de 4D v17, c’est pourquoi nous consacrons une série entière d’articles de blog à ORDA. Bien que ORDA ait ses propres concepts qui sont très différents de l’approche classique, il est toujours possible de mélanger ORDA avec votre code existant.

En bref, cet article de blog vous montrera comment mettre à jour la sélection actuelle d’une table à partir d’une sélection d’entité et obtenir une sélection d’entité à partir de la sélection actuelle d’une table. Il vous permettra d’intégrer en douceur les conceptsORDA dans votre code 4D existant, étape par étape.

Exemple : de la sélection d’entité à la sélection courante et vice-versa.

INTRODUCTION

Avec ORDA, l’accès aux données se fait à travers une couche d’abstraction : le datastore. Un datastore est un objet qui fournit une interface à la base de données et à ses données à travers des objets. Et rappelez-vous, avec ORDA, chaque table est mappée avec une dataclasse.

Une fois que vous avez une sélection d’entité liée à une classe de données, vous pouvez mettre à jour la sélection actuelle de la [Table] correspondante avec la commande USE ENTITY SELECTION correspondante. Et, une fois que vous avez une sélection courante sur une [Table], vous pouvez obtenir une sélection d’entité liée à la classe de données correspondante avec la commande Create entity selection commande.

Pour vous guider dans l’exploration des fonctionnalités d’ORDA , nous avons préparé un glossaire des différents termes et concepts, ainsi que leur définition.

Exemple de code

Sélection actuelle d’une entité

Dans le code ci-dessous, la sélection d’entités $entitySelection est liée à la classe de données Employee qui correspond en fait à la table [Employee] du même nom. La commande USE ENTITY SELECTION met à jour la sélection actuelle de la table en conséquence.

C_OBJECT($entitySelection)
$entitySelection :=ds.Employee.query("lastName=:1" ; "R@")
// The current selection of the [Employee] table is replaced according to the content of $entitySelection
USE ENTITY SELECTION ($entitySelection)
//... Go on with your classic 4D code ...
PRINT SELECTION ([Employee])
//...

sélection d’entités à partir de la sélection actuelle

Ici, la sélection courante a été mise à jour après avoir effectué une requête sur la table [Employee]. La commande Create entity selection() crée la sélection d’entité $entitySelection en conséquence. La sélection d’entité créée est liée à la table Employee dataclass.

C_OBJECT($entitySelection)
// The current selection of the [Employee] table is updated after the query
QUERY ([Employee])
// $entitySelection is created from the current selection of the [Employee] table
$entitySelection :=Create entity selection([Employee])

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert a rejoint l'équipe de 4D Product en tant que Product Owner en 2017. En tant que Product Owner, elle est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Marie-Sophie est diplômée de l'école d'ingénieur ESIGELEC et a commencé sa carrière en tant qu'ingénieur chez IBM en 1995. Elle a participé à divers projets (projets de maintenance ou de construction) et a travaillé en tant que développeur Cobol. Elle a ensuite travaillé en tant que concepteur UML et développeur Java. Dernièrement, ses principaux rôles étaient d'analyser et de rédiger des exigences fonctionnelles, de coordonner les équipes commerciales et de développement.