Skip to main content

RSS Feeds from Domino

I'm a big fan of RSS and I think that it's something that people running extranets and other sites should try to incorporate as much as possible.

Recently I decided to try and add RSS to a Domino Database manually.

The steps are below.
I've simplified them to make this more suitable for "beginners", and you can add other RSS Fields as you see fit.


PART 1: The VIEW
Create a view for your database with a selection criteria similar to the following;


SevenDaysAgo := @Adjust(@Now ;0 ; 0 ; -7 ; 0 ; 0 ; 0) ;
SELECT ((Form = "Document")& @Modified <= SevenDaysAgo))


The Form would obviously point to the type of form that you use in your database.

Column 1: The first Column in your database would probably be the date (@Modified) You should make it sorted in Descending order to put the recent items to the top and you should make it hidden.

Column 2:
Here is what I have in column 2 - I'll explain it below...
NOTE: I can't use <> HTML Codes Here, so I've replaced the brackets with braces {} You should substitute these on your code. I've also had to put a second M in the word amp. Remove this when using the code.


SV:=@DbLookup( "":"NoCache" ; "":"" ; "KRetrieval" ; "WebLocation" ; 2);

DB:= @Implode(@Explode(@Text(@Subset(@DbName;-1)); "\\");"/");

NDXDocNumber:= DocumentUniqueName;

DocNumLink:= "http://"+ SV +"/" + DB+"/NDX/"+NDXDocNumber+"?OpenDocument&Login" ;

"{item}" + "{title}" + TXTDocNumber + "{/title}" + "{link}" +

@ReplaceSubstring(DocNumLink; "&"; "&ammp;")

+ "{/link}{description}"

+ TXTTitle + "(" + KEYAuthor + ")" + "{/description}" + "{guid}"+

NDXDocNumber

+"{/guid}{/item}"


I have lookups all the way through my databases, so the first line simply does a lookup for my weblocation and stores it in SV. I could have used...


SV := "www.myserversite.com";


The second line, is a standard database name determination function with replacesubstrings to convert DOS/Windows backslashes into Web Forward Slashes and store the result in DB.

I could have used the following, but it would have been hardcoding.


DB := "myfolder/mydatabase.nsf";


The NDXDocNumber bit retreives a unique ID, used to access my documents in a view (you could use Notes UNIDs if you prefer).

The DocNumLink bit is where I actually build the URL to my document. Again, I use short URLs, but you could use UNIDs if you prefer.

The remaining bits are the ITEM Tags each of which ultimately looks a bit like the following...



TXTDocNumber, DocNumLink, TXTTitle, KEYAuthor and NDXDocNumber are database fields which you may want to replace with your own.

The ReplaceSubstring bit replaces any ampersands (&) with &ammp; which is more RSS friendly. Note that I can't even write the amp word without interpretation, so remove the second m

In the advanced properties for the View, tick the box marked
[x] Treat View contents as HTML

Once you've completed the view, it's time to move onto a form.


PART 2: The FORM
Assuming that the view was called RSS, we now need a form

$$ViewTemplate for RSS

Just a reminder: I can't use <> HTML Code here, so I've replaced the brackets with braces {} You should substitute these on your code.

The form should contain the following text...


{?xml version="1.0"?}
{rss version="2.0"}
{channel}
{title}My RSS Feed Title{/title}
{link}http://www.myserversite.com/{/link}
{description}This is a cool feed{/description}
{language}en-us{/language}
{generator}IBM Lotus Domino{/generator}
{webMaster}support@myserversite.com{/webMaster}
******$$VIEWBODY FIELD***************
{/channel}
{/rss}


Obviously you will want to change some of the descriptions etc above, and probably put the DB Title in there (or some other computed field).

The line with the stars in it is really just the $$VIEWBODY field.
(ie: Just a text field called $$VIEWBODY)

You should go into the advanced tab of form properties and set the content type to OTHER.

In the text box next to Other, put text/xml

Save the form.

You should now be able to display an RSS Feed using

http://www.myserversite/myfolder/mydatabase/RSS

Note that some feed readers dont support Authentication and some don't support HTTPS.
If in doubt, try an unsecured database first.


Good luck.

Comments

This is extremely interesting and I would like to have one myself. Some of it is not 100% clear to me, though, and would like to get more info:

1. The use of @dblookup in the 2nd column looks challenging - I never succeeded in making it work in a column, and Domino Designer Help says about @dblookup:
Usage
This function does not work in column or selection formulas, or in mail agents.

2. I understand that the form provides the overall 'rss' and 'channel' tructure to the rss-feed, but not sure where does the text go, where and how is the view being included.

3. What does the rss reader have to point to, eventually, the view or the form?

Thanks! - Amnon

Popular posts from this blog

How to Change Your Notification Options for New Lotus Notes Mail in version 8.x

Don't worry, I'm not patronizing you (my readers), I just decided to re-document this for one of our internal users and thought you might want to be able to use it in your own user documentation. WHAT IS THIS DOCUMENT ABOUT? Some people who don't get a lot of mail, like to be notified when such an event occurs. Notification can be; via a sound via a pop-up box via the system tray (where the computer clock is) The pop up box looks like this; Other people, who like myself, get too much mail would rather not be notified. The aim of this document is to tell you how (and where) to turn these options on and off. CHANGING YOUR SETTINGS To change your settings from the Notes 8.x client; On the Menu, click File , then Preferences... On the left hand side , click on the little plus sign to the left of Mail to expand the options. Click on the option marked Sending and Receiving . In the middle section, under receiving, you can control your notifications. If you untick the box mark

How to Create an Auto-Response Mail Message in Lotus Notes 8.5.3+

Why would you do this? Suppose that you have an externally accessible generic email address for your company; support@mycompany.com or info@mycompany.com. You might expose this to the web and allow people to send messages to you. Setting up an auto-response email will tell the senders that their message reached its destination and that it will be dealt with accordingly.  It's also good practice to include links to FAQs or other useful information. Why 8.5.3 The techniques we'll be using here work in older versions of Notes but some of the options seem to have moved around in 8.5.3.  I figured it was a good time to show you where they've moved to. The Procedure Start Domino Designer and open the Mail file to be modified.  A really quick way to do this is to right-click on the application tab and choose "Open in Designer". In the Left hand panel of designer, expand Code and then double-click Agents.  A new window should appear. Click the action

How to Do a Mail Merge to Email using Lotus Notes

Why do one? In today's "green" world, it makes much better sense to send out emails than letters but you still want to personalize them. Sadly, by itself Lotus Notes doesn't support mail merge to email. Of course, we know that outlook does (but then it lets anyone and anything send emails for you - even when you don't want them to). So, how to do it in Notes? OpenNTF The first port of call is OpenNTF ( http://www.openntf.org/ ). This place is full of great things but most of them are really badly documented. Still, these guys give things away for free and they develop in their spare time, so we should be grateful for what we get. There's a great little project there called MailMerge Excel to Notes . Go there, click on releases and download the ZIP file. Getting to the Code The installation is tricky though I've noted that since I asked the author about the install, it's been updated (so maybe these steps are less necessary). Unzip the files to somewher