Autor Thema: alle Adressbucheinträge von einem Adressbuch in ein zweites kopieren  (Gelesen 3736 mal)

Offline SamB

  • Frischling
  • *
  • Beiträge: 7
Hallo zusammen,

ich habe ein rel. einfaches Problem, finde aber in meiner Ungeschicktheit hier im Forum keine entsprechende Lösung (die ist wohl da, finde sie nur nicht) daher mein Post.

Wir haben bei uns in der Firma das Problem, das nach einer Migration auf dem Client 2 lokale Adressbücher vorhanden sind, ein gesichertes names.nsf in einem Backup Verzeichnis und eines in Data Verzeichnis. Ich solte nun ein Script haben, das mir alle Adressbucheinträge vom alten Adressbuch ins neue Adressbuch kopiert. Ist sicher nicht eine grosse Sache, könnt ihr mich in die richtige Richtung lenken, ev. mit einem Code Ausschnitt? Ich stehe auf dem Schlauch...

Herzlichen Dank!

klaussal

  • Gast
Einfach nur Copy + Paste ?

Offline SamB

  • Frischling
  • *
  • Beiträge: 7
genau, soweit bin ich auch schon. Nein, muss via Script passieren  ;D

klaussal

  • Gast
warum ?

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
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

Offline SamB

  • Frischling
  • *
  • Beiträge: 7
warum ?

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...

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Zitat
Es gäbe ja die Möglichkeit, die lokalen Adressen mit dem Server zu replizieren, sprich dies via Policy zu erzwingen
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

Offline SamB

  • Frischling
  • *
  • Beiträge: 7
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

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
« Letzte Änderung: 19.11.12 - 07:49:25 von SamB »

Offline Banni

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
Denk aber auch an evtl. lokal gespeicherte Gruppen. Wenn die weg sind, gibt's durchaus User, die einen dann hauen wollen.

Jan
Jan Bauer
Notes /Domino 6.5, 8

Geht nicht, gibt's nicht. Geht höchstens schwer...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Warum wird eigentlich jedes Dokument zweimal in die TargetDB gekippt?

Bernhard

Offline SamB

  • Frischling
  • *
  • Beiträge: 7
...weil ich doof bin? Danke für den (für mich peinlichen) Tipp, hab's in der Zwischenzeit korrigiert. Zu meiner Verteidigung kann ich noch sagen, dass ich den Fehler bei mir im Script schon vorher gefunden hatte, aber trotzdem...

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz