Email nach Versand direkt ins CRM ablegen

  • Liebe Forum Mitglieder,


    erstmal ein frohes neues Jahr.
    _________________________


    Vorab:
    - Ich kann leider nur Formula Language
    - Nach wie vor Anfänger..



    Wir arbeiten bei uns in der Firma mit dem notes basierte CRM System Team4 CRM. Mit einem Klick im CRM System können wir uns in der Mail-Schablone ein Icon setzen lassen, welche beim Betätigen die selektierte(n) Emails im CRM ablegt. Es öffnet sich eine Subform (siehe angehängtes screenshot), wo anhand der Mail-Domäne der Kunde ermittelt wurde und wir dann nur noch "ablegen" sagen.


    Kurze Vorgangsbeschreibung der Ist-Situation:


    1. Ich schreibe eine Email
    2. Ich versende eine Email und lege sie im Kundenordner ab
    3. Ich gehe in den Ordner, selektiere die Email und drücke auf das CRM icon und lasse die Email im CRM ablegen.
    Ich würde nun gerne Schritt 3 einsparen und stelle mir die Lösung so vor: Ich erweitere die Action "Senden und ablegen" um die Funktion "CRM ablegen" sodass die Aktion dann in Zukunft so heißen könnte "Senden und ablegen + CRM Ablage".


    Kurze Vorgangsbeschreibung der Soll-Situation:
    1. Ich schreibe eine Email
    2. Ich versende eine Email und lege sie im Kundenordner ab und gleichzeitig im CRM.
    Somit fällt Schritt 3 weg..
    _________________


    PROBLEM:
    Hinter dem CRM Icon steckt dieser Code:

    Code
    CorrPath := @Environment( "T4_CorrDBPath" );CorrServer := @Environment( "T4_CorrDBServer" );@If( CorrPath = "" | CorrServer = ""; @Return( "" ); Continue );@Command([EditCopy]);@Command([Compose]; @Replace( CorrServer; "LOCAL"; "" ) : CorrPath ; "T4FrameworkPasteClipboardByForm2")


    Diesen lege ich nun in einen Agentent, den ich "CRMablageTest" nenne, gehe in die Form "Message" rein und editiere die aktion "Send and File" in dem ich am Ende des Codes zusätzlich den Command setze


    Code
    @Command([RunAgent];"CRMablageTest");


    Nun schreibe ich eine Email und drücke auf den Button und es kommt die Fehlermeldung:


    Zitat

    Docment has not yet been saved


    Ich bestätige die Fehlermeldung mit OK, dann versendet er die Email, legt sie im ausgewählten Ordner ab und fertig...


    Was mache ich falsch? Kann jemand helfen?


    Vielen Dank vorab.

  • Hallo,


    bin auch noch Anfänger, habe aber einen Tipp.


    Setzte vor dem Start des Agenten @Command([RunAgent];"CRMablageTest"); ein @Command([FileSave]);


    Dann sollte es funktionieren


    Gruß Klaus

  • Hallo Klaus,


    vielen Dank für deinen Tipp. So funktioniert es leider auch nicht, zumal es diese Funktion schon im Code gibt.


    Hier der gesamte Code der Action "Senden und ablegen"


    Code
    REM {BEGIN TRANSLATE};tmpNoNames := "No names found to send mail to.";tmpTitle := "Lotus Notes";REM {END TRANSLATE};tmpNumNames := @Elements(EnterSendTo) + @Elements(EnterCopyTo) + @Elements(EnterBlindCopyTo);@If( tmpNumNames = 0; @Do(@Prompt([Ok];tmpTitle;tmpNoNames);@Return(""));"");FIELD tmpSendandFileFolder := @PickList([Folders]:[Single];"":"");MEMO_SEND_FILE:=2097152;FIELD ActionInProgress:=MEMO_SEND_FILE;REM {Apply folder expiration if custom expiration is enabled};@If(@Command([FileSave]);@Do(@Command([ToolsRunMacro];"SetFolderExpireOnFile");@Command([FileCloseWindow]));@Return(""));@Command([FileSave]);@Command([RunAgent];"CRMablageTest")


    Die letzten beiden Zeilen habe ich dazu genommen, inkl. deinem Tipp.


    Aber danke.. hatte wirklich Hoffnung, dass es klappt :D


    Gruß


    Aspi
    ###############
    [size=medium][color=CC0000]Update:[/color][/size]


    Ich habe nun mal folgendes ausprobiert, ich habe meinen Aufruf des Agents in die @Do Funktion davor eingebaut und aus RunAgent ein ToolsRunMacro gemacht.



    Anders als davor, schließt er nun meine Maske, ich erhalte die Email und dann aber kommt die Meldung:

    Zitat

    To run this Agent, you must have at least one document selected


    Jetzt ist nur noch die Frage... wie selektiere ich das zuvor gesendete Mail....


    Idee?


    Danke

  • Du wirst da ohne Script nicht weiterkommen.


    Entweder schreibst du deinen Code dort rein wo du eigentlich den Agenten aufrufst oder aber der aufgerufene muß per Script geschrieben sein und über DocumentContext auf das aktuelle Dokument zugreifen

  • ach scheiße!!!!! :o)


    Vielen Dank, taurec.


    ________________


    Ich habe es zumindest schon so weit, dass es nach versenden der Email tatsächlich die Subform vom CRM öffnet, aber es legt mir nicht die mail ab, die ich gerade versendet habe, sondern irgendeine, die kürzlich reinkam...


    Ich habe dazu die Message Form um ein TextFeld erweitert, welches crmtest heißt (editierbar). Dieses Textfeld lasse ich bei der Action "Senden und ablegen + CRM" mit dem Wert "ja" versehen.


    Code
    REM {CRM Feld auf JA setzen};FIELD crmtest :="ja";


    In der selben Action rufe ich dann meinen Agenten CRMablageTest auf

    Code
    @If(@Command([FileSave]);@Do(@Command([ToolsRunMacro];"SetFolderExpireOnFile");@Command([FileCloseWindow]); @Command([ToolsRunMacro];"CRMablageTest"));@Return("")


    und im Angenten frage ich dann nach dem Feld ab mit SELECT Isavailable und setze das Feld crmtest ganz zum Schluss wieder auf "nein".



    aber wie gesagt... er wählt leider nicht meine Mail aus, die ich grad abgeschickt habe, weil diese noch nicht eingetroffen ist, sondern die, die gerade noch auf Position 1 in meiner Mailbox ist.


    Schad eigentlich........