Die Methode entity.fromObject( ) füllt die Entity mit dem Inhalt von object.
Hinweis: Diese Methode ändert die ursprüngliche Entity.
Das Abbilden zwischen Objekt und Entity erfolgt über die Attributsnamen:
- Existiert eine Eigenschaft des Objekts nicht in der Dataclass, wird sie ignoriert.
- Die Datentypen müssen übereinstimmen. Bei unterschiedlichen Typen in Objekt und Dataclass wird das Attribut in der Entity nicht gefüllt. 4D versucht, den Datentyp soweit wie möglich anzupassen (siehe Datentypen), sonst bleibt das Attribut unangetastet.
object kann eine verknüpfte Entity unter folgenden Bedingungen verwalten:
- object enthält den Fremdschlüssel selbst oder
- object enthält eine Objekteigenschaft mit demselben Namen wie die verknüpfte Entity mit einer einzelnen Eigenschaft mit Namen "__KEY".
- existiert die verknüpfte Entity nicht, wird sie ignoriert.
Mit folgendem Objekt $o:
{
"firstName": "Mary",
"lastName": "Smith",
"salary": 36500,
"birthDate": "1958-10-27T00:00:00.000Z",
"woman": true,
"managerID": 411,// relatedEntity gegeben mit PK
"employerID": 20 // relatedEntity gegeben mit PK
}
erstellt nachfolgender Code eine Entity mit den verknüpften Entities manager und employer.
C_OBJECT($o)
$entity:=ds.Emp.new()
$entity.fromObject($o)
$entity.save()
Sie können auch eine verknüpfte Entity verwenden, die als Objekt gegeben ist:
{
"firstName": "Marie",
"lastName": "Lechat",
"salary": 68400,
"birthDate": "1971-09-03T00:00:00.000Z",
"woman": false,
"employer": {// relatedEntity gegeben als Objekt
"__KEY": "21"
},
"manager": {// relatedEntity gegeben als Objekt
"__KEY": "411"
}
}