Probleme mit CopyToDatabase / Doclinks gehen kaputt!?

  • sitze gerade an einem seltsamen problem.


    aus datenbank a wird ein dokument (mit doclinks innerhalb der datenbank) über copytodatabase in eine zweite (b) dupliziert. dort funktionieren die doclinks aber nicht mehr.


    erste analyse: die doclinks im neuen dokument zeigen plötzlich in die zweite (b) datenbank?


    irgendeine idee? stehe ich auf dem schlauch?


    werde noch versuchen das ganze in einen einfachen codeschnipsel zu verpacken um der sache näher auf den grund zu gehen ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • habe im notes.net einen ähnlichen 'fall' gefunden. evtl. gibt es einen unterschied zwischen
    call doc1.copytodatabase(db2)
    und
    set doc2 = doc1.copytodatabase(db2)


    kann das evtl. jemand bestätigen?


    update:
    so, habe langsam das gefühl, das es 'works as designed' ist.


    technote 1092802 beschreibt das ganze. witzig ist halt nur, das der text, der in der statuszeile angezeigt wird, noch den alten datenbanknamen enthält und so doch etwas für verwirrung sorgt.


    prüfe jetzt, ob ich meine routinen auf
    set doc2 = db2.createdocument
    call doc1.copyallitems(doc2)
    umstellen kann


    daher erst mal auf [erledigt] ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • hier noch meine bisherige lösung (falls mal jemand ein ähnliches problem hat):


    Set tmp_note = work_note.CopyToDatabase(archive)
    Forall items In tmp_note.Items
    If Ucase(items.Name) <> "$REF" Then
    Call items.Remove()
    End If
    End Forall
    Call work_note.CopyAllItems(tmp_note, False)
    Call tmp_note.Save(True, False, True)


    damit funktionieren die alten links noch und eine evtl. antwortstruktur bleibt bestehen.


    ansonsten sollte copytodatabase wohl nur benutzt werden, wenn man
    a) dokumente ohne links
    b) eine komplette dokumentensammlung
    kopiert ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • auch wenn ich hiermit langsam zum alleinunterhalter werde:
    wollte jetzt einen agenten erstellen, der mir die bereits kopierten dokumente 'repariert'.


    erst copytodatabase zurück in alte db und dann einfach wieder die items in dem kopierten dokument austauschen. leider funktioniert der doclink im zurückkopierten dokument auch nicht mehr, was sich mir allerdings nicht ganz erschliesst.


    schaut man sich die eigenschaften des links an, gibt es 3 werte.
    - Replica
    - View
    - Note


    Replica ist nach dem kopieren wieder auf dem richtigen wert.
    View und Note allerdings nur die letzten 16 stellen (ab -ON).


    evtl. hier jemand eine idee wie ich das wieder 'retten' kann (ohne rücksicherung ...)

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Na deiner eigenen Argumentationskette zufolge hast du doch mit dem CopyToDatabase in die alte DB den Link schon wiederzerschossen.
    Also müsstest du da auch mit dem CopyAllItems arbeiten, oder ?

  • hi taurec,


    mit copytodatabase von der db1 in die db2 ist der link 'kaputtgegangen'. jetzt versuche ich erst mal mit copytodatabase von der db2 in die db1 das ganze zu 'reparieren' (wenn überhaupt so noch möglich (anscheinend nicht)).


    danach würde ich dann mit einem copyallitems von db1 in db2 versuchen das ganze wieder herzustellen.

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Das hab ich schon verstanden.


    Also CopyToDatabase von DB1 in DB2 macht den Link kaputt, dann wird der umgekehrte Weg das doch ebenfalls tun, d.h. du müsstest das eigentlich von den Originaldokumenten her machen

  • ich hatte ja folgendes vermutet (oder gehofft):
    copytodatabase geht davon aus, das sich die links auf dokumente innerhalb der ziel-db beziehen. d. h. wenn ich doc1 und doc2 (mit link auf doc1) kopiere, funktioniert der link anschliessend wieder/immer noch.


    daher könnte man ja vermuten, das wenn ich nur doc2 kopiere (der link ist dann erst mal kaputt) und dies wieder 'rückgängig' mache, der link danach in der ursprungsdb auf doc1 wieder funktioniert. leider hat sich das in meinen tests bisher so nicht dargestellt ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • in meiner kleinen test-anwendung mit zwei neuen, eionfachen datenbanken funktioniert es! allerdings lässt es sich so noch nicht auf mein produktiv-system portieren ... da muss noch irgendetwas anderes eine rolle spielen ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • so langsam kommen wir hier ein paar schritte weiter.


    es schient wohl dokumente zu geben, bei denen das $Links Feld defekt ist.


    kennt jemand eine möglichkeit dieses item zu 'reparieren'? ein entsprechender call bei ibm läuft auch schon und ist bereits bein 2nd level ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)