Ich habe jetzt eine selektive Replik mit 18 Dokumenten, die sich in der Zielumgebung nicht kopieren lassen: Das Problem lässt sich bei mir mit selbem Code nicht reproduzieren...
Ich habe jetzt remote
- den Code auf doc.CopyToDatabase umgestellt und die UNID in Ruhe gelassen
- geprüft ob irgendwo ein Leserfeld oder Autorenfeld ist
- alle Items durchlaufen
u.v.m.
Ich gebe auf: ich finde keine Lösung... Inzwischen habe ich einen richtig geilen Zustand:
In einer weiteren Quelldatenbank mit dem selben Problem sind 21.000 Dokumente, die Zieldatenbank hat nur 20.500 Dokumente laut Datenbank- Eigenschaften.
Jetzt kommt der Hammer: Wenn ich mit einer Schleife prüfen will, WELCHE Dokumente in der Zieldatenbank fehlen, dann findet der Code keines:
Set dc = dbSource.AllDocuments
'dc.Count = 21.000
'dbTarget.AllDocuments.Count = 20.500
Set doc = dc.GetFirstDocument
While not doc is Nothing
On Error Goto ErrorUnid
Set docTarget = dbTarget.GetDocumentByUnid( doc.Universalid )
On Error Goto ErrorRoutine
i = i + 1
Set doc = dc.GetNextDocument(doc)
Wend
'i = 21.000
ErrorUnid:
Print doc.UniversalID
Resume Next
Dieser Code printet NICHTS...
Dann habe ich in beiden Datenbanken eine Ansicht gemacht: Nicht hierarchisch, nur 1 Spalte, @Text( @DocumentUnique ) und das Ergebnis in Excel verglichen.
Wie zu erwarten findet die SVERWEIS- Funktion von Excel 500 #NV- Werte, also die Differenz aus 21.000 - 20.500
Dann im Admin- Client in der dbTarget nach der UNID gesucht, die dort laut Excel fehlt (also nicht in der Ansicht): Ich bekomme ein gültiges Dokument mit allen Feldern...
Dann ein Set doc = dbTarget.GetDocumentByUnid( "UNID AUS EXCEL" ): Auch hier bekomme ich ein Dokument... ABER: Es ist nicht im Dokumentencount der Datenbank und auch nicht in der Ansicht...
Ich habe keine Ahnung was vorgeht, habe aber den Code zum kopieren der Dokumente in einen neuen Agenten neu geschrieben (selben Funktionen, selbe Vorgehensweise), und was soll ich sagen: Der neue Code funktioniert...
Keine Ahnung warum, weil im Kern genau das gleiche passiert... Whatever...