Autor Thema: Beim Speichern eines neuen Dokuments E-Mail versenden  (Gelesen 2037 mal)

Offline SlyFox

  • Senior Mitglied
  • ****
  • Beiträge: 256
  • Geschlecht: Männlich
Hallo,

ich habe eine Anwendung erstellt, in der ein Formular ausgefüllt werden muss. Beim erstmaligen Speichern muss eine vorher definierte Empfängergruppe eine E-Mail über das Neuanlegen erhalten. Vor dem Speichern sind noch diverse Plausibilitäten zu prüfen.

Was habe ich bisher gemacht?

1. SHARED Action Button angelegt mit
Code
@If(@Command([FileSave]);
  @Command([FileCloseWindow]);
  "")

2. Diverse Input Validations, wie z. B.
Code
@If(@ThisValue = "";
  @Failure("Feld darf nicht leer sein");
  @Success
)

3. In Querysave
Code
@If(@IsNewDoc;
  @MailSend("Empfaenger-Gruppe";"";"";"Betreff";"Text und Link ==> ";"";[IncludeDoclink]);
  ""
)

Mein Problem ist nun, dass Querysave offensichtlich vor der Validierung der Felder ausgeführt wird. In Postsave kann ich das auch nicht rein schreiben, da @IsNewDoc dann ja False liefert, richtig? An der Shared Action möchte ich auch nicht fummeln.

Gibt es eine andere "Ecke", an der ich die E-Mail versenden kann?

Vielen Dank für eure Hilfe

Christoph
« Letzte Änderung: 22.03.11 - 14:00:07 von SlyFox »
10 x Domino 8.5 EN
2 x Domino 9.0.1 EN
30 x Notes 8.5 DE / EN / FR / IT
220 x Notes 9.0.1 DE / EN / FR / IT

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Beim Speichern eines neuen Dokuments E-Mail versenden
« Antwort #1 am: 22.03.11 - 13:59:34 »
warum machst du die Feldabfrage nicht im Querysave ?
Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
	If ( source.FieldGetText( "txtGesellschaft" ) = "" ) Then
		Messagebox( "Geben Sie bitte eine Gesellschaft an." )
		Call source.GotoField( "txtGesellschaft" )
		continue = False
		Exit Sub
	End If
End Sub

und setzt dann vor das Close das Script/den Agenten für die Mail ?

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Beim Speichern eines neuen Dokuments E-Mail versenden
« Antwort #2 am: 22.03.11 - 14:01:25 »
Hallo,

Auch noch moeglich waere ein verstecktes Feld.
Wenn Dokument erstellt wird Feld=1
Nach dem Senden der Mail Feld=0


Andreas

Offline SlyFox

  • Senior Mitglied
  • ****
  • Beiträge: 256
  • Geschlecht: Männlich
Re: Beim Speichern eines neuen Dokuments E-Mail versenden
« Antwort #3 am: 22.03.11 - 14:03:07 »
Hallo Chris,

und wie rufe ich im Script @MailSend auf?

Christoph
10 x Domino 8.5 EN
2 x Domino 9.0.1 EN
30 x Notes 8.5 DE / EN / FR / IT
220 x Notes 9.0.1 DE / EN / FR / IT

Offline SlyFox

  • Senior Mitglied
  • ****
  • Beiträge: 256
  • Geschlecht: Männlich
Re: Beim Speichern eines neuen Dokuments E-Mail versenden
« Antwort #4 am: 22.03.11 - 14:03:46 »
Hallo Andreas,

dann müsste ich das Dokument noch einmal speichern, richtig?

Christoph
10 x Domino 8.5 EN
2 x Domino 9.0.1 EN
30 x Notes 8.5 DE / EN / FR / IT
220 x Notes 9.0.1 DE / EN / FR / IT

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Beim Speichern eines neuen Dokuments E-Mail versenden
« Antwort #5 am: 22.03.11 - 14:26:54 »
Hallo Chris,

und wie rufe ich im Script @MailSend auf?

Christoph

Im Scirpt wirds mit @ etwas kompliziert.
Ich glaub das einfachste wäre es, den Speicher Button anzupassen. und da mit @isNewDoc dann das @MailSend oder einen Mail Agent aufzurufen.
Mit der Feld-Wert prüfung hab ichs eben gemacht wie beschrieben. klappt super.

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Beim Speichern eines neuen Dokuments E-Mail versenden
« Antwort #6 am: 22.03.11 - 14:29:00 »
Hallo Andreas,

dann müsste ich das Dokument noch einmal speichern, richtig?

Christoph
Warum?

Wenn Dein Code weiterhin im QuerySave laeuft, dann musst Du doch nur nach dem Senden der Mail das Feld (den Wert im Feld) entsprechend umschreiben.


Andreas

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Beim Speichern eines neuen Dokuments E-Mail versenden
« Antwort #7 am: 22.03.11 - 14:35:25 »
Hallo Chris,

und wie rufe ich im Script @MailSend auf?

Christoph

Da gibt's mehrere Möglichkeiten.

Die Methode Send aus der Klasse NotesDocument oder NotesUIDocument. Damit wird aber das eigentliche Dokument versendet.

Wenn ich das richtig verstehe, soll nur eine Benachrichtigung gesendet werden. Dann wäre das folgende Codefragment ein Weg:

Code
...                
Set maildb = New NotesDatabase("","")
maildb.OpenMail
If Not maildb.IsOpen Then
	MsgBox "Mail-DB kann nicht geöffnet werden."
End If  'If Not maildb.IsOpen Then
	
Set maildoc = New NotesDocument(maildb)
Set profile = maildb.GetProfileDocument("CalendarProfile")
maildoc.Form = "Memo"
maildoc.Logo = profile.DefaultLogo(0)
maildoc.Principal = profile.Owner(0)
maildoc.Subject = "Das ist der Mailbetreff"
maildoc.SendTo = "Adresse des Empfängers"
	
'Anlegen des Richtextfeldes
Set rtitem = maildoc.CreateRichTextItem("Body" )
Call rtitem.AppendText("Das ist eine Nachricht")	
Call rtitem.AddNewLine(2)
Call rtitem.AppendText("Das ist die zweite Zeile dieser Nachricht")
Call maildoc.Send
...		


Oder du kannst auch die Evaluate-Anweisung verwenden und damit wieder @MailSend verwenden.

Axel
  
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz