Die Methode entitySelection.extract gibt eine Collection mit den Werten von propertyPath zurück, die aus der Entity-Selection extrahiert wurden.
propertyPath kann sich beziehen auf:
- ein skalares Attribut der Dataclass,
- eine verknüpfte Entity,
- verknüpfte Entities.
Ist propertyPath ungültig, wird eine leere Collection zurückgegeben.
Diese Methode akzeptiert zwei Syntaxarten:
Mit dieser Syntax füllt entitySelection.extract die zurückgegebene Collection mit den Werten von propertyPath der Entity-Selection.
Standardmäßig werden Entities, für die propertyPath null oder undefiniert ist, in der zurückgegebenen Collection ignoriert. Sie können die Konstante ck keep null im Parameter Option übergeben, damit diese Werte in der zurückgegebenen Collection als Null Elemente eingefügt werden.
- Dataclass Attribute mit dataClassAttribute.kind = "relatedEntity" werden als eine Collection von Entities extrahiert (Duplikate werden beibehalten).
- Dataclass Attribute mit dataClassAttribute.kind = "relatedEntities" werden als eine Collection von Entity-Selections extrahiert.
Mit dieser Syntax füllt entitySelection.extract die zurückgegebene Collection mit den Eigenschaften von propertyPath und jedes Element der Collection ist ein Objekt mit den Eigenschaften von targetPath, gefüllt mit den entsprechenden Eigenschaften von propertyPath. Null Werte werden beibehalten (der Parameter option wird mit dieser Syntax ignoriert).
Bei mehreren propertyPath muss für jede ein targetPath übergeben sein. Nur gültige Paare [propertyPath, targetPath] werden extrahiert.
Hinweis: Entities einer Collection von Entities, die über [ ] zugänglich sind, werden nicht erneut aus der Anwendung geladen.
Gegeben sind folgende Tabelle und Verknüpfung:

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.city";"city")
$teachers:=ds.Address.all().extract("city";"where";"teachers";"who")
$teachers:=ds.Address.all().extract("teachers")