La méthode entitySelection.extract( ) retourne une collection contenant les valeurs cheminPropriété extraites de l'entity selection.
cheminPropriété peut faire référence à :
- un attribut dataclass scalaire,
- une entity liée,
- des entités liées.
Si cheminPropriété est invalide, une collection vide est retournée.
Cette méthode accepte deux syntaxes.
Avec cette syntaxe, entitySelection.extract( ) remplit la collection retournée avec des valeurs de cheminPropriété de l'entity selection.
Par défaut, les entités dont cheminPropriété est null ou indéfini sont ignorées dans la collection résultante. Vous pouvez passer la constante ck keep null dans le paramètre option pour intégrer ces valeurs comme des éléments null dans la collection retournée.
- Les attributs dataclass avec dataClassAttribute.kind = "relatedEntity" sont extraits sous forme de collection d'entités (les duplications sont conservées).
- Les attributs dataclass avec dataClassAttribute.kind = "relatedEntities" sont extraits sous forme de collection d'entity selections.
Avec cette syntaxe, entitySelection.extract( ) remplit la collection retournée avec des valeurs de cheminPropriété et chaque élément de la collection est un objet avec les propriétés cheminCible complétées par les propriétés cheminPropriété correspondantes. Les valeurs null sont conservées (le parmètre option est ignoré avec cette syntaxe).
Si plusieurs cheminPropriété sont renseignés, un cheminCible doit être renseigné à chacun. Seules les paires valides [cheminPropriété , cheminCible] sont extraites.
Note : Les entités d'une collection d'entités accessibles via [ ] ne sont pas rechargées depuis la base.
Soit la table et le lien suivants :

C_COLLECTION($firstnames;$addresses;$mailing;$teachers)
C_OBJECT($status)
$firstnames:=ds.Teachers.all().extract("firstname")
$addresses:=ds.Teachers.all().extract("address";ck keep null)
$mailing:=ds.Teachers.all().extract("lastname";"who";"address";"to")
$mailing:=ds.Teachers.all().extract("lastname";"who";"address.city";"city")
$teachers:=ds.Address.all().extract("city";"where";"teachers";"who")
$teachers:=ds.Address.all().extract("teachers")