Autor Thema: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlich)  (Gelesen 4790 mal)

Offline oksenator

  • Junior Mitglied
  • **
  • Beiträge: 93
Hallo,
wir haben eine Kunden-DB die aus einem Hauptdokument besteht und dann Antwort-Dokumente für z.B. Contacts oder Berichte. Die Antwortdokumente zeige jeweils ich in einem "embedded view" an mit "Show single category" und dort dann "@Text(@DocumentUniqueID)". In dem View ist die erste Spalte "@Text($Ref)". das funktioniert auch alles.
Nun hat irgendjemand den Kunden fälschlicherweise gelöscht, die Antwortdokumente sind aber alle noch da. Dann hab ich jetzt aus der Sicherung das Haupdokument rauskopiert und in die Kunden-DB eingefügt. Allerdings werden die Antwortdokumente nicht angezeigt, obwohl die DocumentUniqueID und $Ref gleich sind. Ich habe in dem Hauptdokument ein verstecktes Feld "@DocumentUniqueID". Wenn ich das anzeige und draufklicke bekomme ich die Meldung "Dokument gelöscht". Kann mir das evtl. jemand erklären, ich versteh das nicht ganz.
Danke
Oliver
---------------------------------------------------------------------
Goals are deceptive - the unaimed arrow never misses

Offline Jens_1

  • Senior Mitglied
  • ****
  • Beiträge: 440
  • Geschlecht: Männlich
Hmm - mal so in's blaue geschossen.
Aktualisier mal Deinen Ansichtsindex.
Wenn das nicht hilft muss irgendwo eine Kennung verankert sein. Da habe ich aber keine Ahnung von.
Wie man gelöschte Dokumente aus einer daSi wieder rein repliziert erarbeite ich mir gerade. Für'n Tipp ist es aber noch zu früh....  :-\

Gruß
 Jens
CLP Domino R5 System Administrator
CLP IBM Lotus Domino 6 System Administrator
CLP IBM Lotus Domino 7 System Administrator
IBM Certified System Administrator - Lotus Notes and Domino 8

Offline Cebe1

  • Senior Mitglied
  • ****
  • Beiträge: 353
Evtl. hilft ein Fixup oder Compact !?
Schöne Grüße
Christian

------------------------------------------------------------
Mehrere Server R8
teilweise im Cluster

IQ.Suite 14.x
Powertools
Timeflex Gruppenkalender
Panagenda Marvel Client

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Dann hab ich jetzt aus der Sicherung das Haupdokument rauskopiert und in die Kunden-DB eingefügt. Allerdings werden die Antwortdokumente nicht angezeigt, obwohl die DocumentUniqueID und $Ref gleich sind. Ich habe in dem Hauptdokument ein verstecktes Feld "@DocumentUniqueID".

Ist ja eigentlich logisch warum das nicht fiunktioniert. Du hast aus einer Sicherung das Hauptdokument in die Datenbank reinkopiert. Dadurch erhält das Dokument eine neue DocumentUniqueID. $REF der Antworten zeigt aber noch auf die alte UNID. Das Feld @DocumentUniqueID hilft dir in diesem Fall auch nicht weiter, da es vermutlich vom Typ "Berechnet beim Anlegen" ist.

Die bleibt nichts anderes übrig als das $REF der Antworten mit einem Agenten anzupassen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline ossigo

  • Aktives Mitglied
  • ***
  • Beiträge: 149
genau, so wie Axel beschrieben hat oder...
wie setzen auch eine Kunden-DB/Office ein (Gedys Intraware 6.8), dort sind auch als übergeordnete Dokumente Akten vorhanden mit untergeordneten Antwortdokumenten (Kontakten etc.) und dort ist das Handling in einem solchen Fall teilweise einfacher und man muss meist keinen Agenten bemühen. Hier reicht es in der Regel aus diese nicht mehr zugeordneten Dokumente ausfindig zu machen, zu markieren, auszuschneiden, sich auf die wiederhergestellte Akte zu stellen und einzufügen, dadurch werden die Dokumente auch neu dem übergeordneten Dokument, dieser Akte, zugeordnet.
--> Akte aus Backup einfügen --> Kontakte selektieren --> ausschneiden --> auf Akte stellen --> einfügen
geht bestimmt nicht in jeder Anwendung so, aber vielleicht setzt Ihr gleiche Anwendung ein...
Jens


Offline oksenator

  • Junior Mitglied
  • **
  • Beiträge: 93
Hi,
Danke füür die Tips. Refresh der Views hat nichts gebracht, Fixup dauert zu lang, kann ich nur nachts starten. Ich kopiere ja das Haiuptdokument zurück und nicht die Antworten. Die $REF der Antwortdokumente und die DocID des Hauptdokuments sind gleich. das hab ich geprüft. Deshalb verstehe ich das ja nicht.
Danke
Oliver
---------------------------------------------------------------------
Goals are deceptive - the unaimed arrow never misses

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Hi,
Danke füür die Tips. Refresh der Views hat nichts gebracht, Fixup dauert zu lang, kann ich nur nachts starten. Ich kopiere ja das Haiuptdokument zurück und nicht die Antworten. Die $REF der Antwortdokumente und die DocID des Hauptdokuments sind gleich. das hab ich geprüft. Deshalb verstehe ich das ja nicht.
Danke
Oliver

Das wunderts mich absolut. Wenn ich ein Dokument von Hand einkopiere, stimmt der Wert aus dem Feld DocID und die 'ECHTE'  UNID des Dokumentes nie überein. Ich muss immer entweder das Feld $HRef ändern oder pers Script die UNID des neuen Dokumentes ändern.


wie überprüfst du die DocID des einkopierten Dokumentes?

Grüsse

Dau-in

P.S.: mach doch eine Ansicht mit 2 Spalten, einmal der Inhalt des Feldes 'DocID' und einmal @text(@documentUniqueID)
wenn die Werte nicht gleich sind, ist was faul
« Letzte Änderung: 25.06.08 - 18:54:20 von DAU-in »
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Da muss gar nichts faul sein, DAU-in. Wir gehen momentan davon aus, dass es ein Item "DocID" gibt und dieses wird beim ersten Speichern des Dokuments mit der UniversalID des selben Dokuments gefüllt. Wenn nun dieses Dokument kopiert wird, dann bleibt dieses Item natürlich unverändert (warum sollte es sich auch ändern).
Das Procedere ist also ganz im Gegenteil "voll nomaaal".

Nur: Das Item "DokID" hat überhaupt gar nichts zu tun mit der UniversalID, auf die sich die Items $Ref der ResponseDocs beziehen.

Bernhard

PS: Das einfachste Verfahren, um aus einem Archiv oder einem Backup ein Dokument mit gleichbleibender UniversalID ins "Original" zu kopieren, ist ein klitzekleines Script-Aktionileinchen, welches dort markierte Dokumente mit NotesDocument.CopyToDatabase in die Ziel-DB schaufelt. Dabei bleibt die UniversalID erhalten, so diese nicht bereits in der DB vergeben ist.

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
mit etwas 'faul sein' meine ich, dass im Feld DocID eben nicht die UNID des aktuellen Dokumentes steht, sondern die des ursprünglichen Dokumentes, das vermutlich'berechnet beim Anlegen ist'.

Und dann kann ich die Felder 'DocID' des einkopierten Dokumentes und '$Href' der Antwortdokumente vergleichen soviel ich will - die UNID des neuen Hauptdokumentes ist eine andere.

Und ich glaube, der Threadersteller vergleicht die Felder im Haupt- und Antwortdokument und nicht das Feld DocID und die UNId selbst bzw. das Feld $Href des Antwortdokumentes und die UNID des Hauptdokumentes.

Grüsse

