Categorie
LotusScript

Validazione di un rich text field con allegati nell’UI document

Oggi ho avuto la necessità di validare un rich text field, verificando che al campo fossero stati aggiunti allegati prima di poter salvare il documento. Tuttavia eseguire il controllo si è rivelato più difficoltoso di quello che mi aspettassi.
Posto quindi la soluzione che ho trovato nel caso qualcun altro avesse questa necessità.

Function hasAttachments(uidoc As NotesUIDocument, fieldName As String) As Integer
	
	Dim doc As NotesDocument
	Dim rtitem As Variant
	Dim embedObjs As Variant
	
	Set doc = uidoc.Document
	uidoc.refresh True  'Il parametro True trasferisce tutti i rich text items nel documento di back-end
	
	Set rtitem = doc.GetFirstItem( fieldName )
	If ( rtitem.Type = RICHTEXT ) Then
		embedObjs = rtitem.embeddedObjects
		If Not Isarray(embedObjs) Then
			hasAttachments = 0
		Else
			hasAttachments = Ubound(embedObjs) + 1
		End If
	End 

La funzione accetta due parametri l’UIDocument visto che stiamo lavorando sul front-end ed il nome del campo da testare.

  • La prima cosa da fare è ottenere il documento di back-end al fine di poterne poi sfruttare i metodi.
  • La riga 8 è fondamentale per la buona riuscita. Il parametro True trasferisce tutti i rich text items nel documento di back-end.
  • Infine otteniamo il campo e controlliamo se ha oggetti incorporati attraverso il metodo embeddedObjects(). Il metodo restituisce una matrice in caso esistano oggetti incorporati quindi verifichiamo se è un array ed in questo caso ne restituiamo il numero di elementi.

Spero che troviate utile questo codice e soprattutto che vi permetta di non perdere il tempo che ho speso io.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.