La piattaforma mette a disposizione diverse procedure che consentono al programmatore di interagire con l’interfaccia di QualiWare e con il database.
Le funzioni elencate sono utilizzabili in ogni script input all’interno di QualiWare – fatta eccezione per quelle che richiedono un parametro relativo al form di partenza, che si possono usare solamente all’interno degli eventi del Form Designer o alle personalizzazioni delle pagine standard.
Manipolazione dati nativi
Le seguenti funzioni sono semplici metodi per la manipolazione di tipi di dato nativi di Visual Basic e della libreria di QualiWare.
Array2String
Function Array2String(ByVal a As DBArray, Optional ByVal separator As String = ",") As String
Ritorna una stringa ottenuta concatenando gli elementi dell’oggetto DBArray specificato nel primo parametro, e utilizzando il separator
specificato.
String2Array
Function String2Array(ByVal s As String, Optional ByVal separator As String = ",", Optional ByVal noRemoveEmpty As Boolean = True) As DBArray
Ritorna un oggetto di tipo DBArray ottenuto dividendo la stringa s
sulla base della stringa separator
specificata. Se il terzo parametro è True
, lascia eventuali elementi vuoti.
ctod
Function ctod(ByVal dateValue As String As String) As Date
Converte una stringa in una data, utilizzando il formato della lingua corrente.
dtoc
Function dtoc(ByVal dateValue As Date, Optional ByVal fmt As String = Nothing) As String
Converte una data in una stringa, utilizzando il formato della lingua corrente o quello specificato nel secondo parametro, che è opzionale.
Empty
Function Empty(ByVal expression As Object) As Boolean
Restituisce True
se l’espressione specificata (che può essere anche una variabile) è “vuota”. Il concetto di “vuoto” è diverso a seconda del tipo, come dal seguente schema:
- Stringa:
""
oNothing
- Numerico:
0
- Data: data vuota
- Booleano:
False
- Oggetto:
Nothing
max
Function max(ByVal a As Object, ByVal b As Object) As Object
Ritorna il maggiore tra due valori.
min
Function min(ByVal a As Object, ByVal b As Object) As Object
Ritorna il minore tra due valori.
replicate
Function replicate(ByVal str As String, ByVal n As Integer) As String
Ritorna una stringa ottenuta replicando la stringa str
per un totale di n
volte.
Str
Function Str(ByVal num As Object, Optional ByVal nChars As Integer = 15, Optional ByVal ndec As Integer = 0) As String
Ritorna una stringa ottenuta trasformando num
in una stringa di nChars
caratteri con un numero di decimali pari a ndec
Val
Function Val(ByVal s As String) As Double
Converte la stringa s
in un numero. N.B. il punto decimale deve sempre essere “.”
ValDecimal
Function ValDecimal(byval s As String, byval DecimalSeparator As string) As DoubleFunction Val(ByVal s As String) As Double
Converte la stringa s
in un numero. Nel parametro DecimalSeparator
è possibile specificare il separatore decimale da considerare.
Gestione dei codici di documenti e registrazioni
QualiWare gestisce diverse tipologie di documenti e registrazioni, che hanno rappresentazioni molto differenti fra loro in termini di tabelle del database e di chiavi primarie. E’ pertanto necessario potere identificare ciascun documento o registrazione in modo assoluto, attraverso una coppia di campi, che verranno utilizzati per fare riferimento ad esse nelle tabelle che contengono informazioni comuni a tutte le tipologie, come ad esempio la tabella LINKDOC che contiene i collegamenti, o la tabella DESCDOC che contiene le descrizioni.
Della coppia di campi fanno parte il cosiddetto “IDDOC” che è la tipologia del documento o registrazione, definita nella tabella TIDOCREG (es. “MN” sono i moduli non conformità, “DW” i documenti gestiti nel modulo documentale) , e “CODDOC”, che rappresenta il vero e proprio codice che identifica univocamente il documento o la registrazione all’interno della sua tipologia, ed è composto dalla concatenazione delle componenti della chiavi primaria separate dal carattere “|”.
Tramite le seguenti due funzioni è possibile determinare il codice assoluto a partire dalla tipologia e dai valori delle chiavi primarie, ed effettuare l’operazione contraria, determinando i valori delle chiavi primarie a partire dal codice assoluto.
PackCode
Function PackCode(ByVal IdDoc as String, Byval Fld1 as object, Optional Byval Fld2 as object=nothing, Optional Byval Fld3 as object=nothing, Optional Byval Fld4 as object=nothing, Optional Byval Fld5 as object=nothing, Optional Byval Fld6 as object=nothing) As String
Questa funzione restituisce il codice assoluto a partire dalle chiavi primarie del documento o della registrazione.
Parametri:
IdDoc-> Codice della tipologia del documento o della registrazione
Par1-Par6 -> Componenti della chiave primaria
Ritorna: il codice assoluto.
Esempi:
PackCode(“MN”,”2021 3″) ritorna “20210003|”;
PackCode(“A”,”2021 20″,2) ritorna “202100020|2|”;
PackCode(“DW”,”P”,”2021″,”00004″,1) ritorna “P|2021|00004|1|”.
UnPackCode
Sub UnPackCode(ByVal pTipoDoc As String, ByVal pCodDoc As String, ByRef fld1 As Object, Optional ByRef fld2 As Object = Nothing, Optional ByRef fld3 As Object = Nothing, Optional ByRef fld4 As Object = Nothing, Optional ByRef fld5 As Object = Nothing, Optional ByRef fld6 As Object = Nothing)
Questa funzione restituisce le componenti della chiave primaria del documento o della registrazione a partire dal codice assoluto.
Parametri:
IdDoc -> Codice della tipologia del documento o della registrazione
CodDoc -> Codice assoluto del documento
Par1-Par6 -> Variabili di output che conterranno le componenti della chiave primaria
Esempi:
UnPackCode(“MN”,”20210003|”, fld1) ritorna fld1=”2021 3″;
UnPackCode(“A”,”202100020|2|”,fld1,fld2) ritorna fld1=”2021 20″ e fld2=2;
UnPackCode(“DW”,”P|2021|00004|1|”,fld1,fld2,fld3,fld4) ritorna fld1=”P”, fld2=”2021″, fld3=”00004″ e fld4=1.
Gestione delle tabelle
OpenTable
OpenTable(ByVal DB As QWDatabase, ByVal sql As String, ByVal parameters As AssocArray, ByVal all_records As Boolean, ByVal in_scrittura As Boolean, Optional ByRef errmsg As String = Nothing) As QWTable
Questa funzione restituisce un oggetto di tipo QWTable per la lettura oppure la scrittura di dati da o nel database.
Parametri:
DB –> Riferimento all’oggetto QWDatabase che rappresenta la connessione al database
SQL -> È necessario specificare l’esatta stringa SQL di lettura/scrittura. Eventualmente comprensiva di parametri per la selezione dei record (essi dovranno essere preceduti dal carattere “:” ed il nome utilizzato per la loro identificazione sarà case sensitive).
PARAMETERS -> È un array associativo gestito per mezzo di un campo chiave il cui nome è il nome del parametro di selezione record da utilizzare ed il cui valore è appunto il valore da ricercare.
ALL_RECORDS -> Questo parametro ha significato solo se la query SQL non ha clausola where
. In questo caso, normalmente l’oggetto QWTable è utilizzato non per recuperare tutti i record, ma per effettuare ricerche mirate utilizzando i metodi FindKey e SetRange dell’oggetto rowset. Per evitare di recuperare tutti i record, il parametro è impostato a False di default. Così facendo, nel momento in cui la tabella viene aperta, l’oggetto RowSet non conterrà record, e verrà alimentato dalle registrazioni rilevanti solo dopo l’uso di FindKey e SetRange. Se, invece, si desidera recuperare tutti i record della tabella fin dall’apertura, mettere il parametro a “True”.
IN_SCRITTURA -> Di default è impostato a FALSE e così viene utilizzato nella maggior parte dei casi. Se viene impostato a TRUE l’oggetto recordset QualiWare restituito sarà in grado di effettuare l’inserimento di nuovi record nella tabella, la modifica di record esistenti oppure la cancellazione di essi.
ERRMSG -> Nel caso in cui si verificasse qualche errore, il testo di quest’ultimo sarebbe reperibile all’interno di questa variabile.
CloseTable
Sub CloseTable(ByRef recordset As QWTable)
Queste routine provvedono alla chiusura ed alla distruzione di un oggetto recordset generato per mezzo della funzione “OpenTable“.
Deve sempre essere utilizzata al termine dell’utilizzo della funzione “OpenTable“.
Non viene restituito alcun valore.
Parametri:
RECORDSET -> Oggetto da distruggere generato da “OpenTable“.
Elaborazione grafica
DiagramBuilder
Sub DiagramBuilder(ByVal PostbackProcedure As qwWebControls.QWWebProcedureCode, ByVal Diagram As String, Optional ByVal ExportPNG As Boolean = False, Optional ByVal ExportSVG As Boolean = False, Optional ByVal AlwaysUseNew As Boolean = False,
Optional ByVal NoSave As Boolean = False,
Optional ByVal FlowCharFile As String = Nothing
)
Questa funzione attiva il Diagram Builder. Il suo funzionamento è spiegato qui.
ImageEditor
Sub ImageEditor(Byval Image As QWWebImage, ByVal PostbackProcedure As qwWebControls.QWWebProcedureCode)
Questa funzione attiva l’editor di immagini. Il suo funzionamento è spiegato qui.
Archiviazione di documenti
DW_Archivia
Function DW_Archivia(ByVal QWSess As QWSession, ByVal pTipo As String, ByVal pTipo_Cont As String, ByRef pNumero As String, ByVal pInd_Rev As Integer, ByVal pTitolo As String, ByVal Campi As AssocArray, ByVal pPubblica As Boolean, ByVal pNomeFile As String, optional ByVal pData as object=nothing,Optional Byval pSovrascrivi As Boolean=false, Optional ByVal pNoAuditTrail As Boolean=false, Optional ByVal pResetWorkFlow As Boolean = False) As String
Questa funzione consente di archiviare un documento.
DW_Crea
Sub DW_Crea(ByVal Page As Object, ByVal pTipo As String, ByVal pTipo_Cont As String, ByVal pNumero As String, ByVal pInd_Rev As Integer, ByVal pTitolo As String, ByVal pNote As String, Optional ByVal pCampi As AssocArray = Nothing)
DW_Pubblica
Function DW_Pubblica(ByVal DB As QWDataBase, ByVal pCodDoc As String, ByVal pData_Pubbl As DateTime, Optional ByVal UpdateFields As Boolean = False, Optional ByVal CreatePdf As Boolean = False) As String
Questa funzione consente di pubblicare un documento.
DW_Revisiona
Function DW_Revisiona(ByVal DB As QWDataBase, ByVal pTipo As String, ByVal pTipo_Cont As String, ByVal pNumero As String,ByRef pInd_Rev As Integer) As String
DW_AggiornaCampi
Function DW_AggiornaCampi(ByVal DB As QWDataBase, ByVal pCodDoc As String) As String
Questa funzione consente di aggiornare il documento o il report del form per riflettere il contenuto dei campi del database, in modo che, al momento della consultazione, mostri i dati aggiornati.
pCodDoc -> Codice univoco documento da aggiornare
DW_Elimina
Function DW_Elimina(ByVal DB As QWDatabase, ByVal pTipo As String, ByVal pTipo_Cont As String, ByVal pNumero As String) As String
Questa funzione consente di eliminare tutte le revisioni di un documento.
DB –> Oggetto database
pTipo –> Tipo del documento (codice categoria)
pTipo_Cont –> Tipo_Cont del documento
pNumero –> Numero del documento
DW_Clona
Function DW_Clona(ByVal DB As QWDataBase, ByVal pTipo1 As String, ByVal pTipo_Cont1 As String, ByVal pNumero1 As String, ByVal pTipo2 As String, ByVal pTipo_Cont2 As String, ByVal pNumero2 As String, ByVal pPubblica As Boolean, Optional ByVal pData As Object = Nothing, Optional ByVal pTitolo As String = Nothing, Optional ByVal Campi As AssocArray = Nothing) As String
Questa funzione consente di clonare un documento.
DB –> Oggetto database
Campi -> Campi da sostituire a quelli del documento origine (opzionale)
DW_Ricodifica
Function DW_Ricodifica(ByVal DB As QWDataBase, ByVal old_tipo As String, ByVal old_tipo_cont As String, ByVal old_numero As String, ByVal new_tipo As String, ByVal new_tipo_cont As String, ByVal new_numero As String) As String
Questa funzione consente di archiviare un documento.
DW_Replace
Function DW_Replace(ByVal DB As QWDataBase, Byval Path As String, Byval Search As String, Byval Replace As String, Optional ByVal CaseSensitive As Boolean=false) As String
Questa funzione consente di sostituire un testo con un altro in un documento in formato DOC o DOCX.
DB –> Oggetto database
Path -> Percorso del file
GetDocumentTags
Function GetDocumentTags(ByVal DB As QWDatabase, ByVal iddoc As String, ByVal coddoc As String) As DBArray
Questa funzione consente di recuperare i tag attribuiti ad un documento.
DB –> Oggetto database
CodDoc -> Codice del documento o della registrazione da condividere
SetDocumentTags
Function SetDocumentTags(ByVal DB As QWDatabase, ByVal iddoc As String, ByVal coddoc As String, Byval Tags As DBarray) As String
Questa funzione consente di assegnare i tag ad un documento.
DB –> Oggetto database
CodDoc -> Codice del documento o della registrazione da condividere
Collegamento tra documenti
Link_Doc
Function Link_Doc(ByVal DB As QWDatabase, ByVal IDDOC1 As String, ByVal CODDOC1 As String, ByVal IDDOC2 As String, ByVal CODDOC2 As String, ByVal tipo_operazione As Integer, Optional ByRef record_set As QWTable = Nothing, Optional ByRef errmsg As String = Nothing, Optional ByVal nomefile As String = Nothing, Optional ByVal importa_nel_DB As Boolean = False) As Boolean
Questa primitiva permette di effettuare un’operazione di collegamento tra due documenti. Ritorna True
se l’operazione va a buon fine. In tal caso, all’interno del riquadro dei documenti collegati di ciascuno dei due documenti comparirà un riferimento all’altro.
Parametri:
DB -> Riferimento all’oggetto QWDatabase che rappresenta la connessione al database
IDDOC1 -> campo _IDDOC
del primo documento coinvolto nell’operazione
CODDOC1 -> campo _CODDOC
del primo documento coinvolto nell’operazione
IDDOC2 -> campo _IDDOC
del secondo documento coinvolto nell’operazione (se presente)
CODDOC2 -> campo _CODDOC
del secondo documento coinvolto nell’operazione (se presente)
tipo_operazione -> indica il tipo di operazione da effettuare, e può assumere valori da 1 a 5 compresi:
- 1 -> INSERIMENTO COLLEGAMENTO -> inserisce il collegamento al documento di QualiWare identificato da
IDDOC2
eCODDOC2
nella lista di documenti collegati a quello identificato daIDDOC1
eCODDOC1
. È possibile usare questa operazione anche per inserire un link ad una pagina esterna al sistema. In questo caso, al posto diIDDOC2
va utilizzata la stringa wildcard**
, e al posto diCODDOC2
la url al sito esterno. NOTA: i CODDOC dei documenti di QualiWare vanno passati senza la parte relativa all’indice di revisione. - 2 -> RIMOZIONE COLLEGAMENTO SPECIFICO -> rimuove il collegamento tra il documento identificato da
IDDOC1
eCODDOC1
e quello identificato daIDDOC2
eCODDOC2
- 3 -> RIMOZIONE MASSIVA -> rimuove tutti i collegamenti al documento identificato da
IDDOC1
eCODDOC1
- 4 -> QUERY -> ricava la lista di tutti i documenti collegati a quello identificato da
IDDOC1
eCODDOC1
- 5 -> INSERIMENTO FILE -> serve a collegare un file al documento identificato da
IDDOC1
eCODDOC1
. In questo caso, similmente all’operazione 1,IDDOC2
deve equivalere alla stringa**
, mentre ilCODDOC2
al percorso del file all’interno del file system. Impostanto il parametroimporta_nel_DB
aFalse
o aTrue
, il file verrà salvato rispettivamente nella cartella documentale di QualiWare, o in base64 all’interno del DB. Il nome che si vuole dare al file una volta che esso sarà stato salvato va specificato nel posto del parametronomefile
. In caso di salvataggio del file nel DB, il codice in base64 viene memorizzato nella colonna_FILE
della tabellaLINK_DOC
. Si tenga presente che la suddetta colonna, per ragioni di performance, non compare all’interno delle query di selezione fatte tramite l’editor SQL di QualiWare.
record_set -> oggetto di tipo QWTable che, in seguito ad una chiamata con tipo_operazione = 4
, riporterà la lista di documenti collegati a quello identificato da IDDOC1
e CODDOC1
errmsg -> stringa che riporta un eventuale messaggio di errore
nomefile -> nome da dare al file una volta che sarà memorizzato nella directory documentale di QualiWare (vedere operazioni 1 e 5)
importa_nel_DB -> se True
, il file verrà memorizzato nel database in formato base64 (vedere operazione 5)
Condivisione di documenti e registrazioni
Make_HyperLink
Function Make_HyperLink(ByVal QWSess As QWSession, ByVal pTipoDoc As String, ByVal pCodDoc As String, Optional byval Action as integer=0, Optional byval id_activity as string=nothing, optional byval user as string=nothing, Optional byval tipo_ente As String=Nothing, Optional ByVal ente As String=nothing) As String
Questa funzione consente di creare link che consentono di accedere ad un documento o ad una registrazione, oppure di approvarlo.
Parametri:
QWSess -> Oggetto sessione (es. form.GetSession())
pTipoDoc -> Tipo di documento o di registrazione da condividere
pCodDoc -> Codice del documento o della registrazione da condividere
Action-> Tipo di link da produrre:
0 = Link di apertura semplice
1 = Link di apertura del documento o del form in scrittura–> Valido solo per categorie documentali
2 = Link a pagina semplificata per Visto OK –> Valido solo per workflow BPM
3 = Link a pagina semplificata per Visto KO –> Valido solo per workflow BPM
4 = Link di condivisione, anche per distribuzione (vedere parametro tipo_ente ed ente)
5 = Link per la firma autografa
6 = Link di apertura del form dei dati –> Valido solo per categorie documentali di tipo File
7 = Link di apertura della scheda DOCUMENT97.ASPX per modifica e approvazione documento con funzionalità ristrette (ONLYFORM=1)
id_activity -> ID dell’attività BPM per la quale si deve dare il visto (valido se Action=2 o Action=3 o Action=5)
user -> codice dell’utente che deve dare il visto (valido se Action=2 o Action=3), oppure nome utente ed e-mail dell’utente che deve apporre la firma autografa nella forma “Nome utente <email>” (valido se Action=5), oppure codice dell’utente che deve modificare il documento (valido se Action=7).
tipo_ente -> tipo di destinatario del documento (valido se Action=4 e il documento è stato distribuito). Può essere “P” se è una persona, “E” se è un ente, “C” se è un cliente/fornitore
ente -> codice del destinatario (persona, ente o cliente/fornitore)
N.B. nel caso Action=4 e i parametri tipo_ente ed ente siano specificati, al momento dell’apertura del link viene attivato il flag LISTDIST.RICEVUTO.
ShareDocument
Function ShareDocument(Byval QWSess As QWSession,ByVal IdDoc As String, ByVal CodDoc As String,Byval share As Boolean, optional Byval Expires As DateTime=nothing) As String
Questa funzione consente di creare o revocare la condivisione di un documento, restituendo il link per visualizzare il documento stesso.
Parametri:
QWSess -> Oggetto sessione (es. form.GetSession())
IdDoc -> Tipo di documento o di registrazione da condividere
CodDoc -> Codice del documento o della registrazione da condividere
Share -> True=attiva condivisione, False=revoca condivisione
Expires -> Data di termine della condivisione. Il parametro è valido solo se Share=True, e può essere omesso, nel qual caso la condivisione sarà valida per 7 giorni a partire dalla data del richiamo della funzione.
Chat
OpenChat
Sub OpenChat(ByVal Form As QWWebControls.QWWebPage, ByVal IdDoc As String,ByVal CodDoc As String, Byval Recipients As DBArray)
Questa funzione consente di aprire la chat per un determinato documento specificando una lista di destinatari permessi.
Parametri:
Form -> riferimento al form
IdDoc -> Tipo di documento o di registrazione da condividere
CodDoc -> Codice del documento o della registrazione da condividere
Recipients -> Array dei codici dei destinatari. Il primo codice specificato comparirà come destinatario predefinito all’apertura della finestra
NOTA: questa funzione non è disponibile sulla piattaforma mobile.
Esempio
OpenChat(form,"MN","20210001|",new dbarray("GC","AQ2"))
Apertura di pagine interne ed esterne a QualiWare
BrowserDo
Sub BrowserDo(ByVal Form, ByVal URL As String)
–> Versione desktop
Sub BrowserDoMobile7(ByVal Form, ByVal URL As String)
–> Versione mobile
Questa funzione consentono di consente di aprire una funzione interna a QualiWare
Parametri:
Form -> riferimento al form
URL-> nome della pagina ed eventuali parametri
Esempio desktop
BrowserDo(form,"CAUSPAR.ASPX")
Esempio mobile
BrowserDoMobile7(form.page,"MOBILE7_DOCUMENT97.ASPX?CODDOC=" + escape(<coddoc del documento>))
BrowserOpen
Sub BrowserOpen(ByVal Form, ByVal URL As String)
–> Versione desktop
Sub BrowserOpenMobile7(ByVal Form, ByVal URL As String)
–> Versione mobile
Questa funzione consentono di consente di aprire una pagina esterna a QualiWare
Parametri:
Form -> riferimento al form
URL-> indirizzo della pagina
Esempio
BrowserOpen(form,"https://www.google.com")
Apertura di documenti e registrazioni
OpenDocument
Sub OpenDocument(ByVal Form, ByVal IdDoc As String, ByVal CodDoc As String)
Questa funzione consente di aprire un documento o una registrazione rispettando i diritti di modifica e lettura impostati.
Parametri:
Form -> riferimento al form
IdDoc -> Tipo di documento o di registrazione da aprire
CodDoc -> Codice del documento o della registrazione da aprire
Interazione con files
File
Function File(ByVal path As String) As Boolean
Ritorna True
se esiste il file con il path specificato.
Sane_FileName
Function Sane_FileName(ByVal s As String) As String
Restituisce una stringa corrispondente al nome passato come argomento, con tutti i simboli vietati sostituiti da _
(underscore) e troncamento a 150 caratteri.
CreatePreviewRequest
Sub CreatePreviewRequest(ByVal QWSess As QWSession, ByVal Filename As String, Optional ByVal name As String = Nothing, Optional ByVal share As Boolean = False, Optional ByVal title As String = Nothing, Optional Byval ForceBrowserPreview As Boolean=false, Optional Byval PageNo As Integer=0, Optional Byval Text As String=Nothing) As String
Questa funzione restituisce la URL che consente di visualizzare l’anteprima di un file.
Parametri:
QWSess -> oggetto “sessione” che può essere recuperato con il metodo form.GetSession() nei form e DB.QWSession negli altri tipi di script.
Filename -> Percorso del file
Name -> Nome del file da visualizzare nel download
Share -> Se True l’anteprima verrà mostrata nella finestra di condivisione
Title -> Titolo della finestra di anteprima (opzionale)
ForceBrowserPreview -> Se True l’anteprima verrà visualizzata usando il visualizzatore PDF del browser (opzionale)
PageNo -> Se specificato, l’anteprima si posizionerà sulla pagina specificata
Text -> Se specificato, l’anteprima si posizionerà sulla prima occorrenza del testo specificato
CreateEditRequest
Sub CreateEditRequest(ByVal Filename As String, Optional ByVal Name As String=Nothing, Optional Byval CodDoc As String=Nothing) As String
Questa funzione restituisce la URL che consente di aprire un file in modifica con QWay Office.
Parametri:
Filename -> Percorso del file da modificare
Name-> Nome del file da visualizzare nel titolo della finestra di editing (opzionale)
CodDoc -> Codice del documento da editare (opzionale). Se specificato, viene presentato il menu “Campi” che consente di inserire nel documento i “Campi QualiWare”.
Esempio di utilizzo:
Dim CodDoc as string=PackCode("DW","P", "ARC","005",9) Dim path as string=form.GetSession().GetDocumentPath(CodDoc) Dim url as String =CreateEditRequest(path,"File da editare.docx") BrowserOpen(form,url)
EditDocumentCC
Sub EditDocumentCC(ByVal form As QWWebPage, ByVal coddoc As String)
Questa funzione consente di aprire un file in modifica usando i Cloud Components
Parametri:
Form -> riferimento al form dal quale si richiama la funzione (N.B. è utilizzabile solo in un form)
CodDoc -> Codice del documento da editare, comprensivo di indice di revisione
Esempio di utilizzo:
EditDocumentCC(form, "P|0|00002|2|")
CreateDownloadRequest
Sub CreateDownloadRequest(ByVal Filename As String, Optional ByVal inline As Boolean = False, Optional ByVal name As String = Nothing) As String
Questa funzione restituisce la URL che consente di effettuare il download di un file
Parametri:
Filename -> Percorso del file da scaricare
inline -> lasciare false
Name-> nome del file scaricato
PrintExcelQuery
Function PrintExcelQuery(ByVal session As QWSess, ByVal queryname As String, ByVal parameters As AssocArray, ByRef xlspath As String, ByRef htmpath As String) As String
Questa funzione genera il report della query specificata in formato .xlsx
(o .xls
) e la salva nel path specificato.
Ritorna un messaggio di errore se l’operazione non va a buon fine.
Parametri:
session -> sessione corrente
queryname -> nome della query fatta con l’Esperto SQL (va inclusa anche l’estensione .sql
)
parameters -> array associativo con i valori degli eventuali parametri richiesti dalla query
xlspath -> path e nome del file con cui verrà salvato il report (va inclusa anche l’estensione)
htmpath -> path e nome del file HTML contenente il grafico
Gestione del workflow BPM
BPMWorkflowAddPersons
Function BPMWorkflowAddPersons(ByVal DB As QWDatabase, ByVal tipo As String, ByVal tipo_cont As String, ByVal numero As String, ByVal ind_rev As Integer, ByVal ActivityID As Integer, ByVal persons As DBArray, ByVal gg_rit As Integer) As String
Function BPMWorkflowAddPersons(ByVal DB As QWDatabase, ByVal coddoc As String, ByVal ActivityID As Integer, ByVal persons As DBArray, ByVal gg_rit As Integer) As String
Questa funzione inserisce nello stesso tempo uno o più utenti all’interno di una specifica attività di workflow di un qualsiasi documento QualiWare in una categoria BPM.
Le persone vengono aggiunte alla fase specificata solamente se risultano già come utenti coinvolgibili all’interno della fase in questione.
La funzione restituisce il messaggio d’errore in caso di fallimento.
Parametri:
DB -> Oggetto database
TIPO -> Codice della Categoria Documentale di QualiWare in cui risiede il documento target.
TIPO_CONT -> Codice del documento target.
NUMERO -> Numero del documento target.
IND_REV -> Indice di Revisione del documento target.
CODDOC -> codice univoco del documento.
ACTIVITYID -> ID dell’attività in cui inserire l’elenco degli utenti specificati.
PERSONS -> Array ad una sola dimensione che contiene l’elenco dei CODICI univoci degli utenti QualiWare da inserire nella fase di workflow.
GG_RIT -> Giorni da aggiungere alla data corrente per calcolare la data di richiesta di completamento dell’attività.
BPMWorkflowDeletePersons
Function BPMWorkflowDeletePersons(ByVal DB As QWDatabase, ByVal tipo As String, ByVal tipo_cont As String, ByVal numero As String, ByVal ind_rev As Integer, ByVal ActivityID As Integer, ByVal persons As DBArray, ByVal all_not_signed As Boolean) As String
Function BPMWorkflowDeletePersons(ByVal DB As QWDatabase, ByVal coddoc As String, ByVal ActivityID As Integer, ByVal persons As DBArray, ByVal all_not_signed As Boolean) As String
Questa funzione effettua l’eliminazione dell’elenco degli utenti specificato dalla attività di workflow specificata. Se il dettaglio degli utenti non viene invece specificato, è possibile cancellare da una attività solo coloro i quali non hanno ancora espresso il proprio benestare o rifiuto.
Se il parametro ALL_NOT_SIGNED che per default è FALSE viene impostato a TRUE, l’array dei CODICI utente non sarò in alcun modo preso in considerazione.
La funzione restituisce il messaggio d’errore in caso di fallimento.
Parametri:
DB -> Database
TIPO -> Codice della Categoria Documentale di QualiWare in cui risiede il documento target.
TIPO_CONT -> Codice del documento target.
NUMERO -> Numero del documento target.
IND_REV -> Indice di Revisione del documento target.
CODDOC -> codice univoco del documento.
ACTIVITYID -> ID dell’attività dalla quale eliminare le persone.
PERSONS -> Array ad una sola dimensione contenente i CODICI univoci degli utenti QualiWare da cancellare.
ALL_NOT_SIGNED -> Di default è impostato a FALSE e così viene utilizzato l’array PERSONS. Può essere impostato a TRUE nel caso in cui si voglia cancellare tutti gli utenti che, come detto, ancora non hanno espresso alcuna preferenza.
BPMWorkflowGetPersons
Function BPMWorkflowGetPersons(ByVal DB As QWDatabase, ByVal tipo As String, ByVal tipo_cont As String, ByVal numero As String, ByVal ind_rev As Integer, ByVal ActivityID As Integer) As DBArray
Function BPMWorkflowGetPersons(ByVal DB As QWDatabase, ByVal coddoc As String, ByVal ActivityID As Integer) As DBArray
Questa funzione restituisce un Array ad una sola dimensione per la lettura dell’elenco degli utenti presenti all’interno della attività di workflow specificata.
Parametri:
DB -> Database
TIPO -> Codice della Categoria Documentale di QualiWare in cui risiede il documento target.
TIPO_CONT -> Codice del documento target.
NUMERO -> Numero del documento target.
IND_REV -> Indice di Revisione del documento target.
CODDOC -> codice univoco del documento.
ACTIVITYID -> ID dell’attività della quale recuperare le persone coinvolte.
BPMWorkflowSign
Function BPMWorkflowSign(ByVal DB As QWDatabase, ByVal tipo As String, ByVal tipo_cont As String, ByVal numero As String, ByVal ind_rev As Integer, ByVal ActivityID As Integer, ByVal name As String, ByVal date_sf As Date, ByVal sign As Boolean, ByVal refuse As Boolean, ByVal refuse_reason As String) As String
Function BPMWorkflowSign(ByVal DB As QWDatabase, ByVal coddoc As String, ByVal ActivityID As Integer, ByVal name As String, ByVal date_sf As Date, ByVal sign As Boolean, ByVal refuse As Boolean, ByVal refuse_reason As String) As String
Questa funzione appone il visto di benestare, oppure di rifiuto (con motivazione), di UN utente all’interno di una specifica attività di workflow in una categoria BPM
È quindi possibile, partendo da una categoria documentale X, apporre visti di persone all’interno del workflow di un documento della categoria documentale Y.
La funzione restituisce il messaggio d’errore in caso di fallimento
Parametri:
FORM -> Oggetto chiamante.
TIPO -> Codice della Categoria Documentale di QualiWare in cui risiede il documento target.
TIPO_CONT -> Codice del documento target.
NUMERO -> Numero del documento target.
IND_REV -> Indice di Revisione del documento target.
CODDOC -> codice univoco del documento.
ACTIVITYID -> ID dell’attività in cui inserire il visto dell’utente specificato.
NAME -> CODICE univoco dell’utente QualiWare per cui inserire il visto nella fase di workflow specificata.
DATE_SF -> Data di apposizione del visto.
SIGN -> Benestare.
REFUSE -> Rifiuto.
REFUSE_REASON -> Motivazione del Rifiuto.
BPMWorkflowWriteEvent
Sub BPMWorkflowWriteEvent(ByVal DB As QWDatabase, ByVal CODDOC As String, ByVal ActivityID As Integer, ByVal Description As String, Optional ByVal OTLP_TraceId As String=Nothing, Optional ByVal OTLP_SpanId As String=Nothing, Optional ByVal Level As Int16=0)
Questa funzione registra un evento utente nella tabella degli eventi del Workflow WF_EVENTS e nella tabella LOGDOC
Parametri:
DB -> Database
CODDOC -> Codice del documento
ActivityId -> ID dell’attività alla quale si riferisce la registrazione nel log.
Description -> Descrizione dell’evento
OTLP_TraceID -> TraceID del protocollo OTLP (opzionale)
OTLP_SpanID -> SpanID del protocollo OTLP (opzionale)
Level-> Livello di gravità della registrazione. 0=Informazione (default), 1=Warning, 2=Error (opzionale)
BPMProcessWorkflow
Function BPMProcessWorkflow(ByVal DB As QWDataBase, ByVal CODDOC As String) as String
Questa funzione elabora il workflow di un documento, effettuando eventuali transizioni di stato e le azioni conseguenti
Parametri:
DB -> Database
CODDOC -> Codice del documento
Ritorna: l’eventuale messaggio di errore.
BPMRemoveWorkflow
Sub BPMRemoveWorkflow(ByVal DB As QWDataBase, ByVal CODDOC As String)
Questa funzione effettua il reset del workflow di un documento
Parametri:
DB -> Database
CODDOC -> Codice del documento
BPMGetCurrentWorkflowActivity
Sub BPMGetCurrentWorkflowActivity(ByVal DB As QWDataBase, ByVal CODDOC As String, ByRef ActivitiesLabel As DBArray, ByRef ActivitiesDescription As DBArray)
Questa funzione determina le attività in corso restituendone le lettere identificative e le descrizioni in altrettanti array
Parametri:
DB -> Database
CODDOC -> Codice del documento
ActivitiesLabel -> Oggetto DBArray contenente le lettere identificative delle attività aperte
ActivitiesDescription -> Oggetto DBArray contenente le descrizioni delle attività aperte
BPMSendMail
Function BPMSendMail (ByVal DB As QWDatabase, ByVal CODDOC As String, ByVal recipients As DBArray, ByVal subject As String, ByVal text As String, ByVal attach As Boolean)
Queta funzione può essere utilizzata per inviare una email durante l’esecuzione di un flusso BPM.
Parametri:
DB -> Database
CODDOC -> codice univoco del documento.
RECIPIENTS -> Array ad una sola dimensione contenente gli indirizzi email degli utenti a cui inviare il messaggio.
SUBJECT -> oggetto del messaggio
TEXT -> testo del messaggio
ATTACH -> allega una copia del documento alla mail
Gestione del workflow documentale di tipo classico
WorkflowAddPersons
Function WorkflowAddPersons(ByVal form As Object, ByVal tipo As String, ByVal tipo_cont As String, ByVal numero As String, ByVal ind_rev As Integer, ByVal phase As String, ByVal persons As DBArray, ByVal gg_rit As Integer) As Boolean
Questa funzione inserisce nello stesso tempo uno o più utenti all’interno di una specificata fase di workflow di un qualsiasi documento QualiWare.
È quindi possibile, partendo da una categoria documentale X, inserire persone all’interno del workflow di un documento della categoria documentale Y.
La funzione restituisce TRUE in caso di successo e FALSE in caso di fallimento.
Parametri:
FORM -> Oggetto chiamante.
TIPO -> Codice della Categoria Documentale di QualiWare in cui risiede il documento target.
TIPO_CONT -> Codice del documento target.
NUMERO -> Numero del documento target.
IND_REV -> Indice di Revisione del documento target.
PHASE -> Fase del documento target in cui inserire l’elenco degli utenti specificati.
PERSONS -> Array ad una sola dimensione che contiene l’elenco dei CODICI univoci degli utenti QualiWare da inserire nella fase di workflow.
GG_RIT -> Giorni da aggiungere alla data corrente per calcolare la data di richiesta di completamento dell’attività.
WorkflowSign
Function WorkflowSign(ByVal form As Object, ByVal tipo As String, ByVal tipo_cont As String, ByVal numero As String, ByVal ind_rev As Integer, ByVal phase As String, ByVal name As String, ByVal date_sf As Date, ByVal sign As Boolean, ByVal refuse As Boolean, ByVal refuse_reason As String) As Boolean
Questa funzione appone il visto di benestare, oppure di rifiuto (con motivazione), di UN utente all’interno di una specificata fase di workflow.
È quindi possibile, partendo da una categoria documentale X, apporre visti di persone all’interno del workflow di un documento della categoria documentale Y.
La funzione restituisce TRUE in caso di successo e FALSE in caso di fallimento.
Parametri:
FORM -> Oggetto chiamante.
TIPO -> Codice della Categoria Documentale di QualiWare in cui risiede il documento target.
TIPO_CONT -> Codice del documento target.
NUMERO -> Numero del documento target.
IND_REV -> Indice di Revisione del documento target.
PHASE -> Fase del documento target in cui inserire il visto dell’utente specificato.
NAME -> CODICE univoco dell’utente QualiWare per cui inserire il visto nella fase di workflow specificata.
DATE_SF -> Data di apposizione del visto.
SIGN -> Benestare.
REFUSE -> Rifiuto.
REFUSE_REASON -> Motivazione del Rifiuto.
WorkflowGetPersons
Function WorkflowGetPersons(ByVal form As Object, ByVal tipo As String, ByVal tipo_cont As String, ByVal numero As String, ByVal ind_rev As Integer, ByVal phase As String) As DBArray
Questa funzione restituisce un Array ad una sola dimensione per la lettura dell’elenco degli utenti presenti all’interno della fase di workflow specificata.
Parametri:
FORM -> Oggetto chiamante.
TIPO -> Codice della Categoria Documentale di QualiWare in cui risiede il documento target.
TIPO_CONT -> Codice del documento target.
NUMERO -> Numero del documento target.
IND_REV -> Indice di Revisione del documento target.
PHASE -> Fase del documento target in cui inserire il visto dell’utente specificato.
WorkflowDeletePersons
Function WorkflowDeletePersons(ByVal form As Object, ByVal tipo As String, ByVal tipo_cont As String, ByVal numero As String, ByVal ind_rev As Integer, ByVal phase As String, ByVal persons As DBArray, ByVal all_not_signed As Boolean) As Boolean
Questa funzione effettua l’eliminazione dell’elenco degli utenti specificato dalla fase di workflow specificata. Se il dettaglio degli utenti non viene invece specificato, è possibile cancellare da una fase solo coloro i quali non hanno ancora espresso il proprio benestare o rifiuto.Se il parametro ALL_NOT_SIGNED che per default è FALSE viene impostato a TRUE, l’array dei CODICI utente non sarò in alcun modo preso in considerazione. La funzione restituisce TRUE in caso di successo e FALSE in caso di fallimento.
Parametri:
FORM -> Oggetto chiamante.
TIPO -> Codice della Categoria Documentale di QualiWare in cui risiede il documento target.
TIPO_CONT -> Codice del documento target.
NUMERO -> Numero del documento target.
IND_REV -> Indice di Revisione del documento target.
PHASE -> Fase del documento target in cui inserire il visto dell’utente specificato.
PERSONS -> Array ad una sola dimensione contenente i CODICI univoci degli utenti QualiWare da cancellare.
ALL_NOT_SIGNED -> Di default è impostato a FALSE e così viene utilizzato l’array PERSONS. Può essere impostato a TRUE nel caso in cui si voglia cancellare tutti gli utenti che, come detto, ancora non hanno espresso alcuna preferenza.
Invio di e-mail
SendMail
Function SendMail(ByVal DB As Object, ByVal TipoDoc As String, ByVal CodDoc As String, ByVal aDest As DBArray, ByVal aDestCC As DBArray, ByVal aDestBCC As DBArray, ByVal Subj As String, ByVal Txt As String, ByVal show As Boolean, optional ByVal sender As String=Nothing) As Boolean
Questa funzione effettua l’invio di una email agli utenti oppure all’elenco di indirizzi di posta elettronica specificati.
Se i parametri TIPODOC e CODDOC vengono specificati, allora saranno aggiunti all’email i riferimenti QualiWare (allegato per la versione client/server ed hyperlink per la versione web server) al documento referenziato da TIPODOC e CODDOC.
La funzione restituisce TRUE in caso di successo e FALSE in caso di fallimento.
Parametri:
DB -> Database corrispondente alla sessione corrente.
TIPODOC -> Codice del Modulo di QualiWare in cui risiede il documento target.
CODDOC -> Codice univoco del documento target.
ADEST -> Array ad una sola dimensione contenente: l’elenco degli indirizzi email OPPURE i CODICI univoci degli utenti QualiWare OPPURE l’elenco dei NOMI (Cognome + Nome oppure Nome + Cognome) degli utenti QualiWare a cui inviare l’email. Questi saranno i destinatari diretti dell’email (A).
ADESTCC -> Array ad una sola dimensione contenente: l’elenco degli indirizzi email OPPURE i CODICI univoci degli utenti QualiWare OPPURE l’elenco dei NOMI (Cognome + Nome oppure Nome + Cognome) degli utenti QualiWare a cui inviare l’email. Questi saranno i destinatari in copia carbone dell’email (CC).
ADESTBCC -> Array ad una sola dimensione contenente: l’elenco degli indirizzi email OPPURE i CODICI univoci degli utenti QualiWare OPPURE l’elenco dei NOMI (Cognome + Nome oppure Nome + Cognome) degli utenti QualiWare a cui inviare l’email. Questi saranno i destinatari in copia carbone nascosta dell’email (CCN o BCC).
SUBJ -> Oggetto dell’email. Se lasciato vuoto, sarà inserito un oggetto standard con il riferimento univoco QualiWare al documento.
TXT -> Testo dell’email.
SHOW -> Di default è impostato a FALSE e così l’email viene inviata automaticamente e silenziosamente senza alcun intervento da parte dell’utente. Può essere impostato a TRUE nel caso in cui si voglia delegare l’invio dell’email ad un intervento da parte dell’utente.
SENDER -> indirizzo del mittente (opzionale, se non specificato viene usato l’indirizzo e-mail specificato nel campo “Mittente e-mail” della scheda “Dati di configurazione generale”).
CheckMail
Function CheckMail(ByVal address As String) As Boolean
Questa funzione verifica la validità del formato di un indirizzo e-mail, ritornando TRUE se è valido, FALSE altrimenti.
Machine learning
Prediction
Function Prediction(ByVal QWSess As QWSession, ModelCode As string, Byval Values As assocarray, optional byref errmsg As String="", Optional ByRef Score As Single=0) As object
Effettua la stima di un valore a partire dal modello con codice ModelCode e utilizzando i valori presenti nell’array associativo Values. Eventuali errori sono restituiti nella variabile errmsg, mentre i il parametro opzionale Score rappresenta la “probabilità” del valore ed è assegnata solo per Classificazione Multiclasse e Binaria. QWSess rappresenta l’oggetto “sessione” che può essere recuperato con il metodo form.GetSession() nei form e DB.QWSession negli altri tipi di script.
Barcode
ReadBarcode
Function ReadBarcode(nomefile As String, TypeToFind As Integer, Orientation As Integer, ScanArea As Integer, NMaxBarcode As Integer, ByRef errmsg As String) As DBArray
Effettua il riconoscimento di uno o più barcode a partire da un file PDF o da un’immagine contenuta nel file il cui percorso è contenuto nel parametro nomefile.
La funzione restituisce un array contenente tutti i barcode individuati nell’immagine.
Il parametro TypeToFind contiene il tipo di barcode da riconoscere, e può assumere i seguenti valori:
- 0=Tutti
- 1=EAN8
- 2=EAN13
- 4=UPCE
- 8=UPCA
- 16=Interleaved2of5
- 32=Code39
- 64=Code128
- 128=EAN2
- 256=EAN5
- 512=GS1
- 1024=Codabar
- 10001=DataMatrix
- 10002=PDF417
- 10003=QRCode
- 10004=Aztec
- 10005=MaxiCode
- 10006=MICR
- 10007=CodablockF
- 10008=Code16K
- 10009=MicroPDF
La specifica di un tipo da riconoscere rende l’elaborazione più rapida.
Il parametro Orientation consente di specificare l’orientamento dei barcode nell’immagine. Può assumere i seguenti valori:
- 0=Qualsiasi
- 1= Orizzontale da sinistra a destra
- 2=Verticale dall’alto al basso
- 4=Diagonale dall’angolo superiore a sinistra all’angolo in basso a destra
- 8=Diagonale dall’angolo in basso a sinistra all’angolo in alto a destra
- 16=Orizzontale da destra a sinistra
- 32768=Verticale dal basso in alto
La specifica di un orientamento rende l’elaborazione più rapida.
Il parametro ScanArea permette di specificare l’area della pagina nella quale effettuare il riconoscimento. Può assumere i seguenti valori:
- 0=Intera pagina
- 1=Quadrante in alto a sinistra
- 2=Quadrante in alto a destra
- 3=Metà superiore
- 4=Quadrante in basso a destra
- 8=Quadrante in basso a sinistra
- 12=Metà inferiore
NOTA: questo parametro non è più utilizzato dalla versione 2021.06+4. La scansione avviene sempre sull’intera pagina.
Il parametro NMaxBarcode contiene il numero massimo di barcode da restituire.
Nel parametro errmsg vengono restituiti eventuali messaggi d’errore (vuoto=nessun errore).
Ad esempio, il seguente codice può essere inserito in un oggetto “Procedura” che viene specificato come parametro nella chiamata di una funzione “form.AcquirePicture”.
dim err as string dim barcodes as dbarray barcodes=ReadBarcode(Parameter1, 0, 0, 0, 1, err) form.alert(Array2String(barcodes)) form.alert(err)
GenerateBarCode
Function GenerateBarCode(ByVal BarcodeType As Integer, ByVal value As string, Optional ByVal ShowText As Boolean=false) As String
Genera un’immagine contenente il barcode specificato e ritorna il nome del file, comprensivo di percorso, che la contiene.
Il parametro BarCodeType contiene il tipo di barcode da generare, e può assumere i seguenti valori:
- 1=QRCode
- 2=Code39
- 3=Code128
- 4=EAN8
- 5=EAN13
Il parametro value contiene il testo da riportare nel barcode.
Il parametro opzionale ShowText se assegnato a true consente di visualizzare il testo sotto il barcode.
Traduzione di testi
QWTranslateBing
Function QWTranslateBing(ByVal s As String, ByVal lang As String) As String
Questa funzione consente di tradurre un testo specificato nel parametro s nella lingua specificata nel parametro lang.
Il parametro lang contiene il codice della lingua (culture), che può essere uno dei seguenti:
it = italiano
en = inglese
de = tedesco
fr = francese
es = spagna
ro = rumeno
pt = portoghese
bg = bulgaro
el = greco
zh = cinese
cs = ceco
Accesso alla rete
ConnectToShare
Function ConnectToShare(ByVal resource As String, ByVal user As String, ByVal password As String, ByVal domain As String) As String
Questa funzione consente di aprire la connessione verso una share di rete presente su un altro dominio, specificando utente, password e dominio, e ritornando l’eventuale messaggio d’errore nel caso la connessione fallisca.
DisconnectFromShare
Function DisconnectFromShare(ByVal path As String) As Boolean
Questa funzione chiude la connessione, ritornando “true” se la disconnessione è riuscita.
Il seguente frammento di codice mostra un esempio di come sia possibile enumerare i file contenuti in una share utilizzando queste due primitive.
dim err as string err=ConnectToShare("\\server\share","utente","password","dominio") if err<>"" form.alert(err) return End If dim f as new dbarray() f.dir("\\server\share\sottocartella\*.*") dim i as integer dim files as string="" for i=1 to f.size files+=f(i)+vbCr next DisconnectFromShare("\\server\share") form.alert(files)
Firma digitale
P7MExtract
Function P7MExtract(ByVal filename As string, Optional ByRef signer As string=nothing) As String
Questa funzione estrae e ritorna il percorso del file contenuto in un file P7M firmato digitalmente, il cui percorso è specificato nel parametro “filename”. Nel parametro opzionale “signer” è contenuta la descrizione delle firme digitali presenti nel file specificato.
ARSS_Sign
Sub ARSS_Sign(obj As qwWebControls.QWWebProcedureCode, ByVal IDDOC As String, byval CODDOC As string, Optional ByVal UserCode As String = Nothing, Optional ByVal Pdf As Boolean = true, Optional byval [EventName] As String="onExecute")
La funzione consente di firmare un documento utilizzando la firma remota Aruba. Verrà aperta una finestra di dialogo per l’inserimento delle credenziali e, al termine della firma, verrà richiamato l’EventoEsegui dell’oggetto obj, che presenterà all’interno del Parameter1 il percorso del file firmato.
Se la firma non viene applicata, non verrà attivato l’evento.
Parametri:
obj -> oggetto procedura da richiamare una volta completata la firma
IDDOC -> ID del documento da firmare. es. “DW”
CODDOC -> Codice univoco del documento da firmare
UserCode-> Codice dell’utente che inserisce la firma
Pdf -> se posto a True verrà firmato il file PDF .pdf , altrimenti verrà creato un .p7m
EventName -> Nome dell’evento di OBJ da richiamare al termine dell’inserimento della firma (default: “onExecute”)
Crittografia
Encrypt
Function Encrypt(ByVal s As String) As String
Questa funzione consente di crittografare la stringa passata nel parametro “s”.
Decrypt
Function Decrypt(ByVal s As String) As String
Questa funzione consente di decrittografare la stringa passata nel parametro “s”.
Codifica_PW
Function Codifica_PW(ByVal CodiceUtente As String, ByVal password As String) As String
Questa funzione restituisce la versione criptata della password specificata. Va passato anche il codice utente in quanto parte della chiave di codifica.
Decodifica_PW
Function Decodifica_PW(ByVal CodiceUtente As String, ByVal password As String) As String
Questa funzione restituisce la versione decriptata della password specificata. Va passato anche il codice utente in quanto parte della chiave di codifica.
Logging
WriteLog
Sub WriteLog(ByVal message As String)
Effettua il log del messaggio passato come argomento all’interno del file error.log.
È possibile trovare il suddetto file all’interno della directory principale di installazione di QualiWare. Di base la directory è chiamata QualiWare Web Server.
Write_LogDoc
Function Write_LogDoc(ByVal QWSess As QWSession, ByVal iddoc As String, ByVal coddoc As String, ByVal top As Integer, ByVal note As String, Optional ByVal usercode As String = Nothing, Optional ByVal deleted_data As String = Nothing, Optional ByVal OTLP_TraceId As String=Nothing, Optional ByVal OTLP_SpanId As String=Nothing, Optional ByVal Level As Int16=0) As Boolean
Questa funzione consente di registrare una voce di log nella tabella LOGDOC.
Parametri:
QWSess -> Riferimento alla sessione (es. reperita con form.GetSession() o DB.QWSession)
iddoc -> IdDoc del documento, oppure “**”
coddoc -> CodDoc del documento, oppure un valore arbitrario per registrare operazioni non legate ad un documento specifico
top -> codice tipo operazione. Usare valori superiori a 100 – vedere nota.
note -> testo da riportare nella registrazione.
usercode -> codice dell’utente al quale attribuire l’operazione. Se non specificato, viene usato il codice dell’utente autenticato.
deleted_data -> uso interno, lasciare a nothing se si specificano i due parametri successivi.
OTLP_TraceID -> TraceID del protocollo OTLP (opzionale)
OTLP_SpanID -> SpanID del protocollo OTLP (opzionale)
Level-> Livello di gravità della registrazione. 0=Informazione (default), 1=Warning, 2=Error (opzionale)
Ritorna: true se la registrazione è avvenuta con successo, false altrimenti.
NOTA: nel caso il metodo sia utilizzato in Task, per far sì che un eventuale errore venga conteggiato nell’Health Monitor, è necessario passare i seguenti parametri:
– iddoc=’**’
– coddoc=’QWNTSEC’
– top=8001
– level=2
Password
GeneratePassword
Function GeneratePassword(ByVal n As Integer) As String
Genera una password complessa della lunghezza specificata nel parametro
Indicizzazione
IndexDocument
Sub IndexDocument(ByVal QWSess As QWSession, Byval IdDoc As String, ByVal CodDoc As String)
Indicizza il documento specificato dai parametri IdDoc e CodDoc. Richiede la specifica della sessione di lavoro nel parametro QWSess.
Codifica/decodifica base64
ImageToBase64
Function ImageToBase64(ByVal filename As String) As String
Restituisce una stringa con la codifica base64 dell’immagine il cui percorso viene passato nel parametro filename.
FileToBase64
Function FileToBase64(ByVal filename As String) As String
Restituisce una stringa con la codifica base64 del file il cui percorso viene passato nel parametro filename.
Base64ToImage
Function Base64ToImage(ByVal base64string As String) As System.Drawing.Image
Restituisce un oggetto System.Drawing.Image contenente l’immagine la cui codifica base64 è contenuta nel parametro base64string.
Base64ToFile
Sub Base64ToFile(ByVal base64string As String, ByVal filename As String)
Converte una stringa base64 contenuta nel parametro base64string in un file il cui percorso è contenuto nel parametro filename.
QDaemonImportTable
QDaemonImportTable(<oggetto database>,<nome tabella>,<oggetto TableDef>)
, dove:
- <oggetto database> è l’oggetto contenente il database rappresentato dalla variabile DB,
- <nome tabella> è una stringa contenente un nome convenzionale assegnato alla tabella/file da importare e può essere assegnato arbitrariamente,
- <oggetto QDaemonTableDef> e l’oggetto di tipo QDaemonTableDef contenente la definizione della tabella/file da importare e la mappatura dei campi.
La primitiva QDaemonImportTable registra gli eventi sulla tabella LOGDOC con CODDOC=’QDAEMON.
Per verificare l’esito delle importazioni ed eventuali errori si può utilizzare la funzionalità Consultazione LOG QualiWare Server Daemon selezionando l’opzione “Qdaemon”. Per maggiori informazioni, consultare la pagina Configurazione script per task dedicata all’oggetto.”