Showing posts with label Notes. Show all posts
Showing posts with label Notes. Show all posts

Monday, June 30, 2014

Erweiterte Einstellungen in Desktop Policy funktionieren nicht richtig.

In einem meiner letzten Posts habe ich gezeigt, wie man den "Masthead" von Notes 9 über eine Desktoppolicy beeinflussen kann. Leider sind aber die Dialoge des Domino Adressbuchs in der deutschen und französischen Version von Domino leider kaputt übersetzt worden. Es wurde nämlich der englische Begriff "enforce" mehrmals irrtümlich ins Deutsche ("Zwingend") übersetzt. Dies bewirkt, dass zwingende Policyeinstellungen nicht richtig übernommen werden. Glücklicherweise kann dieses Problem aber  relativ einfach  mit dem Domino Designer behoben werden.

Sunday, June 29, 2014

A deep look under the hood of the Notes Standard client.

The IBM Notes Standard client is an eclipse RCP (Rich client application) which has hundreds of extension points to extend the functionality of the application. This extension point allows you to extend notes in ways which were absolute impossible to do in versions prior Notes 8. The only problem is that the documentation of the extension points is still very weak and i have no hope that this will improve significantly in the next time.

So i have created a tool to graphically browse the extension registry of a running Notes client. It shows you all possible extension points with the defining plugin in in a tree structure. You can open every extension point and see which plugins extend this extension point with what parameters.

See the following screenshot for an example. I have opened the com.ibm.rcp.ui.shortcutButtonSet extension point in the com.ibm.rcp.ui (Marked with a red frame). This is the extension point which has to be used to extend the masthead in Notes 9 with your own icons. We see that all actions that are available in Notes are defined in the com.ibm.notes.client plugin (Marked in green) In the next level of the tree you can see what values the com.ibm.notes.client uses to extend the extension point. This can be very valuable source to find out how this extension point works and what to do to use this point for your own extension.


Tuesday, June 24, 2014

Configure the Notes 9 Masthead (ShortcutButtonBar) with a desktop policy

One of the new features of Notes 9 is the Masthead which is a shortcut bar to access often used functions in Notes. The user can configure which icons will be shown in the view menu of the Notes client. But what if you want to preconfigure this feature for your users on roll out? Although in the Desktop policy are no settings for the Masthead, you can configure this with managed settings.

IBM Notes Domino Masthead ShortcutButtonBar

The settings which icon are available is stored in the "com.ibm.rcp.ui.prefs" file in the "workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings" folder in your data directory. To add an action add a line to this file with the id of the action set to true. To remove an action add the id with false.

Saturday, June 21, 2014

xPages in Notes client fails with XPCOM error 0xcf1f30001 after upgrade to Notes 9.0.1

I have upgraded my Notes Client from 8.5.3 FP2 to 9.0.1 FP1 and after this upgrade no xPage based application works in the notes client. In the trace of the client i found an "CLPDN0031E: org.eclipse.swt.SWTError: XPCOM error 0xc1f30001"  error with the stack trace:

org.eclipse.swt.SWTError: XPCOM error 0xc1f30001 at org.eclipse.swt.browser.Mozilla.error(Mozilla.java:2663) at org.eclipse.swt.browser.Mozilla.create(Mozilla.java:732) at org.eclipse.swt.browser.Browser.<init>(Browser.java:99)......

Actually no XULRunner (Mozilla rendering engine which is used by XPiNC) based functionality of the client is working. I have analyzed the problem and found that the rcpinstall.properties file in the workspace does not point to the XULRunner plugin which has been updated for Notes 9.0.1.

To solve this problem close every instance of your Notes client and open the rcpinstall.properties file in the "workspace\.config" path in your data directory with your favorite editor (notepad.exe will work) and change the line

Friday, June 20, 2014

Notes Browser Plugin Tips & Tricks

After his great FAQ about Notes Browser Plugin, Kevin McDonald has added another valuable info page to IBM Notes Domino Wiki. The Notes Browser Plugin Tips & Tricks contains helpful informations regarding the following topics:
  • Infos about the migration from standard client to the browser plugin.
  • Special Notes.ini settings for the browser plugin.
  • Tips how to log problems in the plugin.
  • Tips about the bookmark handling

