Articolo Filenet. Come effettuare l'autenticazione (login)
tramite il metodo logon in Filenet, tramite la tecnologia .net(
Visual Basic Net e C#.)
Introduzione:
In questo articolo
introduttivo alla programmazione, si vedrà come utilizzare le
operazioni più comuni di filenet con la tecnologia .Net 2.0 ossia
con Visual Studio 2005. Tale articolo si può applicare sia alla
versione di filenet Content Services 52 e sia per la versione
Content Services 53 ed idmdesktop versione 3.2.A. In particolare
vedremo in questa serie di articoli, come creare un applicazione
che avrà il compito di effettuare le operazioni più comuni, quali,
il login, inserimento, modifica eliminazione e visualizzazione dei
documenti e delle code. Questo articolo, illustra la tecnica per
effettuare l'autenticazione a Filenet, nei successivi articoli,
tutti dedicati alla programmazione, vedremo le operazione che si
possono effettuare sul programma Filenet. In ogni articoli si potrà
scaricare il file di esempio utilizzato.
Aggiunta di
riferimento
Si crea un nuovo
progetto di tipo windows application, utilizzando il linguaggio
(Visual Basic.Net o C#) con cui avete più famigliarità.
Per la gestione di
Filenet, occorre referenziare (figura 1) nel progetto le dll
panagon, in particolare IDM Objects 3.2. (il numero è riferito alla
versione installato, per tanto può cambiare da pc a pc) la quale
permette la gestione delle librerie, classi, documenti ecc. Da
notare che la libreria idm error object 3.2 permette la gestione
degli errori e buona norma aggiungere anch’essa. Per aggiungere un
riferimento al progetto, andate nel menu progetto e selezionate la
voce aggiungi riferimento, a questo punto verrà aperta una finestra,
selezionate la pagine con la scritta “COM”.
Figura 1
Chiudiamo le
finestre tramite il pulsante ok, in questo modo, si conferma la
scelta di inserire nel nostro progetto i componenti panagon per la
gestione di filenet.
Dopo aver aggiunto
al progetto i riferimenti a Filenet, non ci resta che creare la
nostra applicazione, si crea una finestra di login , la quale
permette di accedere al nostro programma e di conseguenza a filenet.
Inseriamo nella form, due caselle di testo (una per username e
l’altra per la password) una casella combinata, la quale elenca
tutte le librerie installate e due pulsanti, uno per il login è
l’altro per la chiusura del programma.
La finestra dev’essere simile a quella
illustrato qui di seguito (figura 2).
Figura 2
Caricamento delle librerie
Quando si devono fare delle operazioni sui
documenti, quali ricerca, inserimento, cancellazione, ecc, ci si
deve loggare, ossia si deve avere accesso al sistema filenet, per
far ciò, dobbiamo ricorrere al metodo logon.
Quando la form, viene avviata, dobbiamo
caricare nella casella combinata, tutte le librerie che sono incluse
in filenet, in ogni libreria, possiamo trovare cartelle e documenti.
La form di login, avrà il compito di fare il login nella libreria
selezionata dall'utente in cui vuole effettuare le operazione sui
documenti.
Per rilevare i nomi delle librerie, dobbiamo
utilizzare l'oggetto Neighborhood il quale è utilizzato per
la gestione dell’insieme delle librerie.
Mentre per la gestione delle librerie, dobbiamo
utilizzare l'oggetto Library il quale effettua operazione sui
documenti e cartelle di ogni libreria. Infine utilizziamo nel
progetto anche l'oggetto ErrorManager il quale permette la
gestione degli errori.
Si crea nella form, tre oggetti, del tipo
precedentemente illustrato. Il codice dev'essere simile a quello
riportato qui di seguito.
Vb.Net
Private
objLibrary As
New
IDMObjects.Library
Private
objNeighborhood As
New
IDMObjects.Neighborhood
Private
objErrorManager As
New
IDMError.ErrorManager
C#
//oggetto neighborhhod
private
IDMObjects.Neighborhood objNeighborhood =
new
IDMObjects.Neighborhood();
//oggetto library
private
IDMObjects.Library ObjLibrary =
new
IDMObjects.Library();
//oggetto error
private
IDMError.ErrorManager ObjErrorManager =
new
IDMError.ErrorManager();
Mentre per il rilevamente delle libreria
installate, il codice da inserire nell'evento load della form,
dev'essere simile a quello riportato qui di seguito.
Vb.Net
'gestione dell'errore
Dim
ObjErrori As
IDMError.Errors
Dim
dttLibreria As
New
DataTable("Dati")
Dim
dtcNomeLibreria As
New
DataColumn("Libreria")
Dim
dtcNomeCompleto As
New
DataColumn("NomeCompleto")
Dim
dtrRiga As
DataRow
'riempio la combo con le varie
librerie di filenet
Dim
oblLibreria As
New
IDMObjects.Library
Try
'inserisco le colonne
dttLibreria.Columns.Add(dtcNomeLibreria)
dttLibreria.Columns.Add(dtcNomeCompleto)
For
Each
objLibrary In
objNeighborhood.Libraries
dtrRiga = dttLibreria.NewRow()
dtrRiga(0) = objLibrary.Label.ToString()
dtrRiga(1) = objLibrary.Name.ToString()
dttLibreria.Rows.Add(dtrRiga)
Next
cmbLibreria.DisplayMember =
"Libreria"
cmbLibreria.ValueMember =
"NomeCompleto"
cmbLibreria.DataSource = dttLibreria
'imposto il primo valore
If
cmbLibreria.Items.Count > 0
Then
cmbLibreria.SelectedIndex = 0
End
If
Catch
ex As
Exception
Dim
StrTestoErrore As
String =
""
Dim
objErrore As
IDMError.Error
If
objErrorManager.Errors.Count > 0
Then
ObjErrori = objErrorManager.Errors
'ciclo per tutti gli errori
For
Each
objErrore In
ObjErrori
StrTestoErrore = StrTestoErrore & objErrore.Description
Next
Else
StrTestoErrore = ex.Message
End
If
MsgBox(StrTestoErrore)
objErrore =
Nothing
Finally
objErrorManager =
Nothing
End
Try
C#
this.Cursor
= Cursors.WaitCursor;
//gestione dell'errore
//riempio la combo con le
varie librerie di filenet
try
{
DataTable
dttLibreria = new
DataTable("Dati");
DataColumn
dtcNomeLibreria = new
DataColumn("Libreria");
DataColumn
dtcNomeCompleto = new
DataColumn("NomeCompleto");
DataRow
dtrRiga;
dttLibreria.Columns.Add(dtcNomeLibreria);
dttLibreria.Columns.Add(dtcNomeCompleto);
foreach
(IDMObjects.Library ObjLibrary
in
objNeighborhood.Libraries)
{
dtrRiga = dttLibreria.NewRow();
dtrRiga[0] = ObjLibrary.Label.ToString();
dtrRiga[1] = ObjLibrary.Name.ToString();
dttLibreria.Rows.Add(dtrRiga);
}
cmbLibreria.DisplayMember =
"Libreria";
cmbLibreria.ValueMember =
"NomeCompleto";
cmbLibreria.DataSource = dttLibreria;
//imposto il primo valore
if
(cmbLibreria.Items.Count > 0)
cmbLibreria.SelectedIndex = 0;
}
catch (Exception
ex)
{
IDMError.Errors ObjErrori;
string
StrTestoErrore = "";
IDMError.Error ObjErrore;
//verifico che in filenet ci
siano errori
if
(ObjErrorManager.Errors.Count > 0)
{
ObjErrori = ObjErrorManager.Errors;
//ciclo per tutti gli errori
foreach
(IDMError.Error objErrore in
ObjErrori)
{
StrTestoErrore = objErrore.Description;
}
}
else
{
StrTestoErrore = ex.Message;
}
MessageBox.Show(StrTestoErrore,
"FileNet");
}
finally
{
this.Cursor
= Cursors.Default;
}
Nell’evento load
della form login, viene riempita la casella combinata, con i nomi
delle libreria,, per conoscere il nome delle librerie si utilizza la
proprietà label dell’oggetto library, mentre la
proprietà name ci ritorna il nome completo. Come si vede dal codice,
tramite un ciclo otteniamo il valore di tutte le libreria, tramite
la proprietà Libraries dell l'oggetto
Neighborhood .
Il login,
tramite il metodo logon della classe library.
Una volta che
l'utente a selezionato il nome della libreria ed impostato il nome
utente e password, tramite il pulsante Entra, deve effettuare il
login. Va ricordato che il testo per i nomi utenti e le password,
sono differenti tra le lettere minuscole e maiuscole, quindi fare
molta attenzione nel digitare . Tramite il metodo GetState
con il parametro IDMObjects.idmLibraryState.idmLibraryLoggedOn
dell'oggetto library, permette di verificare se il login è stato
effettuato o no. Se qualora abbiamo una transizione aperta,
effettuiamo il login, senza username e password, altrimenti
inseriamo tali valori. Il metodo per fare il login è Logon il quale
accetta diversi valori, quali, nome utente, password, e parametro
per visualizzare o no a video la maschera di filenet.
Prima di utilizzare
il metogo logon, impostare alcune proprietà, quale, il nome della
libreria, tramite la proprietà Name, ed il tipo di sistema di
accesso (ds o is) . Di seguito si riporta il codice da inserire
nell'evento click del pulsante entra.
Vb.Net
Try
Me.Cursor
= Cursors.WaitCursor
'effettuo il login
'objLibrary.SessionManager =
objSessionManager
objLibrary.Name = cmbLibreria.SelectedValue.ToString()
objLibrary.SystemType = IDMObjects.idmSysTypeOptions.idmSysTypeDS
''variabile booleana che
indica il login effettuato
Dim
blnLoggato As
Boolean
If
objLibrary.GetState(IDMObjects.idmLibraryState.idmLibraryLoggedOn) =
True
Then
'effettuo il login senza
utilizzare le credenzialità
blnLoggato = objLibrary.Logon(
"",
"", ,
IDMObjects.idmLibraryLogon.idmLogonOptNoUI)
Else
blnLoggato = objLibrary.Logon(txtutente.Text,
txtpassword.Text, , IDMObjects.idmLibraryLogon.idmLogonOptNoUI)
End
If
'eventualmente verifare di
nuovo lo stato tramite getfiles
If
objLibrary.GetState(IDMObjects.idmLibraryState.idmLibraryLoggedOn)
Then
'avvio la form principale
'dalle form successive fare il logoof
Dim
FrmPrincipale As
New
FrmPrincipale(objLibrary, objNeighborhood)
FrmPrincipale.ShowDialog()
Else
MsgBox(
"Errore di login",
MsgBoxStyle.Information,
"Filenet")
End
If
Catch ex
As
Exception
Dim
ObjErrori As
IDMError.Errors
Dim
StrTestoErrore As
String =
""
Dim
objErrore As
IDMError.Error
If
objErrorManager.Errors.Count > 0
Then
ObjErrori = objErrorManager.Errors
'ciclo per tutti gli errori
For
Each
objErrore In
ObjErrori
StrTestoErrore = objErrore.Description
Next
Else
StrTestoErrore = ex.Message
End
If
MsgBox(StrTestoErrore)
Finally
'riporto il cursore allo stato
iniziale
Me.Cursor
= Cursors.Default
End
Try
C#
//effettuo il login
try
{
ObjLibrary.Name = cmbLibreria.SelectedValue.ToString();
ObjLibrary.SystemType =
IDMObjects.idmSysTypeOptions.idmSysTypeDS;
//variabile booleana che
indica il login effettuato
Boolean
blnLoggato;
if
(ObjLibrary.GetState(IDMObjects.idmLibraryState.idmLibraryLoggedOn)
== true
)
{
blnLoggato = ObjLibrary.Logon(
"","","",
IDMObjects.idmLibraryLogon.idmLogonOptNoUI);
}
else
{
blnLoggato = ObjLibrary.Logon(txtutente.Text,
txtpassword.Text,
"",
IDMObjects.idmLibraryLogon.idmLogonOptNoUI);
}
//eventualmente verifare di
nuovo lo stato tramite getfiles
if (
ObjLibrary.GetState(IDMObjects.idmLibraryState.idmLibraryLoggedOn)
== true
)
{
FrmPrincipale
frmprincipale = new
FrmPrincipale(ObjLibrary,
objNeighborhood);
frmprincipale.Show();
}
else
{
MessageBox.Show("Errore
di login",
"Filenet");
}
}
catch (Exception
ex)
{
IDMError.Errors ObjErrori;
string
StrTestoErrore = "";
IDMError.Error ObjErrore;
//verifico che in filenet ci
siano errori
if
(ObjErrorManager.Errors.Count > 0)
{
ObjErrori = ObjErrorManager.Errors;
//ciclo per tutti gli errori
foreach(IDMError.Error
objErrore in
ObjErrori)
{
StrTestoErrore = objErrore.Description;
}
}
else
{
StrTestoErrore = ex.Message;
}
MessageBox.Show(StrTestoErrore,
"FileNet");
}
finally
{
this.Cursor
= Cursors.Default;
}
Conclusioni:
In questo articolo,
si è visto come effettuare il login, una fase molto importante e che
comunque viene sempre applicata, qualora si deve interagire con
filenet. Tramite la parola donwload è possibile scaricare il file di
esempio, utilizzato in questo articolo
I
siti web di riferimento:
http://www.filenet.com/Italiano/index.asp Italia
http://www.filenetinfo.com/mk/get/feis_ita_reg Per richiedere
gratuitamente il cd "FileNet is Essential"
http://www.filenet.com/ (Inglese)
Nessun commento:
Posta un commento