Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Obrac am 12.02.08 - 22:23:04
-
Guten Abend, liebe Notes-Freunde,
Ich würde gerne die die Autovervollständigen-Funktion meiner Maildatenbank erweitern. Das ganze soll sich lokal abspielen, ein Domino-Server ist nicht im Einsatz. In der Memo-Maske holt sich das SendTo-Feld ja die Mailadresse aus dem lokalen Adressbuch. Meine Frage nun nach langem Gesuche und Ausprobieren: Wie kann ich eine andere, bereits existente Datenbank (Datenbank 3) für diese Adresssuche hinzuziehen? Ich habe eine Datenbank (Datenbank 3) mit einer Kontaktmaske. Die Daten in den Dokumenten, die auf dieser Maske basieren, würde ich gerne für meine Maildatenbank verfügbar machen. Man soll quasi auch einen Kurznamen in das Adressfeld der Mailmaske eingeben können und die zugehörige Mailadresse wird aus meiner Datenbank 3 geholt, quasi wie aus dem Adressbuch. Adresse und Kurzname stünden dann in Datenbank 3. Ich weiß aber nicht, wie ich diese ansprechen soll.
In Datenbank 3 sind bereits eine Menge Kontakte, die ich sehr gerne als Adressbuch übernehmen würde. Mir wäre schon geholfen, wenn jemand ein paar Stichworte nennen könnte, wie man sowas realisieren könnte.
Danke schonmal und einen schönen Abend noch,
Obrac
-
Soetwas ist ohen weiteres machbar - wenn die DB3 gewissen Konventionen genügt. Am einfachsten ist dies, wenn DB3 auf der Schablone des pubnames.ntf oder pernames.ntf basiert.
Wenn dies nicht der Fall ist, müssen gewisse Ansichten identisch (!) vorhanden sein:
($PeopleGroupsFlat)
($PeopleGroupsHier)
($Users)
HTH,
Bernhard
-
Verstehe.. hört sich machbar an ;) Müssen die Ansichten denn auf die selben Feldnamen zugreifen wie in der herkömmlichen Adressdatenbank oder sind die Spaltenwerte entscheidend? Ich werds mal ausprobieren. Die Db3 basiert auf keiner Schablone..
-
Hat geklappt. Musste ein paar Felder in meine Kontaktmaske einfügen. Vielen Dank. Das erspart das lästige Adressen suchen.
Grüße,
Obrac
-
@ Obrac
"Hat geklappt" - na herzlichen Glückwunsch, ich freue mich für Dich.
Allerdings würde ich mich noch viel mehr freuen, wenn Du Deine Vorgehensweise hier näher erläutern würdest. Da ich, Anfänger, genau das selbe Proglem habe, kann ich mit Deinen obigen Antworten bisher nicht viel anfangen.
Hast Du die drei oben genannten Ansichten nun in Deiner DB3 erstellt bzw. dort reinkopiert ?
Wie hast Du die Felder wo zugeordnet ?
Wie sieht Dein Code aus, um nun eine neue Mail zu generieren und das Adressbuch mit den Daten aus Deiner DB3 zu öffnen ?
Eine ausführliche / verständliche Antwort wäre sehr hilfreich für mein Problem (und sicher auch für alle anderen Interessierten :D )
Gruß
Micha8
-
Hallo Micha8,
das Verfahre ist einfach. Es sind drei Schritte:
- Die genannten Ansichten in Deine DB reinkopieren
- in den Ansichten die Spalten an eigene Feldnamen anpassen
- DB in names-Variable aufnehmen
Hast Du die drei oben genannten Ansichten nun in Deiner DB3 erstellt bzw. dort reinkopiert ?
Hat er bestimmt reinkopiert.
Wie hast Du die Felder wo zugeordnet ?
Im Designer
Wie sieht Dein Code aus, um nun eine neue Mail zu generieren und das Adressbuch mit den Daten aus Deiner DB3 zu öffnen ?
Kein Code notwendig, klappt wenn die o.g. Schritte richtig abgearbeitet werden.
Gruß
Axel
-
Hallo WildVirus,
also die ersten zwei Punkte habe ich schon erledigt. Ich kann innerhalb des Designers auch die Ergebnisse schon sehen. :)
Aber was genau meinst Du nun mit dem dritten Punkt "DB in names-Variable aufnehmen" ? Kannst Du das näher erläutern ?
Danke und Gruß
Micha8
-
Ja, einfach in den Benutzervorgaben hinter (!!!!!) names.nsf eintragen
-
Hallo,
oje, ich glaube jetzt habe ich ein Problem. Meine Datenbank ist eigentlich eher eine Dokumenten-DB und nicht nur eine Adress-DB. Die Adressen haben sich nach und nach angehäuft und dazu "gesellt". Die Datenbank liegt übrigens auf dem Server und nicht lokal ! Was mache ich nun ? Ich kann wohl schlecht in den Benutzervorgaben unter "lokale Adressbücher" eine servergespeicherte DB angeben, oder ?
-
... wenn nur du die DB benutzt kannst du dir eine lokale Replik erstellen, und die dann verdrahten...
Toni
-
dann musst du die DB direkt in der notes.ini eintragen
names=names.nsf, servername!!verzeichnis\datei.nsf
das geht aber wie gesagt nur direkt in der notes.ini. Das wird dann zwar unter "lokale Adressbücher" so angezeigt, das dort einzugeben, geht aber nicht....
Jo
-
Nur als Hinweis :
Bei Serverrezertifizierungen hat diese Methode eine sehr unschöne Auswirkung, da der Servername in der INI natürlich nicht automatisch upgedatet wird. Die Benutzer bekommen dann lustige Fehlermeldungen und man sucht ggf. doch etwas länger nach dem Fehler.
Wollte ich nur anmerken, denn wir sind letztes Jahr voll in dieses "Falle" getappt ;)
-
stimmt, wenn die DB aus irgendeinem Grund nicht (mehr) gefunden wird oder Rechte fehlen, kommen so Fehlerhinweise von wegen "Sie sind nicht berechtigt, Mails über diesen Server zu versenden...." oder sowas in der Art hab ich da im Hinterkopf... ;D
-
Jopp. Wir haben schon ein wenig gebraucht, bis wir den Fehler gefunden hatten ^-^
-
Ich bin nicht der einzige, der die DB nutzt. Allerdings sind es nur rund 10-15 Personen, die Zugriff darauf haben. Die anderen Mitarbeiter haben und sollen auch keinen Zugriff darauf bekommen. Ich finde es nicht so gut, bei so vielen Leuten nun die ini Datei zu ändern, u.a. auch aus o.g. Gründen. Kann man stattdessen vielleicht serverseitig meine DB als Adress-DB deklarieren, irgendwie ? Oder gibt es eine Alternative ?
Ich hätte da noch eine andere Idee: Innerhalb meiner DB in der Adressansicht einen Button in die Schaltflächenleiste aufnehmen. Bei Klick darauf soll das Dialogfenster Adressbuch aufgehen, allerdings dann befüllt mit den Daten aus meiner DB. Nach Wahl der Adressen durch Klick auf OK sollen die Daten dann in einer neuen Email eingefügt/übernommen werden. Ist so was realisierbar ?
Zwischendurch mal ein Danke an alle fleißigen Helfer ...
Gruß
Micha8
-
... was spricht gegen die lokale Replik - ist das Adressbuch so groß? Ansonsten könnte man die lokale Replik mit Replikationsformeln auch im Umfang begrenzen...
Toni
-
Wie ich schon weiter oben beschrieben habe, handelt es sich nicht nur um eine Datenbank mit Adressen, sondern hauptsächlich eine Dokument-DB. Die Größe beträgt mittlerweile rund 8 GB !
Gibt es eine andere Möglichkeit die "Adressdaten" hieraus als Datenquelle für ein "Adressbuch" zu nutzen ?
-
Ansonsten könnte man die lokale Replik mit Replikationsformeln auch im Umfang begrenzen
Als Replikationsformel zum Beispiel
SELECT Form = "Person"
Damit hast du in deiner Replik nur noch die Personendokumente...
Toni
-
@Micha: Entschuldigung, hast natürlich recht, ich hätte meine Vorgehensweise erklären sollen. Die anderen haben dir aber, denke ich, schon den besten Lösungsweg genannt. Eine lokale Replik, die sich einseitig aktualisiert, dürfte helfen.
-
Da sehe ich zwei Möglichkeiten, die Micha weiterhelfen können:
- selektive Replik wie schon erklärt
- die reinen Adressinfos per Agent ins persönliche NAB als "Kontakte" zu kopieren. Wir haben so etwas für einen kleinen Teilnehmerkreis (5 von 5.000) gemacht. Es wurden alle Dokumente in einer spezielle Kategorie gepackt, so dass der Anwender sie direkt erkenne kann. Außerdem stand in einem Feld "QuellDB" die Replikid der Ursprungs-DB. Da die 5 Roaminguser sind, konnte der Agent periodisch auf dem Server seine Arbeit machen und morgens hatten die 5 Mitarbeiter von 80.000 Dokumenten die 150 mit Adressdaten lokal.
-
... bei deiner 2. Lösung musst du den Agent immer wieder laufen lassen - bei der Replik läuft das im Hintergrund...
Toni
-
Hallo Toni,
...konnte der Agent periodisch auf dem Server seine Arbeit machen...
ist doch auch im "Hintergrund". Der AW merkt es nicht. Beim Anmelden erhält er als Roaminguser doch sein persNab automatisch repliziert.
Er muss nichts tun, der Server macht alles.
Aus AW-Sicht das RundUmSorglosPaket und für den Entwickler wars ne Fingerübung.
-
... der Aufwand ist nur deutlich höher.
Zum einen muß der Agent bei dir lokal liegen - und das muß in den Benutzereinstellungen aktiviert werden. Zum anderen mußt du den Agenten erst mal schreiben - also welche Dokumente sind neu - welche müssen aktualisiert werden, weil sich was geändert hat - welche sollen eventuell gelöscht werden, weil sie nicht mehr relevant sind - gibt es aus welchen Gründen auch immer Duplikate - usw...
Die Lösung funktioniert dann recht brauchbar, wenn sich in den Adressen nicht viel ändert. Hat den Vorteil, daß du alles in einer DB lokal liegen hast...
Das alles macht bei meiner Lösung der Replikator - der läuft ohne eine weitere Zeile Code - nur als Replikationsformel hinterlegt - und eben in einer separaten DB - so aktuell die Daten in der Quelle eben gehalten werden - und in einer Richtung vom Server die Daten bezieht...
Toni
*** edit ***
Sorry - hab den Satz mit dem Roaming überlesen - da verhält es sich etwas anders - dafür gibt es beim Roamimg andere Probleme - und von denen bin ich per selektiver Replikation unabhängig...
Toni
-
Hallo Toni,
... der Aufwand ist nur deutlich höher.
Das bestreite ich nicht
Zum einen muß der Agent bei dir lokal liegen - und das muß in den Benutzereinstellungen aktiviert werden. Zum anderen mußt du den Agenten erst mal schreiben - also welche Dokumente sind neu - welche müssen aktualisiert werden, weil sich was geändert hat - welche sollen eventuell gelöscht werden, weil sie nicht mehr relevant sind - gibt es aus welchen Gründen auch immer Duplikate - usw...
Bei "periodisch auf dem Server" läuft er eben nicht lokal.
Bezüglich "welche Dok" haben wir aufgrund der geringen Anzahl einfach alle Adressinfos neu geschrieben und alte Doks gelöscht. Da die Änderungsfrequenz nicht so hoch war, lief er nur ein paar Minuten.
...dafür gibt es beim Roamimg andere Probleme...
Wir haben damit keine nennenswerten Probleme.
-
Guten Morgen,
ich mußte erstmal 'ne Nacht drüber schlafen. Also, ich habe mir das mal mit der notes.ini durch den Kopf gehen lassen und muß nochmal nachfragen.
1) Wenn ich in der lokalen notes.ini meine DB mit angeben möchte muß das wie aussehen, so?:
NAMES=names.nsf,ServerName/bereichname!!Adress\Kundenadressen.nsf
Wäre das so korrekt, müssen die doppelten Ausrufezeichen dazwischen ?
2) Wie schreibe ich das für eine (testweise) lokal liegende DB ? Und was heißt überhaupt lokal - in welchem/n Ordner/n werden diese DBs dann gesucht ?
3) Wie kann ich nun meine Adressdaten für eine neue Email verwenden ? Nur durch schreiben direkt im Empfängerfeld in einer neuen Email ? Oder Adressbuchdialogfenster öffnen ? Aber welches Adressbuch muß ich dann wählen ?
Bekomme ich die Daten meiner DB in dem Dialogfenster unter "Adressbuch wählen" nur rein, wenn ich meine DB anstelle in der lokalen in der server notes.ini eingebe ?
-
zu 1.
names=names.nsf ist standard und gibt die lokale names.nsf an,
deshalb names=names.nsf, servername!!adress\kundenadressen.nsf
was du da mit bereichname meinst ?! zwei Ausrufezeichen dazwischen ist korrekt
zu 2.
wenn die testweise lokal liegt, kannst du die direkt in den Benutzervorgaben auswählen, da felhlt dann eben servername!! davor
zu 3.
das wird die als zusätzliches Adressbuch angezeigt, Eingabe wie bei allen anderen Adressen auch (wenn die entsprechende Ansicht drin ist!), direkt eintippen oder Adreßbuch auswählen, dann Adresse auswählen.
Jo
-
Hallo,
also bei mir klappt das einfach nicht. Ich bekomme meine lokale DB nicht eingebunden. Ich habe weder ein neues Adressbuch in der DropDownListe noch kann ich direkt in einer neuen Mail die Namen anfangen zu schreiben.
Habe in der lokalen INI stehen: NAMES=names.nsf,meineDB.nsf
Habe schon geschaut, meiner Meinung nach aber die nötigen Ansichten auch in meiner DB vorhanden: ($PeopleGroupsByLang) ($PeopleGroupsCorpHier) ($PeopleGroupsFlat) ($PeopleGroupsHier) und ($Users) und im Designer kann man die Ergebnisse auch sehr schön sehen. Nur wie kriege ich das nun ins reale Notes ??? Bin echt am verzweifeln :'(
-
Hallo !
ich muß meine Aussage von vorhin widerrufen. Ich bin nochmal alles in Ruhe durchgegangen. Und auf einmal klappt es :D
Ich habe ein neues Adressbuch im DropDownFeld zur Verfügung.
Kann aber ehrlich gesagt nicht sagen, was ich anders gemacht habe. Wie dem auch sei, ich denke so kann ich damit arbeiten.
Vielen vielen Dank.
Gruß
Micha8
PS: Das Forum kann ich nur empfehlen.
-
... manchmal muß man bei Notes auch etwas warten können - es ist keine Echtzeitanwendung - und Adressbücher mögen erst verdaut werden ;D ;)
Toni
-
Guten Morgen zusammen,
bevor ich nun die Sache für einige Kollegen scharf schalte, habe ich das ganze zunächst nochmal bei mir getestet. Dabei ist mir noch etwas aufgefallen.
Wenn ich nun in einer neuen Email direkt im Adressfeld anfange zu schreiben, z.B. "Meier", dann sucht Notes im Hintergrund in den Adressbüchern nach diesem Namen, wird ein Name gefunden, wird er sofort in dieser Email ergänzt (wenn er eindeutig ist, hat er mehrere gefunden geht ein Popup auf zur Auswahl des gewünschten Meier) ABER:
anscheinend bleibt er bei Auffinden eines Treffers in einem Adressbuch stehen und schaut gar nicht erst weiter in die Anderen.
Wenn ich im Adressbuch-Dialogfenster nachschaue steht in dem DropDownFeld von oben nach unten geselen: mein persönliches Adressbuch, meine nun neu eingebundene Datenbank, das firmeninterne Mitarbeiter-Adressbuch.
Es gibt auch bei uns in der Fa. einige Mitarbeiter die Meier heißen. Habe nun testweise einen Dummy-Meier in meinem persönlichen Adressbuch angelegt, eine neue Mail erstellt und den Empfänger geschrieben, er hat sofort den Namen vervollständigt mit dem Eintrag aus meinem pers. Adressbuch. Danach habe ich den Dummy wieder gelöscht und erneut in einer neuen Mail den Empfänger geschrieben - und wieder hat er nur in einem Adressbuch geschaut, diesmal das 2. in der o.g. Reihenfolge, nämlich meine DB. Warum schaut er nicht weiter ??
Kann man das irgendwie / wo einstellen ?
Gruß
Michael
-
Guten Morgen nochmal,
in meinem vorigen Post hatte ich eigentlich noch eine knifflige Frage gestellt. Kann denn niemand etwas dazu sagen ?
Gruß
Michael
-
Kann denn niemand etwas dazu sagen ?
... anscheinend nicht - eventuell könnte so etwas mit Notes.ini-Parametern eingestellt werden...
Toni
-
Die einzigste mir bekannte Ecke, wo sich diese Nachschlagefunktion konfigurieren lässt, ist innerhalb der Arbeitsumgebung.
Auf dem Reiter Mail findest du die Einstellmöglichkeiten für die Schnelladressierung.
Evt. bringt es dir was, wenn du bei "Empfänger nachschlagen" die Option "Alle Adressbücher durchsuchen" einstellst.
Axel
-
... ich seh' schon - etwas mehr Admin' würde mir gut tun ;D ;D :-\
Toni
-
@ Axel
Danke für den Hinweis. Hörte sich zunächst sehr gut an. Habe es sofort ausprobiert, doch leider funktioniert es immer noch nicht so wie ich es gerne hätte. Sobald ich anfange einen Namen zu schreiben und Enter drücke geht ein Pop-Up auf und es werden nach wie vor nur die Empfängernamen aus der ersten DB aufgelistet, in der eine Übereinstimmung gefunden wurde. Er schaut nicht weiter in die anderen (nachfolgenden) servergespeicherten DBs. :(
Trotzdem Danke.
Bin weiterhin an Vorschlägen interessiert
-
... auch nach einem Reboot?
Toni
-
Hallo,
habe mal verschiedene Tests durchgeführt. Erste Spalte, ob der Name Meier im lokalen Adressbuch vorhanden ist oder nicht. Zweite Spalte ob meine DB als Adressbuch eingebunden oder nicht. Dritte Spalte die Einstellung (wie von Axel vorgeschlagen) oder nicht). Letzte Spalte zeigt die Ergebnisse.
Kann man das irgendwie nachvollziehen, verstehen wieso Notes so arbeitet ?
Gruß
Michael
PS: Reboot oder "nur" Neustart von Notes - keine Unterschiede
-
Wenn Du den Namen eingegeben hast und F9 drückst, dann kommt -bei nicht eindeutigen- Namen die Abfrage hoch, welcher denn der richtige wäre.
Voraussetzung: In der Arbeitsumgebung "Alle durchsuchen" aktiviert.
Wenn ich Notes neu hochziehe, kommt immer -sofern nicht schon via Policy gesteuert- in der Arbeitsumgebung die Einstellung gem. Screenshot zum Einsatz.
Schönen Abend noch
Axel
-
Guten Morgen,
die ganze Sache scheint ganz schön kompliziert zu sein. Wenn ich nun, wie WildVirus sagt, in der Arbeitsumgebung auf "Alle durchsuchen" stelle, warum liefert Notes in Zeile8 meiner Tabelle nicht auch die Meiers, die es im Firmen Adressbuch gibt ?
Ich glaube ich geb es auf. Manche Dinge im Leben kann bzw. muß man nicht verstehen....
Danke für die zahlreichen Antworten.