Dau-in
die soeben stinkig ist, weil in Tegel keine Taxe mehr zu bekommen war wegen diesen bescheuerten Spiels!
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Ich kopiere ja das Haiuptdokument zurück und nicht die Antworten. Die $REF der Antwortdokumente und die DocID des Hauptdokuments sind gleich. das hab ich geprüft. Deshalb verstehe ich das ja nicht.

Das kann ich mit absolut nicht vorstellen. Wie hast du die DocID geprüft?

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline oksenator

  • Junior Mitglied
  • **
  • Beiträge: 93
Danke für die Tips, wahrscheinlich bin ich ja doof aber waurm bekomme ich mit

   Dim archiveDb As New NotesDatabase( "Server", "IFHCUST.nsf" )
   Messagebox (archiveDb.Title) ' nur zum testen, funktioniert
   Dim doc  As NotesDocument
   Call doc.CopyToDatabase( archiveDb )

ein "Obejct variable not set" bei "call.CopyToDatabase"? Meine Rettungs-DB liegt als Replik lokal auf meinem Rechner.
Danke
Oliver
---------------------------------------------------------------------
Goals are deceptive - the unaimed arrow never misses

Driri

  • Gast
doc ist nicht zugewiesen.

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Weil doc keinen Wert hat. Das ist noch null/undefined. Du musst doc erst mit "set doc = ..." einen Wert zuweisen.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Und wie siehst du denn jetzt, dass die DocID richtig ist beim einkopierten Dokument?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline oksenator

  • Junior Mitglied
  • **
  • Beiträge: 93
Hi,
ich verzweifle an dem Script (ist einfach nicht meine Stärke). Das mit dem Set hab ich ja verstanden, aber alle Beispiele die ich mir angesehen habe, gehen auf eine DocumentCollection und machen ein "set doc=next doc". Mein Agent läuft aber auf das markierte Dokument und ich will ja nur das eine Dokument kopieren. Muß ich mir sonst ein "Auswahlkriterium ausdenken? Wie muß den dann der SET aussehen?
Danke
Oliver

P.S.: Zu der Frage wie ich das mit der DocID unterscheide später, wenn ich es ganz verstanden habe.
---------------------------------------------------------------------
Goals are deceptive - the unaimed arrow never misses

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Code
 Set notesDocument = notesSession.DocumentContext
For an agent activated in a view through the Notes client UI, the in-memory document is the document highlighted in the view.

oder

Code
Set notesDocumentCollection  = notesDatabase.UnprocessedDocuments
Agent runs on "All selected documents", UnprocessedDocuments returns documents that meet all of these requirements: "Are selected in the view"
Ein schönes Beispiel dazu gibt es in der Designer-Hilfe unter "Examples: UnprocessedDocuments property"
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline oksenator

  • Junior Mitglied
  • **
  • Beiträge: 93
Vielen Vielen Dank für die vielen Tips, jetzt hab ich es hinbekommen. Falls also nochmal jemand ein Script sucht mit dem man ein (und nur ein) Dokument von einer zu einer anderen DB kopier hier meins:

   Dim session As New NotesSession
   Dim sourcedb As NotesDatabase
   Dim targetdb As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Set sourcedb = session.CurrentDatabase
   Set targetdb = New NotesDatabase("Servername","Datenbankname")   
   Set doc = session.DocumentContext
   Call doc.CopyToDatabase(targetdb)

Und jetzt sind auch wieder alle Antwortdokumente am Hauptdokument dran. Ich hatte nicht gewusst, das sich die "DocumentUniqueID" beim Kopieren verändert. Das macht jetz einiges klar. Scheinbar bin ich da mit meinem Feld "DocID" wie Bernhard schon schreibt, durcheinander gekommen. Also nochmal vielen Dank.
Oliver
---------------------------------------------------------------------
Goals are deceptive - the unaimed arrow never misses

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Ich würde da noch eine Fehlerabfrage einbauen, ob doc überhaupt definiert ist, ...
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
... und auf den unnötig reservierten Speicherplatz für eine NotesDocumentCollection verzichten ...

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz