Autor Thema: Objekte kopieren  (Gelesen 3602 mal)

Offline Hendrik T.

  • Frischling
  • *
  • Beiträge: 33
Objekte kopieren
« am: 13.09.12 - 12:25:14 »
Leidiges Thema Rich Text Felder...

Hintergrund: Gibt bei uns eine Datenbank, die bestimmte RT Felder enthält, die die Sachbearbeiter nutzem um Anhänge wie pdfs o.ä. zu speichern. Diese Felder werden außerdem in einer Extra Maske achiviert, sprich kopiert.

Problem: Wenn ich aus dem eigentlichen Feld die Dateien lösche und im Archiv die noch vorhandenen Anhänge öffnen möchte, findet er die Datei nicht. Er kopiert also offensichtlich nur einen Verweis zum Attachment und nicht die Datei als ganze.

Wie aber kriege ich das hin? also einfach das Attachment greifen, die Datei in den Arbeitsspeicher laden und neu in das Archivfeld fügen. Ich habe sehr viel ausprobiert und gesucht, es haut einfach nicht hin. Oder übersehe ich was elementares?

Vielen Dank und freundliche Grüße

Hendrik
Nur ein Praktikant, der sich mit diversen Notes (8.5) Applikationen rumärgern darf ... ;)

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Objekte kopieren
« Antwort #1 am: 13.09.12 - 13:19:14 »
Hallo,

Ohne zu wissen wie Du die Anhaenge 'kopierst' wird es schwer sein etwas ueber etwaige Fehlerquellen zu sagen.


Andreas

Offline Hendrik T.

  • Frischling
  • *
  • Beiträge: 33
Re: Objekte kopieren
« Antwort #2 am: 13.09.12 - 13:47:29 »
Bisher habe ich es so versucht:

Set item=doc.getfirstitem("H_doc_10")
Set xitem=doc.getfirstitem("H_doc")
            
namen=xitem.EmbeddedObject
y=0            
x=Ubound(namen)
Do While y<=x
     Set datei = xitem.GetEmbeddedObject(namen(y).name)
     Call datei.Activate(False)
     Set file_old = item.EmbedObject(1454,"",datei.Name)
     y=y+1
Loop
Nur ein Praktikant, der sich mit diversen Notes (8.5) Applikationen rumärgern darf ... ;)

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Objekte kopieren
« Antwort #3 am: 13.09.12 - 14:02:34 »
Schon mal die Methode AppendRTItem der NotesRichTextItem-Klasse angesehen?


Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Objekte kopieren
« Antwort #4 am: 13.09.12 - 14:05:57 »
NotesItem.CopyToDatabase tut in diesem Falle noch einfacher.

HTH,
Bernhard

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Objekte kopieren
« Antwort #5 am: 13.09.12 - 14:07:26 »
@Bernhard
Kleine Frage

Zitat
NotesItem.CopyToDatabase
Verschrieben oder eine von den undokumentierten Funktionen (Methoden) einer Klasse.


Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Objekte kopieren
« Antwort #6 am: 13.09.12 - 14:12:06 »
Verschrieben  ::)

NotesItem.CopyItemToDocument

Danke für den Hinweis, Andreas!

Bernhard
« Letzte Änderung: 14.09.12 - 11:02:53 von koehlerbv »

Offline Hendrik T.

  • Frischling
  • *
  • Beiträge: 33
Re: Objekte kopieren
« Antwort #7 am: 13.09.12 - 14:16:45 »
Schon mal die Methode AppendRTItem der NotesRichTextItem-Klasse angesehen?


Andreas

die Methode hatte ich erst. Die bringt aber nichts, da sie die Datei nicht wirklich kopiert. Solange im ursprünglichen Feld das Teil noch liegt funktioniert das wunderbar. Aber danach nicht mehr.
Nur ein Praktikant, der sich mit diversen Notes (8.5) Applikationen rumärgern darf ... ;)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Objekte kopieren
« Antwort #8 am: 13.09.12 - 14:41:19 »
Evtl. bringt RenderToRichtext der NotesDocument- Klasse was, u.U. könntest Du auch versuchen, das $File ins neue Dokument zu kopieren (zusätzlich).
Am sichersten ist sicherlich, das kurzfristig zu detachen (in Deinem obigen Code statt "datei.Activate" (was soll das bringen, das müsste eigentlich in Deinem Fall sogar einen Fehler werfen, laut Hilfe: This method raises an error if you invoke it on a NotesEmbeddedObject that is a file attachment.) datei.ExtractFile(irgendeintempordner) und item.EmbedObject(1454,"",irgendeintempordner)
aufräumen nicht vergessen: kill irgendeintempordner
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Objekte kopieren
« Antwort #9 am: 13.09.12 - 14:42:10 »
Kann ich nicht bestätigen...
Copyitemtodocument kopiert automatisch alle zum Richtext gehörenden $FILE items.
Man muss das Zieldokument dann speichern.  Dabei bekommen alle Files eine neue Objekt - id (sieht man in den Dokumenteigenschaften im $FILE )
D. H. Sie werden kopiert. Wenn man allerdings nach dem Kopieren im Quelldokument die Attachments entfernt und die Kopie erst dann speichert,  kommt es zu dem von dir beschriebenen Effekt.
(Symbol im Richtext und beim Anklicken kommt eine Fehlermeldung)

Gruß Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Mitch

  • Gast
Re: Objekte kopieren
« Antwort #10 am: 13.09.12 - 15:39:00 »
Heyho,

interessant, dass du das mit zwei unterschiedlichen Dokumenten hast. Ich kenne das nur, wenn man innerhalb eines einzigen Dokumenten RTIs kopiert (siehe hier: http://atnotes.de/index.php/topic,51945.0.html ).

Dazu gibt es auch ein offizielles IBM-Statement: https://www-304.ibm.com/support/docview.wss?uid=swg21200321&wv=1

Vielleicht hilft dir der IBM-Workaround ja trotzdem weiter.

Gruß,

Mitch

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz