Autor Thema: Temporäres Doc an Frontend-Dokument gebunden?  (Gelesen 1850 mal)

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Temporäres Doc an Frontend-Dokument gebunden?
« am: 14.07.14 - 10:28:51 »
Ich möchte für eine Revisionierung den ursprünglichen Anhang, vor einer evt. Änderung durch den Anwender, behalten:
Also habe in den Declarations einer Maske eine globale Variable definiert
Code
Dim tmpdoc As NotesDocument
Im Postmodechange weise ich ihr das aktuelle Dokument zu, für einen späteren Vergleich
Code
Set tmpdoc= Source.Document
... aber offensichtlich ist das tmpdoc an das Frontend-Dokument gebunden, es verändert sich mit?! Wie kann ich das unterbinden? Oder muss ich in jedem Fall den Anhang temporär als Datei zwischenspeichern?

(Falls ich jetzt irgendwie offensichtliche Grundregeln nicht raffe... verzeiht mir. Leide unter einer schweren Post-WM-Belastungsstörung)
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.884
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Temporäres Doc an Frontend-Dokument gebunden?
« Antwort #1 am: 14.07.14 - 10:39:08 »
Eine LotusScript- Variable ist immer nur ein "Verweis" auf das "echte" Dokument und kann nicht abgekoppelt werden. Du müsstest Dir eine Kopie des Dokuments im Speicher ablegen (New NotesDocument, per CopyAllItems die Inhalte rüberkopieren), dann könnte das klappen, obwohl natürlich speziell die Sache mit den RichtextItems sehr tricky werden kann...
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 jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: Temporäres Doc an Frontend-Dokument gebunden?
« Antwort #2 am: 14.07.14 - 10:42:21 »
Ja, hatte ich mir schon gedacht (soweit das heute geht), danke, wollte nur sicher gehen, dass der Fehler nicht anderswo liegt - ich werds über ein temporär zwischengespeichertes Dokument, das ich dann wieder lösche, lösen.
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Temporäres Doc an Frontend-Dokument gebunden?
« Antwort #3 am: 14.07.14 - 10:46:02 »
Speichern musst das temporäre Dokument aber nicht.
Per UNID bzw. NoteID kannst Du auch eine zweite Instantiierung des Dokumentes vornehmen.

Bernhard

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: Temporäres Doc an Frontend-Dokument gebunden?
« Antwort #4 am: 14.07.14 - 15:04:30 »
Speichern musst das temporäre Dokument aber nicht.
Per UNID bzw. NoteID kannst Du auch eine zweite Instantiierung des Dokumentes vornehmen.

Hi Bernd, wenn ich in einer Funktion das temporäre Dokument erstelle und die UNID zurückgeben lasse
Code
...
Set doc = New NotesDocument (db)	
Call source.document.Copyallitems(doc)
doc.Form="tmpdoc"
DocRevAttachment=doc.Universalid
...
wird zwar eine UNID erstellt, aber beim Versuch, das Dokument an anderer Stelle per db.getDocumentByUnid zu holen, gibts den Fehler "invalid universal id", wenn ich das Dokument nicht speichere. NoteID wird in dem Fall gar nicht erstellt; es wird 0 zurückgegeben. Erst wenn ich speichere, funktionierts...

Oder habe ich etwas falsch verstanden?
« Letzte Änderung: 14.07.14 - 15:14:44 von jo@chim »
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.884
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Temporäres Doc an Frontend-Dokument gebunden?
« Antwort #5 am: 14.07.14 - 15:18:17 »
Ja, Du hast da was falsch verstanden. Bernhard meinte, das SELBE Dokument über seinen UNID zu holen.

Set doc = Source.Document

und

Set doc = db.GetDocumentByUnid( Source.Document.UniversalID )

liefern tatsächlich zwei Objekte zurück, die voneinander unabhängig sind. Das erste ist die "Repräsentation" des Frontends und ändert sich damit dynamisch mit, das andere die Repräsentation des Backends, das sich nicht mitändert.

Ich würde trotzdem von diesem Vorgehen abraten, denn wenn Du aus versehen das zweite Dokument speicherst, dann produzierst Du jedesmal einen Replizierkonflikt...
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 jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: Temporäres Doc an Frontend-Dokument gebunden?
« Antwort #6 am: 14.07.14 - 15:31:44 »
Danke!
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz