Free 1-day seminar on April 24 hosted by Notesnet.dk

Notesnet
I am proud to announce a free 1-day seminar hosted by Notesnet.dk. The purpose of the seminar is to show companies the powerful features of IBM Notes 9, IBM Domino 9, IBM XWork Server 9, IBM Connections 4.5, XPages and much more – including case stories. The seminar is for existing IBM Domino customers and for potential IBM Domino customers, and takes place on April 24.

Have a look at the agenda and sign up to attend if the seminar is of interest to you. The seminar and online content is in Danish.

IBM Connect 2013 Update with Intravision

Intravision is hosting two IBM Connect 2013 Update seminars in Copenhagen on February 25 and in Århus March 6 where speakers from Intravision and from IBM will share news from IBM Connect 2013.

I am happy to have been invited by Intravision to speak about news from IBM Connect around XPages. I will be speaking about the IBM Social Business Toolkit, integration between XPages and IBM Connections, Embedded Experiences and more.

Remember to register if you are interested in attending one of the seminars.

XPages: dynamically updating rich text content in a CKEditor

For the Sherlock Web solution I had a need to be able to update rich text content in a CKEditor with rich text content from backend document templates. These backend document templates can be created and edited with the Lotus Notes client and will in some cases contain rich text content of type Rich Text (and not MIME). I can not change these backend document templates to be stored as MIME, so in order to be able to update the rich text content in a CKEditor, I thought I had to wrestle with conversion of Rich Text to MIME.

I spent a lot of time getting Rich Text to MIME conversion to work in order to add the backend document templates to the rich text content in the CKEditor. I ended up with a clumsy solution that involved saving the XPages backend document in order for the updated content to appear. I had a lot of inspiration from the answers to this Stack Overflow question on appending and prepending text to a rich text field. It worked, but…

A couple of good XPages guys suggested I took a look at using the datasource getValue() and setValue() methods instead. This turned out to be right way to go.

Part of trick is that I use the wrapDocument() function from XSnippet  to get a NotesXspDocument representation of the backend document template. I can then just use getValue(“body”) on that NotesXspDocument followed by getHTML() to get a HTML representation of the content. Brilliant!

The setValue method on the inputRichText control expects MIME and not text, so I use an XPages supplied method that converts from HTML to MIME. This is necessary in order to save the document at all.

So here is the important part of my code that reads content from the target field and updates it with a backend document field contaning Notes Rich Text, and ends up saving it as MIME:

if (templateDoc != null) {
   // Insert contents into existing field
   if (templateDoc.hasItem("body")) {
      var orgValue = document.getValue(bodyFieldName);
      var origValue;
      if (orgValue != null) {
         // The target field already has content
         origValue = ((typeof orgValue == "string")? orgValue : orgValue.getHTML()) + "";
      } else {
         // The target field is empty
         origValue = "";
      }

      var templateField = wrapDocument(templateDoc).getValue("body");
      importPackage(com.ibm.xsp.http);
      document.setValue(bodyFieldName, com.ibm.xsp.http.MimeMultipart.fromHTML(origValue + templateField.getHTML()));
   }
}

I also used an answer from Sven Hasselbach on partially refreshing contents in a CKEditor to put my inputRichText control inside a div control in order to partially refresh the div control when the above logic runs.

Using this method I am completely rid of the need to save the backend document. This just works! 🙂

I have added the part about updating the inputRichText control with MIME to the OpenNTF XSnippets catalog.

Notice: this code snippet does not work with embedded images and attachments.

Update October 2013: Here’s my solution for adding embedded images.

Source Control with Domino Designer 8.5.3 and Git (my talk at DanNotes, November 2012)

The 48th DanNotes conference took place yesterday and today.
I had 2 sessions. My first session was on the subject of XPages for administrators. My second session was on the topic of source control with Domino Designer 8.5.3 and Git. Here is my presention from that session:

Intro to XPages for Administrators (my talk at DanNotes, November 2012)

The 48th DanNotes conference took place yesterday and today. It was 2 days filled with lots of interesting sessions.

I had 2 sessions. My first session was on the subject of XPages for administrators. My second session was on the topic of source control with Domino Designer 8.5.3 and Git.

Here is my presentation from my XPages for Administrators session:

DanNotes 48th conference in November

The DanNotes 48th conference takes place on November 28 and 29. We have lots of interesting sessions and speakers:

I will also be speaking at the conference on the subject of XPages for administrators. The purpose of the session is to introduce administrators to XPages and to lots of useful tips and tools that can improve the use of XPages within their organizations. I am looking forward to this as it is my first speaking engagement at a Lotus user group conference.

If you are interested in joining the conference, then head over to the DanNotes website and register. There is a Facebook eventa LinkedIn event and a Lanyrd event for the conference if you are interested in tracking the conference using social tools.

I hope to see you at the conference 🙂

Update November 21: I will also be speaking about source control with Domino Designer 8.5.3.

I am now an IBM Certified Advanced Application Developer – Lotus Notes and Domino 8.5

I recently passed the LOT-922 certification test (Developing IBM Lotus Domino 8.5.2 Applications: Advanced XPage Design). The test is a multiple choice test with 32 questions and a required passing score of 75%- I scored 90%.

Since I was already an IBM Certified Application Developer on Notes/Domino 8.5 the passing of the test upgraded my certification level to IBM Certified Advanced Application Developer – Lotus Notes and Domino 8.5.

I prepared for the test by reading the test objectives and by practicing using a practice test from CertFX. The test focuses on advanced XPages programming and covers the following areas:

  • Building themes
  • Extending the data sources
  • Optimizing, troubleshooting and localization
  • Using advanced Dojo controls
  • Using Server-side JavaScript
  • Using XPages for mobile user interfaces
  • Working with Java

Unfortunately, the test is already somewhat outdated in its focus on Domino Designer 8.5.2. So be prepared for that if you plan to take the test.

Have a question on XPages?

Stack Overflow is a programming Q&A site for developers with more than 3.5 million questions and even more anwers on every programming language you can image.

On Stack Overflow you can also find questions and answers related to XPages. At the time of writing this blog post there are 597 questions tagged XPages on Stack Overflow with questions and answers coming in every day. If you have a question on XPages then have a look at some of the already asked questions and  their answers and see if that helps you. If not, then go ahead and ask a question.

I will also encourage you to help the community by answering questions and also upvoting great answers and downvoting misleading answers. This will improve the quality of Stack Overflow as a Q&A site for XPages.

XPages.info always lists the latest questions tagged XPages and also the top users for the XPages tag on the Stack Overflow tab.

Sherlock Web: a QHSE management system (based on XPages and IBM XWork Server)

I am currently busy working on Sherlock Web: a complete web solution for management of quality, health, safety and environment (QHSE). The solution is based on XPages and the IBM XWork Server and is available as a hosted solution or as an on-premises solution. The licensing cost of the server and application platform is fixed at $2000 per year, since the solution runs on the IBM XWork Server. This makes it an ideal platform for companies with a large number of users.

Sherlock Web is based on the existing Sherlock Lotus Notes solution that runs successfully at more than 500 companies. However, Sherlock Web does not require a Lotus Notes client at all – all you need to use Sherlock Web is a web browser, a tablet (such as the iPad or the Samsung Galaxy Tab) or a smartphone (such as an iPhone or an Android phone).

The document management part of Sherlock Web

You can attend 2 free (physical) seminars at IBM in Denmark on May 24 and May 30 where the Sherlock Web solution will be introduced. For more information and information on how to sign up for the event, please visit the Danish IBM Social Business blog. If you are unable to attend the seminar, you can get more information at the Danish Sherlock site and at the international Sherlock site and by contacting the Sherlock team.