Agent starten, problem ??

  • So neues Problem! :)


    Also ich hab in Notesscript Code geschireiben der beim Knopfdruck ausgelöst wird.
    In diesm Code läuft dann eine Prüflogik ab und anschließend wird ein Agent gestartet.


    Set agent = db.GetAgent("SendDocumentByMail")
    If agent Is Nothing Then
    Messagebox "Agent ist null"
    Else
    agent.Run
    End If


    Das Problem ist die folgende Fehlermeldung!
    notes error: Im Hintergrund ausgeführter oder eingebetter Agent verwendet einen nicht unterstützten Auslöser und Suchtyp


    Zum Agenten:
    - ist in Java geschrieben und funktioniert einwandfrei wenn man ihn per Knopf Startet(also durch ein Ereignis (Knopf)).
    Ich habe in den Eigenschaften des Agenten geschaut und finde nichts außer Start durch "Ereignis" oder "Zeitplan".


    ???
    Help me ;)


    (hoffe das diese frage etwas höheres Nivau hat als die Fragen zuvor) :))))

    • Offizieller Beitrag

    und was hast Du dort ausgewählt?
    Was steht in den 2 Zeilen darunter?


    Gruß
    Dirk


    %edit
    setze es mal auf offen. Kannst Du den Themenpräfix zukünftig bitte selber auf offen / geschlossen setzen, da haben wir es einfacher zu erkennen, ob Du noch eine Antwort erwartest oder nicht.

    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

    • Offizieller Beitrag

    1. Der Agent ruft sich nicht selber auf?
    2. Es gibt in dem Agenten keine Interaktion mit dem User?
    3. Es wird nix mit UI-Klassen und nix mit COM-Klassen gemacht?
    4. Wie versendest Du die Mails in dem Agenten?
    5. Bin mir nicht sicher, aber eventuell liegt es an "alle neuen und geändeten Dokumente".


    Gruß
    Dirk


    %edit
    vergiss Punkt 3. es ist ja ein Java-Agent

  • 1. nein der ruft sich nichts selber auf.
    2.nein es gibt keine interaktionen mit user
    4.die frage ist mir etwas unklar.
    aber ich erkläre mal wie es dort abläuft.
    - ich hole mir das aktuelle doc von der session
    - und suche mir dann in View(positionen) die dazu gehörenden antwortdokumente
    -anschließend wird ein Inhalt generiert und dann per email versandt
    5. auf was soll ich dann einstellen?


    Mfg
    Roman

  • OK, der Aufruf geht ejtzt.
    (habe für "Alle dokumente " eingestellt) hast recht gehabt.


    Aber das Problem ist jetzt da ich im Agenten das Doc über die Session geholt habe enthält sie jetzt kein aktuelles Doc.
    Ich muß also das Doc als Parameter übergeben. oder?


    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();
    // (Fügen Sie Ihren Code hier ein)
    Database db = agentContext.getCurrentDatabase();
    lotus.domino.Document Notesdoc =agentContext.getDocumentContext();


    das Notesdoc ist LEER.


    Wie kann ich beim Aufruf des Agenten, als Parameter das gewünschte Document übergeben?

    • Offizieller Beitrag

    Agent.Run( [ noteID$ ] )


    und die NoteID bekommst Du mit NotesDocument.NoteID


    Gruß
    Dirk

  • So der Aufruf des Agenten sieht jetzt so aus.
    docID = rkodoc.NoteID
    agent.Run( docID)


    Laut meiner Logik müßte dann der Parameter hier so im Agenten abgefangen werden.


    public void NotesMain(String docID) {
    try {
    System.out.println("docID: " + docID);
    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();
    // (Fügen Sie Ihren Code hier ein)
    Database db = agentContext.getCurrentDatabase();
    lotus.domino.Document Notesdoc = db.getDocumentByID(docID);



    Das Problem ist jetzt aber dass jetzt nachdem Aufruf gar nichts kommt, keine Fehlermeldung aber auch kein Systemout in der Java Konsole....


    Oder muß der Parameter anders abgefangen werden?



    *Edit
    Also laut der Prüfung läuft der Agent:
    docID = rkodoc.NoteID
    If agent.Run( docID) = 0 Then
    Messagebox "Agent ran",, "Success"
    Else
    Messagebox "Agent did not run",, "Failure"
    End If


    Aber das System.out.println wird nicht ausgeführt.
    :-/


    Zuvor als ich ohne Parameter ausgeführt habe da lief er rein und gab ein System.ou.println("Docukent ist Null")
    und jetzt gar nicht???


    Versteh ich nicht

  • JUPIIIIIIIIIIIIIIIII!!!!



    Also das Problem hat sich erledigt, habe raus gefunden wie man an den Paramater rankommt.


    String docID = agentContext.getCurrentAgent().getParameterDocID();


    Alles Funzt ...



    Danke @ Diali


    MfG
    Roman (*freu)

    • Offizieller Beitrag

    ich setzt es dann mal wieder auf erledigt


    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