Autor Thema: Anhang auf Sun Manschine lösen und auf einen Windows Server speichern  (Gelesen 2803 mal)

Offline Tubeman

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Männlich
  • Wissen ist Macht
Hallo

Wie im Betreff schon beschrieben will ich Anhänge automatisiert aus einer
MailinDB auf einem Sun Server auf einen Windows Server speichern.

Das automatische lösen von Anhängen über einen Agenten habe ich schon jetzt fehlt mir nur noch die möglichkeit mit einen Win Server eine Verbindung aufzubauen und dort die Anhänge zu speichern.

 ???Ist das denn überhaupt möglich ???



Driri

  • Gast
Ich kenne Sun nicht, kannst Du da ein Laufwerk des Windowsservers mappen ?

Wenn ja, hast Du dann ja einen Pfad, den Du zum Lösen der Dateien verwenden kannst.

Offline Tubeman

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Männlich
  • Wissen ist Macht
Das ist das Problem ich weis das nicht ob ich ein Laufwerk mappen kann.

Wenn es gehen würde, das mappen eines Win Laufwerks von Sun aus, dann müsste das eigentlich funktionieren.
Den Pfad müsste man nicht durch eine verbindung auf den server unterstützen.
Das passiert automatisch?

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Sun ist Unix und da lässt sich der Samba-Client installieren. Diesen kann man verwenden, um einen Windows-Share zu mounten und dann dort die gelöste Datei hinzuspeichern.
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 Tubeman

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Männlich
  • Wissen ist Macht
Ich bin mir aber blos nicht sicher ob das so einfach ist.
Denn wegen einem Agenten wird bei mir im Betrieb kein
Samba Client installiert ausser er ist schon installiert!

Aber das muss ich noch klären!

Wenn der Samba- Client nicht installiert wird habe ich eben
die vorarbeit um sonst geleistet  :'(

Danke schön  :)


Driri

  • Gast
Naja, dann kannst Du immer noch versuchen, ob Du über nen UNC-Pfad auf den Windowsserver kommst. Ich vermute allerdings mal, das scheitert dann an der Anmeldung. Oder ne Ordnerfreigabe auf dem Windowsserver ohne Anmeldung. Ist allerdings dann eine Sicherheitslücke, denn dann könnte wirklich jeder im Netz auf den Ordner schreiben.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Ingo, UNC ist eine Microsoft-Erfindung, heisst, Du kannst unter Unix nur UNC gebrauchen, um mit dem Samba-Client eine Windowsfreigabe (mit oder ohne PW) ins Linux-System zu "mounten". Ist der SMB-Client nicht vorhanden, geht es nicht. Natürlich gibts andere Wege, wenn zum Bleistift auf dem Win-Server eine NFS-Unterstützung installiert wäre, oder ein FTPD oder sowas ....... dann bekommt man Alternativen hin.
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

Driri

  • Gast
Oh, war mir gar nicht bewußt  :o

Danke für die Info, Jens.

Offline Tubeman

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Männlich
  • Wissen ist Macht
Auftragänderung
« Antwort #8 am: 16.02.05 - 13:28:23 »
Hallo

Danke für eure Bemühungen aber ich habe gerade eine Auftragsänderung bekommen.
Jetzt ist das ganze nicht mehr so kniffelig!
Die Mailin-DB wird auf nen Win Server verschoben auf grund keiner zugriffs oder speichermöglichkeiten.
Naja...

Jetzt stehe ich aber wieder vor nem anderen Problem im Code...

Code
Forall o In rtitem.EmbeddedObjects		
Set object = rtitem.GetEmbeddedObject(object.Name )	
objName = object.Name					
If ( object Is Nothing ) Then
Set object = doc.GetAttachment(objName)
Call object.ExtractFile("D:\\Data\\FGCenter3" & Cstr(int_count) ) 	
End If	
End Forall

Und zwar was ist "o" in der Forall Schleife???
Forall o In rtitem.EmbeddedObjects ???

das habe ich aus der Notes Designer Hilfe. aber ich werde daraus nicht schlau!
Ich bekomme immer an der Stelle einen Fehler.
"Type Mismatch"

Ich weis hier nicht mehr weiter!

Driri

  • Gast
Könntest Du ein bißchen mehr Code springen lassen ? Die Deklarationen wären interessant.

Auf den ersten Blick muß ich sagen, sieht der Code aus, als wenn Du den einfach wild zusammenkopiert hast.

Was Du vermutlich erreichen willst, ist doch daß alle Attachments auf Platte gelöst werden, oder ?

Schau dir mal in der Designer-Hilfe das Beispiel unter Embedded Objects an ("Working with Embedded Objects"). Das erste Beispiel zeigt doch wunderbar, wie man durch die Embedded OBjects schlauft, das mußt Du doch nur noch ein wenig ergänzen und ggf. anpassen.

Glombi

  • Gast
Aus der Hilfe
Zitat
ForAll refVar In container
     [ statements ]
End ForAll
Elements
refVar
A reference variable for the array, list, or collection element. In the body of the ForAll loop, you use refVar to refer to each element of the array, list, or collection named by container. refVar can't have a data type suffix character appended.
container
The array, list, or collection whose elements you wish to process.

D.h. in Deinem Fall ist o eine Obejektreferenz für ein NotesEmbeddedObject

Du hast aber noch viele Fehler in Deinem Code. Korrekt wäre

Forall o In rtitem.EmbeddedObjects
Set object = doc.GetAttachment(o.Name)
Call object.ExtractFile("D:\Data\FGCenter3" & Cstr(int_count) )
End Forall

Andreas

Offline Tubeman

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Männlich
  • Wissen ist Macht
Zu den Folgefehlern wäre ich erst noch gekommen *g*
Wenn die For All laufen würde!

Abgesehen der schon geschehenen Deklarationen.
Muss ich die Obejektreferenz für ein NotesEmbeddedObject irgendwie oder irgend wo deklarieren???

Entweder ich bekomme den Fehler "Type Mismatch" oder "Variant does not contains Object"

Hier mal der ganze unvollendete und Fehlergespickte Code:
Code
Sub initialize
	Dim session As New NotesSession	
	Dim collection As NotesDocumentcollection
	'################################
Dim doc As Notesdocument
Dim db As NotesDatabase
Dim view As NotesView
Dim object As NotesEmbeddedObject
Dim item As Variant
Dim match As String
'################################
Dim flg_gelesen As Integer
Dim rtitem As Variant
Dim objName As String
'################################
	Set db = session.currentdatabase()
	Set view = db.getview("(Default)")
	Set collection = db.UnprocessedDocuments
	Set doc = view.getfirstdocument()
	Dim i As Integer
	
	'##nur Ungelesene Email werden bearbeitet! ABFRAGE
	
	While Not (doc Is Nothing)
'---Inhalt der Variablen ist der Betreff, welcher ausschlaggebend für die Abprüfung ist.	
		match = doc.subject(0)
'---Zielname der Adresse ist: "40150003  Leistungsanforderung"						
		If match Like "*40150003  Leistungsanforderung*" Then
			
			    ' Prüfe die Mail auf einen Anhang. Wenn Anhang verfügbar dann lösen und Speichern
		 	    ' Speichern muss auf einer anderen Maschine erfolgen!!!
			
			Set item = doc.GetFirstItem( "Body" )
			
			int_count = int_count + 1
			If ( item.Type = RICHTEXT ) Then		
				
				
				Forall o In item.EmbeddedObjects		'prüft das Dokument ob es ein Eigebundenes Objekt beinhaltet!
'checkt das Feld Body nach einer Anhangsdatei						
					Set object = item.GetEmbeddedObject(object.Name )					
'					objName = object.Name
					
					
					If ( object Is Nothing ) Then
'check das restliche Dokument nach einem Anhang
						Set object = doc.GetAttachment(objName)
						Call object.ExtractFile("D:\\Data\\FGCenter" & Cstr(int_count) ) 
					End If	
					
				End Forall					
			End If				
		Else
			Goto notTarget				
		End If
notTarget: 														'Sprungstelle für beendigung der If Schleife wenn 
																		'keine Email mit diesem Namen vorhanden
		Set doc = view.getnextdocument(doc)	'das Nächste Dokument welches in der 
																		' Ansicht vorhanden ist.			
	Wend					
End Sub


Driri

  • Gast
Glombi hat ja schon geschrieben, wie Du die Forall-Schleife aufbauen mußt.

Zitat
Abgesehen der schon geschehenen Deklarationen.
Muss ich die Obejektreferenz für ein NotesEmbeddedObject irgendwie oder irgend wo deklarieren???

Was meinst Du damit ? Meinst Du die Variable in der Forall-Schleife ?
Die darf nicht deklariert werden, steht ebenfalls in der Designer-Hilfe beschrieben.

Offline Tubeman

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Männlich
  • Wissen ist Macht
 ??? ??? ??? ??? ???
Ich habe Notes neugestartet und siehe da!!! Meine Forall hat funktioniert!
KA. warum  :o

Naja die Dateien hat er auch alle gespeichert und ich bin grade ganz arg glücklich!

Wunderbar brauche noch paar kleinigkeiten dann bin ich fertig!  ;D *freu*
Danke für die zahlreichen Tipps
 ;) Den rest werde ich selber machen... Sonst lernt ichs ja nicht  ;)

MFG Tubeman


Offline Tubeman

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Männlich
  • Wissen ist Macht
Lösen von Anhängen einer Email in einer Mailin DB
« Antwort #14 am: 17.02.05 - 08:17:56 »
Hallo Hallo

Ich bin jetzt fertig mit dem Agenten.
Das Problem Von einem Sun Server etaws auf nen Windows Server zu speichern hat sich erledigt->
Mailin DB wurde auf einen Windows Server verschoben ::)

Den Code will ich aber keinem vorenthalten ;)
Nochmal Danke für die Tipps ;D

Code
Dim session As New NotesSession	
'############################################	
	Dim doc As Notesdocument
	Dim db As NotesDatabase
	Dim view As NotesView
	Dim object As NotesEmbeddedObject
	Dim collection As NotesDocumentcollection
'############################################	
	Dim item As Variant
	Dim match As String
	Dim collcounter As Integer
	Dim objName As String
	Dim Dateiname As String
'############################################	
	
	Set db = session.currentdatabase()
	Set view = db.getview("(Default)")
	Set collection = db.UnprocessedDocuments
	Set doc = view.getfirstdocument()
'############################################	

	While Not (doc Is Nothing)
		match = doc.subject(0)
		If match Like "*40150003  Leistungsanforderung*" Then			
			Set item = doc.GetFirstItem("Body")
			If ( item.Type = RICHTEXT ) Then		
				Forall embobj In item.EmbeddedObjects						
					objName = embobj.Name
					Set object = item.GetEmbeddedObject(objName)					
					If Not ( object.Name = "" Or object.Source = "" ) Then
						Set object = doc.GetAttachment(objName)
						int_count = int_count + 1						
						Dateiname = embobj.Source
						Call object.ExtractFile( "D:\Data\FGCenter\" & Cstr(int_count)&" " & Cstr(Dateiname)) 
					End If						
				End Forall					
			End If					
		Else
			Goto notTarget				
		End If
'############################################
notTarget: 														'---------->Sprungstelle für beendigung der If Schleife wenn keine Email mit diesem Namen vorhanden
'############################################
		Set doc = view.getnextdocument(doc)	'---------->das Nächste Dokument welches in der  Ansicht vorhanden ist.			
	Wend	

End Sub

MFG Tubeman

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz