Domino 9 und frühere Versionen > ND8: Entwicklung
alle Adressbucheinträge von einem Adressbuch in ein zweites kopieren
SamB:
--- Zitat von: klauss am 13.11.12 - 11:07:06 ---warum ?
--- Ende Zitat ---
richtige Frage. Wie gesagt, wir haben ein Script in KIX entwickelt, das einen verkorxten Notes Client neu "initialisiert", sprich die Userkonfiguration. Hierzu wird das alte Notes Data umbenannt und Lotus Notes via COM Aufrufe neu konfiguriert. Lokales Replica, Connection Documents, Archive, etc. Was mir nun noch fehlt, ist die Möglichkeit, die alten Adressbucheinträge ins neu erstellte Names.nsf zu übernehmen. Und ja, ich oute mich, dass ich zwar rel. gut mit KIX und VBA scripten kann, aber von NotesScript nicht sehr viel Ahnung habe.
Es gäbe ja die Möglichkeit, die lokalen Adressen mit dem Server zu replizieren, sprich dies via Policy zu erzwingen, aber aus einem mir derzeit nicht plausiblen Grunde scheuen sich unsere Notes Admins, diese Policy zu aktivieren...
ascabg:
--- Zitat ---Es gäbe ja die Möglichkeit, die lokalen Adressen mit dem Server zu replizieren, sprich dies via Policy zu erzwingen
--- Ende Zitat ---
Was meinst Du denn damit.
Im 8-er Client hast Du die Moeglichkeit automatisiert die Adressen (Personen, Gruppen) aus dem pers. Adressbuch (names.nsf im DATA-Verzeichnis) in das Mailfile zu synchen.
Damit kommst Du aber nicht an die Daten aus dem 'alten' Adressbuch heran.
Andreas
SamB:
--- Zitat von: ascabg am 13.11.12 - 11:11:09 ---Hallo,
Na wenn die Adressbucher imme rim gleichen Pfad liefen ist das doch auch mit dem Script kein
Hexenwerk.
Mal so als Stichwort sei genannt: NotesDocument.CopyToDatabase
Andreas
--- Ende Zitat ---
Das war der Hint, den ich gebraucht habe! Ich denke nicht, das je jemand von euch sowas in KIX benötigt, aber man weiss ja nie :)
; ---------------------------------------------------------------------------------------------------
; Copy all contacts and local groups from one to another local address book
; ---------------------------------------------------------------------------------------------------
Function RestoreAddressbookEntries($oNotesSession, $FromNabPath, $ToNabPath)
Dim $oSourceDB
Dim $oTargetDB
Dim $ContactsView
Dim $Contact
Dim $GroupsView
Dim $Group
Dim $Ret
;
$oSourceDB = $oNotesSession.GetDatabase("", $FromNabPath)
$oTargetDB = $oNotesSession.GetDatabase("", $ToNabPath)
; ---------------------------------------------------------------------------------------------------
; Verify if The NAB is Open, If Not, Open it
; ---------------------------------------------------------------------------------------------------
If Not ($oSourceDB.isopen)
$Ret = $oSourceDB.open("", $oSourceDB.filename)
If @ERROR <> 0
$Ret = LogMessage("Unable to open source DB " + $FromNabPath + " to copy local contacts from!", "", "F")
Exit
EndIf
EndIf
If Not ($oTargetDB.isopen)
$Ret = $oTargetDB.open("", $oTargetDB.filename)
If @ERROR <> 0
$Ret = LogMessage("Unable to open target DB " + $ToNabPath + " to copy local contacts from!", "", "F")
Exit
EndIf
EndIf
; ---------------------------------------------------------------------------------------------------
; now copy the contacts to the new NAB
; ---------------------------------------------------------------------------------------------------
$ContactsView = $oSourceDB.getview("My Contacts")
$Contact = $ContactsView.GetFirstDocument
While @Error = 0
$Ret = $Contact.CopyToDatabase($oTargetDB)
If @ERROR <> 0
$Ret = LogMessage("error " + @SERROR + " occured during restore of a contact", "", "W")
EndIf
$Contact = $ContactsView.GetNextDocument($Contact)
Loop
; ---------------------------------------------------------------------------------------------------
; do the same with the groups...
; ---------------------------------------------------------------------------------------------------
$GroupsView = $oSourceDB.getview("Groups")
$Group = $GroupsView.GetFirstDocument
While @Error = 0
$Ret = $Group.CopyToDatabase($oTargetDB)
If @ERROR <> 0
$Ret = LogMessage("error " + @SERROR + " occured during restore of a contact", "", "W")
EndIf
$Group = $GroupsView.GetNextDocument($Group)
Loop
EndFunction
Banni:
Denk aber auch an evtl. lokal gespeicherte Gruppen. Wenn die weg sind, gibt's durchaus User, die einen dann hauen wollen.
Jan
koehlerbv:
Warum wird eigentlich jedes Dokument zweimal in die TargetDB gekippt?
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln