Friday 27 April 2012

Integrating with IBM Lotus Symphony from Java/.Net/XPages applications

Following link contains the sample code to work with IBM Symphony via COM object. The same object can be called from Visual Studio as well. IBM LOTUS SYMPHONY ON MAC

http://www-10.lotus.com/ldd/lswiki.nsf/dx/Lotus_Notes_and_Lotus_Symphony_and_COM_Objects_How_to_Create_your_Lotus_Symphony_Integration_for_Clients_without_the_Embedded_Client

Also, since Lotus Symphony is built on top of OpenOffice and supports ODF formats. I would suggest using ODF specific packages available on OpenOffice site. The output will be rendered correctly on Symphony.
http://www.openoffice.org/udk/common/man/tutorial/office_automation.html
http://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide
http://www.kalitech.fr/clients/doc/VB_APIOOo_en.html

There are Java and Lotuscript Toolkit available for Symphony related development:
http://www.johndavidhead.com/jhead/johnhead.nsf/dx/introduction-to-the-lotus-symphony-lotusscript-api

The Lotuscript code which is very near to VB code or else can call the Java classes directly from the .Net code.
http://stackoverflow.com/questions/5928200/call-java-method-from-api-in-net


If someone wants to extend Lotus Symphony functionality, you can write extensions as well:
http://www-10.lotus.com/ldd/lswiki.nsf/dx/10272008093319AMDDRMDU.htm

Friday 13 April 2012

High Availability for Lotus iNotes Installation

High Availability for Lotus iNotes Installation

I am looking for various options available for achieving High Availability with Lotus iNotes installation. The article outlines the options available, work that Domino experts have done and the best option that suits my requirement.

Following available options are possible:

1. ICM (Internet Cluster Manager): ICM only provides initial redirect to correct Domino Web Server. But once user has opened a webpage and server goes down, user has to manually switch the URL to point to the other server or browse the ICM URL again.
http://www-12.lotus.com/ldd/doc/domino_notes/Rnext/help6_admin.nsf/c1f2605b7be6a95985256b870069c0a8/36fd13678096637585256c1d0039a59b?OpenDocument

2. Hardware based Load Balancer

3. Software based Load Balancer: 

Following two options are possible with Domino: Websphere Edge Proxy Server and Apache Web Server. In this article, we'll use Apache Web Server for Reverse Proxy and Load Balancer configuration. 

It seems like Daniel has already done all the hard work.. He has published a great series on the same topic !! The article is in Spanish, but can easily be translated in English via Google Translate. Please copy the code from Original version only.. 

http://www.noteros.com/inotes-apache-reverse-proxy/

http://www.noteros.com/inotes-con-reverse-proxy-apache-parte-2/

http://www.noteros.com/inotes-con-reverse-proxy-apache-parte-3/

http://www.noteros.com/inotes-con-reverse-proxy-apache-parte-4/

I setup the following piece of code in httpd.conf: 

I setup two Domino Clusters as follows: 

Cluster1 - Server1, Server2

Cluster2 - Server3, Server4

<Proxy balancer://Cluster1/>

BalancerMember http://server1.demo.com:80/ route=Server1

BalancerMember http://server2.demo.com:80/ route=Server2

ProxySet lbmethod=byrequests

</Proxy>

 

<Proxy balancer://Cluster2/>

BalancerMember http://server3.demo.com:80/ route=Server3

BalancerMember http://server4.demo.com:80/ route=Server4

ProxySet lbmethod=byrequests

</Proxy>

 

ProxyPass / balancer://Cluster1/ stickysession=inotesses nofailover=Off

ProxyPassReverse / http://server1.demo.com/ 

ProxyPassReverse / http://server2.demo.com/ 

 

ProxyPass / balancer://Cluster2/ stickysession=inotesses nofailover=Off

ProxyPassReverse / http://server3.demo.com/ 

ProxyPassReverse / http://server4.demo.com/ 

 

RewriteCond %{HTTP_COOKIE} _clusterses=Cluster1 [NC]

RewriteRule ^/((mail|iNotes|icons|domjava)/.*)$ balancer://Cluster1/$1 [P]

 

RewriteCond %{HTTP_COOKIE} _clusterses=Cluster2 [NC]

RewriteRule ^/((mail|iNotes|icons|domjava)/.*)$ balancer://Cluster2/$1 [P]

 

Reference:

https://www.ibm.com/developerworks/mydeveloperworks/blogs/gvkempen/entry/configuring_inotes_reversed_proxy_using_apache_on_ubuntu?lang=en

http://www-10.lotus.com/ldd/dominowiki.nsf/dx/using-apache-as-a-reverse-proxy-and-load-balancer-for-domino-clustered-servers

http://www.ibm.com/developerworks/lotus/library/inotes-avail/index.html

http://www-10.lotus.com/ldd/dominowiki.nsf/dx/iNotes_High_Availability_Configuration#Why+prefer+Load+Balancer+to+ICM+solution

http://socialaboration.blogspot.in/2010/09/ubuntu-as-inotes-reverse-proxybalancer.html

IBM Connections plug-in for Lotus Symphony 3.0.1

IBM Connections plug-in for Lotus Symphony 3.0.1 

This plug-in, which was demonstrated at Lotusphere 2012, is now available. As announced on the download page...
The IBM Connections plug-in lets you add Lotus Symphony files to an activity or a files, create To Dos for activity users, post a Symphony document to a blog or a wiki, or search IBM Connections for a person's profile or other content.

 

I'm downloading now!

Link: ibm.com: IBM Connections plug-in for Lotus Symphony 3.0.1 >

Multi-Database Search Plugin: A Must Plugin for Lotus Notes Client:

I have found and installed this wonderful plugin for Lotus Notes Client v8.5 and above..

To install the same goto File -> Application -> New option. Add the downloaded site to Eclipse Local Folder option and it will install the plugin to your Notes Client.

Once installed, configure all the Local Archives, Mail Files in it to search in a single click.

OpenNTF.org - Open Source Community for Lotus Notes Domino

Multi-Database Search Plugin

Owners Bob BalfeCategory
Productivity Tools
Contributors Igor BelakovskiyPlatform
R 8.5.1
Downloads745Download latest releaseLast ReleaseOct 25, 2010
Rating
(2 ratings)
Project CreationOct 25, 2010
Status Not activeShort URL Not defined
Description Search multiple databases with the normal search user interfaceIn Catalog
No

You can search multiple databases using the search toolbar in the Lotus Notes client.

You can set what databases to search using the Search | Multi DB Search Preferences panel:

 

Preference Screen

Preference Screen

Thursday 12 April 2012

Announcement: Workflow for XPages

XPages - Announcement

Announcement: Workflow for XPages

Phil Riand, Qian Liang and team have contributed a new project to OpenNTF - Workflow for XPages.

Read the following deck for a description of the project.


Wednesday 11 April 2012

Create Report of Latest Notes Client Installed on Users in the Domain

 

One of our customer asked to generate a report of current Lotus Notes client version installed on user’s machines across the country. Fortunately, Lotus Notes Client store the information about the Client Installation in Person document. There is a field called ClntBld which contains all the builds that a particular person has installed on his machine. However, this multi value field doesn’t store these values in expected sequence. The latest information can be at any position of multi valued field.

Therefore, the below mentioned approach first determines the latest date of Build being added to person document from ClntDate field, then retrieves the relative information from ClntBld field.

Use this formula for a view column to get the latest build from Addressbook:

lst := @Sort(ClntDate;[Descending]);
ClntBld[ @Member(@Text(lst[1]); @Text(ClntDate))];

image

Installation Help for Lotus Domino

Lotus Domino

IBM Redbooks: Optimizing Lotus Domino Administration
http://www-10.lotus.com/ldd/dominowiki.nsf/dx/Table_of_Contents_Optimizing_Lotus_Domino_Administration

IBM Redbooks: Lotus Notes and Domino version 8.5 Deployment Guide
http://www-10.lotus.com/ldd/dominowiki.nsf/dx/Table_of_Contents_for_Lotus_Notes_and_Domino_version_8.5_Deployment_Guide

Lotus Notes

 

Lotus Traveler

Installation Help: http://www-10.lotus.com/ldd/dominowiki.nsf/dx/Installing_the_Lotus_Notes_Traveler_server_LNT853

System Requirement: http://www.ibm.com/support/docview.wss?uid=swg27022506

Sametime

Friday 6 April 2012

Lotus Notes : Restrict Attachment size before Saving Email Document


Below is the code that needs to be added to the QuerySave event of Memo and Reply Forms.
Also, change the Max. Attachment size as required.

Below is the code that needs to be added to the QuerySave event of Memo and Reply Forms.
Also, change the Max. Attachment size as required.

Sub Querysave(Source As Notesuidocument, Continue As Variant)
    If source.InPreviewPane Then Exit Sub
    
    '****************************************************
    '**  Configure Attachment Size here ***********
    Const ATTACH_SIZE = 5 'MB
    '****************************************************
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim totalSize As Long
    
    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.document
    
    Call uidoc.GotoField("Body")
    Call uidoc.refresh(True)
    Dim rtitem As Variant
    Dim embedObjs As Variant
    
    Set rtitem = doc.getFirstItem("Body")
    embedObjs = rtitem.embeddedObjects
    totalSize = 0
    Dim oneMB As Long
    oneMB = 1048576
    
    
    If Not Isempty(embedObjs) Then
     For i = 0 To Ubound(embedObjs)
      totalSize = totalSize + embedObjs(i).filesize
     Next
     
     If totalSize > ATTACH_SIZE * oneMB Then
      Msgbox("Your total attachment size is " +Cstr(Round (totalSize /    oneMB,1)) +" mb.  The limit is " + Cstr(ATTACH_SIZE) + " MB.")
      continue = False
      Exit Sub
     End If
    End If
    
    Call source.FieldSetText("useApplet", "True")
    Call cMemoObject.QuerySave(Continue)
End Sub
 

References:
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/a8ac654c57789e2085256e660074cc05?OpenDocument
http://searchdomino.techtarget.com/tip/Check-attachment-size-before-doc-is-saved