Všichni jsme to zažili. Vytvoříte krásné rozhraní, které uživatelům zobrazuje výběr entit. Mohou upouštět entity, aby upřesnili svůj výběr, ale pak… se objeví prázdná místa, kde byly upuštěné entity.
Obnovit výběr entit po upuštění? Už ne! 4D 20 R6 přináší šikovnou funkci, která tento bolestivý bod odstraňuje pomocí jediného řádku kódu.
Čtěte dále a zjistěte, jak tato funkce může udržet vaše rozhraní čisté a uživatele spokojené.
funkce clean pro objekt výběru entit
Pojďme se ponořit do toho, jak tato funkce funguje.
Zobrazí se výběr entit a uživatel může některé entity odstranit.
V seznamu níže je zobrazen výběr entit Form.persons. Uživatel vybere některé z nich (Form.selected ) a klikne na tlačítko Smazat. Pokud spustíme pouze tento kód:
Form.selected.drop()
Form.persons:=Form.persons
dostaneme toto:
S pouhým jedním řádkem kódu, díky nové funkci clean() :
Form.persons:=Form.persons.clean()
prázdná místa zázračně zmizí a rozhraní zůstane čisté a uživatelsky přívětivé:
Čistý parametr v rozhraní REST API $entityset
Pokud vaše aplikace spoléhá na rozhraní REST API, můžete parametr clean použít také v rozhraní $entityset REST API.
Pokud máte sadu entit obsahující smazané entity (jak je znázorněno modrým objektem obsahujícím vlastnost __STAMP), jako např:
{
"__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": "jméno": "Broddy",
"lastname": "Cristofanini"
},
{
"__KEY": "3",
"__TIMESTAMP": "2024-05-23T09:26:19.658Z",
"__STAMP": 1,
"ID": 3,
"firstname": "Candie",
"příjmení": "Candie":
}
],
"__SENT": "Candie", "Figin" } ], "__SENT": "__SENT": 3
}
Novou sadu entit bez odstraněných entit získáte spuštěním níže uvedeného požadavku (949062617AF6408CB198B3CB41FB72FB je ID sady entit):
/$entityset/949062617AF6408CB198B3CB41FB72FB?$clean=true&$method=entityset
Výsledek? Sada entit bez odstraněných záznamů:
{
"__ENTITYSET": "/rest/Persons/$entityset/8F658F3BA1884DE6BEC1FCFF4A7938F0", xml-ph-0000@deepl.internal
"__DATACLASS": "Persons",
"__entityModel": "Persons",
"__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": "Candie": "Figin"
}
],
"__SENT": 2
}
Díky této nové funkci nebyla správa výběrů entit nikdy jednodušší. Udržujte svá rozhraní v pořádku a své uživatele spokojené!