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)