Monday, May 28, 2012

IBM Connection 3.0.1.1 update to CR1

See my notes from installing Cumulative Refreshe 1  (CR1)

I did not make any changes in themes or other LC files so I do not need to backup them, before installation.

IBM page with CR1: http://www-304.ibm.com/support/docview.wss?uid=swg21595154&myns=swglotus&mynp=OCSSYGQH&mync=E

  1. It is good idea to make a shapshot of your servers (I made snapshots for my DB and WAS server)
  2. I started DB server and DMGR ... it must be started during installation
  3. I used latest Update installer Download Update Installer 3.0.1.x-IC-Multi-UPDI-20120403 (downloaded from IBM FixCentral).
  4. Ok, after you download Update Installer, delete or backup /opt/IBM/LotusConnections/updateInstaller and extract updateinstaller in  /opt/IBM/LotusConnections/ - it will make folder updateinstaller again. 
  5. Download all (depends what parts of LC did you install) CR jar/zip files in to /opt/IBM/LotusConnections/updateInstaller/fixes. If there are any zip, extract them.
  6. To run /opt/IBM/LotusConnections/updateInstaller/updateWizard.sh add execute permissnion on this file
    1. [root@ic ~]# cd /opt/IBM/LotusConnections/updateInstaller
    2. [root@ic updateInstaller]# chmod +x updateWizard.sh
    3. Make sure you have xserver started - you will be able to run graphic installation wizard.
    4. Setup was home path: [root@ic updateInstaller]# cd /opt/IBM/WebSphere/AppServer/bin
    5. Run: [root@ic bin]#. ./setupCmdLine.sh
    6. [root@ic updateInstaller]# cd -
    7. [root@ic updateInstaller]# ./updateWizard.sh
  7. Update Wizard for Lotus Connections 3.0.1.1 will be launched. 
    1. Click NEXT
    2. Select Install updates and make sure there is path in to folder with jar files sfom step 5.
    3. Click NEXT, on Update Selection page, depends on your installation, select what you want to install (In my case wizard selected all). Click NEXT.
    4. I selected "I have not made any changes to IBM Connections application files." >> OK
    5. Fill in your DMGR admin account and password. Click NEXT and wait for Validation success >> Click OK
    6. Click INSTALL and go with your dog for a walk ... it will take some time to install.
    7. After successful update installation start all nodes and node agents and perform a full synchronization to push the update to all nodes. 

Wednesday, May 2, 2012

How to hide an required attribute in self-care portlet?

Our customer wants to hide all field except password field in self-care portlet. They do not use self-registration, but they only want to be able to change a user password from self-care portlet.

The solution is quite easy - you can disable fields in config mode of self-care portlet directly.
But how to disable/hide required fields from the portlet? They are inactive - so administrator can not disable them.


First you have to remove required attributes from store.puma_default.user.add.required.attributes properties.

  1.  Log in to the IBM WebSphere® Integrated Solutions Console (ISC). 
  2. Go to Resources >> Resource Environment >> Resource Environment Providers
  3. Click on the link for WP PumaStoreService. Under "Additional properties" click on "custom properties"
  4. Click on the link for "store.puma_default.user.add.required.attributes
  5. Delete all from value field
  6. Save and restart portal :( 
  7. Then go again in to config mode and disable all remaining attributes.
Actualy some fields are disabled because they are required fields in PUMA (user management), and cannot be removed. To hide them, it is easiest way to edit JSP which render self-care form. I added only display: none css for sn attribute part of form.

Edit file
/opt/IBM/WebSphere/wp_profile/installedApps/Node01/PA_Selfcare_Port_App.ear/selfcare.war/WEB-INF/jsp/UserInformationFormInclude.jspf


    <tr style="display:none;">
        <td align="<%=bidiAlignRight%>">
            <% if (requiredUserAttributes.contains(SelfcareConstants.LAST_NAME_FIELD_ID)) { %> * <% } %>
        </td>
        <td align="<%=bidiAlignLeft%>" class="wpsEditText">
            <label for="<%= SelfcareConstants.LAST_NAME_FIELD_ID %>">
                <fmt:message key="selfcare.label.last_name"/>
              <% if (isRequiredAttr) { %><span style="display:none"><fmt:message key="selfcare.label.required_attr"/></span> <% } %>
            </label>
        </td>
    </tr>
    <tr style="display:none;">
        <td>&nbsp;</td>
        <td>
            <input <%=bidiDirAttr%>
                   class="wpsEditField" 
                   type="text" 
                   id="<%= SelfcareConstants.LAST_NAME_FIELD_ID %>" 
                   name="<%=SelfcareConstants.USER_ATTRIBUTE_PREFIX%><%= SelfcareConstants.LAST_NAME_FIELD_ID %>" 
                   value='<% escapeXmlWriter.write(sn);%>'
                   onkeyup="javascript:updateDisplayName();return;" >
        </td>
        <td class="wpsFieldErrorText">
        </td>
    </tr>
Delete temp folder

/opt/IBM/WebSphere/wp_profile/temp/Node01/WebSphere_Portal/PA_Selfcare_Port_App

 and reload page with self-care portlet