Servizi DO
copia linkIntroduzione
I servizi DO consentono di intervenire nel ciclo di vita dei documenti in modo generalizzato, realizzando così propri servizi documentali. Per ottenere questo risultato è possibile utilizzare i seguenti tipi di oggetti:
- Eventi globali di documento.
- I Tag.
- La libreria IDDocumentHelper.
- La programmazione per concetti.
- Riflessione applicata ai documenti.
Eventi globali di documento
In modo analogo a quanto illustrato nell'articolo precedente, è possibile rendere globali anche gli eventi presenti nella libreria IDDocument. Mentre gli eventi globali di pannello e di form vengono implementati a livello di applicazione, gli eventi globali di documento devono essere implementati nella classe Document Helper. Prima di rendere globali gli eventi di documento è quindi consigliabile creare e collegare il document helper alla propria applicazione applicando i passi indicati nei paragrafi seguenti.
Rendendo globale un evento di documento si fa in modo che tutte le istanze di qualunque tipo di documento presenti nell'applicazione notifichino quell'evento al Document Helper che può gestirlo in maniera generalizzata. Se, ad esempio, volessimo implementare un servizio di versioning dei documenti è sufficiente rendere globale l'evento di AfterSave per intercettare in un punto unico tutte le volte che un qualunque documento e stato salvato o cancellato con successo dal database.
Uso dei Tags
Anche nel caso di documenti è utile l'uso di Tag che possano configurare o passare informazioni ai servizi documentali generalizzati. Per maggiori informazioni e per vedere l'esempio del servizio di Versioning, si consiglia di leggere gli articoli SetTag e GetTag.
Implementazione del Document Helper
Per creare una classe che possa ricevere gli eventi di notifica dei servizi documentali è necessario seguenti questi passi:
- Creare una nuova classe nella propria applicazione che estenda IDDocumentHelper.
- Creare un'istanza globale all'applicazione di questa classe.
- Associare l'istanza alla proprietà DocumentHelper dell'applicazione, solitamente nell'evento Initialize.
Programmazione per concetti e riflessione
All'interno delle procedure di implementazione dei servizi personalizzati, oltre ai tag, può essere utile poter investigare sulla natura dei documenti coinvolti; per questo sono disponibili potenti strumenti di riflessione. Per maggiori informazioni vedere anche la funzione GetStructure.
Infine è possibile assegnare un preciso significato alle varie proprietà di un documento già a design time, associandole ad un dominio. Il servizio documentale potrà quindi leggere o scrivere le informazioni del documento senza sapere su quale tipo di documento sta lavorando, ma puntando le proprietà per concetto. Per maggiori informazioni vedere l'articolo relativo alla funzione GetPropertyIndex.
Progetto DOBase
In fonto all'articolo è possibile far riferimento al progetto DOBase per ottenere un esempio delle tabelle, delle liste valori e dei domini da utilizzare per la corretta implementazione dei servizi documentali.
Ultima modifica: 17/11/2022 / Validità: da 6.8.3060