Inserire un documento in Filenet CS tramite la tecnologia .Net (VB.Net e C#)

In questo articolo vedremo come inserire uno o più file in Filenet, tramite la tecnologia .Net.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

Articolo Filenet: Inserimento di un documento tramite Visual Basic .Net e C#

 

Figura 1

Introduzione:

In questo articolo, vedremo come inserire un documento in filenet, in particolare tramite un applicazione in ambiente Windows Application con la tecnologia .net (Vb.net e C#), Dopo aver selezionato uno o più file, l'inserimento avviene tramite l'utilizzo dell'oggetto document, i file saranno inseriti in un apposita cartella di Filenet, creata precedentemente.

Creazione della form.

Inseriamo nella form, quattro pulsanti, un controllo listbox, che avrà il compito di visualizzare il percorso e nome dei file selezionati e due label, la finestra dovrà avere un aspetto simile a quella mostrata in figura 1.  Nell'evento click del pulsante Esci, scriviamo il seguente codice:

 

Vb.Net

Me.Close()

C#.

this.close();

 Mentre per il pulsante rimuovi il seguente codice:

Vb.Net

lstFile.Items.Remove(lstFile.SelectedItem)

C#

lstFile.Items.Remove(lstFile.SelectedItem);

 

Infine per il pulsante seleziona file, il seguente frammento codice.

 

Vb.NEt

If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then

lstFile.Items.Add(OpenFileDialog1.FileName.ToString())

End If

C#

if (OpenFileDialog1.ShowDialog() == DialogResult.OK)

lstFile.Items.Add(OpenFileDialog1.FileName.ToString());

 

I tre pulsanti, illustrati precedentemente, hanno il compito di uscire dal programma, rimuovere dalla listbox l'elemento selezionato, mentre l'ultimo pulsante ha il compito di visualizzare una finestra per la selezione dei file.

Si crea a livello di form, un oggetto di tipo library, il quale ci permette la gestione dei documenti, di seguito si riporta il suddetto codice:

 

Vb.Net

Private objLibreria As New IDMObjects.Library

C#

private IDMObjects.Library objLibreria = new IDMObjects.Library();

 

Infine modifichiamo il costruttore della form, in questo modo quando verrà richiamata tale finestra, viene passato l'oggetto library, di cui precedentemente abbiamo utilizzato per effettuare il login.

 

Vb.Net

Sub New(ByVal libreria As IDMObjects.Library)

InitializeComponent()

objLibreria = libreria

End Sub

 

C#

//secondo costruttore

public FrmInserisciDocumento(IDMObjects.Library libreria)

{

objLibreria = libreria;

InitializeComponent();

}

 

 

Inserimento del file

Per inserire un file in Fiilenet CS o IS, possiamo utilizzare gli oggetti folder (per la cartella) document, che permette la gestione del file, e library, il quale rappresenta la classe della libreria di cui abbiamo effettuato  il login.

La proprietà Properties dell'oggetto document, permette di impostare il valore di una determinata proprietà, mentre il metodo savenew, salva il file. Il metodo file, dell'oggetto folder, assegna all'oggetto document, la cartella in cui verranno inseriti i file.

Di seguito si riporta il codice completo per l'inserimento di un file (situato nell'evento click del pulsante per l'inserimento dei file).

 

Vb.Net

'oggetto cartella

Dim ObjFolder As IDMObjects.Folder

'oggetto document

Dim ObjDocumento As New IDMObjects.Document

Try

        'si possono inserire anche le array - creo l'oggetto di tipo documeto, indicandogli la classe documentale come secondo argomento

        ObjDocumento = objLibreria.CreateObject(IDMObjects

.idmObjectType.idmObjTypeDocument, "ClasseTest")

'imposto la  proprietà name

'assegno il nome del file

        ObjDocumento.Properties("idmName").Value = "test.txt"

        'imposto il valore di un altra proprietà

If ObjDocumento.Properties.Item(2)

.PropertyDescription.GetState(IDMObjects.idmPropDescState

.idmPropReadOnly) = False Then ObjDocumento.Properties.Item(2).Value = "prova"

'imposto la cartella in cui salvare il file, si può anche evitare - il secondo parametro è il codice identificativo della cartella

             ObjFolder = objLibreria.GetObject(

IDMObjects.idmObjectType

.idmObjTypeFolder, "1156511789")

'imposto la  cartella per l'oggetto documento

ObjFolder.File(ObjDocumento)

Dim StrArrFile() As String

ReDim Preserve StrArrFile(lstFile.Items.Count - 1)

For intConta As Integer = 0 To lstFile.Items.Count - 1

StrArrFile(intConta) = lstFile.Items(intConta).ToString()

Next

'salvo il documento, il secondo parametro indica di  non spostarlo ma solo copiarlo

ObjDocumento.SaveNew(StrArrFile, IDMObjects.idmSaveNewOptions.idmDocSaveNewKeep)

Catch ex As Exception

Dim ObjErrorManager As New IDMError.ErrorManager

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

ObjFolder = Nothing

ObjDocumento = Nothing

End Try

 

C#

//oggetto cartella

IDMObjects.Folder objFolder = new IDMObjects.Folder();

//oggetto document

IDMObjects.Document ObjDocumento = new IDMObjects.Document();

//si possono inserire anche le array

ObjDocumento = (IDMObjects.Document)objLibreria.CreateObject(

IDMObjects.idmObjectType.idmObjTypeDocument, "ClasseTest", System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value);

//imposto la  proprietà nome ed un altra personalizzata

            //assegno il nome del file

            ObjDocumento.Properties["idmName"].Value = "test.txt";

if (ObjDocumento.Properties[2].PropertyDescription

.GetState(IDMObjects.idmPropDescState.idmPropReadOnly) == false )

ObjDocumento.Properties[2].Value = "prova";

//imposto la cartella in cui salvare il file, si può evitare

objFolder = (IDMObjects.Folder)objLibreria

.GetObject(IDMObjects.idmObjectType.idmObjTypeFolder, "1156511789", null, null, null);

//imposto la cartella del documento

objFolder.File(ObjDocumento);

string[] StrArrFile;

StrArrFile = new string[lstFile.Items.Count - 1 ];

for (int IntConta = 0; IntConta < lstFile.Items.Count - 1; IntConta++)

{

StrArrFile[IntConta] = lstFile.Items[IntConta].ToString();

}

            //salvo il documento lasciando un copia sul pc

ObjDocumento.SaveNew(StrArrFile, IDMObjects.idmSaveNewOptions.idmDocSaveNewKeep);

}

catch (Exception ex)

{

IDMError.ErrorManager ObjErrorManager = new IDMError.ErrorManager();

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");

}

 

Chiusura della form

Per concludere, quando si chiude la finestra, prima di eliminare gli oggetti in memoria, dobbiamo chiudere la connessione a filenet, questo avviene tramite il metodo logoff, verificando che la connessione è ancora attiva. Queste operazioni vanno effettuate nell'evento closing della form. Di seguito si riporta un esempo di codice:

 

Vb.Net

Try

If objLibrary.GetState(IDMObjects.idmLibraryState

.idmLibraryLoggedOn) = True Then

'chiudo la connessione

objLibrary.Logoff()

End If

Catch ex As Exception

Dim ObjErrorManager As New IDMError.ErrorManager

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

'distruggo l'oggetto

objLibrary = Nothing

End Try

 

C#

try

{

if (objLibrary.GetState(IDMObjects.idmLibraryState

.idmLibraryLoggedOn) = True )

{

//chiudo la connessione

ObjLibrary.Logoff();

}

 

}

catch (Exception ex)

{

IDMError.ErrorManager ObjErrorManager = new IDMError.ErrorManager();

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

{

//distruggo l'oggetto

ObjLibrary = null;

}

 

 

Conclusioni

In questo articolo, si è visto come inserire un documento in filenet, utilizzando l'oggetto folder, document e library, possiamo inserire uno o più file in determinate cartelle di filenet e con determinati nomi. Tramite la parola download è possibile effettuare il donwload dell'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)