Newsgroup: it.comp.appl.notes-domino
Titolo: Lotus Script e getFileName

Sto provando a scopiazzare un agent che detach un file di posta:
sapete dirmi perchè   getFileName non mi trova nulla??
Sub Initialize
 Dim ss As NotesSession
 Dim db As NotesDatabase
 Dim ud As notesdocumentcollection
 Dim dc As NotesDocument
 Dim i As Integer
 Dim ic As Integer
Call detach(dc)
..
..
Sub detach(doc As NotesDocument)
     Dim rtitem As NotesRichTextItem
     Dim fn As String
     Dim bitem As NotesRichTextItem
     fn = getFileName(doc)
     Print "File name" & fn         < Qui non mi trova mai nulla
Grazie
Ciao Massimiliano

 sapete dirmi perchè   getFileName non mi trova nulla??
Ma scusa... cosa dovrebbe fare il tuo script?
Se vuoi fare il detach di un attachment in un doc non va bene.
Spiega.
--
http://www.depquest.net

...

ciao,
getFileName(...) ha l'aria di essere una 'Function' presente in
qualche libreria. Sei sicuro d'aver copiato e dichiarato anche la
libreria che contiene questa funzione?
salut
gn

Non ho avuto modo di provare il tuo codice
..però ho una funzioncina che uso spesso e che potrebbe fare al caso
tuo!
        Set RTitem = doc.getfirstitem("body")
	nomefile = doc.GetItemValue( "$FILE" )	'nome file sorgente
 
	'metto in un oggetto il file allegato  
	If (RTitem.type= RICHTEXT) Then
		Set allegato = RTitem.getembeddedobject(nomefile(0))
		If (allegato Is Nothing) Then
			Set allegato = docv.getattachment(nomefile(0))
		End If
	End If
Ciao Andrea
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Scusatemi se scrivo solo ora, ma sono stato lontano al probelma per vari
motivi. Provo a postare il sorgente, sperando che qualcuno mi possa dare un
aiuto:
Dim path As String
Dim currentLog As NotesLog
Sub Initialize
 Dim ss As NotesSession
 Dim db As NotesDatabase
 Dim ud As notesdocumentcollection
 Dim dc As NotesDocument
 Dim i As Integer
 Dim ic As Integer
 Print "Step 3"
 ic = 0
 path = "/toncas/HTEMP/"
 Set ss = New NotesSession
 Set db = ss.Currentdatabase
 Set ud = db.Unprocesseddocuments
 Set currentLog = ss.CreateLog("Estrai")
 Call currentLog.OpenNotesLog("", "log.nsf")
 currentLog.logAction("Check for new order attachments")
 Print "Automat: Ricerca ordini"
 Set dc = ud.getFirstDocument()
 For i = 1 To ud.Count
  If dc.HasEmbedded Then
   Print "C'è un file Embedded"
   ic = ic +1
   Call detach(dc)
  End If
  Set dc = ud.Getnextdocument(dc)
 Next
 Print "Processati " & ud.Count & " documenti di cui " & ic & "con allegato"
 Call ud.updateAll()
 currentLog.logAction(ic & "E-Mails Found And Processed")
 Call currentLog.close()
End Sub
Sub detach(doc As NotesDocument)
' Dim rtitem As Variant
 Dim rtitem As NotesRichTextItem
 Dim fn As String
 Dim bitem As NotesRichTextItem
fn = getFileName(doc)
' Print "File name" & fn
If(Len(Trim(fn)) > 0) Then
' ...set value of doc...
 Set rtitem = doc.GetFirstItem( "Body" )
 Print "Ottenuto rtiitem"
 If ( rtitem.Type = RICHTEXT ) Then
  Print "sto per ciclare su EmbeddedObjects"
  Forall o In rtitem.EmbeddedObjects
   Print "Ciclo"
   If ( o.Type = EMBED_ATTACHMENT ) Then
    Print "prima di extract"
    Call o.ExtractFile( fn )
'     Print "dopo di extract"
    Call rtitem.appendText("File Name: " & fn)
  '   doc.GetFirstItem( "Body" ).appendText("File Name: " & fn)
  '   Set bitem = New NotesRichTextItem(doc, "Body", "File Name: " & fn)
'     Print "dopo di append"
  '   Call o.Remove
    Call doc.Save( False, True )
'     Print "dopo di save"
   End If
  End Forall
 End If
End If
End Sub
Function getFileName(dc As NotesDocument) As String
 getFileName = ""
 Dim tmp As String
 Dim i As Integer
' Print "Contenuto del Campo SendTo" & dc.getFirstItem("SendTo").Text
' Print "Contenuto del Campo CopyTo" & dc.getFirstItem("CopyTo").Text
 tmp = Cstr(dc.getFirstItem("SendTo").Text)
 For i =1 To 2
'  Print "Stringa tmp '" & tmp & "' Lunghezza:" & Len(Trim(tmp))
  If(Len(Trim(tmp))>0) Then
   If(Instr(1,tmp, "orders", 5) >0 Or Instr(1,tmp,"orders",5) > 0) Then
'    Print "Uno"
    getFileName = path & "orders" & getTimeStamp()
    Exit Function
   Elseif (Instr(1,tmp,"ordini",5)>0 Or Instr(1,tmp, "ordini",5)>0) Then
    getFileName = path & "finord" & getTimeStamp()
'    Print "Due"
    Exit Function
   End If
  End If
  tmp = Cstr(dc.getFirstItem("CopyTo").Text)
 Next
End Function
Function getTimeStamp() As String
 getTimeStamp = Format(Now(), "yyyymmddhhmmss")
End Function
Sub Terminate
End Sub
Grazie !
Massimiliano