Autor Thema: Agent darf manuell Attachments speichern - automatisch nicht ??  (Gelesen 3247 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