Notes Browser Plug-in: Tips and Tricks


Wednesday, June 18, 2014

Temporarily disabling and re-enabling Notes roaming user status

The roaming feature of the notes client works really well and i always recommend to use roaming on production systems, but there is one caveat, if you change the notes id of the client when roaming is enabled, you will get all sort of weird problems. So NEVER change the notes id while roaming is enabled on your client. Normally changing the id in the client is not necessary, but when i test readers field functionality i want a quick way to change the id without logout and relogin of my windows session. 

Fortunately with Notes 8.5.2 IBM introduced a Notes.ini setting with which one can disable roaming temporarily. So if you have the same usecase as i, add "DisableRoaming=1" to your notes.ini before you change the notes id to the id of another user. After you finish your testing, you can re enable roaming with "DisableRoaming=0" in the notes.ini.

You can find all details how this great feature works in the technote Disabling and re-enabling Notes roaming user status on the fly.

Tuesday, June 17, 2014

How to configure Eclipse 4.3 to develop plugins for Notes 9.0.1 FP1 (Part 2)

In the second part of this series i will show how to create a launch configuration in Eclipse to run or debug Notes. In the launch configuration you can select which of your self developed plugins should be deployed to the launched Notes client. So you do not need features, an updatesite and widgets for your development. This allows rapid development. Before you start to create the launch configuration be sure that you have followed all steps from the first part of this series.

Open the "Run Configurations" Dialog from the drop down menu.


Select "Eclipse Application in the right sidebar and click the "New" Button.


Change the Name of your newly created launch configuration to "Notes 9". Select "Run as a product" and choose "com.ibm.notes.branding.notes". Be sure that the Execution environment is the Notes JRE you defined in the first part of my tutorial.


Go to the second tab "Arguments" and fill in the program arguments:

-personality com.ibm.rcp.platform.personality
-product com.ibm.notes.branding.notes
-debug
-console
-nl en_US


and the VM arguments:

${build_files}-Xshareclasses
-Xss1m
-Drcp.home=${rcp.home}
-Dcom.ibm.rcp.install.id=${install_id}
-Drcp.install.config=user
-Dosgi.install.area=${rcp.home}\eclipse
-Dcom.ibm.pvc.osgiagent.core.logfileloc=${rcp.home}\rcp
-Dcom.ibm.pvc.webcontainer.port=0
-Declipse.pluginCustomization=${rcp.home}\rcp\plugin_customization.ini
-Declipse.registry.nulltoken=true
-Djava.protocol.handler.pkgs=com.ibm.net.ssl.www.protocol
-Djava.util.logging.config.class=com.ibm.rcp.core.internal.logger.boot.LoggerConfig
-Dosgi.hook.configurators.exclude=org.eclipse.core.runtime.internal.adaptor.EclipseLogHook
-Dosgi.framework.extensions=com.ibm.rcp.core.logger.frameworkhook
-Xbootclasspath/a:${rcp.home}\rcp\eclipse\plugins\com.ibm.rcp.base_${rcp.base_version}\rcpbootcp.jar;



Then click on the "Variables" button and then on the "Edit Variables" Button to define the Variables we have used in the VM arguments.
 

You can create the variables with the "New" button.

install_id=1401453279265
rcp.base_version=9.0.1.20131002-1404
rcp.home=C:\Progra~2\IBM\Notes\framework

You have to adapt the rcp.home path with your notes path. But be careful that there are no blanks in the path. As you see in my example i have used the 8.3 format to avoid the blanks in C:\Programme (x86)".

Click "Ok" to leave the String Substitution dialog.
 

Attention: Close the "Select Variable" Dialog with "Cancel" and not with "Ok". When you select "Ok", the selected variable will be inserted in the VM Arguments and your launch config will not work.


Go to the "Configuration" tab and choose "Use an existing config file as a template". You can find the config.ini of your Notes installation in \framework\rcp\eclipse\plugins\com.ibm.rcp.base_9.0.1.20131002-1404\ in the Notes program directory.


After applying your changes with the "Apply" button you can start notes with the launch button. Be sure that Notes is not already running, because the start of notes will fail if it is already running. All plugins in your workspace will be auto deployed to the launched Notes client. Leave a comment if it is not working for you.

You are now ready to start extending the Notes client with your own extensions. In one of my next posts i will show how to write a plugin to block recent contacts permanently directly from the typeahaed function.


Sunday, June 15, 2014

How to configure Eclipse 4.3 to develop plugins for Notes 9.0.1 FP1 (Part 1)

Our Domino Admin has updated our Notes/Domino servers to Domino 9.0.1 FP1. So i have to update my plugin development environment to 9.0.1 FP1 too. In today's post i want to show what's to change in the eclipse preferences to extend the Notes client with your own functionality. I assume that you have already installed Eclipse 4.3 or above and Notes 9.0.1 FP1. 

Start your Eclipse and choose a new workspace for your first steps in Notes plugin development.

Open the Eclipse preferences window and select "Java->Installed JREs" from the selection tree. Click "Add" to add the Notes JRE to the installed JRE's Notes will only run with his own JRE.


Select Standard VM as the JRE type.


Choose the base folder of the Notes JRE and Name the new JRE "Notes9". The JRE of Notes is in the jvm folder in your Notes Base directory. The JRE system libraries are added automatically when you choose the JRE home directory. Click Finish.


Check the new JRE to make your newly added JRE the default JRE. 


To solve the warning that the compiler compliance settings are not correct for this JRE, go to "Java->Compiler" and change the JDK Compliance from 1.7 to 1.6.


Now we need to add Notes as a target platform. The target platform tells Eclipse which plugins you can use or extend for your development. Click add to start the process. 


 Start with and empty target definition and click next.


Name your new target definition "Notes 9" and click add to add a new plugin location to your definition.


Select that you want to add an installation and click next.


Add the "framework\rcp\eclipse" path in your Notes program directory to the location. and click "Finish"


Approximately 2034 plugins (Notes client, Designer) should have been added to your definition.Click finish.


Change the target patform to the newly created definition and close the Preferences Dialog with "OK"


Your Eclipse workspace is now ready to develop plugins for the Notes client. In the next post in this series i will show you how to create a run config to start the Notes client from inside of eclipse to easily debug your plugins.

Do not miss Part 2 of this series.

Friday, June 13, 2014

Notes Browser Plugin FAQ

The Notes Browser plugin is a popular way to run classic notes applications in the webbrows. If you are using this technology you might find the FAQ page useful that Kevin Macdonald has posted to the Notes Domino Wiki.


Thursday, June 5, 2014

Howto use Xulrunner instead of Internet explorer as browser component in a Notes RCP

One of the coolest features in Notes RCP applications is, that you can embed a browser widget in your application. You can use the browser widget as a document viewer, to view an interactive map for example with openlayer, or to visualize your data as a chart with dojo chart running inside the browser widget.


Wednesday, May 28, 2014

IBM Notes Traveler FAQ

Traveler ist one of the best features added to the Domino servers in the last years. Although is not only feature rich, but also very reliable and easy to configure, there are some important questions to answer to implement traveler correctly. Many of this questions were answered by Corey Quinn |(Notes Traveler L3 Support Lead) in an OpenMic call in the end of April. You can find a recording and a transcipt of this Q/A session at http://www.ibm.com/support/docview.wss?uid=swg27041522.

The topics in the Q/A session were:

  • Feature Requests, Roadmaps, Known Limitation
  • Setup & Upgrade
  • Server Pools, High Availability, Load Balancing
  • DMZ
  • General Administration & Troubleshooting

Tuesday, April 22, 2014

Platzsparen am Domino Server

Ulrich Krause hat eine fantastische Präsentation auf Slideshare gestellt die einen Überblick über alle Techniken enthält die der Domino Server in den letzten Versionen bekommen hat um Speicherplatz zu sparen und die IO Performance zu steigern. Die Präsentation enthält auch viele Tips und Tricks und kann mit Sicherheit das nächste Hardwareupgrade sparen.

Folgende Themen werden in der Präsentation besprochen:

  • Compact Options
  • Neue Möglichkeit mit -REPLICA zu kompakten
  • Upgrade ODS
  • Domino Defrag
  • Design Notes Compression
  • Document Body Compression
  • Attachment De-Duplication (DAOS)
  • Transaction Log Location
  • Fulltext Index Location


Wednesday, December 11, 2013

IBM Notes/Domino 8.5.3 FP6 is available on Fix Central

IBM Notes Domino 8.5.3 FP6 is available on Fix Central

This Fixpack brings new support for Windows 2012 and support for Windows 8.1 and Mac OS X 10.9 is under review for this Fix Pack. You can find all details what is fixed in this release in the release notes.

So for everyone who is still on 8.5.3 has the possibility to upgrade to the newest client os versions on the different platforms.

Thursday, November 14, 2013

Open mail database of the session user in Java

In many Notes/Domino Applications you have to work with the mail file of the user. In Lotus script it is very easy to open the mail file of the session user.

Dim mailDB As New NotesDatabase( "", "" )
Call mailDB.OpenMail

Unfortunately the OpenMail method is not available in Java. As a workaround you can get the mail database of the session user from the DBDirectory.
Database mailDB = ses.getDbDirectory(null).openMailDatabase();

ses should be a valid Notes Session Object.

Monday, November 11, 2013

Neue Version des NRPC Parser auf OpenNTF

Eines meiner wichtigsten Werkzeuge zur Optimierung von Domino Performance Problemen wurde aktualisiert. Die neue Version des NRPC Parser 1.0.12 kann jetzt mit der Angabe der Thread ID in neueren Versionen von Notes umgehen. Eine Beschreibung wie man den NRPC Parser verwenden kann, findet man unter Lösen von Notes Performanceproblemen mit dem NRPC Parser.

Friday, October 18, 2013

What's new in Policies for Domino 9.0

In September IBM made an open mic Webcast "What's new in Policies for Domino 9.0".

Agenda of this Webcast:
  • Widgets and How To apply settings
  • Configuring Widgets for Specific Notes Client Versions
  • New Notes Client Preferences configured via policies
  • Policy related SPR's fixed in Domino/Notes 9.0
You can access the presentation and an MP3 recording of the Webcast in the technote http://www.ibm.com/support/docview.wss?uid=swg27039462


If you need additional informations how to troubleshoot Policy problems in Notes/Domino you can have a look on an older webcast http://www-01.ibm.com/support/docview.wss?uid=swg27039379 to this topic

Have a look at my other postings relating policies 

Wednesday, August 14, 2013

Show pictures in emails from iPhones as attachments and not as inline images

It is very annoying, that the iPhone send pictures in email not as attachments but as inline images. This is especially a problem when you use a client to view such a mail, because it is a little bit difficult to save inline images to your file system.


Fortunately the notes client have the setting "Show in-line MIME images as attachments" which you can find in the Preferences Dialog in the "Basic Notes Client Configuration".



When you set the above described option all pictures in e-mails from iPhone user, will be shown as attachments, which you can open in your favorite photo editor, or save to the file system. This setting will not only change the behavior for new mails, but also for old ones. So you can always uncheck the "Show inline MIME images as attachments" option and will get the old behavior back. But i am pretty sure, you will not want it back if you have tried out this setting. An example for the email with the option set:


The option in the ui sets the variable "ShowMIMEImagesAsAttachments=1" in your Notes.ini. So when you want do deploy this useful option to all your notes users, you can set the "ShowMIMEImagesAsAttachments=1" variable in the notes.ini section of your Desktop policy.

Monday, August 12, 2013

IBM Notes/Domino 8.5.3 FP5 is available on Fix Central

Fixpack 5 for IBM Notes/Domino 8.5.3 is available on Fix Central.

This update contains a new Version (1.6 SR14) of the java virtual machine which fixes several known security vulnerabilities. So it is strongly recommended to install this fix pack on your Client and Server.

As always you can find all fixed SPR's in the fixlist database on Developer works.

Thursday, August 8, 2013

Force the Notes client to refresh policies from the server

One of the best Admin features of the Domino Notes eco system are the Policies. With Domino policies you can control many aspects of the configuration of your notes clients in your environment. You can prevent your users from accidentally change configuration settings to values which will not work in your environment, or you can enforce security settings in the client to match your security policies in your company. So Domino Policies are really very important part of a successful Notes client deployment. If you need information what you can do and how to implement policies properly you can find many good advice in the "Using IBM Lotus Domino 8.5 Policies to Manage Your Clients" from Darren Duke.

But one major annoyance of the implementation of Domino policies is that it is very unpredictable when the notes client will refresh his policies from the server. Especially in test environments you restart your clients often only to see that your changes on Policies are still not pushed to your test client. Or something in your client goes wrong and policies will not be updated anymore. So i have created a small lotus script program to delete the local cache of the policies and refresh all policies from the server which you can put in the click event of a button.


Sub Click(Source As Button)
 Dim s As New NotesSession
 Call s.SetEnvironmentVar("PoliciesLocalViewModTime","",True)
 Forall db In s.AddressBooks
  Call db.open("", "") ' Must open database
  'Refresh Policies View on Server  
  If db.IsPublicAddressBook Then
   Set view=db.getView("($Policies)")
   view.refresh
   Set view=db.getView("($PoliciesExt)")
   If Not view Is Nothing Then
     view.refresh
   End If
  End If
  'Remove all policydocuments on the local client  
  If db.isPrivateAddressBook And db.server="" Then
   Set view=db.getView("($Policies)")
   Set doc=view.getFirstDocument
   view.autoupdate=False
   While Not doc Is Nothing
    Set tempdoc=doc    
    Set doc=view.getNextDocument(doc)
    tempdoc.remove(True)
   Wend
   view.autoupdate=True
   view.refresh
  End If
 End Forall
 'Run Dynamic client configuration to repopulate the local policy view 
 Set s=Nothing 
 result=Shell ("ndyncfg.exe ""1""",1)
End Sub
I have tried this code in our Domino 8.5.3 environment. If you have any problems please leave a comment.

Have a look at my other postings relating policies

Wednesday, August 7, 2013

Contextsensitive help for Notesplugin developer in Eclipse

When you develop plugins for the notes platform the target platform, does not contain any javadocs. So you do not get context sensitive help on java classes in Eclipse. This makes the development especially for beginners needlessly difficult and annoying.

Here is an example: You want to make a new SWT Text Field and get only a the Constructor signature with not very helpful parameter names. What the hell is arg1? So you have to open a browser go to the javadocs of SWT and search for the Text class and after reading the description go back to eclipse.

 

Wouldn't it be so much nicer if you can get useful parameter names and the javadoc direct in the syntax completion window like you get it when you develop plugins against the standard RCP target.


Follow this steps to teach the eclipse IDE that it shoukld search for the source in another place.

First go to your plugin in the package Explorer in your eclipse IDE. Open the  "Plugin Dependenices" and search for the plugin for which you want do add java source. In our example this is org.eclipse.swt.win32.win32.x86.versionNumber.



Download the Eclipse RCP source from the eclipse download archive page in the correct version. In our example the correct version is 3.6.2.

Unzip the "org.eclipse.swt.win32.win32.x86.source.version.jar" from the downloaded SDK to a new directory where you want to store all java source packages for Notes. Do not place this directory somewhere in the Notes program directory.

Right click the Notes plugin in package explorer and select "Properties" from the context menu. Paste the fully qualified path to the extracted source plugin in the Location path or select external File and browse to the source plugin file. Then finish the dialog with ok. Now your have context help for every SWT Class in your eclipse IDE.


You can repeat the above steps for other plugins in Notes which are eclipse based, for example jface, eclipse forms or the workbench. Be aware, that most other plugins are not version 3.6.2, but 3.4.2. So you have to download the 3.4.2 SDK from the download archive.

I think this is really a great step forward for every plugin developer for Notes.



ad