just a quick tipp - I was looking for a solution on how to launch attachments in an XPINC application without downloading them first and eventually came up with a solution. My problem was, that I had multiple attachments in the documents I had to deal with. The attachments were Office documents, PDFs and even MP4 video files, so a wide range of formats.

The basic idea behind my solution is to use a notes:\\\ Link to open the corresponding Notes Document from my XPINC app and let LotusScript handle the process of launching the attachment. My only problem was how to let LotusScript know, which attachment I wanted to launch. One idea was to create temporary documents and to use the launch first attachment functionality, but I did not want to create and delete additional documents.

So, here's what I came up with in a nutshell: Environment variables. Still remember them ? Yeah, back in Notes 2 and 3 they were huge, but they are still around and guess what - even XPages can work with them. So, to handle my attachments, I created a repeat control for a table, that lists all the attachments in the Notes backend document as one table row. This look like this:

Image:Launch Attachments in XPINC app (Windows only !)

This is the SSJS to select all my attachments for the repeat control:

var alist = document1.getAttachmentList("Body");

if (alist.isEmpty()) {

     return null;

} else {

     var alisti = alist.iterator();

     var names = new java.util.Vector();

     while (alisti.hasNext()) {

             var content:String = alisti.next().getName().toString();



     return names;


The control renders a link for each attachment showing its name. The link contains an onClick-Event that takes care about creating the notes:/// link to the document itself and to set an environment variable with the name of the attachment to launch. I use the view.postscript construct to redirect to the notes document, this automagically opens in a new notes window.

Here's the code for that, "docs" is my variable from the repeat control that carries the name of the attachment, document1 is the document datasource:

var aname:String = docs.toString();

var replid = database.getReplicaID();

var baseurl:String = "

var url:String = baseurl+"?OpenDocument&AttachmentName="+docs.toString();



In Notes, I have used the ShellExecute command - I remebered the shellexec.lss of Julian Robicheaux, you can find it here: http://www.nsftools.com/tips/WinTips.htm

So, in the Notes Document, I used the QueryOpen Event to launch the attachment and stop the Notes Document from opening - et voilà !

Image:Launch Attachments in XPINC app (Windows only !)

Here's my code in the query open event:

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)

     On Error Goto fehler

     Dim doc As NotesDocument

     Dim obj As NotesEmbeddedObject

     Dim aname As String

     Dim AgentArgs List As String

     Dim db As NotesDatabase

     Dim s As New NotesSession

     Dim result As Long

     Dim rtitem As Variant

     Set db = s.CurrentDatabase

     Set doc = Source.Document

     aname = s.GetEnvironmentString("CurrentAttachment")

     'Msgbox "File: "+aname

     Set rtitem = doc.Getfirstitem("Body")

     If (rtitem.Type = RICHTEXT) Then

             Set obj= rtitem.GetEmbeddedObject(aname)

             aname = "c:\windows\temp\" & aname

             Call obj.Extractfile(aname)

             result = ShellExecute(0, "open", aname, "", "",1)        

     End If

     Goto raus


     Msgbox Error$+" at line: "+Cstr(Erl())

     Resume raus


     continue = False

End Sub

As always - there are tons of ways to do this better/easier/with less code - let me know. I have been looking around for some time now and this is the best I came up with so far.

Happy coding !

Heiko Voigt   |   3 March 2014 12:54:59 PM   |    Notes  XPAGES  XPINC    |    [0]

So back from Orlando, the next conference is waiting:

My colleague Patrick and I from Harbour Light Ltd.  will be speaking about the technical aspects on how to integrate IBM Connections as the social media components for Adobe AEM. It's a brief discussion, but we will share some insights on the technical aspects on how we have been building our social rendering components for Adobe AEM.
We will show the development patterns we used, discuss the potential integration points to IBM Connections and the differences between the Connections REST Service API and the Social Business Toolkit. We will briefly touch the area of Single Sign On concepts and ideas behind our Web SSO product IMPRISIS STS and will also give a demo that shows the Adobe AEM components and workflows we have built.

The presentation should as well give you a starting point on what is necessary to integrate the two products, why (for us) it seems a good idea to do that, and what business benefits your customers can get from using Social Business Software with Adobe AEM.

A first demo and round trip can be found here.

See you in London !
Heiko Voigt   |   18 February 2014 06:57:31 PM   |    Adobe  IBM  AEM  Connections  IMPRISIS    |    [0]

10 February 2014 Monday

Connect 2014 - my impressions


back from the States and from Canada, a couple of people asked me about my impressions from Connect 2014. Well, here they come:
  • First of all, for us, it was an extremely successfull event this year, mostly related to the business meetings we had during the event, less because of session content or announcements. So was it worth the trip ? Yes absolutely.
  • Is MailNext appealing to me ? From what we have seen yes, but it's still all smoke and mirrors. I am looking forward to see an actual implementation of what's the real deal, then we will see.
  • The OGS ? Well, sort of OK but somewhat boring for me. Interesting customers, but I was missing the vibe. The hosts and special guests were boring for me, and personally, I don't like jokes about killing Osama Bin Laden in a business conference opening session. Please, spend some money on special guests that have some personality or leave it completely !
  • What about Connections ? A lot of new features have been announcend, which is great, the biggest change however for me is, that, if you really want to deeply customize Connections from a UI perspective, you now know how IBM wants you to do that: Install Portal and WCM on top or besides of the whole connections caboodle and use social rendering. That is expensive but it will leverage all the investment IBM took regarding web experience management, analytics and campaign management. This will also extend the reach of Connections to the extranet and brings WCM and Portal back to the intranet stack. I know some business partners that haven't been amused about that. Connections to me is more and more becoming a middleware service layer for social components, which I think is actually the way to go forward with this product. There is no use in investing tons to build a custom Connections UI - there are so many tools out in the market that do this way better than that.
  • ND ? Well, XPages it still is, the rest is loosing traction. It pretends to be a renewal cash cow and is so far part of MailNext, but we will see how this plays out.
  • Softlayer becomes more and more important and is an interesting hosting solution for us as well. Besides some hurdles in their setup process, to me, the offerings work very well from a pure technical standpoint.
  • Sessions ? Some cool ones, lots of stuff that was not new - I would love to see some fresh faces and new topics on the technical part instead of a lot of the re-cooked stuff from the past years. The marketing sessions and Jumpstarts were really well done this year for me.
  • The audience: very little amount of actual customers (by counting colors of badges), tons of IBMers, which, for me, is not bad per se. Less partners or different ones. Good talks though, so that mixture worked for me up until the Sales academy kicked in on thursday and each and wvery seat in the lobbies were taken by IBM sales guys with laptops and phones.

So, these are my five cents.

Heiko Voigt   |   10 February 2014 11:55:16 AM   |    Connect  IBM  Adobe  Domino    |    [0]

Well, well, well, we did a lot of demos about IMPRISIS CA this week at Connect 2014 in Orlando, so we decided to record a short demo video and to put it on YouTube.

So, if you are interested to see a small portion of the product in action go here:

IMPRISIS CA Demo on integration of IBM Connections and Adobe Experience Manager

You can also follow us over at Harbour Light Ltd. !


Heiko Voigt   |   30 January 2014 03:40:25 PM   |    CONNECT  Adobe  IBM  Connections    |    [0]

  • Bookmarks ? Check !
  • Liking ? Check !
  • Forums ? Check !
  • Communties ? Check !
  • Business Card ? Check !
  • Single Sign on ? Check !

Demo is coming together ! See the Screenshot of a public forum from Connections in the Adobe Geometrixx Demo Site !

Image:Connect 2014 - finishing touches on Demo for Connector between IBM Connections and Adobe AEM
Heiko Voigt   |   26 January 2014 11:42:30 PM   |    connect  IMPRISIS  Adobe  CQ5  AEM    |    [0]

Harbour Light Software Development Ltd. announces their integration product IMPRISIS(tm) CA, a connector technology for Adobe WEM and IBM Connections that allows you to utilize IBM Connections Components in a Adobe WEM powered website.

We will be in Orlando next week to demo the solution - whoever is interested, get in touch with us !

Here's the announcement letter, more details on their website !

Harbour Light Software Development
announces IMPRISIS(tm) CA !

Shelburne, January 23rd 2014.
Harbour Light Software Development Ltd., a software development and consulting company focusing on social business solutions is pleased to announce the first product of their IMPRISIS(tm) family of integration products - IMPRISIS(tm) CA.

This new and unique solution offering connects two market leading product families - the social intranet platform IBM Connections and the web content management platform Adobe Web Experience Manager (WEM).
Using IMPRISIS(tm) CA, Adobe WEM customers can now leverage all of the social components that IBM Connections offers in a component based manner. They can create and re-use IBM Connections Components like

  • Forums
  • Wikis
  • Activity Streams
  • Bookmarks
  • and many more...
in their web presence projects within Adobe WEM. These components can be placed anywhere inside the web content, they follow the content flow of the surrounding web site.
IMPRISIS(tm) CA delivers a set of Sidekick components, that allow content authors to place IBM Connections components anywhere within their web sites. They can even create new IBM Connections components right from their Adobe Authoring environment !
The first version of IMPRISIS(tm) CA will focus on integrating IBM Connections components into Adobe WEM. Future versions will also offer integration the other way round - we are working on Embedded Experiences and Widgets for IBM Connections to consume Adobe WEM content.

Stay tuned for more !

Heiko Voigt   |   23 January 2014 07:12:00 PM   |    IBM  Connections  Adobe  AEM  CQ5    |    [0]

29 November 2013 Friday

Tequila ?!

Well, I don't know if they are REALLY trustworthy....

Image:Tequila ?!
Nice security warning when starting the installer for Domino 9.0.1 on Windows 64 bit...
Heiko Voigt   |   29 November 2013 09:38:38 AM   |    Domino  Admin    |   Comments [10]

27 June 2013 Thursday

DHTMLX-Controls in XPages

Over the past weeks I have been working on a large XPages Project that got me into using more advanced GUI Controls than those coming with Designer. The customer was already using DHTMLX Controls in other products so I decided to go with this framework with the XPages side of things as well.

The integration pattern was very straight foreward, I had Backend-Request-Scope Beans, JSON-RPC-Services and XAgents to implement a REST-API and JSON as the data transport format. The DHTMLX-Controls integrate very well into the XPages environment and allow easy-to-use CRUD operations on complex controls like this scheduler control here:

Image:DHTMLX-Controls in XPages

The control offers drag&drop operations, a customizable edit box, creation of new events and more. Everything is stored as JSON-data that is returned to the Domino Server to track changes and additions or deletions.

Take a look at a GANTT Chart representation here:

Image:DHTMLX-Controls in XPages

This representation is similar to the one above, actually, they use the same services and data.

The DHTMLX Suite offers a ton of controls and components as well as an excellent documentation. To create more Desktop like applications, I think it's worth to take a look. It is a commercial product but there's a GNU GPL licensed version as well to get started.

Happy coding !


Heiko Voigt   |   27 June 2013 09:51:56 AM   |    Domino  XPages    |   Comments [11]

25 April 2013 Thursday

Web Development - Some nice tools


Lately, I have been working on an XPiNC Project in parallel to a project for a Web CRM System based on XPages. As we also created the web layout (and me not being the greatest designer at all or, to be honest, I am not at all good at that), I came across a few tools that did some nice jobs for me and that I would like to share. They all are online resources and a lot of you might know them already.

The first tool is Color Explorer by Kim Jensen, a tool that helps creating matching color palettes to get a color theme for your website. I used it a lot working with bootstrap themes.

The second one is PlaceIt by breezi which lets you put images into mobile device image frames like an iPad or an iPhone. It will create an image like this:

Image:Web Development - Some nice tools
PlaceIt creates PNG Files that can by rather large - to compress them nicely, I use my third tool: tinyPNG by voormedia. It compresses PNG files very well without visible artefacts.

As online resources, I usually can access them even at customer sites to do some quick fixes. Nice tools, I think, check them out, hope you like them, too !

Heiko Voigt   |   25 April 2013 06:26:40 PM   |    Web  Development    |   Comments [10]


just came across this statistic from one of our hosted servers for one of our customers. It's an SMB Customer, running an XWorks Server for their internal applications on 8.5.3.
All apps are XPages, used with mobile clients as well (we built some mobile xpages apps with JQuery Mobile)

Friday afternoon there's not much left going on, we host a CRM system there so sales seems to be gone fishing already.
There's a lot more going on on that system during the day. Anyways - awesome uptime for me !

Image:Domino 8.5.3 on Linux - a real workhorse !
Cheers, Heiko.
Heiko Voigt   |   12 April 2013 05:24:43 PM   |    Domino  Linux    |   Comments [17]