WCM Menu Pagination ( or WCM Navigator Pagination)

1.     WCM Menu Results Pagination  (Navigator Results Pagination)

There is simple way to get the WCM Menu (WCM Navigator) results by passing the page number in URL.Pass following parameter to Menu Component or Navigator component in URL

WCM_Page.COMPONENTID=PAGENUMBER
               or
WCM_Page.COMPONENT_NAME=PAGENUMBER

E.g: We can simply navigate to different pages of WCM menu results using the simple URL like below

1.      Accessing the Library component directly


               or


2.      Accessing Content item that references the Menu/Nav component

or



(This approach helps to build applications with AJAX nature to load results on-demand instead of all results at once)






Simple Menu Configuration


2.     Dynamically Set the WCM Menu (or Navigator) Component page size

Similar to the WCM_Page  parameter, there is another parameter (WCM_PageSize)that we can pass to set the Menu or Navigator component page size as below

WCM_PageSize.COMPONENTID=PAGESIZE
               or
WCM_PageSize.COMPONENT_NAME=PAGESIZE

E.g: (Following example set the menu page size to 3 and get the second page of the menu results).

3.     Reset State of Pagination parameters

WCM stores these parameters in the session (if session exists), above examples are anonymous so WCM doesn’t store any information related to those and it returns whatever we pass in parameters.
But in authenticated scenario, if we set the page size in first request , then WCM persists that information and when you access another results page , it considered previously set page size and returns the results accordingly.

Following parameter is used to rest those previously stored parameter values
“WCM_Page.ResetAll = true” this will reset the state of above parameters


WCM Configuration Settings Specific To Virtual Portal

From WCM 8.x releases we can scope the WCM libraries to specific virtual portal , there may be lot of situations where you need configure different WCM Config Service settings specific to virtual portal.

For WCM Config Service settings, Navigate to

Resources > Resource Environment > Resource Environment Providers >WCM WCMConfigService > Custom properties.

1.     Setting unique configuration for each virtual portal

You can set this for either host name or context path
Host name:
vp.uniquename.hostname=ExistingVPHost

Context path:
vp.uniquename.context=ExistingVPContext

E.g: vp.hrportal.context=hrportal   (for hr virtual portal like /wps/myportal/hrportal/welcome)

2.     Defining virtual portal scoped configuration

propertykey.vp.uniquename= override_value

E.g:
a. For customizing the link generated in email for the specific virtual portal(hrportal)

wcm.authoringui.url.vp.hrportal= http://${WCM_HOST}:${WCM_PORT}/${WCM_WPS_CONTEXT_ROOT}/${WCM_WPS_PERSONALIZED_HOME}/hrportal/wcmAuthoring

b. Configuring subscriber only setting for virtual portal (hrportal)  

deployment.subscriberOnly.vp.hrportal = true

NOTE: default subscriber only value = false for all other portals(Base and virtual portals) except hrportal

3.     Settings specific to base portal

You can specify configuration specific to base portal only like below

E.g
wcm.authoringui.url.base = http://${WCM_HOST}:${WCM_PORT}/${WCM_WPS_CONTEXT_ROOT}/${WCM_WPS_PERSONALIZED_HOME}/wcmAuthoring

4.     Settings that are global

If you specify any setting without (.vp.uniquename) or  (.base) are applied across all portals (base and virtual portals).

If the base configuration for a setting is different from all the virtual portals, it is more efficient to use a base override setting. To do this, add this setting:enable.base.portal.overrides=true

Reference
http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/wcm/wcm_config_scoped_vp.dita?lang=en

WCI Consumer Orphans Sitearea

By default WCI (Web Content Integrator) will create the “Consumer/Orphans” sitearea whenever we consume the feed.

WCI uses this sitearea to store the WCM objects whose parent is unknown during the first parse and it tries resolve parents during reprocess next time (Creates mostly when feed contains the <ibmwcm:parents> and <ibmwcm:children> elements for siteareas, contents or category taxonomy’s)

You can configure this sitearea information in WCMConsumerPlugin.properties file.
orphans.container=/Consumer/Orphans

WCI (Web Content Integrator) configurations can be located at

<WP_profile_root>/PortalServer/wcm/shared/app/config/WCMConsumerPlugin.properties

WCM Element tag - Displaying Component ID of Component Reference Element

We use the [Element] tags to display the content elements information in design section of components. Following option will display actual component id of the referenced library component instead of element ID.

[Element context="autofill" type="content" key="Banner-Image " format="id"]


format="id" option will display actual component id of attached Banner-Image

Scenario :
1.      Authoring template (AT-test) has the component reference element
2.      Author created content with authoring template (AT-test) and referred the image component for the component reference element from the library components
3.      Menu/Nav component iterating through contents created using AT-Test but want display the component of actual image component ID instead of element id.

This is useful option but infocenter missing this in documentation

Reference:
http://www-01.ibm.com/support/knowledgecenter/SS3JLV_8.0.0/wcm/wcm_dev_referencing_elements.html?lang=en

Escape Character for the Exclamation Mark and Caret Symbols in JVM arguments

When you are passing the "!" in the JVM arguments use "^" carot symbol for escaping exclamation mark.

E.g:
1. When you are passing jvm argument like  -Dcert.pwd=test!23 


NOTE: for escaping caret ^ , use another caret i.e. "^^" --> "^"

IBM WAS Liberty Profile 8.5.5.4

Liberty profile saves hours of development time  for WebSphere developers with its simplicity and configurable modules architecture. Especially when working with WebSphere Application Server where it includes so many integration components (ofcourse they are so useful at enterprise level) and it may take longer times to publish changes or to restart the server. But modularized architecture (configurable features) of liberty profile make these changes almost instantly.

Few new features introduced in the WAS Liberty profile are
  1. Java Servlets 3.1
  2. Dynamic Routing
  3. Concurrency Utilities for Java EE1.0
  4. Javascript object Notation Processing (JSONP)
  5. Java API for WebSocket 1.0
  6. Java Persistence API 2.0
  7. Application Security 1.0


  1. Install Liberty profile development tools for eclipse
    1. From eclipse go to "eclipse marketplace" , help-->eclipse market place
    2. Enter the following in search box "IBM Websphere Application Server Liberty Profile Developer Tools"
    3. Select version specific to your eclipse


  1. Select all confirm


  1. After installation ask for restart of eclipse

  1. Install Liberty profile server runtime from eclipse
    1. To install the liberty profile runtime  , Eclipse Menu --> Window Preference -->Server --> Server Runtime
    2. Click on add to add new server runtime (make sure you have selected isntall from archive option)
    1. Select download and install a new runtime environment from and provide the installation directory.
 

 
  1. And select the optional plugin if any you want to install



  1. I just chose couple of sample applications while installing (but it is not mandatory , if not selected anything it just installs liberty profile runtime )



  1. Create a server profile
    1. Once the Liberty server runtime installed , now you can add/create the server profile from the eclipse servers view. (new --> server-->select liberty server runtime-->give the name of the server profile)

                     

  1. Deploying the application on WAS Liberty profile
    1. You can deploy the applications different way just like tomcat, I mostly either drop the war/ear file in liberty profile dropins folder or add project direct from the eclipse. You can find the dropin folder in liberty installation.

C:\IBM\WAS85Liberty\usr\servers\LibertyServer\dropins

IBM Connections Playground

Worked on the IBM Connections couple of years back and when I wanted to test small changes to Connections Theme or for any API development it wasn't easy .  But recently came across the IBM connections development playground where you can just use the IBM lotus greenhouse account and play with different API call to pull data (that uses IBM greenhouse account)






It provides both javascript and java code snippets and it is great way test simple api changes


References


Short Text Element Type in WCI feed (WCM Content Integrator)

Web Content Integrator was introduced in the portal 6.1.5 and it is one of best way to import the content into the WCM from the external systems and used this tool so many times in different migrations . But wondered to see that documentation for the short text element is missing in IBM Infocenter/Lotus wiki's product documentation.

Usually you can use text element in feed alternatively like below,

<ibmwcm:element name="Headline">
<ibmwcm:type>text</ibmwcm:type>
<ibmwcm:value>New Product Released</ibmwcm:value>
</ibmwcm:element>


But in scenarios where short text element may be good fit if you are planning to store the string of 255 characters or less (255 bytes).   To use short text element in the feed use it as below

<ibmwcm:element name="userid">
<ibmwcm:type>shorttext</ibmwcm:type>
<ibmwcm:value>srvaka234adf</ibmwcm:value>
</ibmwcm:element>


Reference


  1. v8.5 http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/wci/wci_ff_nse_element.dita
  2. V8.0 http://www-01.ibm.com/support/knowledgecenter/SS3JLV_8.0.0/wci/wci_ff_nse_element.dita?lang=en
  3. V7.0 http://www-10.lotus.com/ldd/portalwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Web+Content+Manager+7+Product+Documentation#action=openDocument&res_title=Element_control_element_wcm7&content=pdcontent
  4. V6.1.5 : http://www-01.ibm.com/support/knowledgecenter/SSHRKX_6.1.5/com.ibm.wp.ent.doc_v615/wci/wci_ff_nse_element.html?lang=en