Autor Thema: Modifikation des Mailtemplates  (Gelesen 5892 mal)

Offline Jeremias

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
Modifikation des Mailtemplates
« am: 13.09.07 - 15:30:15 »
Hallo,
ich weiss das die Modifikation des Mailtemplates böse ist.  :-P Trotzdem muss ich es tun... :P

Die Anforderung ist, eine zusätzliche Checkbox im Memo zu haben, welche nach dem Senden der Mail abgefragt wird. Daraufhin (wenn Haken gesetzt) wird die Mail in ein neues Dokument einer anderen DB kopiert, wo der Benutzer zusätzliche Informationen angibt. Dann soll dieses Dokument gespeichert werden, die Checkbox im Memo wieder gelöscht werden und alles seinen gewohnten Gang gehen.

Mein Problem ist hierbei das "unchecken" der Checkbox und Abfragen des Haken an der richtigen Stelle.
Nicht dass ich ein Problem mit dem Code hätte, sondern vielmehr das Plazieren desselbigen in dem/den richtigen Event/s. Steh da irgendwie aufm Schlauch.

Das Queryclose-Event ist gut zum Abfragen des Haken und Erstellen des neuen Dokuments in der neuen Db, doch wie kann ich dann noch den Haken entfernen ?

Weiß jmd. Rat ?

Mfg
Jeremias M.



Wo kämen wir hin, wenn alle sagten "Wo kämen wir hin!". Und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge ...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #1 am: 13.09.07 - 15:57:43 »
Vielleicht verstehe ich das Problem noch nicht ganz, denn mir erscheint das ganz einfach:

QueryClose ist sicherlich schon mal eine mögliche Stelle, ich würde vermutlich PostSave verwenden.
Dort wird das Item hinter der CheckBox wieder entfernt und das Dokument als ganzes in Deine 2. DB geworfen (und dort ggf. gleich im FrontEnd geöffnet).

Problem: Da das Dokument ja nochmals gespeichert werden muss (zum Entfernen des Items im Backend), müsste man noch einen Weg finden herauszubekommen, ob der Userd as Dokument überhaupt speichern wollte. Das ist m.E. DER casus cnactus. Das heisst ... Im QueryClose lässt sich ja ermitteln, ob das Dokument auch in der DB gelandet ist.

HTH,
Bernhard

Offline Jeremias

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #2 am: 13.09.07 - 16:09:48 »
Also ich glaube Du hast das schon ganz richtig verstanden.
Allerdings stellt sich bei einem versandten Mail die Frage des Speichern doch eigentlich gar nicht. Ein versandtes Mail ist ja immer nachher unter "Sent" wiederzufinden.... Also wird es immer gespeichert.

Mir fällt auch grad auf, dass ich den Haken noch vorm Senden entfernen muss. Denn interne Mails (an user mit dem selben Template) würden dann ja beim Empfänger auch die genannte Ablage-Aktion beim Schliessen hervorrufen, was natürlich nur beim Senden gewünscht ist....

Hmmm.... jetzt wirds kniffelig
Wo kämen wir hin, wenn alle sagten "Wo kämen wir hin!". Und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge ...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #3 am: 13.09.07 - 16:18:41 »
Vorab noch etwas anderes: Wenn man wirklich weiss, was man tut, ist am Modifizieren des Mailtemplates nichts auszusetzen. Dieses stellt letztlich nur einen Vorschlag von IBM Lotus dar.

Zu Deinem speziellen Problem:
Gesendete Mails werden nicht prinzipiell gespeichert. Wenn Du angibst "Nur senden", wird das Mail nicht gespeichert! Mit Bezug zu dem oben gesagten: Da musst Du dringend noch Know-How erwerben, sonst wird es wirklich gefährlich.

Zu Deinem ganz speziellen Problem: Als einfachste Lösung kannst Du die Checkpost per hide-when ausblenden (@IsTime (PostedDate)).
Komplexer: Du entfernst das Item bereits im QuerySend und belegst statt dessen eine maskenglobale Variable.
Oder: Du verzichtest ganz auf die CheckBox und machst das ganze per MessageBox-FUnction.

Bernhard

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Modifikation des Mailtemplates
« Antwort #4 am: 13.09.07 - 16:22:53 »
In den CoreEmailClasses die PostSaveExtension anzapfen.
Und zwar musst du da schauen was hier mit übergeben wird:
Die Werte von lngActionInProgress die dich interessieren könnten

Const MEMO_SEND                   =         &h00000400&
Const MEMO_WASMAILED             =         &h00010000&
oder
Const MEMO_SEND_FILE             =         &h00200000&

