Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v19.8
entitySelection.extract( )

entitySelection.extract( ) 


 

entitySelection.extract ( rutaProp {; rutaObj}{; rutaProp2 ; rutaObj2 ; ... ; rutaPropN ; rutaObjN}{; opcion}) -> Resultado 
Parámetro Tipo   Descripción
rutaProp  Texto in Ruta de propiedad cuyos valores se deben extraer a la nueva colección
rutaObj  Texto in Ruta de propiedad de objetivo o nombre de propiedad
opcion  Entero largo in ck keep null: incluye propiedades nulas en la colección devuelta (ignorado por defecto). Parámetro ignorado si se pasa rutaObj.
Resultado  Collection in Colección que contiene los valores extraídos

El método entitySelection.extract( ) devuelve una colección que contiene los valores rutaProp extraídos de la selección de entidades. 

rutaProp puede referirse a:

  • un atributo de clase de datos escalar,
  • una entidad relacionada,
  • entidades relacionadas.

Si rutaProp no es válido, se devuelve una colección vacía.
    
Este método acepta dos sintaxis.

Con esta sintaxis, entitySelection.extract( ) llena la colección devuelta con los valores de rutaProp de la selección de entidades.
Por defecto, las entidades para las que rutaProp es null o indefinida se ignoran en la colección resultante. Puede pasar la constante ck keep null en el parámetro opcion para incluir estos valores como elementos null en la colección devuelta.

  • Los atributos clase de datos con dataClassAttribute.kind = "relatedEntity" se extraen como una colección de entidades (se mantienen los duplicados)..
  • Los atributos clase de datos con dataClassAttribute.kind = "relatedEntities" se extraen como una colección de selecciones de entidades.

Con esta sintaxis, entitySelection.extract( ) llena la colección devuelta con las propiedades rutaProp y cada elemento de la colección es un objeto con propiedades rutaObj llenas con las propiedades correspondientes de propertyPath. Los valores Null se mantienen (el parámetro opcion se ignora con esta sintaxis).
Si se dan varias rutaProp, una rutaObj se debe dar para cada una. Solo se extraen los pares válidos [rutaProp , rutaObj ].

 

Nota: las entidades de una colección de entidades accedidas por [ ] no se vuelven a cargar desde la base de datos.

Ejemplo  

Dada la siguiente tabla y relación:

 C_COLLECTION($firstnames;$addresses;$mailing;$teachers)
 C_OBJECT($status)
  //
  //
  //$firstnames es una colección de Cadenas
 $firstnames:=ds.Teachers.all().extract("firstname")
  //
  //$addresses es una colección de entidades relacionadas con la clase de datos Address
  //Se extraen valores nulls de address
 $addresses:=ds.Teachers.all().extract("address";ck keep null)
  //
  //
  //$mailing es una colección de objetos con propiedades "who" y "to"
  //el contenido de la propiedad "who" es de tipo Cadena
  //el contenido de la propiedad "to" es de tipo entidad (dataclass Address)
 $mailing:=ds.Teachers.all().extract("lastname";"who";"address";"to")
  //
  //
  //$mailing es una colección de objetos con propiedades "who" y "city"
  //el contenido de la propiedad "who" es de tipo Cadena
  //el contenido de la propiedad "city" es de tipo Cadena
 $mailing:=ds.Teachers.all().extract("lastname";"who";"address.city";"city")
  //
  //$teachers es una colección de objetos con propiedades "where" y "who"
  //el contenido de la propiedad "where" es Cadena
  //el contenido de la propiedad "who" es una selección de entidades (dataclass Teachers)
 $teachers:=ds.Address.all().extract("city";"where";"teachers";"who")
  //
  //$teachers es una colección de selecciones de entidades
 $teachers:=ds.Address.all().extract("teachers")



Ver también 

collection.extract( )

 
PROPIEDADES 

Producto: 4D
Tema: ORDA - EntitySelection

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v18 R3

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)