Autor Thema: Meldung: "Anhänge des Quelldokuments fehlen" bei save  (Gelesen 3516 mal)

Offline tks

  • Senior Mitglied
  • ****
  • Beiträge: 425
  • Geschlecht: Männlich
  • ...für'n Fuss
Hallo liebe Notesgemeine.

Ich habe ein, zumindest für mich, nicht nachvollziehbares Problem. Ich versuche das ganze mal verständlich zu beschreiben.

Ich habe eine Datenbank, die auf der modifizierten Schablone "Dokumentbibliothek" Version 6 basiert. Weil in der DB die Dokumente untereinander zum Teil verlinkt sind, habe ich im Freigabeworkflow einen Passus eingebaut, der das Ursprungsdokument immer beibehält (wg. der NoteID) und nur den Inhalt des Dokumentes austauscht. Bei der Kopiererei treten jetzt bei Dokumenten mit Anhang Probleme auf, in Gestalt der Fehlermeldung:

"Ein oder mehrere Anhänge des Quelldokuments fehlen. Starten Sie Fixup, um das Dokument in der Quelldatenbank zu löschen."

Der folgende Quellcode steckt in einer Scriptlib (Function SendToNext) und wird im QuerySave aufgerufen:

Code
...
Set arcdoc = db.GetDocumentByID(note.ReleasedDocID(0))
Set tmpdoc = db.CreateDocument
Call arcdoc.CopyAllItems(tmpdoc,True)
Call tmpdoc.Save(False,False)
Call note.Save(False,False)
Forall e In arcdoc.Items
Call arcdoc.RemoveItem(e.name)
End Forall
Call arcdoc.Save(True,False)
Call note.CopyAllItems(arcdoc,True)
Call arcdoc.Save(True,False)
Set agent = db.GetAgent("agDeactivateDoc")
If agent.RunOnServer(arcdoc.NoteID) <> 0 Then
Messagebox "Fehler beim Deaktivieren des freigegebenen Dokumentes" + Chr13)  "Bitte benachrichtigen Sie Ihren Administrator",16,"Archivierung"
End If
Forall e In note.Items
Call note.RemoveItem(e.name)
End Forall
Call tmpdoc.CopyAllItems(note,True)
Call note.Save(True, False)
...

Der Fehler passiert beim Speichern des aktuell geöffneten Dokumentes (note.save).

Wenn ich mir das Dokument im Debugger anschaue, dann ist dort aber der Anhang korrekt vorhanden. Das tmpdoc wird übrigens problemlos gespeichert. Auch mit Anhang.

Ich hoffe ich konnte mich verständlich machen und jemand hat eine zündende Idee.

Bei notes.net habe ich zwar einige Threads in dieser Richtung gefunden ($File soll nicht "so einfach" zu kopieren sein), aber weitergeholfen hat's mir nicht.
« Letzte Änderung: 12.11.09 - 14:30:36 von tks »
Thomas

*********************************
Domino 8.5.3FP6 unter W2K12
Notes 8.5.3 unter Win7
sequrIQ (watchdog & crypt)
*********************************

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Meldung: "Anhänge des Quelldokuments fehlen" bei save
« Antwort #1 am: 10.11.09 - 16:25:14 »
Im QuerySave und mit Deinem Code kämpfen hier Front- und Backend um die Vorherrschaft - und beide verlieren (was zu erwarten war).

Bau das im QueryClose ein - da sind die Messen schon gelesen und nur das Backend darf noch (richtig) mitspielen.

Bernhard

Offline tks

  • Senior Mitglied
  • ****
  • Beiträge: 425
  • Geschlecht: Männlich
  • ...für'n Fuss
Re: Meldung: "Anhänge des Quelldokuments fehlen" bei save
« Antwort #2 am: 10.11.09 - 16:28:56 »
Dann sag' ich einstweilen mal "Danke Bernhard" und versuche deinen Hinweis umzusetzen. Werde über Erfolg oder Misserfolg berichten.
Thomas

*********************************
Domino 8.5.3FP6 unter W2K12
Notes 8.5.3 unter Win7
sequrIQ (watchdog & crypt)
*********************************

Offline tks

  • Senior Mitglied
  • ****
  • Beiträge: 425
  • Geschlecht: Männlich
  • ...für'n Fuss
Re: Meldung: "Anhänge des Quelldokuments fehlen" bei save
« Antwort #3 am: 11.11.09 - 10:57:52 »
So, im QueryClose kommt der gleiche Fehler. Was ich nicht verstehe:

Im Debugger ist das Dokument korrekt. $File ist da.

Werd' mal weiter suchen. Mist!
Thomas

*********************************
Domino 8.5.3FP6 unter W2K12
Notes 8.5.3 unter Win7
sequrIQ (watchdog & crypt)
*********************************

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Meldung: "Anhänge des Quelldokuments fehlen" bei save
« Antwort #4 am: 12.11.09 - 10:03:52 »
ich denke dass deine Routine
Code
Forall e In arcdoc.Items
  Call arcdoc.RemoveItem(e.name)
End Forall
das Dokument nicht vollständig leert. (da bei RT-Items z.B. nur das erste gelöscht wird)
check das mal mit dem Debugger und probier dann evtl:
Code
do while isArray(arcdoc.Items)
  Forall item In arcdoc.Items
    item.remove
  End Forall
loop

das tmpDoc muss meiner Meinung auch nicht gespeichert werden
Gruß
Roland
Roland Praml

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

Offline tks

  • Senior Mitglied
  • ****
  • Beiträge: 425
  • Geschlecht: Männlich
  • ...für'n Fuss
Re: Meldung: "Anhänge des Quelldokuments fehlen" bei save
« Antwort #5 am: 12.11.09 - 14:33:35 »
Sodele. Nachdem das mit dem CopyAllItems in keinster Weise funktioniert hat, habe ich mich des Problems dadurch entledigt, dass ich nun mit den UNID's jongliere.

Ich weise die UNID des erstmalig freigegebenen Doks (also der Version 1) immer wieder der neuesten Version zu (das alte Dok wird natürlich zuerst gelöscht). Damit funktioniert es jetzt.

Danke an alle Mithelfenden.
Thomas

*********************************
Domino 8.5.3FP6 unter W2K12
Notes 8.5.3 unter Win7
sequrIQ (watchdog & crypt)
*********************************

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz