Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: DatenDuck am 07.11.05 - 10:20:26

Titel: DB Quellinformationen beim Erzeugen auslesen?
Beitrag von: DatenDuck am 07.11.05 - 10:20:26
Hallo Forum,

mit dem Befehl "@Command([FileNewDatabase])" wird das Fenster zum Erzeugen einer neuen DB geöffnet.

Die Frage ist nun, gibt es eine Möglchkeit dieses Fenster, oder etwas vergleichbares folgendermaßen zu nutzen.
Ein Benutzer soll über einen Knopf eine neue DB anhand eines Templates erzeugen können. Dabei soll er "wie üblich" DB Name, DB Pfad und Servername angeben (bzw. Pfad und Servernamen auswählen). Diese vom Benutzer angegeben Daten müssen, nachdem die DB korrekt erzeugt wurde in entsprechende Felder eines Dokuments geschrieben werden.
Ich kenne leider keinen Weg mit dem man schon beim Erzeugen DB Informationen auslesen könnte, aber es muss irgendwie gehen, denn etwas sehr ähnliches macht z.B. Teamstudio bei der Konfiguration von CIAO!.

Ich würde mich sehr über Tipps hierzu freuen.
Vielen Dank schon mal.
Bis dann,
-Moritz
Titel: Re: DB Quellinformationen beim Erzeugen auslesen?
Beitrag von: Gandhi am 07.11.05 - 11:16:50
Per Hand geht das schon:
Du öffnest in Deiner Verwaltungs DB einfach ein Dokument und gibst dort Pfad, Server und Template etc. an.
Dann baust Du noch einen entsprechenden Button, der die DB erzeugt. Das geht mit DB.createfromtemplate.
Oder habe ich hier was falsch verstanden?
Titel: Re: DB Quellinformationen beim Erzeugen auslesen?
Beitrag von: DatenDuck am 07.11.05 - 11:30:15
Ja, per Hand so wie Du das auch beschrieben hast, wüsste ich auch einen Weg.. Allerdings ist das ja wenig komfortabel.... Man muss alles in Grund und Boden prüfen bei dieser Methode, da der Mensch ja Gülle eintragen kann/wird..
Ich hatte mir erhofft, dass es unter Umständen vielleicht Notes Bordmittel gibt, die das können... Das Fenster für neue DBs z.B. lässt dem Benutzer ja nicht so viele Möglichkeiten, Basisinformationen falsch aus zuwählen..

Titel: Re: DB Quellinformationen beim Erzeugen auslesen?
Beitrag von: Gandhi am 07.11.05 - 11:34:01
Evtl brauchst Du das auch alles gar nicht sondern kannst die Catalog.nsf ändern?
Was willst Du eigentlich damit tun?
Wo kann der User denn Blödsinn eintragen? Die Server kannst du aus einer Liste übernehmen - die Datenpfade eigentlich auch (wenn Ihr das strukturiert ablegt ist das kein Problem)
Bleiben nur noch die Templates - die kann man per Agent zusammenstellen oder eben auch händisch pflegen.
Titel: Re: DB Quellinformationen beim Erzeugen auslesen?
Beitrag von: Mark³ am 07.11.05 - 11:50:10
ihr habt doch bereits alles gesagt:

1.
Code
FIELD TemplateTitle := TemplateTitle;
FIELD TemplateServer := TemplateServer;
FIELD TemplateFilename := TemplateFilename;
x := @Prompt( [ChooseDatabase];"";"";"";"");
@If(@Elements(x) = 1; @Return(""); @Success);
server := @GetMembers( x; 1);
filename := @GetMembers( x; 2);
title := @GetMembers( x;3);
@SetField("TemplateTitle"; title);
@SetField("TemplateServer"; server);
@SetField("TemplateFilename"; filename)

2.
Code
DB.createfromtemplate

Möglicherweise geht 1. auch mit Skript, habe ich nicht mehr im Kopf.
Titel: Re: DB Quellinformationen beim Erzeugen auslesen?
Beitrag von: DatenDuck am 07.11.05 - 12:04:19
Hi,

das was Du bei 1. sagtest, ist doch mehr oder weniger vergleichbar mit diesem Thema hier: http://atnotesde.h685426.serverkompetenz.net/index.php?topic=11800.0

Hiermit erzeuge ich ja keine neue DB sondern wähle eine existierende aus..
Ich bräuchte aber die Informationen einer DB direkt nach dem erzeugen, sprich, wie heisst die neue DB, wo liegt sie usw.

Momentan scheint es so, als ob man keinerlei Rückmeldung bekommt, dass eine neue DB vom Benutzer manuell erzeugt wurde... Demnach fehlt auch jedes evtl. Identifikationsmerkmal, mit dem man dann nach dem Erzeugen doch noch irgendwie an die neue DB käme..
Titel: Re: DB Quellinformationen beim Erzeugen auslesen?
Beitrag von: Mark³ am 07.11.05 - 13:22:24
aha, nun verstehe ich, was du meinst. Ich habe das leider nicht selbst geschrieben aber wir nutzen hier sowas um neue DBs zu erstellen per Maske.
Hat man denn nach dem Erstellen der neuen Datenbank keinen Zugriff mehr auf das Objekt?
Wir machen das so:

Code
Dim dbNeu As NotesDatabase
Dim dbTemplate As New NotesDatabase(docThis.TemplateServer(0), docThis.TemplateFilename(0))
Set dbNeu = dbTemplate.CreateFromTemplate(docThis.TargetServer(0), docThis.Pfad(0)+DocThis.Dateiname(0), True)

Danach hat man doch über dbNeu die DB im Zugriff, oder übersehe ich hier etwas? Und öffnen kann man die über die Pfadangaben:

Code
Call ws.OpenDatabase(docThis.TargetServer(0), docThis.Pfad(0)+docThis.Dateiname(0))
Titel: Re: DB Quellinformationen beim Erzeugen auslesen?
Beitrag von: DatenDuck am 07.11.05 - 14:15:41
Das Prinzip setzt aber voraus, dass in docThis die items entsprechend vorher korrekt gefüllt wurden. Sprich, bevor die DB erzeugt werden kann muss der Benutzer manuell einen korrekten Pfad angeben.
Es wäre hilfreicher wenn das Prinzip genau andersrum wäre, also der Benutzer erzeugt "wie normal" die DB und danach hat man die vom Benutzer getroffenen Eingaben aus der "DB Erzeugungsmaske" in entsprechenden Feldern. Der Grund dafür ist, dass der Benutzer beim DB Erzeugen anhand Notes Bordmitteln, keine falschen Pfade, bzw. Servernnamen auswählen kann... In Freitextfelder kann er sehr leicht Schrott schreiben. Es wird so erst beim Erzeugen auf Fehler geprüft und nicht vorn vornherein die Fehlerquellen minimiert..
Nachbauen kann man sich die Maske ja auch nicht... Oder zumindest weiss ich nicht wie, denn wie z.B. liest man die Datenpfade der Server aus?