Autor Thema: E-Mail Per Lotus Script Versenden  (Gelesen 6749 mal)

Offline niu

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
E-Mail Per Lotus Script Versenden
« am: 18.04.13 - 10:10:06 »
Hallo Miteinander,

Ich bin relativ neu im Lotus Script und nun habe ich eines erstellt, welches mir eine Mail versenden sollte. Jedoch bekomme ich die Fehlermeldung "Object Variable not set".  Ich finde den Fehler nicht.

Folgende Situation:

Eine Maske mit der man ein neues Dokument erstellen kann. Beim Speichern des Dokuments sollte eine Mail an den User mit einem Link zu dem gerade erstellen Dokument. Das Script habe ich hinter einer Aktion erstellt.

Sub Click(Source As Button)
   
   Dim session As NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim newdoc As NotesDocument
   Dim rtitem As NotesRichTextItem
   
   Set db = session.CurrentDatabase
   Set doc = ws.CurrentDocument
   
   Set newdoc = New NotesDocument(db)
   Set rtitem = New NotesRichTextItem(newdoc, "Body")
   
   Call rtitem.AppendText("Nachrichten Text")
   Call rtitem.AddNewline(1)
   Call rtitem.AppendDocLink (doc, "Link zu Dokument")
   newdoc.Form = "aktuelle Maske"
   newdoc.Subject = "Betreff"
   newdoc.SendTo = "user@user.com"
   Call newdoc.Send (True)
   
End Sub

Danke und Gruss

Samuel

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #1 am: 18.04.13 - 10:18:16 »
Hallo,

Wo in Deinem Script initialisiert Du denn die NotesSession?


Andreas

Offline niu

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #2 am: 18.04.13 - 10:24:32 »
Hallo andreas

Ich hatte sie zwischen dem Dim und dem Set db gemacht jedoch erhielt ich dabei einen Fehler "not a member: initialize".
Habe mir dafür die Hilfe von der IBM Seite gezogen, welche mich jedoch nicht weitergebracht hat. Danach habe ich sie weggelassen.

   Dim rtitem As NotesRichTextItem
   
   Call session.Initialize("mailsend")
   
   Set db = session.CurrentDatabase


Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #3 am: 18.04.13 - 10:27:19 »
Hallo,

Kurzer Auszug aus der Hilfe zu Call session.Initialize().
Zitat
Note  This method is supported in COM only.

Ein einfaches Dim session As New NotesSession reicht vokommen aus, wenn Du Dich nur
innerhalb von Notes bewegst.

Ein Dim session As NotesSession verschafft Di nur eine Objekt-Variable vom Typ NotesSession, jedoch
ist diese noch Nothing.


Andreas

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: E-Mail Per Lotus Script Versenden
« Antwort #4 am: 18.04.13 - 10:27:41 »
zwei Änderungen:

Dim session as New NotesSession


Set doc = ws.CurrentDocument.Document


hth

Thomas

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #5 am: 18.04.13 - 10:29:32 »
Habe ich doch noch glatt uebersehen.

Wo definierst Du eigentlich ws?

