Betreffzeile mittels Agenten ändern

  • Hallo,


    wir haben ein Problem. Wir haben eine Maildatenbank aus der ankommende Mails automatisch an ein Helpdesktool weitergeleitet werden. Jetzt ist uns aufgefallen, dass wenn es Mails sind, die in der Betreffzeile Umlaute drin haben und über 50 Zeichen lang sind, die nicht weiterverarbeitet werden. Kann man mittels eines Agenten die Betreffzeile ändern? Und wenn ja ist jemand so fit und kann den Agenten schreiben?


    Vielen Dank im voraus für eure Antworten.


    Viele Grüße

  • Mal ein Programmbeispiel:

    Code
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = ws.CurrentDocument
    Dim doc As NotesDocument
    Set doc = uidoc.Document
    ohne_Umlaute = Evaluate({@replacesubstring("} + doc.subject(0) + {";"Ä":"ä":"Ö":"ö":"Ü":"ü";"Ae":"ae":"Oe":"oe":"Ue":"ue")})
    subject_laenge_max50 = Evaluate({@Left("} +ohne_Umlaute(0) + {";50)})
  • Nein, da ist kein Fehler drin. Aber je nachdem, wo Du es laufen laesst, koennte es natuerlich sein, dass meine Objekte dort nicht so erzeugt werden. War halt nur ein Beispielcode.
    Ich hatte den Code in einem Button in einer Maske getestet. Wo hast Du ihn denn rein kopiert??
    Ansonsten mal den Debugger mitlaufen lassen und die Zeile angeben in der der Fehler auftritt.


    P.S.: Ich sehe gerade...das Ganze soll in einem Agent laufen. Dort darfst Du das Object uidocument und uiworkspace nicht benutzen.
    Das Objekt Doc habt ihr dort ja schon irgendwie erzeugt. Muss dann halt auf die Variable angepasst werden.

  • Okay, ich wollte es gerne als Agenten haben. damit alle Mails die reinkommen gleich überprüft und ggf. geändert werden.


    Wenn ich die Mail aufrufe und dann den Agenten laufen lassen, dann kommt zumindest die Fehlermeldung nicht. Kann man sowas überhaupt in einem Agenten schreiben?

  • Schau dir mal die 'UnprocessedDocuments'-Methode in der Hilfe an, bzw. hier hatten wir auch schon einige Threads, wo danach gefragt wurde. Im Grunde kannst du gleich das erste Beispiel zu der Methode aus der Hilfe nehmen und den Schleifeninhalt mit dnotes' Evaluate-Aufruf abändern. Allerdings dann nicht -anders als im Beispiel- den Aufruf der 'UpdateProcessedDoc'-Methode vergessen (ich frage mich seit langem, wann IBM das mal ändert...)

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hallo ich habe es jetzt wie folgt geschrieben;
    wie gesagt ich bin nicht fit in sowas. kann man damit was anfangen? oder wie und was muss geändert werden?



    Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim collection As NotesDocumentCollection
    Dim doc As NotesDocument
    Set db = session.CurrentDatabase
    Set collection = db.UnprocessedDocuments
    Set doc = collection.GetFirstDocument()
    While Not(doc Is Nothing)
    ohne_Umlaute = Evaluate({@replacesubstring("} + doc.subject(0) + {";"Ä":"ä":"Ö":"ö":"Ü":"ü";"Ae":"ae":"Oe":"oe":"Ue":"ue")})
    subject_laenge_max50 = Evaluate({@Left("} +ohne_Umlaute(0) + {";50)})
    Call session.UpdateProcessedDoc( doc )
    Set doc = collection.GetNextDocument(doc)
    Wend
    End Sub


    vielen Dank im voraus für eure Hilfe

  • Naja, du musst natürlich noch das Feld 'Subject' umbiegen:

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Ich muss shcon wieder eien Frage stellen.
    Kann ich den Agenten auch so steuern, dass er alle eingehenden Mails prüft und bearbeitet? Über die Agentenfunktion (Vor Eingang neuer Mail) hat es nicht funktioniert.


    VIele Grüße

  • Funktioniert auch, dauert nur leider zu lange. Wenn ich nach Eingang neuer Mail einstelle, dauert es ca. 5 Minuten bis die Betreffzeile geändert wird. Das ist dann leider zu spät, da die Mails gleich nach dem Eingang von einem anderem Tool abgeholt werden. Und sie müssen auch ungelesen sein. Hat noch jemand einen Tipp?

  • Was ist denn an dem Code nicht "einfach"??
    Und wenn Du genau liest... in dem Code ist die Funktion @ReplaceSubstring doch drin. Also wird man sie wohl auch in einer einfachen Funktion benutzen koennen.
    Nur weiss ich grad gar nicht, was Du mit einer einfachen 'Funktion meinst.

  • Ich meinte mit einfacher Aktion eine formel. man kann doch Agenten erstellen die dann entweder LotusScript, einfache Aktionen oder halt eine Formel beinhalten. Das meinte ich. Ist das möglich? Ich muss halt irgendwie ne Lösung finden, dass die Betreffzeile geändert wird, bevor das andere Programm drauf zugreift.

  • Das Problem ist nicht welche Art von Code in dem Agenten steckt. Hierbei ist es voellig egal, ob Script oder Formel. Das Problem ist, dass das Feld Subject fuer Dich nicht schnell genug geaendert wird. Von welcher Art Code auch immer.

  • Ich frag mich grad, ob es nicht machbar ist, direkt in der Subject-Feld die Input Translation reinzubasteln. Das sollte doch eigentlich tun und dann dürfte es keine Probleme mehr mit diesem komischen Tool geben?


    Alternativ gäbe es eine 2. Möglichkeit. Dazu ist zu klären, wie das Tool sich die Dokumente aus der DB greift. Geht es auf eine spezielle View (!= 'Alle dokumente'), wäre es sinnig, die View so zu verbiegen, dass sie nur Dokumente anzeigt, die bereits vom Agenten bearbeitet wurden. Entweder wird ein Flag im Dokument gesetzt, oder die View wird so verbogen, dass sie nur Dokumente zeigt, deren Subject<50 Zeichen ist...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    also @ThisValue liefert Dir den Wert des aktuellen Feldes und @ReplaceSubString tauscht.


    Quelle := "Ä":"ä":"Ö":"ö":"Ü":"ü";
    Ziel := "Ae":"ae":"Oe":"oe":"Ue":"ue";
    @ReplaceSubString(@ThisValue; Quelle; Ziel)


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein