Das Notes Forum

Domino 9 und frühere Versionen => ND7: Administration & Userprobleme => Thema gestartet von: oksenator am 25.06.08 - 14:05:10

Titel: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlich)
Beitrag von: oksenator am 25.06.08 - 14:05:10
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
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlich)
Beitrag von: Jens_1 am 25.06.08 - 14:10:38
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
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlich)
Beitrag von: Cebe1 am 25.06.08 - 15:03:19
Evtl. hilft ein Fixup oder Compact !?
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlich)
Beitrag von: Axel am 25.06.08 - 15:16:31
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
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlich)
Beitrag von: ossigo am 25.06.08 - 17:07:30
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

Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: oksenator am 25.06.08 - 17:08:57
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
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: DAU-in am 25.06.08 - 17:22:47
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
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: koehlerbv am 25.06.08 - 19:03:41
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.
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlich)
Beitrag von: DAU-in am 26.06.08 - 00:28:09
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!
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: Axel am 26.06.08 - 08:21:35
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
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: oksenator am 26.06.08 - 09:29:26
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
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlich)
Beitrag von: Driri am 26.06.08 - 09:32:27
doc ist nicht zugewiesen.
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: m3 am 26.06.08 - 09:32:36
Weil doc keinen Wert hat. Das ist noch null/undefined. Du musst doc erst mit "set doc = ..." einen Wert zuweisen.
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlich)
Beitrag von: DAU-in am 26.06.08 - 09:50:43
Und wie siehst du denn jetzt, dass die DocID richtig ist beim einkopierten Dokument?
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: oksenator am 26.06.08 - 10:10:19
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.
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: m3 am 26.06.08 - 10:22:02
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"
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: oksenator am 26.06.08 - 10:33:36
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
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: m3 am 26.06.08 - 10:50:27
Ich würde da noch eine Fehlerabfrage einbauen, ob doc überhaupt definiert ist, ...
Titel: Re: Problem mit Antwort Dokumenten, wenn parent Doc gelöscht wurde (versehentlic
Beitrag von: koehlerbv am 26.06.08 - 10:53:21
... und auf den unnötig reservierten Speicherplatz für eine NotesDocumentCollection verzichten ...

Bernhard