Visualizzare le queue (code) di Filenet IS tramite la tecnologia .Net (Vb.Net e C#)

In questo articolo, vedremo come gestire le code (Queue) di Filenet Image Services 4.0. tramite la tecnologia .Net, in particolare con il linguaggio Visual Basic Net e C#.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

Filenet: Visualizzare le queue (code) di Filenet tramite la tecnologia .Net (Vb.Net e C#)

 

Figura 1
Introduzione:
In questo articolo, vediamo come visualizzare i valori delle queue (code) tramite la tecnologia .Net (Vb.Net e C#), in particolare alcuni campi (denominati nome e cognome) creati in precedenza. Si crea una nuova form, nella quale si aggiunge tre label (per i vari titoli) due controlli listbox ed un pulsante, la finestra dovrà avere un aspetto simile alla figura 1.
Per la gestione delle code, utilizzeremo le classi library, per la gestione delle librerie, queue per la gestione delle code, QueueQuerySpecification per effettuare le  operazioni di ricerca ed infine la classe QueueBrowseSet che restituisce il risultato della ricerca.
Gli oggetti dichiarati a livello di form.
Utilizzeremo un solo oggetto, di tipo library a livello di form, il resto degli oggetti (istanze delle classi precedentemente descritte) saranno inseriti nei rispettivi eventi.
Si crea un oggetto di tipo library nella form, subito dopo la dichiarazione della form, come riportato qui di seguito.
Vb.Net
'oggetto libreria
 

 Dim objLibrary As New IDMObjects.Library

 
C#
 

 

//oggetto libreria new IDMObjects.Library();

 

IDMObjects.Library ObjLibrary =

A questo punto, modifichiamo il costruttore della nostra form, in modo che possiamo utilizzare l'oggetto library, utilizzato nella form precedente in cui si è effettuato il login, di seguito si riporta un frammento di codice di esempio.
 
VB.Net
 

Sub New(ByVal libreria As IDMObjects.Library)End Sub 

InitializeComponent()

objLibrary = libreria

 

 
C#
 

public FrmVisualizzaCode(IDMObjects.Library objlibreria)

{

InitializeComponent();

ObjLibrary = objlibreria;

}

 

 
Ricerca e visualizzazione delle code
Di seguito si riporta un frammento di codice da utilizzare nell'evento load della form, per la visualizzazione delle queue.  Il metodo Browse dell'oggetto QueueQuerySpecification restituisce un insieme di queuebrowsset, ossia il risultato della ricerca effettuata. In effetti con l'oggetto QueueQuerySpecification, impostando alcune proprietà, possiamo eseguire determinate ricerche, mentre con l'oggetto QueueBrowseSet possiamo gestire le varie informazioni ottenute dalla ricerca, scorrere tra i vari dati, rilevare determinati valori, ed altro ancora sulle queue. Se il metodo Browse non trova nulla, restituisce un errore, ossia –2147208689 in questo caso bisogna gestire tale eccezione, altrimenti se qualora il metodo browse restituisce dei valori, possiamo fare un ciclo, per rilevare tali dati, come riportato nel frammento di codice di esempio.

Vb.Net

 

Try

 

'oggetto coda

 objQueue = objLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeQueue,

 

Dim objQueue As New IDMObjects.Queue"ANAGRAFICA/DATI")'oggetto per la ricerca delle code

 

ObjQueueQuerySpecification = objQueue.CreateQuerySpecification()

 

Dim ObjQueueQuerySpecification As New IDMObjects.QueueQuerySpecification()''oggetto per la restituzione dei valori

 

 

Dim ObjQueueBrowseSet As New IDMObjects.QueueBrowseSet()'flag per l'accesso al sistema di filenet

ObjQueueQuerySpecification.CheckUser =

False

 

'Indica i valori delle code

ObjQueueQuerySpecification.EvenIfDelayed =

False

 

'permette di impostare o restituire un valore in base allo stato delle queue inserite, ossia se il ritorno della query è incompleta.

ObjQueueQuerySpecification.Incomplete = IDMObjects.idmQueueIncompleteOpt.idmIncompleteOK

ObjQueueQuerySpecification.MinPriority = 0

 

'restituisce tutti gli entry anche se sono loccati ossia bloccati

ObjQueueQuerySpecification.Status = IDMObjects.idmQueueBusyOpt.idmBusyOK

 

'imposto l'oggetto per la ricerca

ObjQueueBrowseSet = ObjQueueQuerySpecification.Browse()

 

'ciclo per i valori

 

lstbNome.Items.Add(ObjQueueBrowseSet.Entry.Properties(

lstCognome.Items.Add(ObjQueueBrowseSet.Entry.Properties(

 

Next Catch ex As ExceptionDim ObjErrorManager As New IDMError.ErrorManagerDim ObjErrori As IDMError.ErrorsDim StrTestoErrore As String = ""

 

 

Dim objErrore As IDMError.ErrorIf ObjErrorManager.Errors.Count > 0 Then

ObjErrori = ObjErrorManager.Errors

 

'ciclo per tutti gli errori

 

 

    StrTestoErrore = "Non ci sono code"

Else

    StrTestoErrore = objErrore.Description

End If

Next

 

Else

StrTestoErrore = ex.Message

 

End If

MsgBox(StrTestoErrore)

End Try

C#

 

try

{

 

 

 

}

 

{

IDMError.ErrorManager ObjErrorManager =

IDMError.Errors ObjErrori;

 

IDMError.Error ObjErrore;

 

}

//oggetto coda

IDMObjects.Queue objQueue =

objQueue = (IDMObjects.Queue) ObjLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeQueue,

 

new IDMObjects.Queue ();"ANAGRAFICA/DATI",null,null,null);//oggetto per la ricerca delle code

IDMObjects.QueueQuerySpecification ObjQueueQuerySpecification =

ObjQueueQuerySpecification = objQueue.CreateQuerySpecification();

 

new IDMObjects.QueueQuerySpecification();//oggetto per la restituzione dei valori

IDMObjects.QueueBrowseSet ObjQueueBrowseSet =

 

new IDMObjects.QueueBrowseSet();//flag per l'accesso al sistema di filenet

ObjQueueQuerySpecification.CheckUser =

 

false;//Indica i valori delle code

ObjQueueQuerySpecification.EvenIfDelayed =

 

false ;//permette di impostare o restituire un valore in base allo stato delle queue inserite, ossia se il ritorno della query è incompleta.

ObjQueueQuerySpecification.Incomplete = IDMObjects.idmQueueIncompleteOpt.idmIncompleteOK ;

ObjQueueQuerySpecification.MinPriority = 0;

 

//restituisce tutti gli entry anche se sono loccati ossia bloccati

ObjQueueQuerySpecification.Status = IDMObjects.idmQueueBusyOpt.idmBusyOK;

 

//imposto l'oggetto per la ricerca

ObjQueueBrowseSet = ObjQueueQuerySpecification.Browse();

 

//ciclo per i valori

 

{

lstbNome.Items.Add(ObjQueueBrowseSet.Entry.Properties[

lstCognome.Items.Add(ObjQueueBrowseSet.Entry.Properties[

 

}

for (int intconta = 1; intconta <= ObjQueueBrowseSet.RecordCount; intconta++ )"Nome"].Value );"Cognome"].Value);//verifico la fine

 

{

ObjQueueBrowseSet.MoveNext();

}

if (ObjQueueBrowseSet.MoreResults == true)catch (Exception ex)new IDMError.ErrorManager();string StrTestoErrore = "";//verifico che in filenet ci siano errori

 

{

ObjErrori = ObjErrorManager.Errors;

 

}

 

if (ObjErrorManager.Errors.Count > 0)//ciclo per tutti gli errori

 

{

if

{

StrTestoErrore =

}

 

{

StrTestoErrore = objErrore.Description;

}

(objErrore.Number = -2147208689)"Non ci sono code");else

 

}

foreach (IDMError.Error objErrore in ObjErrori)else

{

StrTestoErrore = ex.Message;

}

 

MessageBox.Show(StrTestoErrore, "FileNet");

 

For Each objErrore In ObjErroriIf objErrore.Number = -2147208689 Then

 

 

 

 

 

 

For intConta As Integer = 1 To ObjQueueBrowseSet.RecordCount"Nome").Value)"Cognome").Value)'verifico la fine

 

If ObjQueueBrowseSet.MoreResults = True Then

ObjQueueBrowseSet.MoveNext()

 

End If

 

 
Conclusioni:
In questo articolo, si è visto come visualizzare in un controllo listbox i valori delle queue, informazioni importanti relativi ai documenti, gli oggetti utilizzati (queue, QueueQuerySpecification e QueueBrowseSet) sono gli oggetti da utilizzare per la gestione delle queue. Tramite la parola download è possibile scaricare il progetto di esempio utilizzato nell'articolo.

 Download esempio

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)