Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v19.8
entitySelection.toCollection()

entitySelection.toCollection() 


 

entitySelection.toCollection() ( {filter ;}{ options {; begin {; howMany}}} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
filter  String, Collection in Gibt die Entity Eigenschaften zum Extrahieren an
options  Lange Ganzzahl in dk with primary key: Fügt den Primärschlüssel hinzu
dk with stamp: Fügt den Stempel hinzu
begin  Lange Ganzzahl in Definiert den startenden Index
howMany  Lange Ganzzahl in Anzahl der Entities zum Extrahieren
Funktionsergebnis  Collection in Collection der Objekte mit Attributen und Werten der Entity Collection

Die Methode entitySelection.toCollection() erstellt und gibt eine Collection zurück, wo jedes Element ein Objekt mit einem Satz Eigenschaften und Werten ist, die den Attributsnamen und Werten für die Entity Collection entsprechen.

Wird der Parameter filter weggelassen, enthält einen leeren String oder "*", werden alle Attribute extrahiert. Attribute mit der Eigenschaft "kind" "relatedEntity" werden mit einfacher Form extrahiert: ein Objekt mit Eigenschaft __KEY (Primärschlüssel). Attribute mit Eigenschaft "kind" "relatedEntities" werden nicht extrahiert.

Im Parameter filter können Sie die Entity Attribute zum Extrahieren übergeben. Es gibt zwei Syntaxarten:

  • Ein String mit Eigenschaftspfaden, getrennt durch Kommas: "propertyPath1, propertyPath2, ...".
  • Eine Collection mit Strings: ["propertyPath1","propertyPath2",...]

Ist filter für Attribute vom Typ relatedEntity angegeben:

  • propertyPath = "relatedEntity" -> wird mit einfacher Form extrahiert
  • propertyPath = "relatedEntity.*" -> alle Eigenschaften werden extrahiert
  • propertyPath = "relatedEntity.propertyName1, relatedEntity.propertyName2, ..." -> nur diese Eigenschaften werden extrahiert

Ist filter für Attribute vom Typ relatedEntities angegeben:

  • propertyPath = "relatedEntities.*" -> alle Eigenschaften werden extrahiert
  • propertyPath = "relatedEntities.propertyName1, relatedEntities.propertyName2, ..." -> nur diese Eigenschaften werden extrahiert

Im Parameter options können Sie den bzw. die Selektoren dk with primary key und/oder dk with stamp übergeben, um Primärschlüssel der Entity bzw. Stempel in extrahierten Objekten hinzuzufügen.

Mit dem Parameter begin können Sie den startenden Index der Entities zum Extrahieren angeben. Sie können jeden Wert zwischen 0 und Entity-Selection-1 übergeben.

Im Parameter howMany können Sie die Anzahl der zu extrahierenden Entities ab der in begin angegebenen Entity definieren. Entfernte Entities werden nicht zurückgegeben, jedoch gemäß dem Parameter howMany mitgezählt. Ist howMany= 3 und gibt es 1 entfernte Entity, werden nur 2 Entities extrahiert.

Ist howMany >Länge der Entity-Selection, gibt die Methode (Länge - begin) Objekte zurück.

Eine leere Collection wird zurückgegeben:

  • wenn die Entity-Selection leer ist oder
  • begin größer als die Länge der Entity-Selection ist

Folgende Struktur wird für alle Beispiele dieses Abschnitts verwendet:

Beispiel ohne die Parameter filter oder options:

 C_COLLECTION($employeesCollection)
 C_OBJECT($employees)
 
 $employeesCollection:=New collection
 $employees:=ds.Employee.all()
 $employeesCollection:=$employees.toCollection()

Ergibt:

[
    {
        "ID": 416,
        "firstName": "Gregg",
        "lastName": "Wahl",
        "salary": 79100,
        "birthDate": "1963-02-01T00:00:00.000Z",
        "woman": false,
        "managerID": 412,
        "employerID": 20,
        "photo": "[object Picture]",
        "extra": null,
        "employer": {
            "__KEY": 20
        },
        "manager": {
            "__KEY": 412
        }
    },
    {
        "ID": 417,
        "firstName": "Irma",
        "lastName": "Durham",
        "salary": 47000,
        "birthDate": "1992-06-16T00:00:00.000Z",
        "woman": true,
        "managerID": 412,
        "employerID": 20,
        "photo": "[object Picture]",
        "extra": null,
        "employer": {
            "__KEY": 20
        },
        "manager": {
            "__KEY": 412
        }
    }
]

Beispiel mit dem Parameter options:

 $employeesCollection:=New collection
 $employees:=ds.Employee.all()
 $employeesCollection:=$employees.toCollection("";dk with primary key+dk with stamp)

Ergibt:

[
    {
        "__KEY": 416,
        "__STAMP": 1,
        "ID": 416,
        "firstName": "Gregg",
        "lastName": "Wahl",
        "salary": 79100,
        "birthDate": "1963-02-01T00:00:00.000Z",
        "woman": false,
        "managerID": 412,
        "employerID": 20,
        "photo": "[object Picture]",
        "extra": null,
        "employer": {
            "__KEY": 20
        },
        "manager": {
            "__KEY": 412
        }
    },
    {
        "__KEY": 417,
        "__STAMP": 1,
        "ID": 417,
        "firstName": "Irma",
        "lastName": "Durham",
        "salary": 47000,
        "birthDate": "1992-06-16T00:00:00.000Z",
        "woman": true,
        "managerID": 412,
        "employerID": 20,
        "photo": "[object Picture]",
        "extra": null,
        "employer": {
            "__KEY": 20
        },
        "manager": {
            "__KEY": 412
        }
    }]

Beispiel mit Aufteilen und Filtern auf Eigenschaften:

 $employeesCollection:=New collection
 $filter:=New collection
 $filter.push("firstName")
 $filter.push("lastName")
 
 $employees:=ds.Employee.all()
 $employeesCollection:=$employees.toCollection($filter;0;0;2)

Ergibt:

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl"
    },
    {
        "firstName": "Irma",
        "lastName": "Durham"
    }
]

Beispiel mit dem Typ relatedEntity in einfacher Form:

 $employeesCollection:=New collection
 $employeesCollection:=$employees.toCollection("firstName,lastName,employer")

Ergibt:

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl",
        "employer": {
            "__KEY": 20
        }
    },
    {
        "firstName": "Irma",
        "lastName": "Durham",
        "employer": {
            "__KEY": 20
        }
    },
    {
        "firstName": "Lorena",
        "lastName": "Boothe",
        "employer": {
            "__KEY": 20
        }
    }
   ]

Beispiel mit dem Parameter filter als Collection:

[#code4D]$employeesCollection:=New collection
$coll:=New collection("firstName";"lastName")
$employeesCollection:=$employees.toCollection($coll)#/code4D]

Ergibt:

[
    {
        "firstName": "Joanna",
        "lastName": "Cabrera"
    },
    {
        "firstName": "Alexandra",
        "lastName": "Coleman"
    }
]

Beispiel mit Extraktion aller Eigenschaften einer relatedEntity:

 $employeesCollection:=New collection
 $coll:=New collection
 $coll.push("firstName")
 $coll.push("lastName")
 $coll.push("employer.*")
 $employeesCollection:=$employees.toCollection($coll)

Ergibt:

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl",
        "employer": {
            "ID": 20,
            "name": "India Astral Secretary",
            "creationDate": "1984-08-25T00:00:00.000Z",
            "revenues": 12000000,
            "extra": null
        }
    },
    {
        "firstName": "Irma",
        "lastName": "Durham",
        "employer": {
            "ID": 20,
            "name": "India Astral Secretary",
            "creationDate": "1984-08-25T00:00:00.000Z",
            "revenues": 12000000,
            "extra": null
        }
    },
    {
        "firstName": "Lorena",
        "lastName": "Boothe",
        "employer": {
            "ID": 20,
            "name": "India Astral Secretary",
            "creationDate": "1984-08-25T00:00:00.000Z",
            "revenues": 12000000,
            "extra": null
        }
    }
  ]

Beispiel mit Extraktion einiger Eigenschaften einer relatedEntity:

 $employeesCollection:=New collection
 $employeesCollection:=$employees.toCollection("firstName, lastName, employer.name")

Ergibt:

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl",
        "employer": {
            "name": "India Astral Secretary"
        }
    },
    {
        "firstName": "Irma",
        "lastName": "Durham",
        "employer": {
            "name": "India Astral Secretary"
        }
    },
    {
        "firstName": "Lorena",
        "lastName": "Boothe",
        "employer": {
            "name": "India Astral Secretary"
        }
    }]

Beispiel mit Extraktion einiger Eigenschaften von relatedEntities:

 $employeesCollection:=New collection()
 $employeesCollection:=$employees.toCollection("firstName, lastName, directReports.firstName")

Ergibt:

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl",
        "directReports": []
    },
    {
        "firstName": "Mike",
        "lastName": "Phan",
        "directReports": [
            {
                "firstName": "Gary"
            },
            {
                "firstName": "Sadie"
            },
            {
                "firstName": "Christie"
            }
        ]
    },
    {
        "firstName": "Gary",
        "lastName": "Reichert",
        "directReports": [
            {
                "firstName": "Rex"
            },
            {
                "firstName": "Jenny"
            },
            {
                "firstName": "Lowell"
            }
        ]
    }]

Beispiel mit Extraktion aller Eigenschaften von relatedEntities:

 $employeesCollection:=New collection
 $employeesCollection:=$employees.toCollection("firstName, lastName, directReports.*")

Ergibt

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl",
        "directReports": []
    },    
    {
        "firstName": "Mike",
        "lastName": "Phan",
        "directReports": [
            {
                "ID": 425,
                "firstName": "Gary",
                "lastName": "Reichert",
                "salary": 65800,
                "birthDate": "1957-12-23T00:00:00.000Z",
                "woman": false,
                "managerID": 424,
                "employerID": 21,
                "photo": "[object Picture]",
                "extra": null,
                "employer": {
                    "__KEY": 21
                },
                "manager": {
                    "__KEY": 424
                }
            },
            {
                "ID": 426,
                "firstName": "Sadie",
                "lastName": "Gallant",
                "salary": 35200,
                "birthDate": "2022-01-03T00:00:00.000Z",
                "woman": true,
                "managerID": 424,
                "employerID": 21,
                "photo": "[object Picture]",
                "extra": null,
                "employer": {
                    "__KEY": 21
                },
                "manager": {
                    "__KEY": 424
                }
            }
                   ]
    },
    {
        "firstName": "Gary",
        "lastName": "Reichert",
        "directReports": [
            {
                "ID": 428,
                "firstName": "Rex",
                "lastName": "Chance",
                "salary": 71600,
                "birthDate": "1968-08-09T00:00:00.000Z",
                "woman": false,
                "managerID": 425,
                "employerID": 21,
                "photo": "[object Picture]",
                "extra": null,
                "employer": {
                    "__KEY": 21
                },
                "manager": {
                    "__KEY": 425
                }
            },
            {
                "ID": 429,
                "firstName": "Jenny",
                "lastName": "Parks",
                "salary": 51300,
                "birthDate": "1984-05-25T00:00:00.000Z",
                "woman": true,
                "managerID": 425,
                "employerID": 21,
                "photo": "[object Picture]",
                "extra": null,
                "employer": {
                    "__KEY": 21
                },
                "manager": {
                    "__KEY": 425
                }
            }
           ]
 }
]



Siehe auch 

dataClass.fromCollection( )

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: ORDA - EntitySelection

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v17

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)