sein.

Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Jeremias

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #5 am: 13.09.07 - 16:45:19 »
Ok, komm um die CoreClasses wohl nicht drumrum. Bin auch schon daran zugange....
Was ich prinzipiell komisch finde, ist das MEMO_SEND als Konstante bei der SendAction eine Wertzuweisung erfährt.
Sowas wird von nem üblichen Compiler einer normalen Programmiersprache mit übelsten Beschimpfungen quitiert...

Wie dem auch sei, ich probier mal weiter...
Wo kämen wir hin, wenn alle sagten "Wo kämen wir hin!". Und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge ...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #6 am: 13.09.07 - 16:59:24 »
Was ich prinzipiell komisch finde, ist das MEMO_SEND als Konstante bei der SendAction eine Wertzuweisung erfährt.

Wo siehst Du das?

Bernhard

Offline Jeremias

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #7 am: 13.09.07 - 17:16:32 »
CoreEmailClasses:

Code
Const MEMO_SEND 						=			&h00000400&

Send Action:

Code
MEMO_SEND:="1024";
FIELD ActionInProgress:=MEMO_SEND;
@If(@Command([FileSave]);@Command([FileCloseWindow]);@Return(""))

oder wissen die nix voneinander ?
Wo kämen wir hin, wenn alle sagten "Wo kämen wir hin!". Und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge ...

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Modifikation des Mailtemplates
« Antwort #8 am: 13.09.07 - 17:27:16 »
das eine ist eine Script- Bibliothek, das andere eine Notes- Formel. Die wissen überhaupt nix voneinander...

Du brauchst dringend Basics, sonst wird Dein Stunt in die Hose gehen...

Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #9 am: 13.09.07 - 17:28:30 »
Jetzt würde ich aber wirklich sagen: Vorsicht mit den Änderungen am Mailtemplate, hier fehlt noch Basiswissen.

Ad Buttoncode:
- Die temporäte Variable MEMO_SEND wird belegt (gilt nur innerhalb des Buttons)
- Das Item ActionInProgress im Dokument wird mit dem Inhalt der Variablen MEMO_SEND belegt.

Ad Buttons allgemein:
Vergess die einfach. Die lösen nur aus, was WIRKLICH passiert. Beispiel: Esc - Cursor rechts - Enter sendet beispielsweise das aktuelle Mail (OHNE SPEICHERN).

Bernhard

Offline Jeremias

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #10 am: 13.09.07 - 17:47:55 »
Ja, du hast recht mit den Gültigkeitsbereichen von Variablen in Notes hab ich durchaus meine Probleme...
Finde das aber auch ziemlich undurchsichtig.
Vorallem wg. der Mischung verschiedener "Programmiersprachen", wenn ich das jetzt mal so falsch bezeichnen darf. Und der mangelhaften Debugmöglichkeiten meiner Meinung nach.
Ich würde z.B. gerne mal genau Verfolgen was beim Ablauf von Formula im Hintergrund passiert.

Trotzdem muss ich da jetzt weiterkommen. Habe z. Glück die Möglichkeit die Änderungen zu testen....

Gruß
Jeremias


Wo kämen wir hin, wenn alle sagten "Wo kämen wir hin!". Und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge ...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #11 am: 13.09.07 - 17:57:04 »
Finde das aber auch ziemlich undurchsichtig.

Hallo Jeremias,
was ist da undurchsichtig? Was willst Du an @functions gross debuggen (by the way - R5 hatte in einigen Versionen einen undokumentierten Formel-Debugger dabei, aber dessen Abgang haben dann wohl doch nicht genug Programmierer bedauert) - da findet das meiste ja eh in der API statt.

Weiters halte ich es nicht für ungewöhnlich, dass sich grosse Systeme über mehr als eine Programmiersprache anpassen, füttern und bedienen lassen.

Trotzdem muss ich da jetzt weiterkommen. Habe z. Glück die Möglichkeit die Änderungen zu testen....
Hm, ich befürchte, testen alleine reicht da momentan noch nicht. Frag hier dann lieber nochmal nach. Soweit möglich, werden hier bestimmt einige gern behilflich sein (im Rahmen des möglichen).

Bernhard

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Modifikation des Mailtemplates
« Antwort #12 am: 13.09.07 - 18:07:02 »
das eine ist eine Script- Bibliothek, das andere eine Notes- Formel. Die wissen überhaupt nix voneinander...

Du brauchst dringend Basics, sonst wird Dein Stunt in die Hose gehen...

Tode
Das stimmt so nicht ...
Die wissen schon voneinander .... Das Feld wird gesetzt und in der Klasse wieder ausgelesen und gelöscht.

CoreEmailClasses Funktion ...
Code
Public Function GetActionInProgressFromNoteItem()
		If Me.m_noteMemo.HasItem(ITEM_ACTIONINPROGRESS) Then	
			Call SetActionInProgress(Val(Me.m_noteMemo.GetItemValue(ITEM_ACTIONINPROGRESS)(0)))
			Call SetOptionField(ITEM_ACTIONINPROGRESS,ITEM_REMOVE)
		End If
	End Function
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #13 am: 13.09.07 - 18:10:12 »
Thomas, Torsten hat - bezogen auf die Frage von Jeremias - aber vollkommen Recht, und dass er hier weiss, was Du weisst, steht ausser Frage.
 Verwirr jetzt Jeremias nicht  ;)

Bernhard

Offline Jeremias

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #14 am: 13.09.07 - 18:10:22 »
Ok, weiter im Text:

Also PostSaveExtension sieht gut aus... scheint ja extra für sowas gemacht zu sein. (Auch wenn sich das jetzt laienhaft anhört)

Hier gibts ja sogar das uidoc und lngActionInProgress um Statusahängig arbeiten zu können.
Zu Eurer Beruhigung: Ansonsten ist das Template im Urzustand.

Was schonmal klappt, ist das Auslesen des "Haken"-Items und abhängig davon es zu löschen und zu speichern.
Allerdings haut das Öffnen des "Ablage-UIDocs" im aktuellen workspace nicht hin...
 Hier mal mein Code :
Code
Function PostSaveExtension(Source As notesUIdocument, lngActionInProgress As Long) As Integer
	'These function are provided as event callouts, allowing easy flow control, extensions and modifications
	
	If Source.Document.Ablage(0) = "1" Then
		Dim wstemp As New NotesUIWorkspace
		Dim uidoctemp As NotesUIDocument
		Set uidoctemp = wstemp.ComposeDocument("","andereDB.nsf","EMailAblage")
		Source.Document.Ablage = ""
		Call source.Document.Save(True,False)
	End If
	
	
	PostSaveExtension = True
	
End Function

Wahrscheinlich kann ich hier nicht - wie sonst in eigenen Anwendungen - mir eine Workspace-Variable holen ...
Es muss wohl irgendwie im Context der CoreClasses ablaufen.

Ich gebe ja zu, dass dies das erste Mal ist, dass ich mich in eine so komplexe Anwendung "einklicke".
Aber irgendwann ist immer das erste Mal. :)
« Letzte Änderung: 13.09.07 - 18:18:27 von jaser »
Wo kämen wir hin, wenn alle sagten "Wo kämen wir hin!". Und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge ...

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Modifikation des Mailtemplates
« Antwort #15 am: 13.09.07 - 18:20:10 »
Das brauchst du doch nicht mehr im Frontend anzulegen. Da langt das Backend doch vollkommen aus.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Jeremias

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #16 am: 13.09.07 - 18:24:22 »
Das Problem ist, dass der User in dem abzulegenden Dokument noch ein paar Klicks und Auswahlen zu tätigen hat, bevor das Dokument gespeichert wird.
Deshalb muss das ganze leider ins Frontend.

Genau genommen ist das auch das Hauptproblem dabei....

Gruß
Jeremias
Wo kämen wir hin, wenn alle sagten "Wo kämen wir hin!". Und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge ...

Offline Jeremias

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #17 am: 13.09.07 - 18:30:44 »
Habe schon hin- und her überlegt, ob man überhaupt so weit gehen muss um das zu realisieren. Aber ich denke es geht nicht anders.
Fakt ist, dass bei gesetztem Haken die Mail rausgehen muss und dann das AblageForm aufgehen muss, welches den Body,Subject und Empfaenger der Mail bekommt und der User seine zusätzlichen Angaben macht.


 
Wo kämen wir hin, wenn alle sagten "Wo kämen wir hin!". Und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge ...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Modifikation des Mailtemplates
« Antwort #18 am: 13.09.07 - 18:32:12 »
Ich hatte doch oben schon geschrieben: Du kopierst das aktuelle Maildokument (als komplettes Dokument oder via CopyAllItems) in die Ablage-DB. DANN kannst Du dieses im Frontend öffnen.

Bernhard

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Modifikation des Mailtemplates
« Antwort #19 am: 13.09.07 - 18:33:29 »
Das ist so nicht richtig. Zerleg das Problem mal und schau dir die Einzelbestandteile an. Fixier dich nicht auf das Ablagedokument, sondern auf die Aktionen die der Benutzer durchführen muss.

Und Berhard hat ganz grundsätzlich recht.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz