ORDA – Dites adieu aux espaces vides dans vos sélections d’entités

Nous sommes tous passés par là. Vous construisez une belle interface qui affiche une sélection d’entités pour les utilisateurs. Ils peuvent supprimer des entités, mais ensuite… ces espaces vides apparaissent à l’endroit où se trouvaient les entités supprimées.

Reconstruire avec du code la sélection d’entités après en avoir supprimé ? Ce n’est plus la peine ! 4D 20 R6 introduit une fonctionnalité pratique qui élimine ce problème en une seule ligne de code.

Continuez à lire pour découvrir comment cette fonctionnalité peut garder votre interface conviviale et vos utilisateurs détendus.

HDI_CleanEntitySelection

la fonction de nettoyage de l’objet entite selection

Voyons comment fonctionne cette fonction.

Une sélection d’entités est affichée et l’utilisateur peut en supprimer certaines.

La liste ci-dessous affiche la sélection d’entités Form.persons. L’utilisateur en sélectionne quelques-unes (Form.selected) et clique sur le bouton Drop. Si nous n’exécutons que ce code:

Form.selected.drop()
Form.persons:=Form.persons

Nous obtenons ceci :

Avec une seule ligne de code, grâce à la nouvelle fonction clean() :

Form.persons:=Form.persons.clean()

Les espaces vides disparaissent comme par magie, laissant votre interface propre et conviviale :

blank

 

Le paramètre « clean » de l’API REST $entityset

Si votre application repose sur des API REST, vous pouvez également utiliser le paramètre clean avec l’API REST $entityset.

Si vous avez un ensemble d’entités contenant des entités supprimées (comme le montre l’objet en bleu contenant la propriété __STAMP):

{
"__DATACLASS" : "Persons",
"__entityModel" : "Persons",
"__GlobalStamp" : 0,
"__COUNT" : 3,
"__FIRST" : 0,
"__ENTITIES" : [
{
"__STAMP" :0
},
{
"__KEY" : "2",
"__TIMESTAMP" : "2024-05-23T09:26:19.658Z",
"__STAMP" : 1,
"ID" : 2,
"firstname" : "Broddy",
"lastname" : "Cristofanini"
},
{
"__KEY" : "3",
"__TIMESTAMP" : "2024-05-23T09:26:19.658Z",
"__STAMP" : 1,
"ID" : 3,
"firstname" : "Candie",
"lastname" : "Figin"
}
],
"__SENT" : 3
}

Vous pouvez obtenir un nouvel ensemble d’entités sans les entités supprimées en exécutant la requête ci-dessous (949062617AF6408CB198B3CB41FB72FB est l’ID de l’ensemble d’entités) :

/$entityset/949062617AF6408CB198B3CB41FB72FB?$clean=true&$method=entityset

Le résultat ? Un nouvel ensemble d’entités sans les entrées supprimées :

{
"__ENTITYSET" : "/rest/Persons/$entityset/8F658F3BA1884DE6BEC1FCFF4A7938F0",
"__DATACLASS": "Persons",
"__entityModel" : "Persons",
"__GlobalStamp" : 0,
"__COUNT" : 2,
"__FIRST" : 0,
"__ENTITIES" : [
{
"__KEY" : "2",
"__TIMESTAMP" : "2024-05-23T09:47:50.933Z",
"__STAMP" : 1,
"ID" : 2,
"firstname" : "Broddy",
"lastname" : "Cristofanini"
},
{
"__KEY" : "3",
"__TIMESTAMP" : "2024-05-23T09:47:50.933Z",
"__STAMP" : 1,
"ID" : 3,
"firstname" : "Candie",
"lastname" : "Figin"
}
],
"__SENT" : 2
}

Avec cette nouvelle fonctionnalité, la gestion des sélections d’entités n’a jamais été aussi simple. Faite de belles interfaces et des utilisateurs heureux !

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.