Antwortdokument in andere Datenbank kopieren

  • Hallo,


    ich habe folgendes Problem:


    Es gibt zwei Datenbanken Schichtbuch 1 und Schichtbuch 2


    Wenn ich in DB1 eine Anweisung(Antwortdokument) geschrieben habe möchte ich das Dok kopieren und dann in der Db2 einfügen.
    (am besten per Lotusscript)


    Das am besten unter Postsave.


    Es muß aber auch geprüft werden ob ein Hauptdokument in DB2 vorhanden ist so das ich das Antwortdokument auch anhängen kann.


    Ich bin erst Anfänger und wäre froh wenn mir jemand eine detailierte Lösung nennen könnte.


    Gruss
    Bernd

  • Vielleicht hilft Dir sowas ja ein wenig weiter:

  • Hallo,


    erstmal vielen Dank für die schnelle Hilfe.


    Hier Dein/mein Quelltext:


    ++++++++++++++++++++++++++++++++++++++
    Dim s As New notessession
    Dim ws As New notesuiworkspace

    Dim db1 As notesdatabase
    Set DB1 = s.currentdatabase

    Dim DB2 As New notesdatabase
    ("008NotesKal01/Forschung","SchichtbuchRTK1.nsf")


    Dim resp_doc As notesdocument
    Dim main_doc As notesdocument

    Set resp_doc = ws.currentdocument.document
    Set main_doc = DB2.GetDocumentByUNID( resp_doc.~$Ref(0) )

    If Not (main_doc Is Nothing) Then
    Set new_doc = resp_doc.CopyToDatabase( DB2 )

    End If
    ++++++++++++++++++++++++++++++++++++++++


    Leider gibt es noch eine Fehlermeldung:


    "Database ... SchichtbuchRTK1.nsf has not opened yet


    und zwar bei Set main_doc.


    Ich habe einwenig die Noteshilfe durchsucht aber leider keine funktionierende Lösung gefunden.


    Hast Du da einen Lösungsansatz ?


    Gruss


    Bernd



    PS. Wer einen Reechtschreibfehler findet darf Ihn behalten.

  • Hallo,


    ich habe den Fehler gefunden es liegt daran , das ich server/verzeichnis , dbname eingetragen habe es muß aber


    server, verzeichnis/dbname sein.


    ++++++++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++++++++++++
    Dim s As New notessession
    Dim ws As New notesuiworkspace


    Dim db1 As notesdatabase
    Set DB1 = s.currentdatabase


    Dim DB2 As New notesdatabase
    -- hier lag der Fehler ----
    ("008NotesKal01","Forschung/SchichtbuchRTK1.nsf")


    Dim resp_doc As notesdocument
    Dim main_doc As notesdocument


    Set resp_doc = ws.currentdocument.document
    Set main_doc = DB2.GetDocumentByUNID( resp_doc.~$Ref(0) )


    If Not (main_doc Is Nothing) Then
    Set new_doc = resp_doc.CopyToDatabase( DB2 )


    End If
    ++++++++++++++++++++++++++++++++++++++++


    Aber leider habe ich noch einen Fehler bei Set main_doc


    der lautet : Invalid universal ID


    Hoffenlich gibt es eine Lösung die ich auch verstehe :)



    Gruss


    Bernd

  • Du musst den code etwas erweitern wegen einer evtl. nicht vorh. Doc-ID:

  • Mal so als Anmerkung; iss ja vielleicht nur bei mir so.
    Aber nach der Anpassung an vom Forum laeuft es jetzt wenigstens etwas langsame..dafuer sind aber ein paar bunte Anzeigen hinzu gekommen..soll ja auch was wert sein
    *grummel
    Und wenn ich ein Dok oeffne, springe ich auch nicht mehr zum letzten Eintrag sondern lande beim ersten..fand ich vorher besser..aber musste wohl geaendert werden

  • [code]
    on error goto Fehler
    Dim s As New notessession
    Dim ws As New notesuiworkspace
    Dim db1 As notesdatabase
    Set DB1 = s.currentdatabase
    Dim DB2 As New notesdatabase-- hier lag der Fehler ----("008NotesKal01","Forschung/SchichtbuchRTK1.nsf")
    Dim resp_doc As notesdocument
    Dim main_doc As notesdocument
    Set resp_doc = ws.currentdocument.document
    Set main_doc = DB2.GetDocumentByUNID( resp_doc.~$Ref(0) )If Not (main_doc Is Nothing) Then
    Set new_doc = resp_doc.CopyToDatabase( DB2 )
    End If



    Fehler:
    exit sub


    End


    Da gehoert das natuerlich hin;-)

  • Hi,


    die Fehlerroutine von Dir ist schon OK.


    Ich habe aber leider Problem mit dem Doc kopieren.


    1. Ich habe in DB 1 ein Antwortdoc markiert und dann kopiert
    (mit der Maus) und dann in DB 2 eingefügt.
    Fazit : Es geehhtt


    2. Habe einen Agenten erstell der genau das macht
    (in DB kopieren)
    Fazit: Agent läuft doch nichts passiert


    3. Benutzt Lotus Script siehe oben.
    Dann kommt die Fehlermeldung: Invalid universal ID


    Ich bin Manager für beide Datenbanken


    Ich habs auch mal ohne alles nur mit call resp_doc.copyToDatabase versucht


    Aber es passiert nichts der Debugger zeigt auch nichts?



    HILFE ! HILFE !HILFE !HILFE !HILFE !HILFE !HILFE ! :)


    Gruss
    Bernd

  • HI,




    2. Habe einen Agenten erstell der genau das macht
    (in DB kopieren)
    Fazit: Agent läuft doch nichts passiert


    3. Benutzt Lotus Script siehe oben.
    Es passiert nichts - keine Fehlermeldung - nichts



    Den Agenten habe ich wie folgt aufgebaut:


    neuer Agent - ausgewählte Documente


    Aktion hinzufügen - in Datenbank kopieren


    DB auswählen


    Dan habe ich ihn gespeichert. Ein Doc ausgewählt und den Agenten gestartet. Man sieht kurz einen Fortschrittsbalken,aber das Doc wird nicht kopiert.


    Gruss
    Bernd

  • HI,


    habe gerade den Fehler eingekreist (umzingelt) weiß aber nicht wie ich Ihn kriegen kann:-)



    So der Agent und das Script funktionieren.


    Mein Document wird von DB 1 nach DB 2 kopiert. Ich habe es nur nicht gefunden da es in DB2 nicht als Antwortdocument ankommt.


    Wichtig ist das es auch in der Hauptansicht als Antwortdoc erscheint.


    Wie komme ich an das Main_doc in DB 2 ???


    Da schein in dem Script noch etwas zu fehlen ??


    Danke und Gruss


    Bernd99

  • Hallo dnotes,


    ich habe die Fehlerroutine noch einwenig verbessert:


    on error goto fehler


    xxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxx


    exit_fehler:
    Exit Sub

    fehler:

    Msgbox "Achtung bla bla ! "

    Resume exit_fehler



    Das Doc wird mittlerweile von DB 1 nach DB 2 kopiert.


    Doch wie bringe ich dem Doc bei das es jetzt das Antwortdokument eines anderen Hauptdokuments ist. Es soll ja in der DB2 wieder ein Antwortdoc werden.


    Hoffentlich hat einer eine Idee wie es geht. :)


    Gruss
    Bernd