Domino Upgrade

VersionSupport end
Upgrade to 9.x now!
(see the full Lotus lifcyle) To make your upgrade a success use the Upgrade Cheat Sheet.
Contemplating to replace Notes? You have to read this! (also available on Slideshare)


Other languages on request.


Useful Tools

Get Firefox
Use OpenDNS
The support for Windows XP has come to an end . Time to consider an alternative to move on.

About Me

I am the "IBM Collaboration & Productivity Advisor" for IBM Asia Pacific. I'm based in Singapore.
Reach out to me via:
Follow notessensei on Twitter
Amazon Store
Amazon Kindle
NotesSensei's Spreadshirt shop
profile for stwissel on Stack Exchange, a network of free, community-driven Q&A sites


Running a report on all Sametime Buddy Lists

QuickImage Category
Someone hight enough in your food chain wants to know how many users are in the Sametime buddy lists of your users. To my best knowledge that number isn't stored anywhere. So what to do? The buddy list is a piece of XML that gets stored in then vpuserinfo.nsf on your Sametime server. There is a view "Storage" with one document per user. The buddy list is stored in an item with the name 8193. Latest here you start smelling rat. A standard Notes form doesn't allow an item to have a "numeric looking" name. Inspecting the item you will find the data type stated as "Arbitrary Data". This is a great testimony to Domino's flexibility but unfortunately neither the LotusScript nor Java API allows us to process this item type. So the back door is closed, let's try the front door. The Sametime API allows to retrieve the buddy list. To save myself the hassle to program all this I just use a free tool from Epilio to extract the buddy list as XML (Sametime without Epilio is like Sushi without Wasabi - something is missing). To get all my buddy lists I wrote a small agent that creates 2 files: one cmd file that will call the Epilio tool for every user and one XML file that allows to associate the file name to the user name. (The code is a hack, don't expect error handling).
Once you run the CMD file you end up with a directory full of BudyList[a-number].xml files. To combine them and produce a report you use java -jar BuddyListReport.jar. You need a command combine|report, the directory (with an ending / ) and the name of the report file. Best is to have all in the same directory together. "combine" will combine the files and run the report "report" will only run the report (e.g. after you created a new stylesheet with a different layout or to report on different things). So a sample command could look like
java -jar BuddyListReport.jar combine C:\export\ report.xslt. The Java code has no dependency on any Domino or Sametime classes. All you need to get started can be downloaded including the source code.
As usual YMMV.
Update: I stand corrected (thx Carl): You can get access to custom data using byteArray = notesDocument.GetItemValueCustomDataBytes( itemName$ , dataTypeNam$). It's in the help. Introduced in R8.5 Never looked at it before.


Sametime offline chat and other server examples

Sametime out of the box requires chat partners to be online to chat. Other than some of the public IM products you can't "leave a message". If you are interested in this functionality you have to roll your own. To do that you require the Sametime Community Server Toolkit and working knowledge of Java. A good starter is the Redbook Working with the Sametime Community Server Toolkit which is valid since Sametime 3. Also a good read is the IBM Lotus Sametime Community Server Toolkit Tutorial that includes the skeleton code for the offline service. All the Sametime specific parts are covered, you just need to add persistence if needed.


This site is in no way affiliated, endorsed, sanctioned, supported, nor enlightened by Lotus Software nor IBM Corporation. I may be an employee, but the opinions, theories, facts, etc. presented here are my own and are in now way given in any official capacity. In short, these are my words and this is my site, not IBM's - and don't even begin to think otherwise. (Disclaimer shamelessly plugged from Rocky Oliver)
© 2003 - 2017 Stephan H. Wissel - some rights reserved as listed here: Creative Commons License
Unless otherwise labeled by its originating author, the content found on this site is made available under the terms of an Attribution/NonCommercial/ShareAlike Creative Commons License, with the exception that no rights are granted -- since they are not mine to grant -- in any logo, graphic design, trademarks or trade names of any type. Code samples and code downloads on this site are, unless otherwise labeled, made available under an Apache 2.0 license. Other license models are available on written request and written confirmation.