Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Tibo am 08.01.08 - 11:29:51

Titel: Mehrere MAils gleichzeitig versenden???
Beitrag von: Tibo am 08.01.08 - 11:29:51
Hallo zusammen!

Ich hab folgendes Problem beim versenden von Mails. In einem Workflow wird immer ein bestimmter Text angehangen, ist individuell. Da aber mehrere Mail mit verschiedenen Texten gleichzeitg verschickt werden sollen hab ich in einer For-Schleife,  für die Anzahl der Mails, ein Select-Caseeingebaut, für den entspechenden Text. Das Problem hierbei ist, dass nostes den Mail-Text der vorherigen Mail nicht löscht, sondern nur anhängt...

Kann mir da jemand weiterhelfen??
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: tks am 08.01.08 - 11:31:19
Poste doch mal den Code.
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: Tibo am 08.01.08 - 11:39:40
naja, der ganze Code wär wohl viel zu lang, aber hier ist der Part, in dem es um das Versenden geht:
Code
'Überprüfung, ob ein Empfänger für ZustimmungsMail vorhanden ist
		If strRecipient <>""  Then
			
			'ZustimmungsMail
			With senddoc
				.Form = "Memo"
				.SendTo = strRecipient
				.SendFrom = "poststeuerung@zrwest.de"
				.Principal = "poststeuerung@zrwest.de"
				.Subject = "Dokument " + strZweck + " - " + strDocName
			End With			
			
			
			strBody = "Das Dokument " + strDocName + " wurde Ihnen " + strZweck + " zugewiesen." & Chr(13) & Chr(13)
			strBody = strBody + "Sie können das Dokument direkt über den folgenden Link erreichen: " & Chr(13) & Chr(13)
			
			'wenn nur zur Kenntnis
			If strZweck = "zur Kenntnis" Then
				strBodyInfo = Chr(13) & Chr(13)
				strBodyInfo = strBodyInfo + "Sofern ein besonderer Hinweis vermerkt wurde, ist dieser nachfolgend angegeben:" & Chr(13) & Chr(13)
				strBodyInfo = strBodyInfo + strInfotext
			End If			
			
			Call rtitem.AppendText(strBody)
			Call rtItem.AppendDocLink (doc, doc.universalID)
			Call rtitem.AppendText(strBodyInfo)
			
			'senden
			Call senddoc.send(False)			
			
		'Überprüfung ob AblehungsMail
		Elseif strZweck = "Paraphierung" Or strZweck = "Unterschrift" Then
			
			'AblehnungsMail
			strBody = "Die " + strZweck + " des Dokuments " + strDocName + " wurde von " + strAblehner + " abgelehnt." & Chr(13) & Chr(13)
			strBody = strBody + "Sie können das Dokument direkt über den folgenden Link erreichen: " & Chr(13) & Chr(13)
			
			Call rtitem.AppendText(strBody)
			Call rtItem.AppendDocLink (doc, doc.universalID)
			
			For intNumRecipients = 0 To Ubound(strRecipientAblehn)
				With senddoc
					.Form = "Memo"
					.SendTo = strRecipientAblehn(intNumRecipients)
					.SendFrom = "poststeuerung@zrwest.de"
					.Principal = "poststeuerung@zrwest.de"
					.Subject = strZweck + " wurde abgelehnt" + " - " + strDocName
				End With
				
				'senden
				Call senddoc.send(False)
				
			Next
			
		End If
		
		'Leeren der Variablen
		strRecipient = ""
		strZweck = ""
		strBody = " "
		strBodyInfo = " "
		strAblehner = ""
		
	Next
Es geht hier um den Teil "zurKenntnis", dabei fügt er mir immer den letzten Text mit ein...
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: klaussal am 08.01.08 - 11:47:17
Hast Du mal den Debugger mitlaufen lassen ?

Wird strBodyInfo wirklich gelöscht ?
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: Tibo am 08.01.08 - 11:55:20
Debugger hab ich mitlaufen lassen, scheint soweit alles in Ordnung zu sein...

strBodyInfo wird leider nciht gelöscht, warum auch immer.. Ich habe es schon versucht mit keinem Leerzeichen, nur einem.. nichts hat geholfen! Der Inhalt müsste eigentlich auch jedesmal überschrieben werden, macht es leider nur nicht...
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: klaussal am 08.01.08 - 11:58:28
Normalerweise sollte ein xxx= "" reichen.
Kommt er überhaupt zu den Zeilen, die wo löschen sollten ?

Alternativ mal ein xxx = "." probieren.
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: Tibo am 08.01.08 - 12:08:46
Danke für den Tipp!

Hat leider nciht gebracht... Ich hab eine Msg nach dem leeren eingefügt und zeigt immer Leerzeichen bzw. "." an!

Eigentlich müstte es doch so klappen, wie ich es habe, oder nicht??
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: Tibo am 08.01.08 - 12:22:18
Kann es vielleicht sein, dass ich irgendwie den Inhalt aus
Code
Call rtitem.AppendText(strBodyInfo)
löschen muss und nicht den Inhalt aus strBodyInfo???
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: HH am 08.01.08 - 12:23:15
Wo wird denn die Variable strInfoText gesetzt / geleert?

Code
strBodyInfo = strBodyInfo + strInfotext

Hubert
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: koehlerbv am 08.01.08 - 12:27:30
Wenn Du immer wieder das gleiche RichTextItem-Objekt verwendest in Deiner Schleife, bleibt natürlich auch der Inhalt immer bestehen.

Bernhard
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: klaussal am 08.01.08 - 12:50:34
Deshalb ja meine Frage:
Zitat
Kommt er überhaupt zu den Zeilen, die wo löschen sollten ?
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: koehlerbv am 08.01.08 - 12:52:24
Nein, Klaus - es hat eher den Anschein, als wenn es diese Zeile mit dem NotesItem.Remove noch gar nicht vorhanden wäre.

Bernhard
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: Tibo am 08.01.08 - 13:09:35
Hey, es geht!!!
Danke Bernhard, mir hat echt das .Remove gefehlt!! Jetzt funkt alles!!

Danke nochmal an alle für eure Hilfe!!

Gruß Tibo
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: Neopi am 08.01.08 - 13:13:01
Hallo,
wenn mit remove gearbeitet wird, muss dann das item nicht neu gesetzt werden ?
Wäre ein ReplaceItemValue nicht eleganter ?

Gruß
Martin
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: koehlerbv am 08.01.08 - 13:22:34
Nicht bei einem RichtTextItem, Martin.

Bernhard
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: Tibo am 08.01.08 - 13:23:35
An welcher Stelle müsste ich denn das ReplaceItemValue setzen?? Nicht einfach mit dem Remove ersetzen, oder??
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: Neopi am 08.01.08 - 14:27:41
Ok, war zu schnell ein replaceItemValue funzt nicht bei einem RichTextItem.

Aber, wie wär es mit
rtitem.Values = "" zum löschen ?
bzw.
rtitem.Values = "Neur Text"  anstatt rtitem.appendtext = "Neuer text"



Martin
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: DAU-in am 08.01.08 - 14:34:05
muss der String dann nicht als Array übergeben werden?
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: koehlerbv am 08.01.08 - 14:44:15
@Martin: Auch das funktioniert nicht mit RichText (siehe DesignerHelp).

@DAU-in: Wozu? Siehe DesignerHelp. Aber wie gesagt - Arrays gehen in RichTextItems nun gar nicht  ;)

Bernhard
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: Neopi am 08.01.08 - 14:51:12
Lieber Bernhard,

es funktioniert !

Values (from NotesItem) is a property from notesrichttextitemclass

Ein array kann ja auch "einwertig" sein.

Code
Dim ws As New NotesUIWorkspace
	Dim uiview As NotesUIView	
	Dim doc As NotesDocument	
	Set uiview = ws.CurrentView
	Set dc = uiview.Documents
	Set doc = dc.GetFirstDocument	
	
	Dim rtitem As Variant
' Dim rtitem As NotesRichTextItem  'geht auch

'...set value of doc...
	Set rtitem = doc.GetFirstItem( "testbody" )
	If ( rtitem.Type = RICHTEXT ) Then
		rtitem.Values = "gelöscht"
		Call doc.Save( False, True )
	End If

Habe ich als Funktion mal in eine Ansicht eingebunden.
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: koehlerbv am 08.01.08 - 15:41:52
Bist Du sicher, dass das Item nach dieser Aktion immer noch ein RTI ist? Wenn ja: Bist Du Dir sicher, dass das auch mit jeder Notes-Version funktionieren wird? RTIs sind ja bekanntermassen sehr "empfindlich".

Bernhard
Titel: Re: Mehrere MAils gleichzeitig versenden???
Beitrag von: Neopi am 08.01.08 - 16:39:35
Ups, noch einmal drauf reingefallen.
Zitat
For writing, the data type of Values determines the data type of the item.
   Data type of value   Resulting NotesItem
   String                   Text item containing the value
....
Da wird doch tatsächlich aus einem RTI wieder ein "normales" Textfeld....
aber das muss nicht immer so sein... hilft hier aber nicht weiter.
Zitat
   NotesItem   Item whose data type matches the NotesItem type and whose value(s) match the NotesItem value(s)

Also doch ein remove, und ich dachte es wäre in einer zeile zu lösen.