sabato 17 marzo 2007

Come effettuare il login in Filenet tramite Visual Basic Net e C#


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




Download esempio


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: