Autor Thema: neue DB aus Template mit LS erzeugen  (Gelesen 5157 mal)

Offline FrankLU

  • Aktives Mitglied
  • ***
  • Beiträge: 116
  • Geschlecht: Männlich
neue DB aus Template mit LS erzeugen
« am: 21.08.13 - 18:47:42 »
Hallo!

Ich komme mit der Erstellung einer Datenbank aus einem Template nicht klar. Und die Beiträge hier im Forum lösen mein Problem leider nicht.

Aufgabe:
Ich habe ein Datenbank-Template (.ntf), aus dem heraus eine Datenbank (.nsf) erzeugt wurde. In diese Produktiv-Datenbank laufen Kundenaufträge hinein. Nun möchte ich für die Produktiv-Datenbank (.nsf) eine Archiv-Funktion basteln, die mir die erledigten Kundenaufträge in eine Archiv-Datenbank schreibt und zwar in der Gestalt, dass ich für jedes Jahr eine eigene Archiv-Datenbank habe. Dazu sollte die Jahreszahl im DB-Namen und DB-Titel auftauchen. Da der Aufbau aller Datenbanken der gleiche ist, will ich natürlich die (neue) Archiv-Datenbank aus dem Template (.ntf) erstellen, das auch die Produktiv-Datenbank nutzt.

Problem:
Die Anweisung db.CreateFromTemplate hat mir zu wenig Parameter.  :-\ Ich müsste doch den Server und den Pfad/DB-Namen für die Template-Datenbank angeben können und den Server und Pfad/DB-Namen der neuen Archiv-Datenbank.
Mit Set dbArch = db.CreateFromTemplate("Server", "neuerDB-Name.nsf") erstellt LS zwar eine neue Datenbank, aber eben keine leere Datenbank, da auch alle Dokumente von db mitkopiert werden. Ich will aber eine leere Archiv-Datenbank, um sie selber zu füllen.

Frage:
Gibt es eine Lösung für das Problem? Es muss doch möglich sein, aus einem (echten) Template eine neue DB zu erzeugen... Ich frage das auch vor dem Hintergrund, weil ich evtl. für die Archiv-DB's ein eigenes Template verwenden will, in dem z.B. alle Schaltflächen und Funktionen zur Bearbeitung von Dokumenten entfallen, ebenso wie alle dann nicht gebrauchten Ansichten. Ansonsten könnte ich auch db.CreateCopy benutzen.

Irgendwie machen die beiden erwähnten Methoden das, was man von der jeweils anderen erwartet.  ;)

Danke im Voraus für Eure Ideen!
Frank Lohöfer
MD Medicus Holding GmbH
Client (User): 12.0.1
Client (Admin): 12.0.1
Server: 9.0 auf Linux

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: neue DB aus Template mit LS erzeugen
« Antwort #1 am: 21.08.13 - 19:29:51 »
Hallo,

Welche Datenbank ist denn bei db (Set DbArch = db.CreateFromTemplate(...) gesetzt?

In db muss das Template gesetzt sein.


Andreas

Offline Jens Winkelmann

  • Junior Mitglied
  • **
  • Beiträge: 53
  • Geschlecht: Männlich
  • Jens Winkelmann
    • PAVONE AG
Re: neue DB aus Template mit LS erzeugen
« Antwort #2 am: 23.08.13 - 22:11:15 »
CreateFromTemplate kopiert alle vorhandenen Dokumente mit.
Die Methode ist aber dafür gedacht, dass man sie auf eine NTF Datenbank ausführt.
In einer NTF befinden sich ja sowieso keine Dokumente oder höchstens diejenigen,
die man in den neu erstellten Datenbanken haben möchte (Beispiel vorgegebene Einstellungsdokumente).

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: neue DB aus Template mit LS erzeugen
« Antwort #3 am: 23.08.13 - 22:14:53 »
Das passiert aber auch, wenn man das normal von einem Client aus ausführt (seit R6 IIRC). Und das ist ja auch gut so - nur muss man eben wirklich ein Template benennen (was der Name der Methode ja sonst kaum vermuten lässt  ;))

Bernhard

Offline FrankLU

  • Aktives Mitglied
  • ***
  • Beiträge: 116
  • Geschlecht: Männlich
Re: neue DB aus Template mit LS erzeugen
« Antwort #4 am: 29.08.13 - 14:01:12 »
Hallo!

Inzwischen habe ich es hinbekommen. Man muss zwar etwas mit den Datenbanken jonglieren, aber nun gut:

Code
Set dbTempl = New NotesDatabase(NameTemplateServer, PfadNameTemplateDB)
Set dbArch = dbTempl.CreateFromTemplate(NameArchServer, PfadNameArchDB, True)
dbArch.Title = "Archiv " & Jahr
dbArch.Categories = "Archivdatenbank"
Set dbArch = New NotesDatabase(NameArchServer, PfadNameArchDB)

Die Definitionen der Objekte habe ich mir hier im Code-Schnipsel gespart. Die String-Werte der Variablen werden im Declarations-Teil definiert und im Initialize-Teil aus einem Parameter-Dokument der zu archivierenden Datenbank eingelesen.

Danke für die Unterstützung!
Grüße
Frank
« Letzte Änderung: 29.08.13 - 14:12:50 von FrankLU »
Frank Lohöfer
MD Medicus Holding GmbH
Client (User): 12.0.1
Client (Admin): 12.0.1
Server: 9.0 auf Linux

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz