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:
- Use a Clarity server with an MSSQL database to define a custom portlet ("kad_test1") that has a link to a project change request
- Create a Query using the NSQL below
@SELECT:DIM:USER_DEF:IMPLIED:RIM:CONVERT(CHAR(8),rim.ID) + CONVERT(CHAR(8), prj.id):UID@,
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')
- 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.
- Create a portlet based on the defined query
- Click on Fields under List Column Section. Setup a link for the attribute CR Details by clicking the Properties icon for the uid attribute
- Click on Layout in the List Filter Section. Make sure that unique_name is in one of the two selected columns.
- Create two projects (project1, project2) and add two change requests (test1, test2) to each project
- Place your custom portlet on the Overview page
- Click Overview -> [Personalize] -> Content -> Add the portlet "kad_test1"
- Click "Exit" button
- Test the behavior
- Expand the filter
- Type "project1" in the unique_name attribute. Click the Filter button
- Click any of the links that are available -> you will be transferred to a Change Request
- Click the "Cancel" button so you will be taken back to your custom portlet
- Type "project2" in the unique_name attribute. Click the Filter button
- Click any of the links that are available -> you will be transferred to the Change Request
- 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.
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:
net.sf.saxon.trans.DynamicError: A sequence of more than one item is not
allowed as the first argument of string-length()
Don't use a filter twice in a row in a user-defined portlet.
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.