Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Lancelot am 08.11.07 - 16:09:06
-
Hy Leute es besteht immer noch mein Probelm das ein Agent
in einem Laufwerk keinen Ordner anlegen darf.
Ja ich weiß das sind Zugriffsprobleme.
Folgendes passiert bei uns.
Ich starte einen Agent der ein paar Ordner anlegen soll und dort dann
die Anhänge des Dokuemntes einfügen soll.
Danach wird im Doc der Anhang gelöscht und dafür ein Link auf das Verzeichnis erstellt.
Der Agent läuft in meinen Augen nicht an, denn es kommt weder an der Konsole noch im Log eine Meldung.
Zugriff auf das Laufwerk ist "Jeder" hat Vollzugriff, also die Türe steht komplett offen.
Trigger ich den Agent über einen Button klappt alles prima.
Da ich keinen Beweis dafür habe das es am Zugriff liegt, lacht mich unsere EDV natürlich aus.
Wie kann ich feststellen ob mein Agent anläuft oder nicht?
Hier mein Code.
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim view As NotesView
Dim rtitem As NotesRichTextItem
Dim i As Integer
Dim pathdatumvar As String
Dim pathvar2 As String
Dim pathvar1 As String
Dim pathvar As String
Dim praefix As String
Dim var_attach As String
Dim datumvar0 As Variant
Dim datumvar1 As String
Dim datumvar2 As Variant
Dim datumvar3 As String
Set db = session.CurrentDatabase
Set view = db.GetView("($alte)")
Set doc = view.getfirstdocument
'Schleife solange Dokument in der Ansicht vorhanden sind!
i = 1
datumvar0 = Today()
datumvar1 = Trim(Str$(Year(Today()))) & Trim("_") & Trim(Str$(Month(Today()))) & Trim("_") & Trim(Str$(Day(Today())))
datumvar2 = datumvar1
pathdatumvar = datumvar2 & "\"
'Pfadangabe für den neuen Ordner
pathvar = "\\segfil02\allgemein\DTP_Handbuecher_Alt\"& Trim(pathdatumvar)
'Verzeichnis anlegen der Name wäre "DTP_Handbuecher_Alt\2007_11_08"
Mkdir Trim(pathvar)
Do Until doc Is Nothing
Set rtitem =doc.GetFirstItem("handbuch")
'Wird nur ausgeführt wenn das Dokument schon abgelaufen ist
If doc.abgelaufen(0) = "x" Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
oldfilename = o.Source
pathvar1= pathvar & Trim(Str$(i))
praefix = o.name
Mkdir Trim(pathvar1)
Call o.ExtractFile _
(pathvar1 & "\" & praefix)
End If
Call rtitem.AddNewLine( 1 )
var_attach = "Der Handbuchanhang: " & "''" & praefix & "''" & " wurde abgelegt in den Ordner: "
Call rtitem.AppendText(var_attach)
pathvar2 = Trim(pathvar) & Trim(Str(i)) & "\"
Call rtitem.AppendText( "file:\\" & Trim(pathvar2))
Call o.Remove
doc.pfaction = "ALT"
i = i+1
End Forall
Call doc.save(True, True)
End If
Set doc = view.GetNextDocument( doc )
Loop
'Shell_result = Shell("DTP_Handbuecher_verschieben.cmd", 6)
End Sub
Danke Euch schon mal im vorraus.
-
Indem Du an einigen Stellen einfach ein print "blabla" einbaust
-
OK das war ja einfach und wenn keine Meldung ausgegeben wird, läuft mein Agent nicht an.
Es kommt nämlich keine Meldung in der Statusbar.
Hat die EDV von mir doch recht? Es gibt kein Problem mit der Berechtigung?
Die Startart ist mehrmals am Tag - ganztägig- und im Moment soll das alle 5 Min laufen wegen der nicht so langen wartezeit.
Hast Du eien Idee war er nicht anläuft?
-
mit welcher ID ist der Agent denn signiert ??
im Moment soll das alle 5 Min laufen wegen der nicht so langen wartezeit.
Du kannst übrigens den Agenten auch mit dem geplanten Intervall erstellen und ihn dann an der Console mit
tell amgr run "Datenbank.nsf" 'NameDesAgenten'
starten.
-
Hy Eknori,
der Agent ist im Moment mal mit der Admin ID signiert.
Der darf bei uns ja alles.
Wir habe auch einen Entwickler ID mit der geht es aber auch nicht.
Ich möchte doch nur das mein Agent einmal in der Früh anläuft *äääähhhhh* ;-)
-
einfacher test:
kommentiere sämtlichen bestehenden Code mit %REM aus und schreibe als einzige Zeile ein print "Hallo Welt" in das initialize.
Dann guck, was an der Konsole passiert ...
Ist auch der richtige Server im Agenten eingestellt ???
-
Ja ich habe den richtigen Server eingetargen.
Besser noch er stand schon richtig in den Eigenchaften drin.
Ich versuch jetzt mal deine Testidee.
Melde mich wahrscheinlich aber erst Morgen wieder.
Schönen Abend.
-
Wenn in den Logs so gar nichts zu finden ist, ist das Loglevel für Agents wohl arg gestutzt. Was sagt denn tell amgr sched?
Bernhard
PS: Setz doch bitte einen richtigen (Vor-)namen unter Postings, das erhöht drastisch die Motivation zu antworten.
-
OK das war ja einfach und wenn keine Meldung ausgegeben wird, läuft mein Agent nicht an.
Es kommt nämlich keine Meldung in der Statusbar.
Wenn das ein getriggerter Agent ist, dann erhälst du bei Print-Anweisungen keine Meldungen in der Statusbar. In dem Fall werden die Print-Ausgaben ins Log geschrieben.
Axel
-
Hast Du eien Idee war er nicht anläuft?
Eine habe ich noch ... Befindet sich der Agent zufälligerweise in einer Schablone ( .NTF ) ?
Wenn ja, dann kannst du lange warten, bis der anläuft. IBM hat das irgendwann nämlich mal geändert. Davor liefen zeitgesteuerte Agenten auch in Schablonen ( sehr zum Ärger einiger Entwickler ) ...
-
Guten Morgen Ulrich,
genau das war es.
Den Agent hab ich natürlich in einer Schablone entwickelt.
Das die IBM das geändert hat, ist anscheinend voll an mir vorbei gegangen.
Habe den Agent in die DB kopiert und schon klappt es mit dem Nachbar. HiHiHi
Danke Dir und allen Anderen für die Hilfe.
Gruß Gerry