Initialiser une entity selection

Bonjour,

Question bête mais je trouve pas quelle est la bonne méthode pour ça : comment initialiser une entity selection ? Evidemment, je peux faire une recherche qui ne trouve rien ou des bricolages de ce genre mais y’a sûrement plus “immédiat/simple/propre” !?
(mon besoin précis : je suis dans un Si, sinon. Dans le Si, je remplis l’entity selection, dans le sinon, je veux qu’elle soit vide)

Merci

Salut

ton entité sélection est à la base un objet :

C_OBJECT($EntitiesSel)

En l’état, $EntitiesSel est NULL
Si tu fais $EntitiesSel:=new object, là tu auras OB IS EMPTY($EntitiesSel) qui te retourneras Vrai.

ensuite, pour savoir si une entité sélection est vide, tu regardes sa taille : $EntitiesSel.lenght qui sera égale à 0 si vide.

Patrick

bonjour

ds.dataClass.newSelection( )

et wouala :slight_smile:

Roland

Encore mieux !
Merci Roland

Bonjour…
Euh non, désolé…

<< C_OBJECT($EntitiesSel)>>

Cet objet là sera certes vide, mais ça ne sera pas pour autant une entity selection vide…c’est “assez” différent !

Roland

Effectivement !
ce sera un objet vide, pas une sélection

: Roland LANNUZEL

ds.dataClass.newSelection( )

Voilà qui est “immédiat/simple/propre” :slightly_smiling_face:

Merci !

A ta décharge je trouve que le doc 4D est, sur ce coup, mal faite: dans la rubrique “ORDA - EntitySelection” il n’y a aucune référence à cette façon de créer un nouvelle EntitySelection :doubt:

même dans la rubrique “Voir aussi” il n’y a PAS la référence à dataClass.newSelection( ) :?: :!: :twisted:

[]28631651;“il manque des trucs…”[/]

C’est dans DataClass, je sais pas sur que ce soit logique ce coup là

C’est de la logique floue… :roll:

Il faut venir aux formations pour le savoir :lol:

Vu que Strasbourg a été délaissé cette année, je me rapatrie sur Lyon pour le World Tour. Je suis sur que l’on aura la justification pendant la formation

(re)bonjour

La copie d’écran que vous montrez est la liste des “member functions” qui s’appliquent aux EntitySelection(s)

Or, on ne peut pas faire EntitySelection.newSelection()

La function “newSelection” est une fonction qui s’applique exclusivement à une DataClass (comme all, query, new, etc.), c’est donc logique qu’elle soit dans le theme DataClass!

La logique ORDA n’est pas forcément alphabétique : il faudrait avoir la liste de la doc dans le sens inverse (du plus gros au plus petit:-)

DataStore
DataClass
DataClassAttribute
EntitySelection
Entity

mais bon, quand c’est pas dans un thème; c’est pas bien loin…
:slight_smile:

Roland

Bonjour,

La méthode newSelection() est exposée sur la DataClass car elle retourne une entity selection vide correspondant à cette DataClass précisément.

C’est à dire que si vous faites plus tard sur cette entity selection un add() d’une entity qui est d’une autre DataClass, il y a une erreur.

$employees:=ds.Employee.newSelection() // Entity selection de ds.Employee vide
$c:=ds.Company.new() // Nouvelle entity de ds.Company
$employees.add($c) //Error “the entity does not belong to the Employee datastore class”

C’est votre logique.

Un entête de chapitre qui parle de “EntitySelection” et qui ne fait pas reference à comment créer une EntitySelection vide pour moi c’est problématique… :-?

Votre fonction s’applique à une DataClass, mais son résultat c’est bien une EntitySelection

On aurait pu espérer, pour le moins, à ce que la rubrique “Voir aussi” y fasse allusion

Si on ne sait pas que l’EntitySelection dépend (entre autre) d’un résultat d’une fonction appliquée à une DataClass. On peut chercher longtemps…

Apres chacun jugera.

bah, c’est vrai chacun sa logique, mais il faut bien faire des choix !

<<…chapitre …qui ne fait pas reference à comment créer une EntitySelection vide>>

Si vous vous posez la question inverse à savoir “comment faire une entity selection PAS vide”, vous trouverez facilement que ça se fait avec une query(), ou un all() par exemple. qui sont bien dans le thème DataClass :slight_smile:


Cela dit, je comprends votre point de vue. Je vais suggérer un “voir aussi” vers les fonctions des DataClass ! Et inversement :slight_smile:

Cordialement

Roland Lannuzel

: Roland LANNUZEL

Si vous vous posez la question inverse à savoir “comment faire une
entity selection PAS vide”, vous trouverez facilement que ça se fait
avec une query(), ou un all() par exemple. qui sont bien dans le
thème DataClass :slight_smile:

Sauf que pour le coup, le “DataClass.query()” est bien référencé dans la rubrique “Voir aussi” du chapitre “EntitySelection” ce qui ME parait logique effectivement :wink:

Il faudrait également y ajouter le all() :idea: