{"id":28824,"date":"2022-12-03T19:59:33","date_gmt":"2022-12-03T18:59:33","guid":{"rendered":"https:\/\/help.qualiware.it\/qw-help\/?p=28824"},"modified":"2022-12-04T12:00:48","modified_gmt":"2022-12-04T11:00:48","slug":"qwntsec_library_cfgform","status":"publish","type":"post","link":"https:\/\/help.qualiware.it\/qw-help\/qwntsec_library_cfgform\/","title":{"rendered":"Librerie"},"content":{"rendered":"<p>La funzionalit\u00e0 <strong>Libreria<\/strong>, introdotta nella release 2021.08, ha lo scopo di consentire la definizione di funzioni globali che possono essere richiamate in qualsiasi altro script utilizzato in form, task, action link, trigger, workflow, ecc.<\/p>\n<p>E&#8217; possibile definire pi\u00f9 librerie, ognuna caratterizzata da un nome, e utilizzando sia i linguaggi VB.NET e C#. Vi \u00e8 totale libert\u00e0 di definizione delle funzioni, anche in termini di parametri, cos\u00ec come \u00e8 possibile definire, esternamente ad esse, variabili &#8220;public&#8221; che <span style=\"text-decoration: underline;\">avranno validit\u00e0 all&#8217;interno della sessione di un utente<\/span>.&nbsp;<\/p>\n<p>All&#8217;interno delle librerie \u00e8 possibile utilizzare la variabile DB, di tipo <a href=\"https:\/\/help.qualiware.it\/qw-help\/classi-di-supporto\/#QWDatabase\" target=\"_blank\" rel=\"noopener\">QWDatabase<\/a>, che contiene la connessione corrente al database, e <a href=\"https:\/\/help.qualiware.it\/qw-help\/classi-di-supporto\/#QWSession\">QWSession<\/a>, che contiene i dati della sessione utente corrente. Per richiamare le funzioni o le variabili definite all&#8217;interno delle librerie, \u00e8 necessario utilizzare le seguenti sintassi.<\/p>\n<p><strong>VB.NET<\/strong><\/p>\n<p><em>Negli eventi dei form:<\/em><\/p>\n<div>\n<div>[&lt;variabile&gt;=]<strong>form.GetSession().Global<\/strong>.&lt;nome funzione&gt;(&lt;parametri&gt;)<\/div>\n<div><strong>form.GetSession().Global<\/strong>.&lt;nome variabile globale&gt;=&lt;valore&gt;<\/div>\n<div>\n<div>[&lt;variabile&gt;=]<strong>form.GetSession().GlobalCSharp<\/strong>.&lt;nome funzione&gt;(&lt;parametri&gt;)<\/div>\n<\/div>\n<\/div>\n<div><strong>form.GetSession().GlobalCSharp<\/strong>.&lt;nome variabile globale&gt;=&lt;valore&gt;<\/div>\n<div>&nbsp;<\/div>\n<div><em>In tutti gli altri script (Task, Trigger, Action Link, Workflow, ecc.):<\/em><\/div>\n<div>&nbsp;<\/div>\n<div>\n<div>\n<div>\n<div>[&lt;variabile&gt;=]<strong>DB.Global<\/strong>.&lt;nome funzione&gt;(&lt;parametri&gt;)<\/div>\n<div><strong>DB.Global<\/strong>.&lt;nome variabile globale&gt;=&lt;valore&gt;<\/div>\n<\/div>\n<\/div>\n<div>\n<div>[&lt;variabile&gt;=]<strong>DB.GlobalCSharp<\/strong>.&lt;nome funzione&gt;(&lt;parametri&gt;)<\/div>\n<\/div>\n<\/div>\n<div><strong>DB.GlobalCSharp<\/strong>.&lt;nome variabile globale&gt;=&lt;valore&gt;<\/div>\n<div>\n<p>&nbsp;<\/p>\n<p><strong>C#<\/strong><\/p>\n<p><em>Negli eventi dei form:<\/em><\/p>\n<div>\n<div>[&lt;variabile&gt;=]<strong>((QWGlobal)form.GetSession().Global)<\/strong>.&lt;nome funzione&gt;(&lt;parametri&gt;)<\/div>\n<div><strong>((QWGlobal)form.GetSession().Global)<\/strong>.&lt;nome variabile globale&gt;=&lt;valore&gt;<\/div>\n<div>\n<div>[&lt;variabile&gt;=]<strong>((QWGlobalCSharp)<\/strong><strong>form.GetSession().GlobalCSharp)<\/strong>.&lt;nome funzione&gt;(&lt;parametri&gt;)<\/div>\n<\/div>\n<\/div>\n<div><strong>((QWGlobalCSharp)<\/strong><strong>form.GetSession().GlobalCSharp)<\/strong>.&lt;nome variabile globale&gt;=&lt;valore&gt;<\/div>\n<div>&nbsp;<\/div>\n<div><em>In tutti gli altri script (Task, Trigger, Action Link, Workflow, ecc.):<\/em><\/div>\n<div>&nbsp;<\/div>\n<div>\n<div>\n<div>\n<div>[&lt;variabile&gt;=]<strong>((QWGlobal)<\/strong><strong>DB.Global)<\/strong>.&lt;nome funzione&gt;(&lt;parametri&gt;)<\/div>\n<div><strong>((QWGlobal)DB.Global)<\/strong>.&lt;nome variabile globale&gt;=&lt;valore&gt;<\/div>\n<\/div>\n<\/div>\n<div>\n<div>[&lt;variabile&gt;=]<strong>((QWGlobalCSharp)<\/strong><strong>DB.GlobalCSharp)<\/strong>.&lt;nome funzione&gt;(&lt;parametri&gt;)<\/div>\n<\/div>\n<\/div>\n<div><strong>((QWGlobalCSharp)DB.GlobalCSharp)<\/strong>.&lt;nome variabile globale&gt;=&lt;valore&gt;<\/div>\n<div>&nbsp;<\/div>\n<\/div>\n<div>Come si pu\u00f2 vedere, le funzioni e le variabili sono referenziabili utilizzando gli oggetti <strong>Global<\/strong> (per le librerie scritte in VB.NET) e <strong>GlobalCSharp<\/strong> (per le librerie scritte in C#) referenziabili sull&#8217;oggetto ritornato da form.GetSession() per i form e sull&#8217;oggetto DB disponibile negli altri tipi di script. Se si usa il linguaggio C#, per potere utilizzare metodi e propriet\u00e0 \u00e8 necessario effettuare una conversione sul tipo <strong>QWGlobal<\/strong> per l&#8217;oggetto Global, e sul tipo <strong>QWGlobalCSharp<\/strong> per l&#8217;oggetto GlobalCSharp.<\/div>\n<p>La definizione delle librerie viene effettuata da QualiWare Server Daemon.<\/p>\n<p><a href=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/Pasted-41.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-28827 aligncenter\" src=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/Pasted-41.png\" alt=\"\" width=\"700\" height=\"619\" srcset=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/Pasted-41.png 951w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/Pasted-41-768x679.png 768w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<p>La scheda di configurazione si presenta come nella figura seguente:<\/p>\n<p><a href=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/Pasted-43.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28833\" src=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/Pasted-43.png\" alt=\"\" width=\"700\" height=\"653\" srcset=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/Pasted-43.png 902w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/Pasted-43-768x716.png 768w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<p>Al momento della pressione dei pulsanti &#8220;Salva&#8221; e &#8220;Salva ed Esci&#8221;, viene controllata la sintassi della libreria.<\/p>\n<p>La libreria modificata risulta disponibile se \u00e8 attiva la casella &#8220;Abilitata&#8221;.&nbsp;<\/p>\n<p>NOTA IMPORTANTE<br \/>\n<strong>Le modifiche apportate alle librerie vengono&nbsp; recepite all&#8217;avvio della sessione utente<\/strong>. Solamente in fase di modifica, queste vengono attivate immediatamente al momento del salvataggio senza che l&#8217;utente che le sta sviluppando debba disconnettersi per fare i test. Pertanto, dopo avere effettuato il test e abilitata la libreria, \u00e8 necessario comunicare agli utenti di disconnettersi e riconnettersi a QualiWare o, in alternativa, riavviare il pool. Analogamente, se si sta effettuando lo sviluppo su un database diverso da quello principale, e si \u00e8 attivata una sessione di QualiWare su quel database per effettuare i test, \u00e8 necessario ricordarsi di uscire dalla sessione corrente e rientrare in QualiWare prima di effettuare le prove, altrimenti non verranno recepite le modifiche.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La funzionalit\u00e0 Libreria, introdotta nella release 2021.08, ha lo scopo di consentire la definizione di funzioni globali che possono essere richiamate in qualsiasi altro script utilizzato in form, task, action link, trigger, workflow, ecc. E&#8217; possibile definire pi\u00f9 librerie, ognuna caratterizzata da un nome, e utilizzando sia i linguaggi VB.NET e C#. Vi \u00e8 totale&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ngg_post_thumbnail":0,"footnotes":""},"categories":[97,6,60],"tags":[],"acf":[],"_links":{"self":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/28824"}],"collection":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/comments?post=28824"}],"version-history":[{"count":4,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/28824\/revisions"}],"predecessor-version":[{"id":29709,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/28824\/revisions\/29709"}],"wp:attachment":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/media?parent=28824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/categories?post=28824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/tags?post=28824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}