Vylepšené používání licencí 4D Client s Qodly Studio pro 4D

Automaticky přeloženo z Deepl

Ti z vás, kteří začali používat Qodly Studio for 4D, již vědí, jak výkonný je tento nový nástroj pro vývoj podnikových webových aplikací. Pokud jste tak ještě neučinili, najdete zde další informace, jak začít.

Aplikace vytvořené pomocí Qodly Studio for 4D se spoléhají na rozhraní REST API. Aplikace 4D 20 R5 je dodávána se skvělou novou funkcí: Režim „Vynutit přihlášení“.

V režimu Force Login se licence klienta 4D spotřebuje pouze tehdy, když se uživatelé úspěšně přihlásí a začnou pracovat s daty a logikou vaší aplikace.

Čtěte dále a dozvíte se více! A nezapomeňte si stáhnout naši ukázku, abyste ji viděli v akci!

Ukončení demo relace

Co je režim vynuceného přihlášení?

Webové formuláře Qodly nejsou HTML. Qodly Studio pro 4D totiž popisuje váš formulář jako soubor JSON, který se později vykreslí ve webovém prohlížeči koncového uživatele jako HTML.

Aby se formulář Qodly vykreslil ve webovém prohlížeči koncového uživatele, je z prohlížeče spuštěn požadavek REST na stažení JSON formuláře ze serveru.

Další akce koncového uživatele na formuláři rovněž vyvolají požadavky REST pro zpracování dat a volání funkcí tříd datového modelu ORDA na serveru.

Před 4D 20 R5, stejně jako u všech ostatních požadavků REST, server vytvoří a udržuje webovou relaci, která hostí úložiště relaa oprávnění relace, a současně se spotřebovává licence 4D Client.

Pokud tedy implementujete jednoduchý autentizační formulář (vstupy login + heslo) pomocí Qodly Studio for 4D, jakmile koncový uživatel na tento formulář vstoupí, licence 4D Client se spotřebuje ještě před zahájením procesu autentizace.

Spotřebovaná licence klienta 4D se uvolní až po uzavření webové relace po uplynutí časového limitu nečinnosti v délce alespoň jedné hodiny (nebo po restartu serveru). To může vést k nedostatku dostupných licencí klienta 4D, které by uživatelům umožnily pracovat s vaší aplikací.

Jsme si vědomi, že toto chování by mohlo být vylepšeno, proto:

V aplikaci 4D 20 R5 můžete při práci s rozhraním REST API používat nový režim „Vynutit přihlášení„.

Tento režim je pro Qodly Studio pro 4D aplikace velkým přínosem, protože tento proces vylepšuje. Pomáhá vám kontrolovat spotřebu klientských licencí 4D a nyní můžete uvolnit klientskou licenci 4D, když uživatel ukončí používání aplikace.

Abychom to shrnuli

V režimu vynuceného přihlášení se licence spotřebovávají pouze tehdy, když uživatelé začnou pracovat s daty a logikou s, které váš server REST obsluhuje. To znamená, že

  • Snížení spotřeby licencí: Přihlašovací formuláře již nespotřebovávají licence.
  • Zlepšení uživatelského komfortu: Uživatelé se mohou pokoušet o přihlášení, aniž by to mělo vliv na dostupné licence.
  • Lepší správa zdrojů: Licence se uvolní, jakmile uživatel ukončí aplikaci.

 

Uvolněte licenci klienta 4D kdykoli.

Relace může být ukončena jednoduchým spuštěním standardní akce Odhlásit a licence 4D Client může být uvolněna.

 

Jedná se o významné vylepšení, pojďme se tedy ponořit do podrobností a zjistit, jak můžete tuto funkci využít.

Jak aktivovat režim vynuceného přihlášení

Zapnutí režimu Vynutit přihlášení je jednoduché. Stačí přejít do sekce Role a oprávnění a aktivovat jej.

blank

Tím se odpovídajícím způsobem aktualizuje soubor roles.json vašeho projektu.

{
"permissions": {
"allowed": [
]
},
"privileges": [
],
"roles": [
],
"forceLogin": true
}

Podrobné rozdělení chování

Jakmile je tento režim aktivován:

  1. Popisné požadavky REST( tj. požadavky jako rest/$catalog nebo rest/$getWebForm pro vykreslení webového formuláře ) nespotřebovávají žádnou licenci.
  2. Ostatní požadavky REST( např. požadavky zpracovávající data nebo volající funkce tříd datového modelu ORDA) jsou odmítnuty, dokud není úspěšně dokončena autentizace.
  3. Ve třídě datového skladu je nutné implementovat funkci, jejíž název musí být authentify(). Tato funkce zpracovává autentizaci. Jedná se o jediný popisný požadavek REST přijatý bez úspěšné autentizace.

 

Jakmile je autentizace úspěšná, jsou všechny požadavky REST přijaty a je spotřebována licence klienta 4D.

Úspěšná autentizace znamená volání funkce Session.setPrivileges().

Zde je uveden časový průběh této akce:

blank

 

Příklad: Příklad: Aplikace pro prodejce

Tento příklad představuje aplikaci, kterou používají prodejci pro práci se soubory svých zákazníků.

Koncový uživatel vykreslí webový formulář s datovým zdrojem typu výběr entit (datová třída Customers) s počáteční hodnotou All.

Tato chyba je přijata, protože dosud nebylo provedeno úspěšné ověření:

blank

blank

Koncový uživatel však může vykreslit tento jednoduchý webový formulář, který po načtení nezpracovává data ani nevolá žádnou funkci. V tuto chvíli není spotřebována žádná licence 4D Client.

 

blank

Když koncový uživatel klikne na tlačítko Go, zavolá se funkce authentify(). Ta byla implementována ve třídě datového úložiště.

exposed Function authentify($credentials : Object) : Text
	
var $salesPersons : cs.SalesPersonsSelection
var $sp : cs.SalesPersonsEntity
	
$salesPersons:=ds.SalesPersons.query("identifier = :1"; $credentials.identifier)
$sp:=$salesPersons.first()
	
If ($sp#Null)
	If (Verify password hash($credentials.password; $sp.password))
		Session.clearPrivileges()
		Session.setPrivileges("")
		return "Authentication successful"
	Else 
		return "Wrong password"
	End if 
Else 
	return "Wrong user"
End if 

Toto volání je akceptováno.

Pokud se autentizace nezdaří, funkce Session.setPrivileges() se nevolá. Nedojde tedy ke spotřebování licence + žádné popisné požadavky REST nezůstanou odmítnuty.

Pokud je autentizace úspěšná, je volána funkce Session.setPrivileges(). Je tedy spotřebována licence klienta 4D a nyní je přijat jakýkoli požadavek REST. Poté můžete začít efektivně pracovat se svými daty.

Poznámka: V tomto příkladu je funkci Session. Use the setPrivileges() předán prázdný řetězec pro ověření jako host. Samozřejmě lze nastavit oprávnění odpovídající autentizaci uživatelů.

Dále můžete koncovým uživatelům nabídnout funkci odpojení díky výše zmíněné standardní akci odhlášení. Relace bude zbavena svých oprávnění a koncový uživatel se vrátí do stavu „neautentizovaný“: budou přijímány pouze popisné požadavky REST a pro práci s daty se musí znovu autentizovat.

Závěr

Díky režimu vynuceného přihlášení v aplikaci 4D 20 R5 můžete optimalizovat spotřebu licencí klienta 4D ve svých webových aplikacích Qodly Studio pro 4D. Zlepšíte tak uživatelský komfort a správu serverových zdrojů. Dejte nám vědět, co si o této funkci myslíte, na fóru 4D!

 

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.