03-11-2009

Domino weblog will be based on the Domino Blog template

Category  
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

Domino weblog is no longer using BlogSphere, and changed to Domino Blog template. This template will be delivered with the Domino 8.5.1 server. In the new Blog database it's very easy to paste screenshots in a blog item. Also creating links are easier. The Look and Feel of the Blog is, like Blogsphere, managed in the Lotus Notes Client. Nice feature is that we add Sametime awareness of the blog author. RSS feed of new weblog link

29-10-2009

NLLUG and launch of Lotus marketing campaign

Category
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

This morning the two day NLLUG started in the rai in Amsterdam. Kevin Cavanaugh is the speaker for the opening keynote.
It's the largest Lotus event in the Netherlands, and as far as i know the largest Lotus event ever in the Netherlands. 2 days, 3 tracks, over 40 sessions.
There's a large agenda with local and international speakers.
Live tweets from this event can be found here

The event is also used to launch the "lotus loves" campaign. That's a rather unique campaign. It started with a large number of Dutch BP's wanting to do a common marketing campaign, to raise awareness of the Lotus brand in the Netherlands. The first meetings where before the announcement of the Lotus Knows campaign. And as that campaign isn't coming to the Netherlands the BP's decided to move on.
IBM was contacted for funding and participation. Roughly half of the funding is from IBM, the other half is payed by the BP's. That's rather unique i think: BP's that are competitors working together, funding money and a large amount of time, to pull of a marketing campaign in the Netherlands, for a product that isn't theirs but on which they depend for a living: Lotus Loves Collaboration

28-10-2009

Bug in designer client in combination with pass-thru server

Category
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

A few days ago I ran into a problem that at first drived me crazy. I had a local agent that opened names.nsf on a server and then did a GetDocumentByKey in a view in names.nsf. Although I was sure that a document should be found, Notes did not find anything. When running the agent with the debugger turned on I found out that names.nsf was being opened on the wrong server, in this case on a server in a different domain.

As you can see in the screen print I was trying to open names.nsf on the server P0370000 but it opened on the server P0370900.



At first I was just stunned, ran the script a couple of times more, with the same result, and asked a collegue to check what I was doing wrong, nothing....

After a restart of my Notes client the script ran as it should, but later that day it went wrong again. Since I can only access the server P0370900 via pass-thru through the server P0370000 I began to think it had something to do with pass-thru so I did some testing in that direction.

It turned out that when I did not open aything on the server P0370900 after starting Notes the script ran fine. Once I performed a File, Application, Open on the server P0370900 the script would no longer open names.nsf on the server P0370000 but on the P0370900.

Yesterday, after some conversations with IBM Lotus Support, I discovered that the code will run fine if I use the fully-distinguished servername in the code instead of common name.

But the problem is even worse as I found out today. After having opened a database on the server P0370900 via pass-thru I went to the files tab in the Administrator client for the server P0370000, right clicked on names.nsf and choose 'Open in designer'. As you would expect, the database opened in the designer. But when I clicked on a design element to open it, it opened on the server P0370900....

So, better watch and and check twice if you are really opening the design of a database on the server you want and that your agents do so as well.

IBM Lotus Support will be creating an SPR soon.






26-10-2009

Human Readable Dates in XPages 8.5.1

Category  
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

For a Xpage project I made use of the Server Side Javascript library posted by Matt White. In 8.5 it worked fine and returned the last modified date in a human readable fashion.
I discovered that in 8.5.1 the code was broken and returned 'undefined' instead of a text.
After some testing I found the solution.
An example of the solution.
Before:
@Text(@Round(diff_in_minutes / 43200))
After:
Math.round(diff_in_minutes / 43200).toString()

Download

19-10-2009

New agent trigger in Domino 8.5

Category
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

Domino 8.5 has a new trigger for scheduled agents 'When the Domino server starts'. The trigger does exactly what is says: run the agent right after the Domino server starts.

I am currently using it to start an add-in that is not completely 8.5.1 compatible. When the add-in starts through the notes.ini or a program documents the router and smtp task stop functioning. As a work-around I now have an agent that runs when the server starts. It waits 30 seconds and then send a console command to start the add-in.


18-10-2009

Setup eclipse and the expeditor toolkit for notes851

Category
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

When you develop plugins for notes you're likely using the Expeditor Toolkit. The toolkit makes the setup of the development environment quite easy.
A complete howto can be found in the Expeditor wiki, including download links for the correct eclipse versions.

The main difference between 851 and earlier versions is the location of the target location in the Toolkit configuration screen.
The new target is <notes>\framework\rcp\eclipse

You can also do the setup of you development environment without the help of the expeditor toolkit, that procedure is described over here

16-10-2009

NotesJob is deprecated in 851

Category  
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

The Notesjob and  NotesPlatform classes are deprecated in Notes 851. Those classes are needed when you want to access Notes from a plugin.
Notes 851 has some new classes that should be used.

One way to solve this in 851 is with this code:
public class ClassThatRunsANotesSessionJob {
        private List content;
   
    public ClassThatRunsANotesSessionJob() {
       content = new ArrayList();
    }

    public void someMethod(){
       NotesSessionJob job = new NotesSessionJob("Put job name here"){
           protected IStatus runInNotesThread(Session session, IProgressMonitor monitor){
            //populate the content instance variable in here
                   try {
                                Database db = session.getDatabase("", "names.nsf");
                               
                        } catch (NotesException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                return Status.OK_STATUS;
           }
       };
       job.schedule();
    }
}


Another option is to extend the NotesSessionJob class in your own class. You need to implement one method in this case
protected IStatus runInNotesThread(Session s, IProgressMonitor arg1)throws NotesException

In this method a variable is filled.

In the calling class the class(yourclass) that extends NotesSessionJob is scheduled as a job, and a changelistener is added to the job.
The calling class knows when the notes stuff is finished, and calls another method in the yourclass to get some data.

final yourclass job = new yourclass("Put a job name here");
job.addJobChangeListener(new JobChangeAdapter(){
     public void done(IJobChangeEvent event){
          List content = job.getContent();
          //Do some stuff with the content here
     }
});
job.schedule();



You cannot use Notes objects out of the session scope. Like in LotusScript, document objects are invalidated when the database object they reside in is gone.
Instead of java objects, or your own classes you can also use the new Data classes in the com.ibm.notes.java.api.data  package, see the NotesDocumentData class: http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/topic/com.ibm.designer.domino.javadoc/javauiapi/com/ibm/notes/java/api/data/NotesDocumentData.html

The complete javadoc on the new NotesSessionJob, the new java UI classes, and some other new classes, can be found here

12-10-2009

Strange behaviour of facesContext.getExternalContext().getRequestContextPath()

Category  
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

I have build a webbased Digital Image Gallery and there I use 'facesContext.getExternalContext().getRequestContextPath()' to collect the databasepath, '/saas/xdig.nsf But when I load the Xpage in the Client I see a strange behaviour. My databasepath is modified in the follow syntax, '/xsp/Paddington R8!!saas\xdig.nsf' (Paddington R8 = servername). Can someone explain how I can fix the database path in my xpage, so it will work in web and client.

12-10-2009

Notes/Domino 8.5.1 available

Category
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

For those of you who had not yet noticed it: Notes/Domino 8.5.1 is available for download. I am currently installing the client, will upgrade my servers later.


08-10-2009

Xpage: getWeek() function in Server Side JS

Category   
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

I'm busy with the rebuild of our Planning database. To display the planning of the employees you will need the weeknumber In Javascript object Date there is no native method to get the weeknumber. So you need to extend the Date object. To get is work in Xpages, put the following code in a Server Side JS scriptlibrary and include this scriptlibrary in the resources of the xpage or custom control: /** * Get the ISO week date week number */ Date.prototype.getWeek = function () { // Create a copy of this date object var target = new Date(this.valueOf()); // ISO week date weeks start on monday // so correct the day number var dayNr = (this.getDay() + 6) % 7; // Set the target to the thursday of this week so the // target date is in the right year target.setDate(target.getDate() - dayNr + 3); // ISO 8601 states that week 1 is the week // with january 4th in it var jan4 = new Date(target.getFullYear(), 0, 4); // Number of days between target date and january 4th var dayDiff = (target - jan4) / 86400000; // Calculate week number: Week 1 (january 4th) plus the // number of weeks between target date and january 4th var weekNr = 1 + Math.ceil(dayDiff / 7); return weekNr; } Here is an example of how you can use of the getWeek method. var dt = new Date(); var wk = dt.getWeek();

OpenNTF random projects

PlanetLotus