Filenet Come effettuare l'autenticazione (login) tramite il metodo logon in Filenet, tramite la tecn

In questo articolo viene descritta la fase di login, ossia come autenticarsi in Filenet, per accedere alle sue risorse. In allegato a tale articolo, si può scaricare il file di esempio utilizzato in questo articolo.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

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)


Esempio Allegato