Posts Tagged: ‘Notes Beta’

How to activate and use the expressions view in the SSJS debugger

16. März 2013 Posted by Ralf Petter

The "expressions" view in the java debugger is one of the most valuable tool for debugging java code. With this view you can deeply inspect the values of all objects you are using in your code at runtime and you can even run methods on this object to get values not visible in the standard "variables" view. For example when you have a document object you can invoke getItemValueString on this object to get the value of a field from the document. Knowing this you will understand my disappointment when i first try the SSJS Debugger in Desinger 9, because it looks like there is no expression view in the java script debugger. But fortunately the view is only hidden and can be activated in Designer 9.

Go to the "Window->Show Eclipse View" menu and activate the "expressions" view.
After that we can use the expressions view to analyze the state of all objects available in our code when the execution is stopped at a breakpoint in the debugger.

For example we have the following serverside java script code in our xPage.

 
var view=session.getCurrentDatabase().getView("Employees");
var doc=view.getFirstDocument();
var money=0;
while(doc!=null){
money=money+100/doc.getItemValueDouble("value");
doc=view.getNextDocument(doc);
}
getComponent("result").setValue(money);

The following screenshot shows what is possible with the expressions view in SSJS Debugger at a brekpoint inside the loop.

You can access every field from the doc Object with getItemValueString() or every java script variable. You can get every information from the session, for example the effective username running this script. From the session you can acces databases and from the databases you cann acess views and so on and on. The possibilitys are endless.

To add, change or remove expressions in the expression view simply right click the view and select the appropriate menu action. Or use the actions in the toolbar. When you hove over a toolbar icon you get a simple description of the action.

So i hope IBM will activate the expressions view by default in future service packs of Designer 9 so that every xPage developer knows about this great tool. A right click Option "Watch this expression" in the source editor would be nice too.

How to activate and use the expressions view in the SSJS debugger

16. März 2013 Posted by Ralf Petter

The "expressions" view in the java debugger is one of the most valuable tool for debugging java code. With this view you can deeply inspect the values of all objects you are using in your code at runtime and you can even run methods on this object to get values not visible in the standard "variables" view. For example when you have a document object you can invoke getItemValueString on this object to get the value of a field from the document. Knowing this you will understand my disappointment when i first try the SSJS Debugger in Desinger 9, because it looks like there is no expression view in the java script debugger. But fortunately the view is only hidden and can be activated in Designer 9.

Go to the "Window->Show Eclipse View" menu and activate the "expressions" view.
After that we can use the expressions view to analyze the state of all objects available in our code when the execution is stopped at a breakpoint in the debugger.

For example we have the following serverside java script code in our xPage.

 
var view=session.getCurrentDatabase().getView("Employees");
var doc=view.getFirstDocument();
var money=0;
while(doc!=null){
money=money+100/doc.getItemValueDouble("value");
doc=view.getNextDocument(doc);
}
getComponent("result").setValue(money);

The following screenshot shows what is possible with the expressions view in SSJS Debugger at a brekpoint inside the loop.

You can access every field from the doc Object with getItemValueString() or every java script variable. You can get every information from the session, for example the effective username running this script. From the session you can acces databases and from the databases you cann acess views and so on and on. The possibilitys are endless.

To add, change or remove expressions in the expression view simply right click the view and select the appropriate menu action. Or use the actions in the toolbar. When you hove over a toolbar icon you get a simple description of the action.

So i hope IBM will activate the expressions view by default in future service packs of Designer 9 so that every xPage developer knows about this great tool. A right click Option "Watch this expression" in the source editor would be nice too.

Notes 9 Volltextsuche kleine Änderung große Usability Verbesserung

6. Januar 2013 Posted by Ralf Petter

Oft sind es die Kleinigkeiten die einen großen Sprung in der Verwendbarkeit einer Anwendung bewirken. Genauso eine Kleinigkeit wurde in Notes 9 endlich verbessert. Welcher Betreuer kennt nicht das Problem, Anwendern zu erklären wie sie Suchergebnisse der Volltextsuche anders als nach Relevanz sortieren können. Selbst Anwender die darauf geschult wurden, scheitern immer wieder daran auf mehr zu klicken und dann in der großen Anzahl der "Mehr Optionen" die richtige für die Ergebnissortierung zu finden. Mit Notes 9 hat die IBM endlich zumindest in diesem Bereich reagiert und diese absolut essentielle Auswahlbox aus den Tiefen der Optionen geholt und prominent platziert.


Bei der Implementierung der Funktion hat die IBM sogar daran gedacht, dass bei einer Änderung in der Auswahlbox die Sortierung sofort geändert wird. Das heißt man muss nicht wie bisher nach der Änderung noch einmal auf Suche klicken.

Wie wichtig die IBM dieses Feature nun nimmt sieht man daran, dass jetzt sogar Tooltips in die Spaltenköpfe von den Java Ansichten (in den klassischen Notes Ansichten fehlen diese) integriert wurden. Das heißt wenn man mit der Maus auf einen Spaltenkopf zum sortieren positioniert, dann bekommt man vorgeschlagen über den Auswahldropdown die Ergebnissortierung zu ändern.


Soviel Liebe zum Detail würde ich mir an mehr Stellen im Client wünschen.

Notes 9 Suche in Ansichten wurde vereinheitlicht und verbessert.

5. Januar 2013 Posted by Ralf Petter

In Notes 8.x gab es neben der Volltextsuche noch zwei andere Suchen um Dokumente in Ansichten zu finden. Dies war in meinen Endbenutzerschulungen immer ein Thema warum es mehrere Suchen gab und wann man welche verwendet. Vor allem warum man vor der Schnellsuche immer nach der zu durchsuchenden Spalte sortieren muss, war für unsere Benutzer schwierig zu verstehen. In Notes 9 SE hat man nun die Suche mit "STRG+E" und die Schnellsuche die durch beliebigen Tastendruck aufgerufen wurde in eine Suche zusammengefasst.

Je nachdem ob man die neue Suche mit "STRG+F" oder einen beliebige Tastendruck aufgerufen hat wird das Suchfenster mit unterschiedlicher Vorauswahl angezeigt.

Mit "STRG+F" bekommt man die Suche im Modus, dass in allen Spalten gesucht wird.


Man kann aber jederzeit über die Drop Down box die Suche auf eine Spalte einschränken, was dann der Schnellsuche (Vorauswahl wenn man in der Ansicht eine Taste drückt) entspricht. Dabei wird die Ansicht automatisch nach der ausgewählten Spalte sortiert. Super ist, dass das Suchfeld je nach Spaltentyp Hilfen für die Eingabe anbietet. z.B. bei Personenfeldern wird Typeahead und bei Datumsspalten ein Datumsauswahl dropdown angeboten.

Was weniger gut ist, dass vom Wechsel von any column zu einer Spalte kein Hinweis angezeigt wird, dass bei der Spaltensuche immer vom Anfang der Spalte weg gesucht wird. Das heißt, bei der "Any Column" Version kann ich einen Teilbegriff der an belibiger Stelle vorkommt eingeben und bei der Spaltensuche muss der Suchbegriff mit dem Beginn der Spalte ident sein. Das hätte man leicht anders lösen können in dem man auch bei der Spaltensuche eine Option "nach Teilbegriffen suchen" anbieten würde.

2 Bugs hat die Suche in der Public Beta auch noch. Beim Typeahaed in der Personenspalte werden nur lokale Kontakte vorgeschlagen, obwohl in der Hilfe eindeutig dokumentiert ist, dass auch das Domino Directory durchsucht wird. Ausserdem haben die Hilfebuttons neben den Feldern keine Funktion.

Prinzipiell muß ich anmerken, dass solche Dialog immer in der Grösse angepasst werden können sollten.

Fazit: Tolle Verbesserung gegenüber Notes 8.x die aber noch perfektioniert werden könnte.


Neues Feature Database Maintenance in Domino 9

4. Januar 2013 Posted by Ralf Petter

In Domino 9 Social Edition gibt es ein neues Feature, dass die Datenbankwartung erleichtern soll. Bisher musste man dafür mehrere verschiedene Tasks (Updall, compact, fixup) über Programmdokumente aufrufen. Dies alles sollte nun durch den Datenbank Maintenance Task zusammgengefasst werden. Der Datenbank Maintenance Task bietet dabei den Vorteil, dass man die Maintenancetasks auf mehrere gleichzeitig laufende Threads aufsplitten kann. Das heißt, wenn man über entsprechend leistungsfähige Hardware verfüge, kann der DBMT Task mehrere Compact oder Updall gleichzeitig ausführen. Dies war bisher nur umständlich über .ind Dateien möglich.

Man kann den DBMT Task entweder beim Serverstart über ein Programmdokument aufrufen und ihm als Parameter mitgeben, dass er zu bestimmten Zeiten arbeiten soll, oder man ruft den DBMT Task über ein Programmdokument regelmäßig auf, wobei man dann eine Stopzeit mitgeben kann.

Ein Beispielprogrammdokument für den Aufruf beim Dominoserverstart:


Die Parameter bedeuten, dass 3 Compacts und Updalls gleichzeitig laufen dürfen. Die Datenbankmaintenance wird zwischen 2:00 und 7:00 morgens durchgeführt. Compact soll aber nur alle 3 Tage gemacht werden. Der "-force 1" Parameter bedeutet, dass Fixup am Sonntag (1. Tag der Woche) ausgeführt wird. Der DBMT bleibt in diesem Fall immer aktiv, arbeitet aber nur in den angegebenen Zeiten.

Beispiel für die regelmäßige einmalige Ausführung von DBMT mit einer Stoppzeit mittels eines Programmdokuments.


Hier wird der DBMT Task jeden Tag um 2:00 in der Früh durch das Programmdokument mit 3 Compact und 3 UpdateallThreads gestartet. Spätestens um 6:00  in der Früh wird der DBMT abgebrochen bis zum nächsten Start durch das Programmdokument.

Bei beiden Varianten wird ein abgebrochener Compact beim nächsten Durchlauf an der Abbruchstelle fortgesetzt. Es werden somit also nach mehreren Durchläufen auch wenn die Zeit nicht ausreicht alle Datenbanken mittels copy style compact komprimiert.

Achtung! Bei Verwendung des DBMT Tasks sollte man in der notes.ini des Servers den UPDALL Task entfernen, da er sonst doppelt läuft.

Mit "show stats dbmt" kann man sich diverse Informationen über die Ergebnisse des "DBMT" Task anzeigen:




Es gibt noch ein paar zusätzliche Parameter und notes.ini Einträge die dbmt betreffen, die man in der Doku nachlesen kann.

Mein Fazit: Für alle die Datenbankquotas auf Ihren Maildatenbanken verwenden, ist der DBMT vor allem im Zusammenspiel mit der neuen notes.ini Variable "MailFileDisableCompactAbort" ein riesen Fortschritt, weil man damit die Verkleinerung der mail Datenbanken sehr gut automatisieren kann und durch die Verwendung von mehreren Threads die Compacts auch sehr gut performen. Für alle die keine Datenbankquotas verwenden, wäre meiner Meinung nach ein Parameter für die Auswahl des Compact styles sinnvoll gewesen. Da copy style compacts die Datenbanken im Filesystem extrem fragementieren und ohne quotas nicht so oft notwendig sind.

Wünschenswert wäre es wenn der compact Task und auch der Fixup Task eine Option für mehrere Thread bekommen würden.



 




Coole neue notes.ini Variable in Domino 9 für Copy style compact

3. Januar 2013 Posted by Ralf Petter

Bisher hatte man bei einem copy style compact von mail Datenbanken oft das Problem, dass der Copy style compact abgebrochen wurde, weil der Router eine e-mail in die zu komprimierende mail Datenbank zustellt. Deshalb war es oft notwendig, dass man vor der Datenbankmaintenance den Router Task stoppen musste, damit nicht Datenbanken beim Copystyle Compact übergangen werden. Mit Domino 9 wurde eine neue INI Variable "MailFileDisableCompactAbort=1" eingeführt, die genau dieses Problem löst. Sobald man die INI Variable am Server eingetragen hat, liefert der Router keine e-mails mehr an mail Datenbanken aus, für die gerade ein Compact läuft. Sobald der Compact fertig ist, werden die wartenden mails zugestellt.

Das ist einmal eine wirklich gute Neuerung obwohl erst die Praxis zeigen muss, ob es so gut funktioniert wie in der Doku versprochen ;-)

Erste Eindrücke vom Browserplugin und iNotes

28. Dezember 2012 Posted by Ralf Petter

Nachdem ich im letzten Post bereits die ersten Eindrücke zum Notesclient festgehalten habe möchte ich jetzt auch meinen Eindruck zweier Features die wir zwar nicht verwenden, die aber sehr viele Entwicklungsressourcen im Notes Entwicklungsteam gebunden haben anschauen.

1. Das Browserplugin

Erstens das Browserplugin macht von der Qualität einen viel besseren Eindruck als ich erwartet hätte. Es läuft soweit alles wie designed und sieht auch sehr gut aus.

 
Für Firmen die sehr viel mit xPages machen und Ihre Anwendungen hauptsächlich für den Browserclient ausrichten kann das eine mögliche Migrationshilfe sein. Man muss dann nicht mehr vom Browser in ein anderes Fenster wechseln, wenn man von einer xPages Anwendung in eine klassische Notesanwendung wechseln möchte.


Ein Problem, dass Anwender am Browserplugin hassen werden ist mir aber gleich aufgefallen. modale Dialoge blockieren nicht nur den geöffneten Tab, sondern blockieren das gesamte Browserfenster. Das heißt sobald das Notesplugin blockiert, kann man in anderen Browsertabs nicht mehr arbeiten. Es werden sogar andere Browserfenster in denen ebenfalls ein Tab mit einem Notesplugin offen ist gesperrt. Wie gesagt die Anwender werden diese Einschränkung wirklich hassen, da sie es von Webanwendungen nicht gewohnt sind.

Ebenfalls problematisch finde ich, dass der Notesclient und das Browserplugin nicht harmonieren. Wenn der Notesclient geöffnet ist, kann ich das Browserplugin nicht verwenden. Wenn ich im Browser einmal auf eine Notesfunktionalität zugegriffen habe, dann kann ich den Richclient erst wieder starten, wenn der Browser mit allen Tabs und Fenstern geschlossen wird. Wenn das Browserplugin installiert ist und der Notesclient offen funktioniert der Zugriff auf das "notes://" Protokoll nicht mehr und man erhält nur die Meldung dass der Notesclient bereits offen ist. Das ist für Endanwender sicher nicht zu verstehen.

Eine Kleinigkeit ist, dass die Druckfunktion des Browsers nicht funktioniert. Wenn man im Browser auf drucken geht, dann wird nur eine leere Seite gedruckt. Erst wenn man über das Notesmenü druckt, dann klappt das Drucken.

Offene Fragen zum Browserplugin sind aber für mich nach wie vor:
  • Größe des Plugins (Bei der Beta Version 150 MB!) 
  • Ich habe praktisch genau den gleichen Aufwand für das Deployment, wenn ich dem Benutzer bereits Einstellungen vorgeben möchte. Wobei ich noch nicht getestet habe, ob Policys beim Browserplugin überhaupt funktionieren. 
  • Teilweise sind Fehlermeldungen irreführend, da Sie für den Browserclient nicht passen und nur im Kontext mit dem Richclient sinn machen.
  • Sämtliche mit Notes 8 eingeführte Powerfeatures des Richclient sind im Browserplugin nicht verfügbar.
  • Warum bringt die IBM ein Feature, dass die Migration zu Cloud Diensten von nicht IBM Anbietern so stark erleichtert.

 2. iNotes

Wow iNotes sieht so gut aus, das man teilweise meint man verwendet einen nativen Client. Das ist wirklich eine starke Demonstration was mit Webtechnologien heutzutage möglich ist.

Auch die Performance ist wirklich großartig. Der Wechsel zwischen verschiedenen Bereichen geht blitzschnell und beinahe verzögerungsfrei aber leider leidet auch iNotes an Inkonsistenzen im UI. Statt den Follow Up Fähnchen von denen es im Client schon zwei verschiedene Versionen gibt, werden in iNotes plötzlich Sterne verwendet.  Wobei nicht nur die Symbole unterschiedlich sind, sondern auch noch der beschreibende Text. Fällt das bei der IBM niemanden auf, oder glaubt die IBM das es für die Benutzer leicht zu verstehen ist, dass ein Feature im Rich Client ein komplett anderes Design als in iNotes hat.

Die Icons des Richtexteditors sind ebenfalls in iNotes komplett anders als im Richclient und auch anders als die im Browserplugin verwendeten.

iNotes hat Icons die offensichtlich noch dem Notes 8.x Design entsprechen und dadurch überhaupt nicht zur neuen Farbgebung passen.

während das Browserplugin bereits die Icons des Notes 9 Social Edition Client spendiert bekommen hat.




Ein Bug ist mir auch noch aufgefallen. Die Startseite von iNotes lässt sich bei mir nicht customizen. Aber das sollte bis zur finalen Version erledigt sein.

Mein Resumee zum Browserplugin und iNotes  das beides Features sind die nicht nicht aktiv einsetze und daher auch nur oberflächlich angeschaut habe ist, dass beide Features trotz aller Kritik einen sehr guten Eindruck hinterlassen. Vor allem iNotes ist für Leute die einen Browser verwenden müssen eine tolle Sache. Auch wenn ich auf jeden Fall jedem Poweruser den Richclient ans Herz legen sollte.