Autor Thema: Personendokument per Script ändern  (Gelesen 4847 mal)

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Personendokument per Script ändern
« am: 13.10.03 - 16:57:40 »
Hallo Zusammen!

Weiß jem. ob das funktioniert, Personendokumente im Adressbuch (Haupuserverzeichnis) per Skript zu ändern.
Speziell die Felder "Internet Password" und "forwarding adress".

Die Daten die geändert werden müssen, sind im Excelformat vorhanden.

Danke, Daniel

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Personendokument per Script ändern
« Antwort #1 am: 13.10.03 - 17:02:25 »
Ja, das ist möglich, wenn die Beziehung zwischen den Daten im Spreadsheet und denen im NAB eineindeutig ist.

Bernhard

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Personendokument per Script ändern
« Antwort #2 am: 13.10.03 - 17:27:06 »
Jep, Kurzeichen ist auf jeden Fall vorhanden. Kann ich da mit ODBC was machen, oder wo und wie muss ich da anfangen?


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Personendokument per Script ändern
« Antwort #3 am: 13.10.03 - 17:36:55 »
ODBC würde die Sache nur verkomplizieren.
LotusScript wäre wohl die einfachste Lösung:
- Excel-File zeilenweise auslesen
- Assozierte Doks im NAB finden und prüfen
- Änderungen vornehmen, speichern (HTTP-Kennwort per Evaluate umsetzen)
- nächste Excel-Zeile und so weiter ...

Das Ganze ist aber keine triviale Geschichte und nix für Anfänger.

Bernhard

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Personendokument per Script ändern
« Antwort #4 am: 13.10.03 - 17:40:05 »
Mmhhh.
Anfänger bin ich sehr wohl im Bereich Lotus Script. Hab grad vor 2 Wochen meinen Kurs um die Runden gekriegt.
Aber irgendwann muss man anfangen.

Gibts da irgenwas in einem Archiv, was man als Vorlage hernehmen könnte?

Axel Janssen temp

  • Gast
Re:Personendokument per Script ändern
« Antwort #5 am: 13.10.03 - 17:51:47 »
such z.B. hier mal nach Excel. Da gibt es die einschlägigen OLE-mässigen Lösungen.
http://searchdomino.techtarget.com/tips/0,289484,sid4_tax283833,00.html

Vermutlich gibt es ähnliches auch in der Sandbox.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Personendokument per Script ändern
« Antwort #6 am: 13.10.03 - 19:54:26 »
Wenn Du noch Anfänger bist, ist eine solche Aufgabe vielleicht nicht der beste Start.
Wenn Du trotzdem damit anfangen möchtest: Starte erstmal mit dem erforderlichen Rahmen (Zugriff auf NAB, dort Docs finden etc.). Wenn Du dort sicher bist, kannst Du Dich dem Thema Excel-Import widmen (gute Beispiele gibt es hier oder in der Sandbox unter www.notes.net - der Suchbegriff "excel" leitet Dich direkt zu einem Excel-Import-Codebeispiel).

HTH,
Bernhard

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Personendokument per Script ändern
« Antwort #7 am: 14.10.03 - 07:56:37 »
Hallo Zusammen!

Ich hab gestern noch etwas in der Sandbox gestöbert.
Der Excelimport funktioniert schon mal super. Ich hab auch ein codebeistpiel gefunden, welcher den Zugriff zum NAB macht und das Internetpasswort ändert. dort muss ich nun nur noch einbauen, dass die Weiterleitungsadresse gelöscht wird.

Zuerst lese ich das Excelfile ein und dann braust ein Agent durch, der jedes Dokument in Angriff nimmt.

Ich denke ich bin da auf dem richtigen weg.

Danke für die Sandboxtipps, muss ich öfters reinschauen.

Daniel

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Personendokument per Script ändern
« Antwort #8 am: 17.10.03 - 10:29:56 »
Hallo Zusammen!

Ich hab nun fast schon alles erledigt für diese Anforderung. Allerdings hab ich noch ein kleines Problem.

Es wird ein Agent gestartet, der die Dokumente im NAB ändert. Dieser Agent nimmt aber nicht alle Dokumente in der DB wie ich es eingegeben habe, sondern nur das letzte.
Was kann das sein?

Ich hab noch den Quelldings vom Agentent:
(Nicht alles selbstgeschrieben, nur angepasst)


Sub Initialize
   
   Set session = New Notessession
   ' Gets the current document
   Set curdoc = session.DocumentContext
   ' Gets the primary address book
   Set dbNames = session.GetDatabase("hbdo01/heizboesch","names.nsf")
   ' Gets the hidden view of person documents
   Set viewNames = dbNames.GetView("($VIMPeople)")
   ' Gets the person document for the user
   Set docNames = viewNames.GetDocumentByKey(curdoc.GetItemValue("UserName")(0), True)
   Print "DocNames ausgeführt"
   
   
   
   
   ' Give error if user is not located in address book
   ' This can happen if user has not logged in the server or if username is in some secondary address book
   If docNames Is Nothing Then
      Print "[/" & curdoc.GetItemValue("DbPath")(0) & "/message?OpenForm&1]"
      Exit Sub      
   End If
   
   ' Gets the current password entered by user
   'currentPassword = curdoc.GetItemValue("CurrentPassword")(0)
   ' Gets the new password entered by user
   newPassword = curdoc.GetItemValue("NewPassword")(0)
   ' Gets the encoded password stored in user's person document
   'passwordInAddressBook = docNames.HTTPPassword(0)
   
   ' Gets the encoded form of the current password
   'temp = Evaluate({@Password(CurrentPassword)}, curdoc)
   'encodedCurrentPassword = temp(0)
   
   ' Checks current password entered by user against the password stored in his person document
   'If ( encodedCurrentPassword <> passwordInAddressBook ) Then
      'Print "[/" & curdoc.GetItemValue("DbPath")(0) & "/message?OpenForm&2]"      
      'Exit Sub      
   'End If
   
   ' Gets the encoded form of the new password
   temp = Evaluate({@Password(NewPassword)}, curdoc)
   encodedNewPassword = temp(0)
   
   ' Updates the person document
   docNames.HTTPPassword = encodedNewPassword
   ' Löscht die Forwardingadress aus dem Personendokument
   docNames.MailAddress = ""
   Call docNames.Save(True, False)
   
   Print "[/" & curdoc.GetItemValue("DbPath")(0) & "/message?OpenForm&3] - Passwort geändert"
   
   ' End
End Sub


Danke

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Personendokument per Script ändern
« Antwort #9 am: 17.10.03 - 10:51:05 »
Das liegt wohl daran, dass Du mit Session.DocumentContext auf das aktuell in der Ansicht "angemalte" Dokument zugreifst, sprich also das aktuelle Dokument verwendest. Wenn Du alle Dokumente haben willst, musst Du eben die DocCollection der aktuellen Ansicht durchlaufen, da gibts Beispiele in der Hilfe, schau Dir mal NotesDocumentCollection zum Beispiel an. Und auch die Eigenschaft "CurrentView" im NotesUIWorkspace
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Personendokument per Script ändern
« Antwort #10 am: 17.10.03 - 10:55:23 »
Schau ich mir an, Danke!

Daniel

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Personendokument per Script ändern
« Antwort #11 am: 21.10.03 - 09:50:31 »
Hallo Semeaphoros!

Danke für den Tipp, das hat prächtigst funktioniert.
So machts spaß!

Schöne Grüße!

Daniel

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Personendokument per Script ändern
« Antwort #12 am: 21.10.03 - 10:10:31 »
Wunderbar, und danke für die Rückmeldung.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz