Autor Thema: Agent darf manuell Attachments speichern - automatisch nicht ??  (Gelesen 3342 mal)

Offline Cerebellum

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
Hallo,

ich habe einen Agenten geschrieben, der von Mails die Attachments lösen und auf Platte speichern soll.

Wenn ich ihn manuell (über "Aktionen") ausführe funktioniert es einwandfrei - lass ich ihn aber per Zeitplan auf dem Server ausführen passiert nichts bzw. es erscheint in der Log-Datei die Fehlermeldung "Path not found".

Der Agent hat selbst die Laufzeit-Sicherheitsstufe 3, wird in meinem Namen ausgeführt (habe Manager-Berechtigungen auf die Datenbank), im Server-Dokument stehen der Server selber sowie alle Nutzer bei "Run unrestricted methods..." über eine Gruppe drin...

Woran kann es liegen?

Hier der Quellcode:

Code
Sub Initialize
Dim CurrentSession As New notessession
Dim db As notesdatabase
Dim docsel As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitem As Variant
Dim Attpath As String
Dim Attpath_Master As String
Dim Attpath_date As String
Dim Attsubject As Variant
Dim BerichtsName As String
Dim Verzeichnisse As String
Dim VzCreate_date As Boolean
Dim VzCreate_bericht As Boolean
Set db = CurrentSession.CurrentDatabase
Set docsel = db.UnprocessedDocuments
Attpath = "\\z-dom-01\s$\Z_Daten\"  'Wichtig immer mit \ abschließen
Attpath_date = Date 'aktuelles Systemdatum um Unterordner zu erstellen; evt. mit Format-Function anders formatieren
Attpath_master = Attpath & Attpath_date & "\"  'setzt Pfad mit Unterordner (Datum) zusammen
'Überprüfung ob Ordner (Datum) vorhanden ist
VzCreate_date = True
Verzeichnisse$ = Dir$(Attpath,16)
Do While Verzeichnisse$ <> ""
Verzeichnisse$ = Dir$()
If Instr( Verzeichnisse$, Attpath_date ) = 1 Then
VzCreate_date = False
Exit Do
End If
Loop
'wenn nicht vorhanden oberste Ebene des Ordners (Datum) erstellen
If VzCreate_date Then
'Msgbox "Ordner (Datum) erstellt"
Mkdir Attpath_master 'oberste Ebene des Ordners (Datum)
Else
'Msgbox "Ordner (Datum) nicht erstellt"
End If
Set doc = docsel.Getfirstdocument
While Not doc Is Nothing
Set rtitem = doc.GetFirstItem( "Body" )
Set Attsubject = doc.GetFirstItem( "Subject" )
Forall v In Attsubject.Values
BerichtsName = Trim$(Strright(v, "|" ))
Attpath = Attpath_master & BerichtsName & "\"
'Überprüfung ob Unterordner (Bericht) vorhanden ist
VzCreate_bericht = True
Verzeichnisse$ = Dir$(Attpath_master,16)
Do While Verzeichnisse$ <> ""
Verzeichnisse$ = Dir$()
If Instr( Verzeichnisse$, BerichtsName ) = 1 Then
VzCreate_bericht = False
Exit Do
End If
Loop
'wenn nicht vorhanden untere Ebende des Ordners (Bericht) erstellen
If VzCreate_bericht Then
'Msgbox "Unterordner erstellt"
Mkdir Attpath 'Unterordner (Datum)
Else
'Msgbox "Unterordner nicht erstellt"
End If
'Attachment lösen
If ( rtitem.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
Call o.ExtractFile( Attpath & o.Source )
'Call o.Remove 'Attachment löschen
'Call doc.Save( False, True ) 'Dokument speichern
End If
End Forall
End If
Attpath = Attpath_Master 'Variable zurücksetzen auf den Oberordner (Datum)
Set doc = docsel.Getnextdocument(doc)
End Forall
Wend
End Sub



Vielen Dank im Voraus und freundliche Grüße,
Chris

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Darf denn der Domino-Server auf "\\z-dom-01\s$\Z_Daten\" überhaupt zugreifen ?

Bernhard

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
AFAIK laueft der Domino-Server unter Windows in  eingeschraenkten Benutzerkontext, der auf keine Netzlaufwerke zugrefen darf. Zumindest haette ich das so konfiguriert.

Daher darf auch Dein Agent auf kein Netzlaufwerk (Attpath = "\\z-dom-01\s$\Z_Daten\") zugreifen.
« Letzte Änderung: 09.12.04 - 17:02:10 von m3 »
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Und wenn der Server das dürfte, müsste er sich ja auch noch gegenüber dem remote-server oder der Domäne/AD entsprechend authentifizieren können.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Cerebellum

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
z-dom-01 ist er selber...

also soll ich einen laufwerksbuchstaben verwenden? Oder was wäre die Lösnug?

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Ah, dann versuch das mal mit nem Laufwerksbuchstaben, schon möglich, dass er auf sich selber via UNC mit anderer Berechtigung kommt als per lokalem Zugriff
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
z-dom-01 ist die Kiste, auf der der Domino-Server läuft. Das heisst noch lange nicht, dass er darauf schalten und walten darf, wie er will ...

Bernhard

Offline Cerebellum

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
so, ich habe jetzt direkt den laufwerksbuchstaben als pfad eingegeben und testweise auf das domino-verzeichnis gelenkt - darauf hat der server auf jeden fall zugriff.

Trotzdem kommt noch die Meldung "Path not found"!?


Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Versuch doch mal einen Error handler einzubauen, damit Du die genaue Zeile herausbekommst, wo der Fehler passiert. (z.B. mit OpenLog von Openntf.org)

gruss umi
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline macchina

  • Junior Mitglied
  • **
  • Beiträge: 62
  • Ich liebe dieses Forum!
Hi!

Defaultmäßig läuft der Domino-Service mit dem Local SystemAccount. Dieser Account hat definitiv keine Rechte auf Netzwerklaufwerke (egal ob UNC oder per Laufwerksbuchstaben).
Leider kann man dem LocalSystemAccount keine zusätzlichen Rechte vergeben (zumind. hab ich nach langem googlen dazu nix gefunden).

Einzige Möglichkeit ist einen speziellen User für den Domino-Service im ActiveDirectory anzulegen und diesem die entsprechende Berechtigung zu geben.
Im Domino-Service muß dann bei "run as" dieser User angegeben werden.
Nachteil dieser Variante ist, daß die Domino-Server-Konsole nicht mehr sichtbar ist.

LG Ernstl

Offline Cerebellum

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
im AD ist der User "DominoService" eingerichtet, mit diesem Account wird der Domino Server auch gestartet und auf dem Verzeichnis der Festplatte hat dieser User Vollzugriff.

trotzdem funzt es nicht...!?  :'(


 

Offline Cerebellum

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
so, das Problem hat woanders gelegen:

auf meinem Rechner ist die deutsche Umgebung aktiviert, so liefert die Funktion "date" das Datum z. B. als "20.12.2004" zurück und erstellt diesen Ordner.

Auf dem Server ist die englische Umgebung und gibt so "20/12/2004" zurück - damit scheint er nicht zurecht zu kommen...

 ::)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Naja, gute alte Weisheit, man sollte Datümmer wenn immer möglich nicht als Strings verwenden, sonst werden sie ab und an mal zu dadümmern, und das ist dann wirklich dümmer ......
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz