ORDA – Rozlučte se s prázdnými místy ve výběrech subjektů

Automaticky přeloženo z Deepl

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é.

HDI_CleanEntitySelection

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é:

blank

Č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é!

Avatar
• Product Owner • Marie-Sophie Landrieu-Yvert se připojila k programovému týmu 4D jako Product Owner v roce 2017. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Marie-Sophie vystudovala inženýrskou školu ESIGELEC a svou kariéru zahájila jako inženýrka v IBM v roce 1995. Podílela se na různých projektech (projekty údržby nebo výstavby) a pracovala jako vývojářka Cobol. Poté pracovala jako UML designer a Java developer. V poslední době byly jejími hlavními rolí analyzovat a psát funkčních požadavky a koordinovat obchodní a vývojové týmy.