Autor Thema: Internet Mail-Adresse im Arbeitsumgebungsdokument  (Gelesen 8216 mal)

Offline ajo

  • Junior Mitglied
  • **
  • Beiträge: 96
  • Geschlecht: Männlich
  • Wiiiiiiilmaaaa
Hallo zusammen !

Kennt jemand eine Möglichkeit, die Internet Mail-Adresse im Arbeitsumgebungsdokument automatisch anzupassen ? Wir müssten diese bei ca. 700 Clients ändern und möchten ungern Makros durch die User ausführen lassen.

Danke

ajo
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Internet Mail-Adresse im Arbeitsumgebungsdokum
« Antwort #1 am: 29.08.02 - 14:36:05 »
Ich verwende für solche zwecke ein Script in der Maildatei.
Das Script holt sich aus dem NAB die "richtige" Internetadresse ( und noch einiges mehr ) und schreibt es in das AUDoc des DAU.
Das Script wird beim Öffnen der Datenbank ausgeführt

Hier die Funktion:

Function UpdateUsersLocationDocument()
     
     Dim viewLocations As NotesView
     Dim viewPeople As NotesView
     Dim docLocation As NotesDocument
     Dim docPerson As NotesDocument
     Dim dbNAB As NotesDatabase
     Dim dbPAB As NotesDatabase
     Dim LocationDocument As String
     Dim nnUserName As NotesName
     Dim PersonalAddressBook As String
     Dim MailFile As String
     Dim MailFilePerson As String
     
 'Get the personal address book from the notes.ini and remove any cascaded local address books
     PersonalAddressBook = Trim(session.GetEnvironmentString("Names",True))
     If Instr(PersonalAddressBook, ",") > 0 Then
           PersonalAddressBook = Left$(PersonalAddressBook, Instr(PersonalAddressBook, ",") -1)
     Else
           If Instr(PersonalAddressBook, ";") > 0 Then
                 PersonalAddressBook = Left$(PersonalAddressBook, Instr(PersonalAddressBook, ";") -1)
           End If
     End If
     
 'Get the personal address book, exit if cannot be opened
     Set dbPAB = session.GetDatabase("", PersonalAddressBook)
     If dbPAB.IsOpen = False Then Goto FinishFunction
     
 'Get the current location document in use, exit if any errors
     Set viewLocations = dbPAB.GetView("Locations")
     If viewLocations Is Nothing Then Goto FinishFunction
     LocationDocument = Trim(session.GetEnvironmentString("Location",True))
     If LocationDocument = "" Then Goto FinishFunction
     LocationDocument = Left$(LocationDocument, Instr(LocationDocument, ",") -1)
     If LocationDocument = "" Then Goto FinishFunction
     Set docLocation = viewLocations.GetDocumentByKey(LocationDocument)
     If docLocation Is Nothing Then Goto FinishFunction
     
 'Get the Public Address Book from the current server
     Set dbNAB = session.GetDatabase(dbCurrent.Server, "names.nsf")
     If dbNAB.IsOpen = False Then Goto FinishFunction
     
 'Get the current users person document. Exit if user not in address book
     Set viewPeople = dbNAB.GetView("($VIMPeople)")
     Set nnUserName = New NotesName(session.UserName)
     Set docPerson = viewPeople.GetDocumentByKey(nnUserName.Abbreviated)
     If docPerson Is Nothing Then Goto FinishFunction
     
 'Get the name of the mail file from the person document and current database
     MailFile = dbCurrent.FilePath
     MailFilePerson = docPerson.MailFile(0)
     If Lcase(Right$(MailFilePerson, 4)) <> ".nsf" Then
           MailFilePerson = MailFilePerson & ".nsf"
     End If
     
 'Update the Location Document, if the mail file name in the address book matches the name of the current database
     If Lcase(MailFile) <> Lcase(MailFilePerson) Then Goto FinishFunction
     docLocation.MailFile = MailFile
     docLocation.MailServer = docPerson.MailServer(0)
     docLocation.DirectoryServer = docPerson.MailServer(0)
     docLocation.CatalogServer = docPerson.MailServer(0)
     docLocation.Domain = docPerson.MailDomain(0)
     docLocation.ImailAddress = docPerson.InternetAddress(0)
     Call docLocation.Save(True, False)
     
     Call session.SetEnvironmentVar("DateLocationModified", sDateTime, False)
     
FinishFunction:
     
End Function

eknori
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline ajo

  • Junior Mitglied
  • **
  • Beiträge: 96
  • Geschlecht: Männlich
  • Wiiiiiiilmaaaa
Re: Internet Mail-Adresse im Arbeitsumgebungsdokum
« Antwort #2 am: 29.08.02 - 14:52:13 »
Hallo !

Erstmal danke für die sensationell schnelle Antwort auf mein Anliegen ;-)
Wenn du mir jetzt noch erklären kannst wie ich das anstelle, das dieses Script beim öffnen der Mail-DB ausgeführt wird.....

mercy

ajo
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Internet Mail-Adresse im Arbeitsumgebungsdokum
« Antwort #3 am: 29.08.02 - 17:12:13 »
Kopiere die Funktion ( eigentlich muss es heissen Sub ) in das DatenbankScript der Mailschablone.
In den PostOpen Event des Datenbank Scripts trägst du ein Call Update.....

Dann die Datenbankgestaltung aktualisieren und nach der Aktualisierung die DB öffnen.

That's all

eknori
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline ajo

  • Junior Mitglied
  • **
  • Beiträge: 96
  • Geschlecht: Männlich
  • Wiiiiiiilmaaaa
Re: Internet Mail-Adresse im Arbeitsumgebungsdokum
« Antwort #4 am: 02.09.02 - 11:44:37 »
Hat mit kleinen Anpassungen des Scripts einwandfrei funktioniert. Vielen Dank

Gruß

ajo

Function UpdateUsersLocationDocument()
     
     Dim session As New NotesSession
     Dim viewLocations As NotesView
     Dim viewPeople As NotesView
     Dim docLocation As NotesDocument
     Dim docPerson As NotesDocument
     Dim dbNAB As NotesDatabase
     Dim dbPAB As NotesDatabase
     Dim LocationDocument As String
     Dim nnUserName As NotesName
     Dim PersonalAddressBook As String
     Dim MailFile As String
     Dim MailFilePerson As String
     Dim dbCurrent As NotesDatabase
     Set dbCurrent = session.CurrentDatabase
     Dim DateTimeNow As NotesDateTime
     Set DateTimeNow = New NotesDateTime(Now)
     Dim sDateTime As String
     sDateTime = DateTimeNow.LsLocalTime
     
 'Get the personal address book from the notes.ini and remove any cascaded local address books
     PersonalAddressBook = Trim(session.GetEnvironmentString("Names",True))
     If Instr(PersonalAddressBook, ",") > 0 Then
           PersonalAddressBook = Left$(PersonalAddressBook, Instr(PersonalAddressBook, ",") -1)
     Else
           If Instr(PersonalAddressBook, ";") > 0 Then
                 PersonalAddressBook = Left$(PersonalAddressBook, Instr(PersonalAddressBook, ";") -1)
           End If
     End If
     
 'Get the personal address book, exit if cannot be opened
     Set dbPAB = session.GetDatabase("", PersonalAddressBook)
           'Set dbPAB = session.GetDatabase("", "names.nsf")
     If dbPAB.IsOpen = False Then Goto FinishFunction
     
 'Get the current location document in use, exit if any errors
     Set viewLocations = dbPAB.GetView("Locations")
     If viewLocations Is Nothing Then Goto FinishFunction
     LocationDocument = Trim(session.GetEnvironmentString("Location",True))
     If LocationDocument = "" Then Goto FinishFunction
     LocationDocument = Left$(LocationDocument, Instr(LocationDocument, ",") -1)
     If LocationDocument = "" Then Goto FinishFunction
     Set docLocation = viewLocations.GetDocumentByKey(LocationDocument)
     If docLocation Is Nothing Then Goto FinishFunction
     
 'Get the Public Address Book from the current server
     Set dbNAB = session.GetDatabase(dbCurrent.Server, "names.nsf")
     If dbNAB.IsOpen = False Then Goto FinishFunction
     
 'Get the current users person document. Exit if user not in address book
     Set viewPeople = dbNAB.GetView("($VIMPeople)")
     Set nnUserName = New NotesName(session.UserName)
     Set docPerson = viewPeople.GetDocumentByKey(nnUserName.Abbreviated)
     If docPerson Is Nothing Then Goto FinishFunction
     
 'Get the name of the mail file from the person document and current database
     MailFile = dbCurrent.FilePath
     MailFilePerson = docPerson.MailFile(0)
     If Lcase(Right$(MailFilePerson, 4)) <> ".nsf" Then
           MailFilePerson = MailFilePerson & ".nsf"
     End If
     
 'Update the Location Document, if the mail file name in the address book matches the name of the current database
     If Lcase(MailFile) <> Lcase(MailFilePerson) Then Goto FinishFunction
     docLocation.MailFile = MailFile
     docLocation.MailServer = docPerson.MailServer(0)
     docLocation.DirectoryServer = docPerson.MailServer(0)
     docLocation.CatalogServer = docPerson.MailServer(0)
     docLocation.Domain = docPerson.MailDomain(0)
     docLocation.ImailAddress = docPerson.InternetAddress(0)
     Call docLocation.Save(True, False)
     
     Call session.SetEnvironmentVar("DateLocationModified", sDateTime, False)
     
FinishFunction:
     
End Function
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline MartinM

  • Junior Mitglied
  • **
  • Beiträge: 88
Re: Internet Mail-Adresse im Arbeitsumgebungsdokument
« Antwort #5 am: 31.10.05 - 13:40:33 »
Wie kann ich das als Button in einer eMail verwenden?

Gruss
Martin
IBM Certified Sametime System Administrator 8
IBM Certified Associate System Administrator - Domino 7
Certified in IT Service Management (ITIL)

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Internet Mail-Adresse im Arbeitsumgebungsdokument
« Antwort #6 am: 31.10.05 - 17:55:55 »
Wo speziell hast Du denn ein Problem ?

Bernhard

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re: Internet Mail-Adresse im Arbeitsumgebungsdokument
« Antwort #7 am: 31.10.05 - 18:12:35 »
Wenn`s um den Button selbst geht (obwohl ich mir das eigentlich nicht vorstellen kann):

In der neuen Mail Erstellen->Hotspot->Schaltfläche, dann von Formel auf LotusScript umstellen und den Code reinpacken.

HTH

Thomas
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Internet Mail-Adresse im Arbeitsumgebungsdokument
« Antwort #8 am: 31.10.05 - 18:30:46 »
... und dann beten, dass kein User die Mail öffnet, wenn er nach der Replikation das Mailfile lokal öffnet ... Das ist nämlich eine eklatante Schwäche des geposteten Codes (der aber andererseits davon ausgeht, dass das PersNAB anders als NAMES.NSF heissen könnte ... Und dieses Problem hat nichts damit zu tun, ob der Code im DatabaseScript oder in einem Buhting steckt.

Bernhard

Offline MartinM

  • Junior Mitglied
  • **
  • Beiträge: 88
Re: Internet Mail-Adresse im Arbeitsumgebungsdokument
« Antwort #9 am: 02.11.05 - 08:35:05 »
Wir haben alle unsere Internet Domains vereinheitlicht und nun hat es Benutzer die immer noch die alten absender verwenden. Deshalb möchte ich nen Knopf verschicken, der die Arbeistumgebung umstellt anhand der Mailadress im Addressbuch.

Gruss
Martin
IBM Certified Sametime System Administrator 8
IBM Certified Associate System Administrator - Domino 7
Certified in IT Service Management (ITIL)

Offline hupfi

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Internet Mail-Adresse im Arbeitsumgebungsdokument
« Antwort #10 am: 24.08.07 - 16:17:02 »
Wann werden die Änderungen in der AU aktiv?

Ich ändere über ein ähnliches Script wie eknori und ajo einen Wert in der aktuellen AU.
Damit diese Änderung aktiv wird, muss Notes zuerst schließen und neu starten.
Kann diese Änderung auch ohne Notes zu schließen aktiv gemacht werden? evtl über Script Befehl?

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Internet Mail-Adresse im Arbeitsumgebungsdokument
« Antwort #11 am: 24.08.07 - 16:22:12 »
Kann diese Änderung auch ohne Notes zu schließen aktiv gemacht werden? evtl über Script Befehl?

Nein. Aus Performance-Gründen werden die AU-Dokumente beim Wechsel der AU ausgelesen oder bestenfalls bei Änderungen über das Frontend auf den neuesten Stand (intern) gebracht. Und wenn Du via LS / @Commands die AU hin- und herwechselst, handelst Du Dir programmtechnisch eher mehr Aufwand und Probleme ein, als wenn Du zum Schliessen des Clients aufforderst oder das programmtechnisch erzwingst.

Bernhard

PS: Da man AU-Dokumente nicht alle zwei Stunden programmatisch ändert - wo ist das eigentliche Problem?

Offline hupfi

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: Internet Mail-Adresse im Arbeitsumgebungsdokument
« Antwort #12 am: 10.09.07 - 14:02:46 »
Sorry das ich nicht geantwortet haben, doch ich war jetzt längere Zeit im Urlaub  ;D.

Mein Problem hat sich soweit auch schon erledigt. Ich erstelle einfach eine neue AU und kopiere die Daten der aktuellen in diese rein. Danach ändere ich die benötigten Werte in der aktuellen AU und wechsle danach in die neu erstellte AU. Danach wechsle ich sofort wieder zurück. Nun sind die Änderungen, die ich vor dem Wechsel gemacht habe sofort aktiv ohne Neustart von Notes usw.... Die neu erstellte AU lösche ich wieder.


Gruß hupfi

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz