Agent läuft nicht mit Auslösen durch Zeitplan

  • Hey Leute ich bins mal wieder,


    ich hab einen Agent erstellt mit Hilfe von euch. Der soll eine Ansicht in eine Text File exportieren. Die Datei soll auf einen Server hinterlegt werden.


    Wenn der Agent folgende Einstellungen hat, dann läuft er:


    Auswahl im Menü Aktionen
    Alle Dokumente in der Ansicht


    Wenn der Agent durch einen Zeitplan laufen soll tut sich nichts.


    Habt ihr ne Idee was das sein könnte?


    Der Code sieht wie folgt aus:


    Sub Initialize
    Const textfile$ = "\\Server\Nipson_versand\huhu.txt"
    Const fldDelim% = 9 '
    Dim session As NotesSession
    Dim db As NotesDatabase
    Dim ws As New notesuiworkspace
    Dim uiview As notesuiview
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim lastCol As Integer
    Dim colCnt As Integer
    Dim txt As String
    Dim fileNum As Integer
    Dim docCnt As Integer '


    Set session = New NotesSession
    Set db = session.CurrentDatabase
    Set uiview = ws.currentview
    'Set view = db.GetView("Export")
    Set view = uiview.view
    lastCol = Ubound(view.Columns)
    colCnt = 0
    txt = ""
    fileNum% = Freefile()


    If Dir$(textfile, 0) <> "" Then
    Kill textfile
    End If


    Open textfile For Output As fileNum%



    Set doc = view.GetFirstDocument
    docCnt = 0
    While Not (doc Is Nothing)
    txt = ""
    For colCnt = 0 To lastCol Step 1
    txt = txt + doc.ColumnValues(colCnt)
    If (colCnt <> lastCol) Then
    txt = txt + Chr$(fldDelim)

    End If
    Next
    Print #fileNum%, txt
    docCnt = docCnt + 1
    Set doc = view.GetNextDocument(doc)
    Wend


    Close fileNum%

    End Sub

  • Hi,


    Hier ein kleiner Auszug aus der Desinger-Hilfe in Bezug aug "UI"


    Zitat

    You cannot use the UI classes in a background agent, an agent called through an API, or an agent called by the NotesAgent Run method. Only workstation users can run scripts that access UI objects.


    Zeitgesteuerte Agenten koennen keine UI-Klassen.


    Andreas

  • Hast du doch schon drin nur auskommentiert:


    Set session = New NotesSession
    Set db = session.CurrentDatabase
    Set view = db.GetView("Export")
    lastCol = Ubound(view.Columns)


    Und dann alle Deklartionen und Verweise auf UI Objekte raus

  • Er macht noch nichts.


    Allerdings wenn ich ihn manuell starte über Rechtsklick auf Agent --> Starten, dann erstellt er eine Datei.


    Muss ich da noch ein Häkchen setzen oder was ähnliches ?

  • Wie hast du ihn denn eingebunden?


    Ist ein Zeitplan aktiviert?

    [color=0000CC]"Wir können Probleme nicht mit dem Denken lösen,
    das zu ihnen geführt hat." ( A. Einstein )[/color]

  • Im Agent Protokoll steht folgendes:


    Agent 'Export' wurde am 16.02.2006 14:45:23 gestartet
    Bearbeitet alle Dokumente in der Datenbank: insgesamt 1
    1 Dokumente gefunden, die die Suchkriterien erfüllen
    LotusScript Code ausgeführt
    Agent 'Export' wurde am 16.02.2006 14:45:23 beendet



    Wo find ich das Server Log?

  • Schau malk in die Agenteneigenschaften. Dort müssten Restricted Operations erlaubt werden. (2. Eigenschaftsseite)
    Standardmäßig sind sie das nämlich nicht.
    Dateien auf die Platte schreiben gehört zu den restricted operations

  • ok jetzt bekomm ich die Meldung


    02/16/2006 03:40:38 PM AMgr: Agent ('Export' in 'debug/VersandN1602.nsf') error message: Path not found


    kann das sein wenn ich den Agent manuell auf dem Server starte findet er den Pfad und sonst nicht?

  • Du musst zwei Sachen unterscheiden.


    Wenn du den Agenten manuell über den Notes Client bzw Designer startest, dann läuft er lokal, also auf deiner Maschine.


    Läuft er periodisch dann läuft er auf dem Server.


    Zu der Fehlermeldung bedeutet das ganz einfach das der angegebene Pfad nicht auf dem Server vorhanden ist und du ihn dort anlegen musst


    /EDIT


    Was mir noch aufgefallen ist:


    UNC Pfade kannst du bei einer Standard-Domino-Installation nicht verwenden, da der Server unter dem SYSTEM Account läuft und dieser ausschliesslich Zugriff auf den Server selbst hat, nicht aber auf den Rest des Netzwerkes