Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: immanuel am 19.05.03 - 17:05:31

Titel: LotusScript: Wie der aktuelle Doclink senden?
Beitrag von: immanuel am 19.05.03 - 17:05:31
Hallo Zusammen

Wie heisst die Funktion, um ein Mail mit Doclink zu versenen (LotusScript)?
Ein Codebeispiel wäre super!

Danke!
Titel: Re:LotusScript: Wie ein Mail senden?
Beitrag von: Rob Green am 19.05.03 - 17:17:57
eine von vielen Möglichkeiten wäre diese hier aus der Help:

Examples: AppendDocLink method  

  1.   This script creates a new mail memo. In the Body item of the memo, the script places a link to the current database.
Dim session As New NotesSession
Dim db As NotesDatabase
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Set db = session.CurrentDatabase
Set newDoc = New NotesDocument( db )
Set rtitem = New NotesRichTextItem( newDoc, "Body" )
Call rtitem.AppendDocLink( db, db.Title )
newDoc.Subject = "Here is a link to the database"
newDoc.SendTo = "Lauri Nodwell"
newDoc.Send( False )

In dem Bsp. wird der DocLink zur aktuellen DB erzeugt. Zu einem Document statt DB kann man natürlich auch ein DocLink mitschicken:
Call notesRichTextItem.AppendDocLink( linkTo, comment$ [, HotSpotText$ ])
Parameters
linkTo
NotesDatabase, NotesView, or NotesDocument. The database, view, or document to which you want to create a link....

Titel: Re:LotusScript: Wie ein Mail senden?
Beitrag von: immanuel am 20.05.03 - 11:59:45
Hi!

Um das aktuelle Dokument wollte ich folgender Abschnitt verwenden:

   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   Call rtitem.AppendDocLink(uidoc, "send mail" )

Leider erhalte ich aber eine Fehlermeldung dass ich ein NotedDokument usw. einbinden soll. Dies ist doch ein Notesdokument... Wer hat einen Tipp?

Grüsse
Manuel
Titel: Re:LotusScript: Wie ein Mail senden?
Beitrag von: Rob Green am 20.05.03 - 12:43:46
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Dim Doc as NotesDocument
set doc = uidoc.document
Call rtitem.AppendDocLink(uidoc, "send mail" )



Titel: Re:LotusScript: Wie ein Mail senden?
Beitrag von: Notestime am 20.05.03 - 12:45:04
eben nicht. AppendDocLink erwartet, wie Du schon geschreiben hast ein NotesDocument und NICHT ein NotesUIDocument, so wie Du definiert hast
Titel: Re:LotusScript: Wie ein Mail senden?
Beitrag von: Notestime am 20.05.03 - 12:46:12
@Rob: Du warst schneller und perfekter  ;) ;D
Titel: Re:LotusScript: Wie ein Mail senden?
Beitrag von: Rob Green am 20.05.03 - 12:55:42
ich sage lieber "auch ein blindes Huhn findet mal ein Korn"  ;D 8) 8)
Titel: Re:LotusScript: Wie ein Mail senden?
Beitrag von: immanuel am 20.05.03 - 13:27:47
Danke schön...

Habs übersehen.

Aber wie kann ich nun auf das aktuelle Dokument, in dem ich drin bin, über den Datentyp NotesDocument als Doclink senden?

Danke für eure Hilfe!
Titel: Re:LotusScript: Wie ein Mail senden?
Beitrag von: Meff am 20.05.03 - 13:31:24
Hi immanuel,

probier das mal :

Dim session As New NotesSession
Dim db As New NotesDatabase("", "test.nsf")
Dim view As NotesView
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim doc As NotesDocument
Set view = db.GetView( "Boots" )
Set newDoc = New NotesDocument( db )
Set rtitem = New NotesRichTextItem( newDoc, "Body" )
Set doc = view.GetFirstDocument
While Not ( doc Is Nothing )
  Call rtitem.AppendDocLink( doc, db.Title )
  Call rtitem.AddTab( 1 )
  Call rtitem.AppendText( doc.Subject( 0 ) )
  Call rtitem.AddNewLine( 1 )
  Set doc = view.GetNextDocument( doc )
Wend
newDoc.Subject = _
"Here are links to all docs in the Boots folder"
newDoc.SendTo = "Lauri Nodwell"
Call newDoc.Send( False )

Dieser Script läuft über einen View und erstellt aus jedem Dokument einen DocLink. Das ganze kannst Du natürlich noch entsprechend anpassen (z.B. eine DocCollection).

Meff
Titel: Re:LotusScript: Wie ein Mail senden?
Beitrag von: immanuel am 20.05.03 - 14:00:25
Danke Meff!

So wie ichs sehe wird hier einfach eine Iteration durchgelaufen und alle Doclinks erstellt. Ich hingehen brauche nur den aktuellen Doclink, des Dokuments.

Wer hat weitere Tipps?
Titel: Re: LotusScript: Wie der aktuelle Doclink senden?
Beitrag von: immanuel am 18.01.05 - 11:14:32
Hallo Zusammen

Nun ist es wieder aktuell: Ich möchte per Lotus Script ein Doclink + Text per Mail versenen. Folgenden Code habe ich versucht, erhalte jedoch die Fehlermeldung "Couldn't get default view id..."

Code
' BEGIN send mail with doclink
		Dim session As New NotesSession
		Dim db As NotesDatabase
		Set db = session.CurrentDatabase		
		Dim newDoc As NotesDocument
		Set newDoc = New NotesDocument( db )
		Dim ret_eval As Variant
		
		Dim aktuellesDoc As NotesDocument
		Set aktuellesDoc = workspace.CurrentDocument.Document		'aktuelles Dokument für DocLink
		
Dim rtitem As NotesRichTextItem
		Set rtitem = New NotesRichTextItem( newDoc, "Body" )
		Call rtitem.AppendDocLink( aktuellesDoc, "comment")
		
		newDoc.Subject = "IT-Helpdesk - bitte als gelöst bestätigen: "+ticketTitle
		newDoc.Body = "Bla bla bla"
		ret_eval = Evaluate( |FIELD SendTo := @Trim(@Unique("| + ticketCreator + |":"| + ticketCreatedFor + |"));@True|,newDoc )
		newDoc.Send( False ) 
' END send mail with doclink

Habt ihr Tipps?

Lieber Gruss
Manuel
Titel: Re: LotusScript: Wie der aktuelle Doclink senden?
Beitrag von: koehlerbv am 18.01.05 - 11:17:10
Die Meldung besagt genau dieses - Du musst in Deiner DB für das Mailen eine Default-View festlegen (egal, welche - Hauptsache, es gibt eine).

HTH,
Bernhard
Titel: Re: LotusScript: Wie der aktuelle Doclink senden?
Beitrag von: koehlerbv am 18.01.05 - 11:21:42
Was in Deinem Code noch fehlt:
newdoc.Form = "Memo"

Und das
newDoc.Body = "Bla bla bla"

wird nicht gut kommen - Du hast Body ja bereits als neues RTItem angelegt und mit einem DocLink gefüllt. Du musst also AppendText einsetzen.

Bernhard
Titel: Re: LotusScript: Wie der aktuelle Doclink senden?
Beitrag von: immanuel am 18.01.05 - 11:34:34
Hi Bernhard!

Danke für deine Tipps!
Im Navigator habe ich eine Initial View definiert, jedoch erhalte ich diese Fehlermeldung. Muss ich sonst noch irgendwo eine default view definieren? Wo könnte ich diese sonst noch angeben?

Gruss
Manuel
Titel: Re: LotusScript: Wie der aktuelle Doclink senden?
Beitrag von: koehlerbv am 18.01.05 - 11:40:12
Navigator ? Das wird in den View properties selbst eingestellt (zweiter Tab, erste Checkbox).

Bernhard
Titel: Re: LotusScript: Wie der aktuelle Doclink senden?
Beitrag von: immanuel am 18.01.05 - 11:55:55
Hallo Bernhard

Ich habe die Default View eingetragen... Super Sache - jetzt funktionierts.
Mail mit Link ist auch wie gewüncht angekommen.

Vielen Dank!
Gruss
Manuel