Wir alle kennen das. Sie haben eine schöne Oberfläche erstellt, die dem Benutzer eine Auswahl von Objekten anzeigt. Sie können Entitäten ablegen, um ihre Auswahl zu verfeinern, aber dann… erscheinen diese leeren Stellen, wo die abgelegten Entitäten waren.
Die Auswahl der Entitäten nach dem Ablegen neu aufbauen? Das war einmal! 4D 20 R6 führt eine praktische Funktion ein, die dieses Problem mit nur einer Zeile Code beseitigt.
Lesen Sie weiter, um zu erfahren, wie diese Funktion Ihre Oberfläche sauber und Ihre Benutzer zufrieden hält.
die Clean-Funktion für das Entity Selection Objekt
Schauen wir uns an, wie diese Funktion funktioniert.
Eine Entitätsauswahl wird angezeigt, und der Benutzer kann einige Entitäten löschen.
Das Listenfeld unten zeigt die Entitätsauswahl Form.persons an. Der Benutzer wählt einige von ihnen aus (Form.selected ) und klickt auf die Schaltfläche „Drop“. Wenn wir nur diesen Code ausführen:
Form.selected.drop()
Form.persons:=Form.persons
Wir erhalten dies:
Mit nur einer Zeile Code, dank der neuen Funktion clean() :
Form.persons:=Form.persons.clean()
Die leeren Stellen sind wie von Zauberhand verschwunden, so dass Ihre Schnittstelle sauber und benutzerfreundlich ist:
Der saubere Parameter in der REST-API $entityset
Wenn Ihre Anwendung auf REST-APIs angewiesen ist, können Sie den clean-Parameter auch mit der $entityset-REST-API verwenden.
Wenn Sie ein Entityset haben, das gelöschte Entitäten enthält (erkennbar an dem blauen Objekt, das die __STAMP-Eigenschaft enthält), wie dieses:
{
"__DATACLASS": "Persons",
"__entityModel": "Persons",
"__GlobalStamp": 0,
"__COUNT": 3,
"__FIRST": 0,
"__ENTITIES": [
{
"__STAMP":0
},
{
"__KEY": "2",
"__TIMESTAMP": "2024-05-23T09:26:19.658Z",
"__STAMP": 1,
"ID": 2,
"firstname": "Broddy",
"lastname": "Cristofanini"
},
{
"__KEY": "3",
"__TIMESTAMP": "2024-05-23T09:26:19.658Z",
"__STAMP": 1,
"ID": 3,
"firstname": "Candie",
"lastname": "Figin"
}
],
"__SENT": 3
}
Sie können ein neues Entitätsset ohne die gelöschten Entitäten erhalten, indem Sie die folgende Anfrage ausführen (949062617AF6408CB198B3CB41FB72FB ist die Entitätsset-ID):
/$entityset/949062617AF6408CB198B3CB41FB72FB?$clean=true&$method=entityset
Das Ergebnis? Ein Entityset ohne die gelöschten Einträge:
{
"__ENTITYSET": "/rest/Persons/$entityset/8F658F3BA1884DE6BEC1FCFF4A7938F0", xml-ph-0000@deepl.internal
"__DATACLASS": "Personen",
"__entityModel": "Personen",
"__GlobalStamp": 0,
"__COUNT": 2,
"__FIRST": 0,
"__ENTITIES": [
{
"__KEY": "2",
"__TIMESTAMP": "2024-05-23T09:47:50.933Z",
"__STAMP": 1,
"ID": 2,
"firstname": "Broddy",
"lastname": "Cristofanini"
},
{
"__KEY": "3",
"__TIMESTAMP": "2024-05-23T09:47:50.933Z",
"__STAMP": 1,
"ID": 3,
"firstname": "Candie",
"lastname": "Figin"
}
],
"__SENT": 2
}
Mit dieser neuen Funktion war es noch nie so einfach, die Auswahl von Entitäten zu verwalten. Sorgen Sie für eine aufgeräumte Benutzeroberfläche und zufriedene Benutzer!