Mail mit DocLink / DocLink nicht vorhanden

  • Hallo zusammen,


    der folgende Agent (ist nicht von mir, da ich kein Lotus Script kann) hat bis jetzt immer funktioniert:


    Sub Initialize
    Dim session As New notessession
    Dim db As notesDatabase
    Dim nOrgDoc As notesdocument
    Dim doc As notesdocument
    Dim nRTI As NotesRichTextItem
    Dim res As Boolean

    Set db= session.currentdatabase
    Set doc = New notesDocument (db)

    Set nOrgDoc = session.DocumentContext

    Set nRTI = New NotesRichTextItem( doc, "Body" )

    doc.form = "Memo"
    doc.SendTo="xxx"
    doc.recipient="xxx"
    doc.CopyTo="xxx"
    doc.principal="xxx"
    doc.subject = "Mailweiterleitung von xxx"

    Call nRTI.AppendText("Bitte klicken Sie auf die Verknüpfung !")
    Call nRTI.AppendDocLink(nOrgDoc,"Bitte klicken Sie auf die Verknüpfung !")


    Call doc.send( False)
    End Sub



    Die Mails werden "Nach Eingang neuer Mail" zugestellt, jedoch seit neuestem ohne DocLink.


    Geändert wurde meines wissens nichts am Agent.



    Habe zum Test folgenden Agent erstellt (ebenfalls "Nach Eingang neuer Mail"):


    @MailSend("xxx";"xxx";"";"Mailweiterleitung von xxx";"Bitte klicken Sie auf die Verknüpfung!";"";[IncludeDoclink]);


    Damit funktionierts wieder:


    Vielen Dank schon mal im voraus für Eure Hilfe.


    Gruß Siggi

  • Das dürfte an:


    DocumentContext


    liegen... Die Notes hilfe sagt:


    Read-only. The in-memory document when an agent starts.


    vermute mal das der Agent zu dem Zeitpunkt wenn er läuft dieses Document einfach nicht hat. Ohne Document gibt es dann keinen Doclink.


    Woher kommen denn diese Documente? Sind das Maildocumente und werden in diese Application geschickt?



    Kannst ja mal folgendes Testweise bauen:



    Ich hoffe ich habe hier nun keinen Syntaxfehler drinn... habe gerade keinen Notes client hier ;-).

  • Zitat


    Woher kommen denn diese Documente? Sind das Maildocumente und werden in diese Application geschickt?


    Ja, das sind ganz normale externe Mails, die an diese DB gesendet werden und dann eben mit DocLink an die User weitergeleitet werden.




    Kannst ja mal folgendes Testweise bauen:



    Wo muß ich denn den Code reinschreiben od. mit einfügen?
    Wie schon erwähnt - ich kenne mich mit Script Null aus :-?

  • Die Mail gibt folgendes ohne DocLink aus:


    Bitte klicken Sie auf die Verknüpfung !Kein Document gefunden




    Die Live-Konsole gibt folgendes aus:


    29.12.2008 17:26:38 Router: Message 0036CD42 delivered to xxx
    29.12.2008 17:26:56 AMgr: Agent 'MailWeiterleitung' in 'fschemiet.nsf' added as a new mail triggered task
    29.12.2008 17:26:56 AMgr: Agent 'MailWeiterleitung' is scheduled to run next at: 29.12.2008 17:27:56


    29.12.2008 17:27:57 AMgr: Start executing agent 'MailWeiterleitung' in 'fschemiet.nsf' by Executive '2'
    29.12.2008 17:27:57 AMgr: 'xxx' is the agent signer of agent 'MailWeiterleitung' in 'fschemiet.nsf'
    29.12.2008 17:27:57 AMgr: 'Agent 'MailWeiterleitung' in 'fschemiet.nsf' will run on behalf of 'xxx'
    29.12.2008 17:27:58 Router: Message 005A7360 delivered to xxx
    29.12.2008 17:27:59 Router: Message 005A7360 delivered to xxx
    29.12.2008 17:27:59 Router: Message 005A73D5 delivered to xxx



    Die Mail ist also bei der "Weiterleitung" definitiv vorhanden, was ich ja auch in der entsprechenden DB im Eingang sehe.


    Gruß

  • Zitat

    Die Mail ist also bei der "Weiterleitung" definitiv vorhanden, was ich ja auch in der entsprechenden DB im Eingang sehe.


    Was bringt dich zu dieser Aussage, denn der generierte Text deiner Mail sagt genau das Gegenteil aus

  • Hallo Siggi,


    ich weiss, dass sich bei Dir bestimmt gleich wieder die Nackenhaare aufstellen werde, wenn ich Dir hier antworte, aber ich kann einfach nur ehrlich und offen antworten.
    Daher:
    Wenn Du LotusScript-Code supportest, hierin aber keine Ahnung hast, ist das fahrlässig. Ein Forum kann Dir hier Tipps geben, aber keine Sicherheit. Irgendjemand muss doch diesen Code geschrieben haben - der wäre jetzt verantwortlich. Oder hast Du diesen Code nur übernommen? Das wäre dann ganz schlimm (wenn man so ahnungslos ist).


    Ich will trotzdem versuchen, an einer Lösung Eures Problems mitzuwirken. Was mich irritiert, ist Deine Aussage, dass ein neuer Agent mit @MailSend incl. DocLink funktioniert. Hast Du diesen Agent wirklich in der selben DB geschrieben und getestet?
    Das naheliegende Problem wäre nämlich, dass Deine DB keine Default-Ansicht (oder -Ordner) mehr hat oder dass es keine Default-Maske mehr gibt.
    Hast Du das schon überprüft?


    Bernhard

  • Ah ok... habe ich also Recht gehabt...


    Mittels:


    Set nOrgDoc = session.DocumentContext


    holt er sich das jeweilige Document und erstellt draus den DocLink. Allerdings... gibt es gar kein solches Document (die email schon die eingegangen ist, aber das Script / der Agent kann sie nicht finden). Das bedeutet er kann gar keinen Doclink erzeugen.


    Aus irgendeinem Grund kann er also das jeweilig eingegangene Dokument nicht finden. Wenn der Agent tatsächlich so funktioniert hat (ich würde den aber so nicht bauen, ich würde eher eine View (Ansicht) nehmen wo die noch nicht verschickten Document drinn gelistet werden, und den Agent diese View kontrollieren lassen. Wenn der Agent dann ein solches Document aus der view bearbeitet setzt er ein flag so das dieses document nicht mehr dort angezeigt wird.) dann würde ich das kontrollieren was koehlerbv angesprochen hat.


    Gibt es eine Default view?



    koehlerbv
    Es kommt häufiger vor das ein user sich so etwas zusammenbaut es Jahre lang läuft und der admin davon nichts mitbekommt. Das sehe ich bei meinen Kunden doch schon häufiger. Der Admin hat nicht immer die Möglichkeiten und das wissen so etwas zu kontrollieren. Meistens geht es um Bestandschutz.

  • Bernhard:


    Hallo Bernhard,


    nein mir stellt es nicht die Nackenhaare auf. Der Ton macht die Musik ! Und diese Töne klingen doch schon ganz anders ;)


    Also:


    Den Code hat unser externer Programmierer geschrieben, der aber momentan nicht erreichbar ist (der gute Mann hat sicher auch mal Urlaub verdient).
    Deshalb habe ich versucht das evtl. hier zu klären.


    Der Agent mit @MailSend incl. DocLink funktioniert und ich habe ihn in der selben DB geschrieben.
    Aber erst als, wie Du richtig vermutest hast, ich wieder eine Default View definiert habe.


    Ich hatte im log dazu folgende Meldung gefunden:
    Couldn't get default View id for database


    Dazu folgenden Thread:
    http://atnotes.de/index.php/to….msg111553.html#msg111553


    Warum diese plötzlich nicht mehr definiert war ....... keine Ahnung.


    Ich hielt dies nicht für erwähnenswert, da ich ja den eigentlichen Fehler gefunden habe ( so dachte ich zumindest).


    Trotzdem - nachdem es jetzt wieder eine Default View gibt, funktioniert das Script immer noch nicht ?????


    Ich habe jetzt noch folgendes festgestellt:


    Stelle ich den Script-Agent auf "Vor Eingang neuer Mail" um, erhält der User einen DocLink. Klickt er darauf, kommt die Meldung "Dokument wurde gelöscht".
    Die Fehlermeldung wäre mir ja noch klar, aber der DocLink???


    Wenn Ihr einverstanden seit, warte ich bis unser Programmierer wieder zurück ist ?


    Ich kann mit meinem @MailSend incl. DocLink-Agent auch gut leben.
    Der Unterschied ist, daß beim Script Agent dem User als Absender die Mail-DB angezeigt wird (dürfte wohl daran liegen: doc.principal="xxx").
    Beim @Formula-Agent steht der Server drin.


    Außerdem würde es mich schon interessieren, warum der Agent plötzlich nicht mehr mag.


    Ich bedanke mich trotzdem für Eure Hilfe und wünsche allen einen guten Rutsch ins neue Jahr.


    Gruß Siggi