Und warum sendest Du die Maske mit? (newdoc.Send(True)
Es handelt sich allem Anschein nach doch NUR um eine normale Mail mit ein wenig Text und einem Doc-Link.


Andreas
« Letzte Änderung: 18.04.13 - 10:35:24 von ascabg »

Offline niu

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #6 am: 18.04.13 - 10:46:41 »
Vielen Dank für eure Antworten

@Andreas Das mit der Session hat Funktioniert.

Nun als ich die die Form nicht mitgeschickt habe habe ich einen Fehlermeldung gekriegt. Wenn ich  newdoc.send("") auf false setzte kann ich newdoc.Form = "Maske" wegglasen ?

Das ws habe ich nirgends definiert, ich wusste nicht wich man das Aktuelle Dokument zuweist, daher habe ich das aus Google.





Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #7 am: 18.04.13 - 10:55:16 »
Nein.

Du musst schon angeben, mit welcher Form die Mail beim Empfaenger angezeigt werden soll.
Und da es sich um eine Mail handelt ist die Standard-Maske halt "Memo"

newdoc.Form = "Memo"

Und beim Senden kannst Du dann newdoc.Send(False) verwenden.

Und warum google verwenden. Nimm doch zuerst die Designer-Hilfe. Hier findest Du zu den meisten Themen die
Antworten und auch entsprechende Beispiele (Code).


Andreas

Offline niu

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #8 am: 18.04.13 - 11:07:27 »
Oke, danke

Die Designer Hilfe verwende ich schon jedoch habe ich zu diesem Thema kein Info gefunden (falsch gesucht vielleicht  :-:).


Nun bekomm ich die Fehlermeldung "Variant does not contain an object" ich weis was die Meldung bedeutet leider finde ich keine solche falsch Zuweisung. ???

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #9 am: 18.04.13 - 11:10:18 »
Onne zu wissen, an welcher Stelle Deines aktuellen Codes der Fehler kommt, ist es schwierig
bis nahezu unmoeglich zu sagen, was den Fehler ausloest.

Und das Dokument, welches Du versenden willst, ist hoffentlich bereits gespeichert?

%EDIT
Designer Hilfe.
Klasse NotesDocument und hier die Methode Send.


Andreas

Mitch

  • Gast
Re: E-Mail Per Lotus Script Versenden
« Antwort #10 am: 18.04.13 - 11:14:10 »
Heyho,

eine ordentliche Fehlerbehandlung wird dir bei der Suche nach dem Problem sicherlich helfen.

Lies dir doch mal das hier durch: http://atnotes.de/index.php/topic,11980.0.html

Zusätzlich solltest du dir den Prozess mal im Debugger ansehen.

Beste Grüße,

Mitch

Offline niu

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #11 am: 18.04.13 - 11:40:45 »
@Mitch Vielen Dank für deine Info die hat mich weitergebracht


@Andreas
Habe das ganze Debuggen lassen der Fehler liegt bei dieser Zeile Code:
Set doc = CurrentDocument.Document

Die Variable "doc" wurde so definiert:
Dim doc As NotesDocument



Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #12 am: 18.04.13 - 11:43:27 »
...
Und das Dokument, welches Du versenden willst, ist hoffentlich bereits gespeichert?
...
Das ist nicht nötig, ein Dokument kann versendet werden, ohne gespeichert zu sein.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #13 am: 18.04.13 - 11:45:14 »
@Mitch Vielen Dank für deine Info die hat mich weitergebracht


@Andreas
Habe das ganze Debuggen lassen der Fehler liegt bei dieser Zeile Code:
Set doc = CurrentDocument.Document

Die Variable "doc" wurde so definiert:
Dim doc As NotesDocument




Dim workspace As New NotesUIWorkspace
Dim doc As NotesDocument
Set doc = workspace.CurrentDocument.Document


Besser wäre m.E.

Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document

ist aber Geschmacksache ...

Mitch

  • Gast
Re: E-Mail Per Lotus Script Versenden
« Antwort #14 am: 18.04.13 - 11:46:25 »
Weiterer Tipp:

Gibt unter "Options" mal folgendes ein:

Code
Option Explicit

Damit erzwingst du, dass du alle verwendeten Variablen auch deklarieren musst.

Ich vermute dein Fehler hängt damit zusammen, dass du "ws" nicht deklariert/initialisiert hast. Kein Workspace, kein CurrentDocument, kein Document.

Gruß,

Mitch

Edit: Korrektur.
« Letzte Änderung: 18.04.13 - 11:48:45 von Mitch »

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #15 am: 18.04.13 - 12:39:45 »
...
Und das Dokument, welches Du versenden willst, ist hoffentlich bereits gespeichert?
...
Das ist nicht nötig, ein Dokument kann versendet werden, ohne gespeichert zu sein.

Ist soweit richtig.
Etwas falsch von mir geschrieben.
Ich meinte natuerlich das Dokument, welches als Dok-Link versendet werden soll.


Andreas

Offline niu

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
Re: E-Mail Per Lotus Script Versenden
« Antwort #16 am: 18.04.13 - 14:01:01 »
Oke, Vielen Danke  :)

Läuft nun einwandfrei.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz