Autor Thema: Datenbanken zusammenführen  (Gelesen 1871 mal)

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Datenbanken zusammenführen
« am: 01.07.05 - 10:41:25 »
Hallo Zusammen,

ich versuche zwei Datenbanken zu einer zsuammenzuführen.
Die Dokumente in der Datenbank X sollen als Hauptdokumente gelten.
Soweit passt es auch.
Die Dokumente der DB Y sollten Antwortdokumente sein.
Habe nun zwei Ansichten. In der einen sind die Hauptdokumente und in der Anderen die Antwortdokumente.
Allerdings haben die keine Referenz zueinadner.
Beide haben als identisches Feld "Thema"
Das heißt, irgendwie müsste ich nach dem Thema die Referenz bilden, so dass die Antwortdokumente ihre zugehörigen Hauptdokumente finden.
Habt Ihr eine Idee, wie ich das am besten machen kann??

danke Euch
Selin
Windows XP
Notes 6.5

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Datenbanken zusammenführen
« Antwort #1 am: 01.07.05 - 10:48:06 »
Hallo,

das geht wohl nur mit LS:
In der Antworten-DB solltest du eine sortierte Ansicht nach Thema haben.
Je Hauptdokument holst du dir dan per GetAllDocumentsByKey( sKey , True ) die Antwortdokumente in eine Collection, kopierst das Dokument in die Zieldatenbank und machst es anschließend .MakeResponse zu deren Antworten.

Dabei mußt du beachten, daß die Maske der Antwortdokumente in der anderen Datenbank als Designelement enthalten ist und als Antwort - oder Antwort auf Antwort deklariert ist.

Toni
Grüßle Toni :)

Offline fritandr

  • Global Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 742
  • Geschlecht: Männlich
  • Höre nie auf besser zu werden...
    • KAMMACHI Consulting GmbH
Re: Datenbanken zusammenführen
« Antwort #2 am: 01.07.05 - 11:08:17 »
Hallo Selin,

spannende Frage dabei ist dann noch, ob es denn in der Datenbank Y Antwortdokumente gibt, für die es in der Datenbank X keine Hauptdokumente gibt?

Ist das nicht der Fall, passt Tonis Vorschlag perfekt. Falls doch, muß man sich für diese Dokumente noch was überlegen.

Viele Grüße
Andreas
Andreas Fritz

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Datenbanken zusammenführen
« Antwort #3 am: 01.07.05 - 12:06:48 »
Vielen Dank für die Antworten.
Werde es mal so versuchen...

Liebe Grüsse
Selin
Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Datenbanken zusammenführen
« Antwort #4 am: 05.07.05 - 10:38:00 »
Hallo,

habe es jetzt versucht.
Habe eine Ansicht, in der die Hauptdokumente und die Antwortdokumente auf gleicher Eben drin stehen.
Nach diesem Prinzip

Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim docA As NotesDocument
   Dim docB As NotesDocument
   Set db = session.CurrentDatabase
   Set view = db.GetView( "Alle" )
   Set docA = view.GetFirstDocument
   Set docB = view.GetNextDocument( docA )
   
   Call docB.MakeResponse( docA )
   docB.Form = "Umlauf"
   Call docB.Save( True, True )
   End Sub

würde ich es versuchen, Antwortdokumente zuzuordnen.
Allerdings habe ich ein Problem:
Es existiert nicht zu jedem Hauptdokument ein Antwortdokument.
Die erste Spalte ist die "Subject" Spalte.
Diese beinhaltet eine Nummer. Dieses Feld gibt es in beiden Masken.
Also ich hätte die Möglichkeit zu prüfen, ob Subject identisch ist und wenn ja, soll er mir das 2. Dokument in der Ansicht als Antwortdokument zum drüberliegenden Dokument machen.
Habe es versucht aber ich krieg das nicht hin.

Bitte um Hilfe

Danke + Gruss
Selin
Windows XP
Notes 6.5

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Datenbanken zusammenführen
« Antwort #5 am: 05.07.05 - 11:24:20 »
Hi,

das könnte so aussehen:

...
Set db = session.CurrentDatabase
Set view = db.GetView( "Alle" )
Set docA = view.GetFirstDocument
Set docB = view.GetNextDocument( docA )

If docA.Subject(0) = docB.Subject(0) Then
  Call docB.MakeResponse( docA )
  docB.Form = "Umlauf"
  Call docB.Save(TRue, True)
End If
   
...

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

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Datenbanken zusammenführen
« Antwort #6 am: 05.07.05 - 14:41:09 »
Hi Axel,

genauso hatte ich es auch getestet, allerdings ohne die (0) ;-)

Aber da tut sich nix, wenn ich das so ausführe. ???
Windows XP
Notes 6.5

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz