Guckst du hier: http://atnotes.de/index.php/topic,43701.0.html (http://atnotes.de/index.php/topic,43701.0.html)
Danke. Ich ermittle mir jedoch bereits genauso die Folders der Mail-DB.
Aber bei dieser Ermittlung erhalte ich als 'view.Name' bspw .:
(Group Calendars)
(Regeln)
($Alarms)
($MAPIUseContacts)
($Inbox-Categorized1)
($Inbox)
($JunkMail)
($Trash)
Eigener Ordner
Die Darstellung der "In Ordner verschieben..."-Funktionalität von Notes (siehe Screenshot Ausgangspost) scheint zwar auch Ordner der Mail-DB zu ermitteln (?), aber eben nur die "sinnvollen", in welche man Maildokumente verschieben kann/sollte.
Die Frage ist für mich eben nur, wie macht das diese Funktionalität? ...damit ich das für mich mehr oder minder nachbauen kann.
Kommt man irgendwie an den Code der Funktionalität ran?
Rico.
Ok, hab jetzt alles soweit umgebastelt - funzt prima. Ich werd mir nur nochwas ausdenken, dass die Darstellung ($Inbox) in bspw. Posteingang umformatiert wird... aber das zu seiner Zeit.
Frage:
Ich verschiebe eine Mail von einem in einen anderen Ordner (Ausgangspkt. ist hierbei der Posteingang):
' Maildokument verschieben nach <foldername>
Call docMail.PutInFolder(foldername, False)
'Maildokument aus Folder ($Inbox) entfernen (...da Agent nur in ($Inbox) ausführbar)
Call docMail.RemoveFromFolder("($Inbox)")
Ich möchte später aber auch mal eine Mail aus der View ($Sent) verschieben.
Ich hab´s jetzt noch nicht implementiert, aber kann ich da einfach schreiben:
Call docMail.RemoveFromFolder("($Sent)")
Lt. meinem dafürhalten sollte das nicht funktionieren, da es eben eine View ist und kein Folder, aus dem Removed werden soll und auch die Hilfe nichts anderes sagt?!
Was meint ihr dazu?
Danke und Gruß
Rico.
So, das ist auch gelöst - danke Bernhard für den Tip. ;)
Ich habe folgendes gemacht:
1. im LS-Agent die Mail-Verschiebung und das Flag setzen realisiert:
...
' Maildokument verschieben nach <foldername>
Call docMail.PutInFolder(foldername, False)
status = "1"
Set item_isMovedAfterKorrespondenzerstellung = docMail.ReplaceItemValue("KorrespondenzVerschoben", status)
Call docMail.Save(True, True)
2. die Ansichtsauswahlformel um mein Flag erweitert:
SELECT DeliveredDate = "" & PostedDate != "" & !(@IsMember("S"; ExcludeFromView)) & KorrespondenzVerschoben != "1"
So klappt das nun wie gewollt.
Danke und Gruß
Rico.
Das ist schlecht. Du solltest das vorhandene Item mit derartigen Flags nutzen und daher dafür sorgen, dass "S" in ExludeFromView vorhanden ist (Achtung - darin können bereits Werte stehen!).
Aha?!
So richtig schlau macht mich das jetzt momentan nicht... Was heißt das im Klartext?
Ich soll lieber doch nicht ein Item am Dokument anlegen und in der Ansichtsauswahlformel abfragen?! ...Stattdessen was machen? Ich hab das jetzt grob so verstanden, dass es bereits ein "allgemeingültiges Item" gibt, wo ich meinen Wert aus dem Agent mit anhängen kann?!
Unter welchen Stichworten kann ich hierzu die Hilfe befragen? (@IsMember in der Hilfe hat noch nicht viel Licht ins Dunkel gebracht)
Rico.
EDIT: 'ExcludeFromView' ist ein Feld in der Mail-DB, welches bereits die Werte S,A und D besitzt, richtig? An dieses Feld müsste ich einen weiteren Wert anhängen und in der Auswahlformel der Ansicht abfragen?! Also so in etwa:
SELECT DeliveredDate = "" & PostedDate != "" & !(@IsMember("S"; ExcludeFromView)) & (@IsMember("<myValue>"; ExcludeFromView))
Hab ich das richtig gelesen/verstanden bzw. ist das der richtige Weg? Wenn ja, wie fügt man aber hier einen neuen Wert ein?
Ach, jetzt hats klick gemacht...
Ich muss ein Item 'ExcludeFromView' am Maildokument erzeugen, nachdem es verschoben wurde. Da hinein speichere ich einen aussagekräftigen String-Value.
Dann ergänze ich einfach die Ansichtauswahl-Formel von der View ($Sent) um dieses Statement.
Damit sollte das doch dann korrekt erledigt sein?!
Also etwa so:
im LS-Agent:
...
' Maildokument verschieben nach <foldername>
Call docMail.PutInFolder(foldername, False)
Dim status As String
status = "MOVED"
Set item_isMovedAfterKorrespondenzerstellung = docMail.ReplaceItemValue("ExcludeFromView", status)
Call docMail.Save(True, True)
in Ansichtsauswahlformel:
SELECT DeliveredDate = "" & PostedDate != "" & !(@IsMember("S"; ExcludeFromView)) & !(@IsMember("MOVED"; ExcludeFromView))
@Bernhard aka koehlerbv
Hab ich damit Deine Aussage richtig interpretiert bzw. ist diese Vorgehen besser?
Rico.
Du näherst Dich ;)
Im Mailfile wird bereits ein Item für derartige Fälle von IBM Lotus vorgesehen - ExcludeFromView.
Wie Du in der Auswahlformel von Sent sehen kannst, werden in der Ansicht Dokumente standardmässig nicht angezeigt, wenn ExcludeFromView den String "S" (für "Sent view") enthält. Die Ansicht ist also für Deine Zwecke bereits ausgesrüstet.
Ok, dann also doch im LS-Agent ein neues Item erzeugen und bspw. mit String 'MOVE' belegen?!
In der Auswahlformel dann einfach:
SELECT DeliveredDate = "" & PostedDate != "" & !(@IsMember("S"; ExcludeFromView)) & !(@IsMember("MOVED"; <myItem>))
Macht das dann aber was, wenn 'myItem' am Dokument nicht existiert?
Nochmals: ExcludeFromView kann auch mehrere Characters enthalten - also auf keinen Fall einfach den Inhalt des Items durch "S" ersetzen!
Verschrieben? Ich würde den Inhalt doch nicht mit "S" ersetzen, sondern... Ahaaa, in meinem vorherigen Post hätte ich den gesamten Inhalt durch meinen Variablenwert ersetzt (wegen ReplaceItemValue), richtig?!
Hoffentlich liege ich jetzt richtig. ;)
Rico.
Nein, ich habs... sorry!
Ich hänge ans Item ExcludeFromView im LS-Agent mittels 'AppendToTextList' den Wert 'MOVED' an und gebe das in der Auswahlformel noch als Kriterium mit an:
SELECT DeliveredDate = "" & PostedDate != "" & !(@IsMember("S"; ExcludeFromView)) & !(@IsMember("MOVED"; ExcludeFromView))
Aber jetzt... ;)
@Bernhard
Ich sehe schon, ich treibe Dich an den Rande des Wahnsinns! ::)
Aber ich habe jetzt Deine Aussage von vorhin erst richtig kappiert...
Du solltest das vorhandene Item mit derartigen Flags nutzen und daher dafür sorgen, dass "S" in ExludeFromView vorhanden ist
Das heißt, ich ändere gar nichts an der Auswahlformel der Ansicht!
Ich füge lediglich ans Maildokument der ($Sent)-Ansicht zum Item 'ExcludeFromView' ein "S" (String) hinzu. Somit fliegt die Mail dann automatisch aus der Ansicht raus.
Nur ein kleine Frage: ;)
Mein LS-Agent greift nur, wenn sich der User in der Gesendet-Ansicht befindet. Die selectierte Mail soll dann verschoben werden in einen anderen Ordner und anschließend aus der Ansicht verbannt werden.
Also muss einfach ein "S" ans Item 'ExcludeFromView' ran, nachdem
Call docMail.PutInFolder(foldername, False)
passiert ist?!
In den Dokumenteigenschaften einer gesendet-Mail gibts aber dieses Item nicht!!!
Ergo: Ich müsste 'ExcludeFromView' für dieses Dokument als Item neu erstellen?
Bitte, lass mich richtig liegen! :)
Rico.
EDIT: So wie beschrieben funktionierts jetzt erstmal - muss also richtig sein.
So, der Vollständigkeit halber hier der entsprechende Code vom LS-Agent:
' Item ExcludeFromView existiert
If Not(docMail.ExcludeFromView(0) = "") Then
Call docMail.ExcludeFromView.AppendToTextList("S")
Call docMail.Save(True, True)
Else
docMail.ExcludeFromView = "S"
Call docMail.Save(True, True)
End If
Die Auswahlformel der Ansicht ($Sent) bleibt unberührt.
So läuft das jetzt endlich bei mir durch.
Danke Bernhard für Deine Geduld! :)
Gruß Rico.