Autor Thema: FM "Eine gespeicherte Maske darf keine berechneten Teilmasken enthalten."  (Gelesen 5818 mal)

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Hallo!

In einer Maildatenbank sollen bei neu eingehenden Mails mehrere Personen informiert werden. Und zwar soll nicht eine Kopie, sondern nur ein Doclink gesendet werden, damit evtl. Doppelbearbeitungen vermieden werden.

Deshalb hab ich einen Agenten mit folgendem Code erstellt:

Code
	Dim s  As New notessession
	Dim db As NotesDatabase
	Set db =  s.CurrentDatabase 
	Dim col As NotesDocumentCollection 
	Set col = db.AllDocuments  
	
	Dim doc As notesdocument
	Set doc = col.GetFirstDocument
	Dim Mailempfänger(1) As String
	Mailempfänger(0) = "Lieschen Mueller/EFDAM/DE"
	Mailempfänger(1) = "Max Meier/EFDAM/DE"
	
	While Not doc Is Nothing
		If Not doc.HasItem("MeldeFlag") Then
			Call SY_MailSend(Mailempfänger, "Hinweis", "Bitte bearbeiten!", doc)
			doc.MeldeFlag = "1"
			Call doc.Save(True, False)
		End If
		Set doc = col.GetNextDocument(doc)	
	Wend	

Code
Sub SY_MailSend( SendTo As Variant, Subject As String, Body As String, Doclink As NotesDocument )
	Dim s As New NotesSession
	Dim mail As NotesDocument
	Dim BodyRTITEM As NotesRichTextItem
	
	Set mail = s.CurrentDatabase.CreateDocument()
	mail.form = "Memo"     
	mail.SendTo = SendTo
	mail.Subject = Subject
	Set BodyRTITEM = mail.CreateRichTextItem( "Body" )
	Call BodyRTITEM.AppendText( Body )
	If Not Doclink Is Nothing Then
		Call BodyRTITEM.AddNewLine(2)
		Call BodyRTITEM.AppendText( "Hier klicken um Dokument zu öffnen ->" )
		Call BodyRTITEM.AppendDocLink( Doclink, "" )
	End If
	Call Mail.Send(True)
End Sub

Das Mail wird wie gewünscht gesendet. Jedoch erscheint beim Empfänger beim Öffnen der Mail die Fehlermeldung:
"Eine gespeicherte Maske darf keine berechneten Teilmasken enthalten."

Ich verwende die MailSend-Routine in diversen anderen Datenbanken ohne jegliche Probleme. Kann es evtl. damit zu tun haben, dass hier der Doclink aus einer Maildatenbank erzeugt wird?
Die FM erscheint fünfmal, danach lässt sich das Mail öffnen, der Doclink verweist auch auf das korrekte Dokument in der zentralen Mail-DB.

Kann mir jemand einen Tipp geben, warum dieser Fehler erscheint und wie ich ihn am besten beseitigen kann?

Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Hi,

brauchst du wirklich beim senden der Mail die Maske?

Code
Call Mail.Send(True)
-> versuch doch:
Code
Call Mail.Send(false)

Gruss, Pete(r)
pete(r)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Exakt. Aus einer stino MailDB eine Mail in eine andere stino MailDB mitsamt der Maske zu senden, ist wohl die grösste Bombe, die man da bauen kann  ;D

Ich habe bislang noch keinen einzigen Fall erlebt, in dem es sinnvoll war, eine Form in eine Mail zu integrieren (wenn man Doclinks verschickt, eh nicht). Wird es aufwändiger, dann scheitert das Prinzip allein schon daran, dass Code-Teil der eingebetteten Maske aus ScriptLibs stammen, die in der Empfänger-DB gar nicht vorhanden sind. Und: Wie oft ist es so, dass in den database properties eingebettete Masken gar nicht erlaubt sind.

Bille, das Ganze eben nur als Hintergrund. Den casus canctus hat Pete(r) ja schon aufgemalt.

Bernhard

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Hi Pete,

genau das war's! Es lag also doch daran, dass hier ein Dokument aus der Mail-DB gesendet wird.

Vielen Dank für Deine Hilfe
Bille
 :D
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Hallo Bernhard,

tja, im Bombenbauen bin ich ganz große Klasse!   >:D

Aber besten Dank für die Erklärung, ich werde das mit der Maske in meinen bisherigen Scripts ändern, da ich wirklich immer nur den Doclink brauche.

Was mich nur wundert: Die Routine stammt von einem Notes-Dienstleister, der schon ewig mit Notes arbeitet ...

Gruß, Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Hi,

na irgendwann schleifen sich solche "Problemchen" wohl ein....
womöglich hat er es auch mit dem
doc.save(true,true,true)
verwechelt....
wobei mich wundert wie of man genau auch dieses sieht....  ::)

Es ist generell nicht schlecht, wenn man sich schon Code ausborgt, diesen auch etwas zu hinterfragen und zu schauen was da (wirklich) gemacht wird.  ;)

Gruss Pete(r)
pete(r)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Was mich nur wundert: Die Routine stammt von einem Notes-Dienstleister, der schon ewig mit Notes arbeitet ...

Bille, das wundert mich jetzt auch. Wie gesagt: Ich habe bisher noch niemals in dutzenden oder hunderten NotesDocument.Save-Calls irgendwann mal die Maske mitgeschickt, weil dies immer kontraproduktiv oder unsicher gewesen wäre. Aber zum "Notes-Dienstleister" kann man sich ja fix selber erheben. Aber das gilt wohl letztendlich für alle Branchen.

Bernhard

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Hi,

@Bille:
mir ist noch eine Kleinigkeit aufgefallen, wass man bei doclinks vermeiden sollte
(ich weiss nicht ob das Problem noch mit >=R6.5x besteht, aber ich vermeide es trotzdem immer)
-nachtrag: habs wiedergefunen - wohl kein Problem mehr:
http://www-1.ibm.com/support/docview.wss?rs=899&uid=swg21089318


bei Deinem
Code
Call BodyRTITEM.AppendDocLink( Doclink, "" )
schreib noch irgendwas, und wenns die UNID des Dokuments ist dazu:
Code
Call BodyRTITEM.AppendDocLink( Doclink, "Link" )
hab mich mal dumm und dusselig gesucht,
als ein User sagte, dass mit dem Link immer die "Replikauf -Server" Auswahl-Box mit dem Meldung "Server nicht gefunden" kam.

Gruss, Pete(r)
« Letzte Änderung: 11.10.07 - 17:51:17 von pete_bla »
pete(r)

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Hi Pete(r),

auch wenn es jetzt scheinbar kein Problem mehr ist, werde ich meine bestehenden Scripts abändern.
Dankeschön!
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline guesswho

  • Senior Mitglied
  • ****
  • Beiträge: 291
Hi Bille,

Zitat
Notes-Dienstleister, der schon ewig mit Notes arbeitet ...

Ich kenn jetzt zufällig deinen Dienstleister in Sachen Notes, ich kenn auch die Personen (Menschen) dort persönlich.

Mach dir da nix draus, verlass dich einfach nicht so GANZ arg auf deinen Dienstleister...

Verstand und Logik sind eine OU weiter oben angesiedelt, nämlich bei dir, das hast DU im Griff... bleib dran....

Jo
5 Server 9.x auf W2K3/W2K8
ca. 550 Clients: 9.x auf Win7
Notes Traveler
iQ.Suite
BCC Charon 4
panagenda Marvel Client
BES 10/12 und viele Blackberrys
paar iPad und iPhones
Teamstudio

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz