193 Lotus blogs updated hourly. Who will post next? Home | Blogs | Search | About 
 
Latest 7 Posts
Chile ändert mit Wirkung zum 15.05.2016 seine Zeitzone
Thu, May 26th 2016 9
Chile ändert mit Wirkung zum 15.05.2016 seine Zeitzone
Mon, May 2nd 2016 7
Cloud Extender zur Steuerung eines Notes Traveler Servers
Sat, Jan 16th 2016 4
Cloud Extender erfordert keinen lokalen Notes Client
Sat, Jan 16th 2016 9
Traveler Task start nicht
Sat, Jan 16th 2016 7
Kein debugging von LotusScript Agent möglich
Sun, Apr 26th 2015 0
Wie finde ich aktuelle Notes / Domino 9.0.1 FixPacks?
Sun, Apr 26th 2015 7
Top 10
Verwendung der iNotes Active-X Controls in restriktiven Arbeitsplatzumgebungen
Sun, Sep 28th 2014 10
Endlich wird die Größe meiner Maildatenbank sofort aktualisiert, wenn ich Dokumente lösche
Fri, Oct 16th 2009 9
Cloud Extender erfordert keinen lokalen Notes Client
Sat, Jan 16th 2016 9
Chile ändert mit Wirkung zum 15.05.2016 seine Zeitzone
Thu, May 26th 2016 9
Notes Single Login und Windows 7 64bit funktioniert wieder !
Wed, Mar 30th 2011 8
Wie finde ich aktuelle Notes / Domino 9.0.1 FixPacks?
Sun, Apr 26th 2015 7
Traveler Task start nicht
Sat, Jan 16th 2016 7
Chile ändert mit Wirkung zum 15.05.2016 seine Zeitzone
Mon, May 2nd 2016 7
Deutsche Notes/Domino Versionen schreiben falsche Log-Dokumente
Wed, Mar 26th 2014 6
Warum sollte ich private Ansichten oder Ordner verwenden?
Thu, Oct 18th 2012 6


Wie kann ich programmatisch private Gestaltungselemente auf Aktualität prüfen?
Twitter Google+ Facebook LinkedIn Addthis Email Gmail Flipboard Reddit Tumblr WhatsApp StumbleUpon Yammer Evernote Delicious
Manfred Meise    

Wir setzen eine Anwendung mit privaten Ansichten und Ordnern ein, die regelmäßig weiterentwickelt wird und produktive Datenbanken durch Schalonenaktualisierung anpasst. Hierbei werden die privaten Kopien der Ansichten und Ordner nicht automatisch aktualisiert. Bei der Konzeption einer "selbstgestrikten" Aktualisierungslogik stößt man schnell auf die Frage: "Wie kann ich erkennen, ob die private Kopie des Gestaltungselementes aktuell ist?"

Vergleich von Zeitstempeln


a) Einsatz von NotesView

Die Idee:
Man öffnet die Ansicht und hat Zeitstempel (Erstelldatum; letzte Änderung) des jeweiligen gemeinsamen Gestaltungselementes und der privaten Kopie.. Klingt gut, ist es aber nicht!

So erhält man mit
 
Dim view as NotesView
set view = db.getView ("Meine Ansicht")


jeweils die gemeinsame Ansichtsvorlage, wenn die private Kopie nicht existiert, jedoch die private Kopie des Ansicht, wenn diese exisiert. Somit kann man im Regelfall (wenn die private Kopie NICHT existiert) nicht auf die gemeinsame Vorlage zu Vergleichszwecken zugreifen.

Ergebnis:
Nicht praktikabel !

b) Einsatz von NotesDatabase.Views

Die Idee:
Man arbeitet alle Ansichten (gemeinsame Vorlagen und private Kopien) einer Datenbank ab und muss die jeweiligen Exemplare (Vorlage  / Kopie) einander zuordnen, um sie zu vergleichen.. Das muß doch gehen!

So durchsucht folgendes Skript die Datenbank nach Ordnern mit dem AliasNamen "F2-DE" und listet jeweils die Universal-ID der Gestaltungselemente auf:
 
Sub
Initialize

Dim
s                         As New NotesSession
Dim
db                         As NotesDatabase
Dim
view                 As NotesView
Dim
vViewNames        As Variant

Set
db = s.Currentdatabase

ForAll
v In db.Views
      Set view = v
      vViewNames = view.Aliases
      If Not IsEmpty (vViewNames) then
              If vViewNames(0) = "F2-DE" Then    
                      If Not IsEmpty (view.Readers) Then
                              MessageBox |Private Kopie des Ordners "F2" gefunden: | & view.Universalid
                      Else
                              MessageBox |Gemeinsame Vorlage des Ordner "F2" gefunden: | & view.Universalid
                      End If
              End If
      End If
End
ForAll
End
Sub


Interessant und noch nicht vollständig erforscht: Dieses Skript findet sogar private Kopien von Ordnern (in Datenbank gespeichert), welche der Domino Designer nicht anzeigt! Nach anfänglicher Begeisterung über diesen Lösungsansatz, habe ich dieses Skript gegen eine große produktive Datenbank laufen lassen und musste feststellen, dass jeweils beim Zugriff auf ein Ansichtsobjekt die Ansichtsindizes aktualisiert werden, um nur auf unwesentliche Merkmale der Ansicht zuzugreifen. Ein echter Performance-Killer, wollte ich diese Logik in einem Datenbank-Script beim Öffnen der Datenbank einsetzen. In meinen Testfällen habe ich teilweise 15 Sekunden warten müssen, bevor ich mein Ergebnis hatte.

Hinweis:
Es ist darauf zu achten, NICHT auf die gemeinsame Vorlage der Ansicht/des Ordners zuzugreifen, da dieses einen Laufzeitfehler 4005 "Index is not to be generated on server" verursacht. Somit ist stets z.B. mit isEmpty(view.Readers) zu prüfen, dass auf eine private Kopie zugegriffen wird (die Prüfung anderer Attribute ist nicht möglich).

Ergebnis:
Zu langsam für den Produktionsbetrieb!

b) Einsatz von NotesNoteCollection>

Die Idee:
Man kann doch die Gestaltungselemente sammeln und auf diese als NotesDocument zugreifen!. So erhalte ich Informationen zum Gestaltungselement, ohne den Indexer zu triggern!

Schon häufig habe ich mit der NotesNoteCollection Klasse auf Gestaltungslemente (Ansichten, Felder, Agenten, Teilmasken) zugegriffen und hierfür u.A. auch eine Selektionsformel einsetzen können, nach Elementen mit speziellen Attributen zu suchen. So würde ich mit den Werten des "$Flags" Items auf bestimmte Ansichts-/Ordner-Typen zugreifen und mit Auswertung des "$Readers" Felders den Eigentümer einer privaten Kopie identifizieren können.

siehe dieses Codebeispiel ...

Beim Einsatz dieses Skriptes gegen eine große produktive Datenbank ist dieses schneller als das zuvor, jedoch immer noch zu langsam, da eine Datenbanksuche angestoßen wird.. Ein echter Performance-Killer, wollte ich diese Logik in einem Datenbank-Script beim Öffnen der Datenbank einsetzen.

Ergebnis:
Besser, doch noch zu langsam für den Produktionsbetrieb! Vorteil: Ich kann die Namen der Ansichten/Ordner ermitteln, die ich behandeln möchte.


Einsatz eines Namensschemas


Nach intensiven Tests habe ich alle oben beschriebenen Lösungsansätze verworfen und mich für die Variante entschieden (welche in diesem Beitrag nicht näher beschrieben ist):
  • Ich führe ein Namensschema (speziell für Ansichten, die lokal statt in der Datenbank gespeichert werden) ein und ändere die Namen der Gestaltungselemente, wenn ich diese aktualisiere
  • Ich akzeptiere, durch Einführung eines Versionskennzeichens für die gesamte Anwendung, dass ich ggf. Elementen aktualisiere, deren Gestaltung sich zur Vorversion nicht geändert haben

Ergebnis:
Sehr performant, da keinerlei Prüfungen

Dieser Artikel ist Teil der Artikelserie
:  Gestaltungsaktualisierung privater Ansichten und Ordner stellt eine echte Herausforderung dar

---------------------
http://www.mmi-consult.de/FAQ/dx/wie-kann-ich-programmatisch-private-gestaltungselemente-auf-aktualität-prüfen.htm
Dec 28, 2012
3 hits



Recent Blog Posts
9
Chile ändert mit Wirkung zum 15.05.2016 seine Zeitzone
Thu, May 26th 2016 11:45a   Manfred Meise
Auch dieses Jahr hat sich das chileische Energieministerium entschieden, einen Wechsel der Zeitzone und damit Wiedereinführung der Sommer- und Winterzeit zu machen. Allerdings wissen Politiker wohl nicht, welche Aufwand sie in der Industrie (wie z.B. der IT) sie damit verursachen. Ab dem Stichtag wird die Rückkehr zur Zeitzone von bisher UTC-3 (nur Normalzeit) zu UTC-4 (mit Sommer-/Winterzeit) wirksam. Dieses muss in System technisch nachgezogen werden (besonders wenn System mit zentraler,
7
Chile ändert mit Wirkung zum 15.05.2016 seine Zeitzone
Mon, May 2nd 2016 11:45a   Manfred Meise
Auch dieses Jahr hat sich das chileische Energieministerium entschieden, einen Wechsel der Zeitzone und damit Wiedereinführung der Sommer- und Winterzeit zu machen. Allerdings wissen Politiker wohl nicht, welche Aufwand sie in der Industrie (wie z.B. der IT) sie damit verursachen. Ab dem Stichtag wird die Rückkehr zur Zeitzone von bisher UTC-3 (nur Normalzeit) zu UTC-4 (mit Sommer-/Winterzeit) wirksam. Dieses muss in System technisch nachgezogen werden (besonders wenn System mit zentraler,
0
Werte in Notes.ini Variablen setzen und Arbeitsumgebungen durch Richtlinien pflegen
Thu, Mar 12th 2009 4:43p   Manfred Meise
Seit der Einführung von Desktop-Richtlinien konnte man nicht nur die über die Maske steuerbaren Notes.ini Variablen setzen oder Werte in Arbeitsumgebungen setzen, sondern über versteckte Felder im Richtliniendokument beliebige Elemente kontrollieren. Jetzt (mit Domino 8.5) geht auch dieses noch einfacher: Auf dem Reiter "Benutzerdefinierte Einstellungen" können beliebige Werte über neue Dialoge erfasst und auch gepflegt werden. Warum nicht gleich so .... ;-) Tab 1 "Notes.ini":
2
DAOS Estimator - Prognosetool für reduzierten Plattenspeicherbedarf
Thu, Mar 5th 2009 9:37a   Manfred Meise
Mit Domino 8.5 ist der DAOS (Domino Attachment and Object Service) eingeführt worden, der Dateianhänge aus einer oder mehreren Datenbanken extrahiert und dublettenfrei im Filsystem abgelegt. Um vor der Aktivierung von DAOS zu erkennen, welchen Nutzen dieser Service für eine oder alle Datenbanken eines Servers hat, bietet IBM ein Prognose-Tool (DAOS Estimator) an. Dieses kann von der IBM Support Seite kostenlos geladen werden: http://www-01.ibm.com/support/docview.wss?rs=899&co
3
Lotus Notes 8 - wie mache ich mich mit neuen Funktionen vertraut
Mon, Mar 2nd 2009 9:42a   Manfred Meise
Lotus Notes 8 (oder 8.5) stellt einen neuartigen Client zur Verfügung. Damit Benutzer schnell mit der Bedienung der neuen Funktionen vertraut werden, können sie entweder auf bewährte Schulungsprogramme (u.A. auch von uns) zurückgreifen, oder für ein Selbststudium das IBM Learning PlugIn verwenden. Dieses findet man hier: http://www-10.lotus.com/ldd/dominowiki.nsf/dx/learning-plug-in-for-ibm-lotus-notes
0
Neu organisierte Menüs in Notes 8.x
Sun, Mar 1st 2009 10:04a   Manfred Meise
Die Menüstruktur von Notes 8 wurde im Vergleich zu Notes 6/7 vollständig überarbeitet. Um die ersten Schritte erfolgreicher zu machen, hat die IBM eine Gegenüberstellung alt/neu publiziert: http://www-01.ibm.com/support/docview.wss?uid=swg21256781
1
Welche Notes 8 Features erfordern einen Domino 8 Server oder Template?
Sun, Feb 15th 2009 10:29a   Manfred Meise
Im Rahmen von MIgrationen ist es oft wichtig zu wissen, welche Funktionen ab wann zur Verfügung stehen. Hilfestellung gibt diese IBM TechNote http://www-01.ibm.com/support/docview.wss?uid=swg21282123
0
Welche Unterschiede bestehen zwischen den Varianten der Notes 8 Clients
Sun, Feb 15th 2009 10:26a   Manfred Meise
Seit Notes 8 werden zwei Varianten des Notes Clients angeboten: Basic und Standard. Der Unterschied liegt sowohl in Optik (UI) als auch Funktionalität. Hier http://www-01.ibm.com/support/docview.wss?uid=swg21264877kann man Details zu Unterschieden finden.
0
Wo bekomme ich SwiftFile 4.0 für Notes 8.x?
Mon, Feb 2nd 2009 11:15a   Manfred Meise
Nachdem viele Kunden keine CDs mehr bestellen/erhalten stellt sich oftmals die Frage, woher man den Mailassistenten "SwiftFile" in diesem Fall bekommt. Die Antwort kann so einfach sein, wenn man sich auf der IBM Seite ein wenig umsieht: http://www-01.ibm.com/support/docview.wss?rs=899&uid=swg24019219
5
DAOSEST unter Linux betreiben
Mon, Feb 2nd 2009 9:53a   Michael Siegrist
DAOSEST (DAOS Estimator) hilft bei der Aktivierung von DAOS. Hierzu must das Programm separat von der IBM Website ( http://www-01.ibm.com/support/docview.wss?rs=463&uid=swg24021920 ) heruntergeladen werden. Unter linux muss daosest unter /opt/ibm/lotus/notes/xxxx/linux/ abgelegt werden. Das Programm muss mit chown root.root daosest root zugeordnet und mit chmod ausführbar gemacht werden. Ob alle Abhänigkeiten erfüllt sind, kann mit ldd daosest geprüft werden. Hier ein Beispiel,




Created and Maintained by Yancy Lent - About - Planet Lotus Blog - Advertising - Mobile Edition