Autor Thema: Attachment einer anderen DB öffnen  (Gelesen 2352 mal)

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Attachment einer anderen DB öffnen
« am: 14.06.06 - 14:27:06 »
Hallo Forum,

folgende Idee möchte ich gern in Script realisieren, habe aber noch nicht den rechten Einstieg, wie das zu bewerkstelligen ist:

Heute: In der Datenbank A ist ein Dokument a mit einem Link auf ein Dokument b der Datenbank B. Per Doppelklick auf das Dokument A öffnet sich die Maske mit den Feldern des Dokumentes b. Darunter ein RTField mit einem Attachment, welches per Doppelklick geöffnet werden kann.

Wunsch für morgen: Der Doppelklick auf Dokument a führt sofort zum Öffnen des Attachments im Dokument b. Der Doclink sollte wie schon heute per CopyAsDocumentLink erzeugt werden können.

Kann mir jemand dafür einen Ansatz geben?

Alexis

 
« Letzte Änderung: 14.06.06 - 16:35:10 von Alexis »
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Lossa

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.404
  • Geschlecht: Männlich
    • alphaTrain
Re: Attachment einer anderen DB öffnen
« Antwort #1 am: 14.06.06 - 14:30:02 »
Hi,

du kannst in den Eigenschaften der Maske (Starten Reiter) angeben, das automatisch der erste Dateianhang gestartet werden soll. Funktioniert zuverlässung und gut.
Viele Grüße

Ulrich Lossa
Aktiv als Notes Admin und Entwickler seit Version 1.
Freier Trainer und Berater.
Zertifiziert für alle Versionen SA und DB.
HCL Certified Administrator
IBM Certified Advanced Application Developer (PCLP AD)
IBM Certified Advanced System Administrator (PCLP SA)
IBM Certified Instructor for System Administration and Application Development ( CLI)
IBM Certified Instructor for Websphere Software
IBM Certified Instructor for DB2
http://www.alphatrain.de
Lossa@alphatrain.de

Offline Lossa

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.404
  • Geschlecht: Männlich
    • alphaTrain
Re: Attachment einer anderen DB öffnen
« Antwort #2 am: 14.06.06 - 14:31:05 »
Ergänzung:

Hi,

ich meine damit natürlich die Maske in Datenbank B, dort wo der Anhang drin ist.
Viele Grüße

Ulrich Lossa
Aktiv als Notes Admin und Entwickler seit Version 1.
Freier Trainer und Berater.
Zertifiziert für alle Versionen SA und DB.
HCL Certified Administrator
IBM Certified Advanced Application Developer (PCLP AD)
IBM Certified Advanced System Administrator (PCLP SA)
IBM Certified Instructor for System Administration and Application Development ( CLI)
IBM Certified Instructor for Websphere Software
IBM Certified Instructor for DB2
http://www.alphatrain.de
Lossa@alphatrain.de

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Attachment einer anderen DB öffnen
« Antwort #3 am: 14.06.06 - 14:45:43 »
Hallo Jossa,

meine Nachlässigkeit! Ich habe nicht erwähnt, dass in jener Datenbank B dieser Eintrag NICHT gesetzt wird (frag mich nicht warum).

Gibt es trotzdem einen workaround?

Alexis

wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Lossa

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.404
  • Geschlecht: Männlich
    • alphaTrain
Re: Attachment einer anderen DB öffnen
« Antwort #4 am: 14.06.06 - 14:51:52 »
Was meinst du damit?
Zitat
ch habe nicht erwähnt, dass in jener Datenbank B dieser Eintrag NICHT gesetzt wird (frag mich nicht warum).

Ist der Dateianhang nun in der DB B drin oder nicht?
Kannst du das Design der DB B nicht anpassen?
Wenn ja, dann brauchst du kein Workaround.
Viele Grüße

Ulrich Lossa
Aktiv als Notes Admin und Entwickler seit Version 1.
Freier Trainer und Berater.
Zertifiziert für alle Versionen SA und DB.
HCL Certified Administrator
IBM Certified Advanced Application Developer (PCLP AD)
IBM Certified Advanced System Administrator (PCLP SA)
IBM Certified Instructor for System Administration and Application Development ( CLI)
IBM Certified Instructor for Websphere Software
IBM Certified Instructor for DB2
http://www.alphatrain.de
Lossa@alphatrain.de

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Attachment einer anderen DB öffnen
« Antwort #5 am: 14.06.06 - 16:07:44 »
Hallo Jossa,

leider ist das Design der Datenban B für mich verschlossen. Die Datenbank wird in der Konzernspitze betreut mit externer Entwicklung. Da ist nichts zu machen >:D.

Insofern hoffe ich auf ein workaround.

Alexis
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Lossa

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.404
  • Geschlecht: Männlich
    • alphaTrain
Re: Attachment einer anderen DB öffnen
« Antwort #6 am: 15.06.06 - 11:54:08 »
Das ist natürlich sehr ungünstig!

Da fällt mir nur ein das du in der Maske in DB A einen Knopf machst, der das bezugsdokument in DB B holt und den Anhang löst und dann per shell ausführt.
Viele Grüße

Ulrich Lossa
Aktiv als Notes Admin und Entwickler seit Version 1.
Freier Trainer und Berater.
Zertifiziert für alle Versionen SA und DB.
HCL Certified Administrator
IBM Certified Advanced Application Developer (PCLP AD)
IBM Certified Advanced System Administrator (PCLP SA)
IBM Certified Instructor for System Administration and Application Development ( CLI)
IBM Certified Instructor for Websphere Software
IBM Certified Instructor for DB2
http://www.alphatrain.de
Lossa@alphatrain.de

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Attachment einer anderen DB öffnen
« Antwort #7 am: 15.06.06 - 12:53:17 »
Hallo Jossa , hallo Forum,

ok, der Weg ist nun klar:

- Linkdaten im QueryOpen des Dokuments a holen
- Dokument b adressieren, Feld mit Attachment suchen
- Attachment öffnen.
 
Leider fehlt mir das knowhow, das Attachment zu öffnen. Hier der Code so weit.

Code
Dim session As New NotesSession
	Dim rti As NotesRichTextItem
	Dim rtnav As NotesRichTextNavigator
	Dim rtlink As NotesRichTextDocLink
	Dim db As NotesDatabase
	Dim collection As NotesDocumentCollection
	Dim doc As NotesDocument
	
	Set db = session.CurrentDatabase
	Set collection = db.UnprocessedDocuments
	Set doc = collection.GetFirstDocument()
	Set rti = doc.GetFirstItem("Link")
	Set rtnav = rti.CreateNavigator
	
	If Not rtnav.FindFirstElement(RTELEM_TYPE_DOCLINK) Then
		Messagebox "No doclinks in Link item",, "No doclinks"
	Else
		Set rtlink = rtnav.GetElement 'DocLink Objekt
	End If
	
	Dim doc2 As NotesDocument
	Dim db2 As NotesDatabase
	Set db2 = session.GetDatabase("","DB267.NSF")
	Set doc2 = db2.getDocumentByUNID(rtlink.DocUNID) 'Elemente des DocLinks
	Set rtitem = doc2.GetFirstItem( "Body" )
	If rtitem Is Nothing Then 
		Messagebox "Kein Attachment vorhanden"
	Else 
		Messagebox "Attachmant vorhanden"
	End If

Gibt es vielleicht eine Möglichkeit das Attachment direkt zu öffnen, ohne es zu detachen?

Dank für jede Hilfe

Alexis
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Lossa

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.404
  • Geschlecht: Männlich
    • alphaTrain
Re: Attachment einer anderen DB öffnen
« Antwort #8 am: 15.06.06 - 13:07:53 »
Hi,

so spontan ist mir nicht bekannt, das mittels LS das anders geht als den Anhang zu lösen und dann zu starten.

Viele Grüße

Ulrich Lossa
Aktiv als Notes Admin und Entwickler seit Version 1.
Freier Trainer und Berater.
Zertifiziert für alle Versionen SA und DB.
HCL Certified Administrator
IBM Certified Advanced Application Developer (PCLP AD)
IBM Certified Advanced System Administrator (PCLP SA)
IBM Certified Instructor for System Administration and Application Development ( CLI)
IBM Certified Instructor for Websphere Software
IBM Certified Instructor for DB2
http://www.alphatrain.de
Lossa@alphatrain.de

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Attachment einer anderen DB öffnen
« Antwort #9 am: 15.06.06 - 16:59:56 »
Hi,

mühsam ernährt sich das Eichhörnchen ....

Bin jetzt so weit, dass das Attachment auf dem Filesystem gelandet ist.

Wie öffne ich das File nun per Script (PDF only)?

Alexis
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 478
Re: Attachment einer anderen DB öffnen
« Antwort #10 am: 16.06.06 - 08:43:03 »
Für das Öffnen einer Datei mit der zugehörigen Standardanwendung reicht

taskid = Shell("cmd.exe /c start " + Dateiname , 0)   

wobei Dateiname den lokalen Speicherort der Datei umfasst.

André

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Attachment einer anderen DB öffnen
« Antwort #11 am: 17.06.06 - 20:35:32 »
Hallo Forum,

Problem gelöst :-*. Danke für alle Beiträge und dem Forum, DIE Fundgrube schlechthin :D!

Wen's interessiert hier der Code:

Code
Sub Postopen(Source As Notesuidocument)
	Dim session As New NotesSession
	Dim rti As NotesRichTextItem
	Dim rtnav As NotesRichTextNavigator
	Dim rtlink As NotesRichTextDocLink
	Dim db As NotesDatabase
	Dim collection As NotesDocumentCollection
	Dim doc As NotesDocument
	
	Set doc = source.Document
	If doc.IsNewNote Or source.EditMode Then Exit Sub
	
	Set rti = doc.GetFirstItem("Link")
	Set rtnav = rti.CreateNavigator
	
	If Not rtnav.FindFirstElement(RTELEM_TYPE_DOCLINK) Then
		Messagebox "No doclinks in Link item",, "No doclinks"
	Else
		Set rtlink = rtnav.GetElement
	End If
	
	Call doc.Save(False,False)
	Dim doc2 As NotesDocument
	Dim db2 As New NotesDatabase( "", "" )
	If Not db2.OpenByReplicaID( "", rtlink.DbReplicaID ) Then Messagebox "Unable to open database" 
	
	Set doc2 = db2.getDocumentByUNID(rtlink.DocUNID)
	Set rtitem = doc2.GetFirstItem( "pdf" )
	If rtitem Is Nothing Then 
		Messagebox "No attachment available"
	Else 
		Dim file As String
		Forall all In rtitem.EmbeddedObjects
			If ( all.Type = EMBED_ATTACHMENT ) Then
				file = Join(Split("c:\" & all.Name, " "), "")
				Call all.ExtractFile (File)				
				taskid = Shell("cmd.exe /c start " + file , 0)
			End If	
		End Forall
		
	End If
	Call Source.Close(True)
End Sub
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Attachment einer anderen DB öffnen
« Antwort #12 am: 17.06.06 - 22:07:33 »
Nur eine Frage am Rande;
Was machst Du eigentlich hier
Code
file = Join(Split("c:\" & all.Name, " "), "")
mit der Join / Split-Kombination? Wozu soll die gut sein?

Abgesehen davon: Über Deinen Code wird sich der eine odere andere, der da noch einen Denkanstoss im "Handwerk Coding" benötigt, sicherlich sehr freuen!

Bernhard

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Attachment einer anderen DB öffnen
« Antwort #13 am: 18.06.06 - 10:21:23 »
Hallo Bernhard,

die Zeile

Code
file = Join(Split("c:\" & all.Name, " "), "")

habe ich eingefügt, weil beim Öffnen der exportierten Datei der Dateinamen mit Blanks nicht richtig erkannt wird: "MeinFile XYZ" versucht der Shellaufruf als "Meinfile" zu öffnen, was natürlich nicht gelingt.

Alexis
« Letzte Änderung: 18.06.06 - 11:24:36 von Alexis »
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Attachment einer anderen DB öffnen
« Antwort #14 am: 18.06.06 - 12:14:20 »
Ah ja - ich hätte mir die Anzahl bzw. nicht vorhandene Zahl von Leerzeichen in den Parametern genauer anschauen sollen ...

Du hättest aber natürlich auch statt der Join / Split-Kombination auch Replace verwenden können.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz