Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: shawn am 17.09.07 - 13:42:20
-
Hallo,
momentan stehe ich vor folgendem Problem: Ich habe eine Datenbank mit Elementen darin, wobei in einem Feld ein eindeutiger schlüssel steht (zB MU3284W), nun gibt es in einer anderen Datenbank auch ein Element mit selbigem Schlüssel, von dem ich ein Rich Text Feld in die andere Datenbank kopieren möchte. (am besten per Knopfdruck).. Dabei sind die Anzahl der Elemente beliebig. (sprich: wenn nur 5 zutreffende elemente in DB1 sind, dann sollen auch nur die entsprechenden 5 kopiert werden)...
Da müsste wohl ein kleines Script geschrieben wären - ich wäre sehr dankbar über tipps wo ich darüber recherchieren soll und wie ich damit am besten anfange
2. Problem dabei ist, dass ich keinen zugriff habe, die Datenbank Nr2 im Domino designer zu öffnen und mir daher die struktur unklar ist. ich habe die datenbank auf der festplatte. kann ich darauf vollzugriff bekommen?
vielen dank schonmal im voraus, freue mich über jede antwort!
-
Hallo Unbekannte(r),
wie weit sind inzwischen deine Notes-Kenntnisse gediehen ?
Wenn Du nicht die Grundlagen von Script etc beherrschst, dann wird es wohl am besten sein, externe Unterstützung zu holen. Oder zu lernen..... ;D
-
Hi,
also ich habe schon einfache Datenbanken mit dem Domino designer erstellt, jedoch noch so gut wie gar kein scripting benutzt. Programmieren an sich kann ich - von daher hoffe ich, dass es sich größtenteils auf die syntax beschränkt
Daher läufts wohl auf lernen raus..
ist meine Anforderung was komplizierteres oder eher simpel?
-
1) Du willst Dir die Klassen bzw. Methoden
notesView.GetDocumentByKey
notesDocument.GetItemValue
notesRichTextItem.AppendRTItem
ansehen.
2) Du benötigst zumindest Reader-Access auf die DB, welche Du auslesen sollst.
Die Auftraggeber sollen Dir entweder die Doku bezgl. der zweiten DB geben oder Dir Designer-Zugriff auf die DB bzw. eine Kopie davon (man entwickelt ja eh nie mit dem Original ;) ) gewähren.
Mit einer lokalen Kopie kannst, musst Du aber nicht Vollzugriff bekommen können. Dein lokaler Admin berät Dich diesbezüglich sicher gerne. Vorzuziehen ist aber die Lösung mit Doku bzw. Zugriff (siehe oben).
-
OK das ist eigentlich alles einfach:
- Schlüssel in Script holen. (uidoc.document.getfirstitem("Feldname") oder uidoc.fieldgettext("Feldname")
- Andere Datenbank öffnen. set opendb = session.getdatabase
- View in anderer Datenbank holen. set view = opendb.getview("Viewname")
- Alle Dokumente mit dem Key aus der View holen. Getcollection = view.getalldocumentsbykey .....
- RTItem erstellen
- Durch die Collection loopen
- alle RTItems die du da brauchst holen und in dein neues RTItem schreiben.
- Speichern.
- UIdoc schließen
- UIdoc wieder öffnen damit das veränderte RTItem angezeigt wird.
Fertig
Und zu 2 hat Martin schon alles gesagt.
-
1) Ist eher eine "simple" Anforderung, wenn man weiß, was man tut.
2) Notes-Scriptprogrammierung ist ein wenig mehr als "Syntax". Aber das wirst Du noch merken. :)
2) Weiters, lieber "shawn" (of the dead?) würden wir es begrüßen (http://atnotes.de/projekte/bp/team/tmc/_forumsregeln/rules001.html#22), wenn Du in Deine Signatur zumindest Deinen Vornamen eintragen würdest. Danke.
-
- UIdoc schließen
- UIdoc wieder öffnen damit das veränderte RTItem angezeigt wird.
Nicht gleich alles verraten. ;) :D
-
von den toten musste ich gott sei dank bisher nicht auferstehen, aber das mit der signatur lässt sich einrichten ;)
was das script angeht, werde ich jetzt mal daran versuchen das hinzubekommen ;)
zu den zugriffsrechten: von einem Admin da irgendwelche rechte zu bekommen ist absolut ausgeschlossen. Ich habe ein lokale Kopie der Datenbank, aber kann die rechte daran nicht ändern..
-
Du musst zumindest irgendwo die Struktur der Datenbank herhaben. Sprich ....
Welche View kannst du nutzen, wie heist diese und was ist der Alias wenn es einen gibt?
Wie heißen die zu kopierenden Felder, welchen Typ haben die, sind das wirklich Richtext Felder?
-
Danke nochmal für die Hilfe! Ihr habt mir wirklich geholfen!