Clarity: A custom portlet disappears when a user uses a link in the portlet to view a project change request and then uses the cancel button to return to the portlet twice.

Document ID : KB000051440
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

Details:

A custom portlet disappears when a user uses a link in the portlet to view a project change request and then uses the cancel button to return to the portlet twice. This only happens when the user uses a filter on the custom portlet.

Steps to Recreate:

  1. Use a Clarity server with an MSSQL database to define a custom portlet ("kad_test1") that has a link to a project change request

    1. Create a Query using the NSQL below

      SELECT
      @SELECT:DIM:USER_DEF:IMPLIED:RIM:CONVERT(CHAR(8),rim.ID) + CONVERT(CHAR(8), prj.id):UID@,
      @SELECT:DIM_PROP:USER_DEF:IMPLIED:RIM:rim.ID:CR_ID@,
      @SELECT:DIM_PROP:USER_DEF:IMPLIED:RIM:prj.id:PROJECT_ID@,
      @SELECT:DIM_PROP:USER_DEF:IMPLIED:RIM:prj.UNIQUE_NAME:UNIQUE_NAME@

      FROM
      niku.RIM_RISKS_AND_ISSUES AS rim
      LEFT OUTER JOIN niku.srm_projects AS prj ON rim.PK_ID = prj.id
      WHERE (rim.TYPE_CODE = 'CHANGE')
      and @FILTER@

    2. Create a link with Name = CR Details, Link ID = cr_details, Action = Link to the Change Request Property Page, Object ID = cr_id, and Parent Object ID = project_id.

    3. Create a portlet based on the defined query

    4. Click on Fields under List Column Section. Setup a link for the attribute CR Details by clicking the Properties icon for the uid attribute

    5. Click on Layout in the List Filter Section. Make sure that unique_name is in one of the two selected columns.

  2. Create two projects (project1, project2) and add two change requests (test1, test2) to each project

  3. Place your custom portlet on the Overview page

    1. Click Overview -> [Personalize] -> Content -> Add the portlet "kad_test1"

    2. Click "Exit" button

  4. Test the behavior

    1. Expand the filter

    2. Type "project1" in the unique_name attribute. Click the Filter button

    3. Click any of the links that are available -> you will be transferred to a Change Request

    4. Click the "Cancel" button so you will be taken back to your custom portlet

    5. Type "project2" in the unique_name attribute. Click the Filter button

    6. Click any of the links that are available -> you will be transferred to the Change Request

    7. Click the "Cancel" button

Expected Result: The custom portlet should still appear on the Overview page.

Actual Result: The custom portlet has disappeared from the Overview page.

Technical Details:

Error from the App-niku.log:

ERROR 2010-03-01 14:39:59,900 [http-80-Processor4] web.XMLPageProcessor
(Richards:5815617__-61978356:copIssuesRisks) Unable to process portlet,
standard error portlet will be substituted. Exception was:
com.niku.union.web.WebException: com.niku.union.web.WebException:
net.sf.saxon.trans.DynamicError: A sequence of more than one item is not
allowed as the first argument of string-length()

Solution:

Workaround:
Don't use a filter twice in a row in a user-defined portlet.

Status/Resolution:
This issue has been documented as CLRT-56038 and is assigned to development for review. If you are experiencing this problem and the workaround above does not significantly help, please contact CA Clarity Support.

Keywords: CLARITYKB, CLRT-56038, clarity12open, portlet, nsql, query, custom, filter, change request.