Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

When working with Advanced Reporting, you may encounter the following issues:

...

  • If you did not back up the security and domain design files, contact CA Support to restore default settings. All the data such as custom fields and Ad Hoc views that you created are lost when you restore default settings.

...

When I add fields to an ad hoc view, one of the following errors occur:

    • An error message displays.
    • Progress bar displays continuously without any action on the page.

Solutions

This error may occur for single or all fields. Use one of the following resolutions according to the requirement:

    • If the problem is with a specific field, do the following actions: 
      • Ensure that the field you add to an ad hoc view is properly converted to its actual data type in the domain. For more information about transformation expression, see step 8.c from Sync Custom Fields to Domain.
      • Ensure that the schema is designed properly such as Joins are proper, Derived Tables should have table hints and no long running queries.  
    • If the problem is with all the fields, contact CA Support.

Error While Saving Ad Hoc View or Report

...

This error occurs because of the mismatch of data set names with their corresponding Join Trees in the security file and domain. In the domain, the data sets are available under Display, ResourcesJoin Trees

To fix this issue, download and open the security file in your local computer. Compare the data set in the Join Trees between the security file and Resources pane. If the data sets are not matching with Join Trees, update the Join Trees in the security file to match with the Resources pane.

Follow these steps:

  1. Click and download the security file custom_cloud_sm_security.xml from the Edit Domain, Optional Information, Security File to your local computer.
  2. Click Edit with Domain Designer and access Domain Designer, Display tab. The Display tab opens with the list of Join Trees on the left pane under Resources.
  3. Open the downloaded security file in a text editor such as WordPad.
  4. Expand the Join Trees under Resources pane. Verify that the table names in all the Join Trees section and in the security file are same.
    For example, consider the following security file code:

    Code Block
    languagexml
    <resourceAccessGrantList id="Tasks_FilterList" label="Tasks Filter List" resourceId="JoinTree_1">
    <resourceAccessGrants>
    <resourceAccessGrant id="TaskSliceFilter"><principalExpression>(authentication.getPrincipal().getAttributes().any{
    it.getAttrName() in ['nsd_slice']})</principalExpression> 
    <filterExpression>(testProfileAttribute(dbo_VITPM_PROJECT_TASKS.slice,'nsd_slice'))</filterExpression> 
    </resourceAccessGrant>
    <resourceAccessGrant id="TaskMemberFilter">
    <principalExpression>(authentication.getPrincipal().getAttributes().any{it.getAttrName() in ['nsd_UserId']})</principalExpression> 
    <filterExpression>((groovy('authentication.getPrincipal().getRoles().any{it.getRoleName()=="ROLE_CSM_ADMINISTRATOR"}') == 'true') or
    CHARINDEX(dbo_VITPM_PROJECT_TASKS.members,(groovy('authentication.getPrincipal().getAttributes().find{it.getAttrName()=="nsd_UserId"}.attrValue')))>=0)</filterExpression> 
    </resourceAccessGrant>
    <resourceAccessGrant id="Task_OBSFilter">
    <principalExpression>
    <![CDATA[authentication.getPrincipal().getAttributes().any{it.getAttrName() in ['nsd_OBSEnabled'] && it.getAttrValue() in ['True']}]]> 
    </principalExpression>
    <filterExpression>(OBS_PRJ_TASKS.org_id in (dbo_VITPM_PROJECT_TASKS.org_id) and testProfileAttribute(OBS_PRJ_TASKS.user_id,'nsd_UserId'))</filterExpression> 
    </resourceAccessGrant>
    </resourceAccessGrants>
    </resourceAccessGrantList>

    The resourceId specifies the Joint Tree name as JoinTree_1 and the filterExpression specifies the table name as dbo_VITPM_PROJECT_TASKS. Verify that the table name dbo_VITPM_PROJECT_TASKS matches the table name in JointTree_1 under Resources pane.

  5. If the table names of the security file do not match with the Join Trees in the Resource pane, edit the security file accordingly.
    For example, consider the table name dbo_VITPM_PROJECT_TASKS is in the JoinTree_1 of the security file. In the Resources panel of the Display tab, the dbo_VITPM_PROJECT_TASKS table is available in JoinTree_2. To match the information, edit the security file and rename the resourceId value from JoinTree_1 to JoinTree_2.
    Change all the resourceId values in the security file, accordingly.  

  6. Save your changes and close the security file.

  7. Click Cancel to navigate back to the Edit Domain page.

  8. In the Edit Domain page, click Change corresponding to the security file. Browse and select the security file from your local computer.

  9. Click Submit. The old security file is replaced with the updated file and issue of invalid domain security file is resolved.

...

  1. Click Edit Domain, Optional Information, Security File and download the security file custom_cloud_sm_security.xml to your local computer.
  2. Open the downloaded security file in a text or XML editor such as WordPad or XML Editor.
  3. Perform the following steps in the security file:
    Note: If any of the search items such as Project_OBSFilter and TimeLog_OBSFilter are not available in the file, move to the next search item.
    1. Search for Ticket_OBSFilter. Go to the FilterExpression tag and replace the code with the following code:

      Code Block
      <filterExpression>AddSqlTemplateFunction('Exists(select 1 from vorg_contact_group_derived_relations v where v.org_id in (dbo_VAPP_ITEM.PERSON1_ORG_ID,dbo_VAPP_ITEM.PERSON2_ORG_ID) and v.user_id = LOGGED_IN_USER_ID)','authentication.getPrincipal().getAttributes().find{it.getAttrName()== "nsd_UserId"}.attrValue')</filterExpression>
    2. Search for CI_OBSFilter. Go to the FilterExpression tag and replace the code with the following code:

      Code Block
      <filterExpression>AddSqlTemplateFunction('Exists(select 1 from vorg_contact_group_derived_relations v where v.org_id = dbo_VSCR_CI.org_id and v.user_id = LOGGED_IN_USER_ID)','authentication.getPrincipal().getAttributes().find{it.getAttrName()== "nsd_UserId"}.attrValue')</filterExpression>
    3. Search for Asset_OBSFilter. Go to the FilterExpression tag and replace the code with the following code:

    4. Search for Project_OBSFilter. Go to the FilterExpression tag and replace the code with the following code:

      Code Block
      <filterExpression>AddSqlTemplateFunction('Exists(select 1 from vorg_contact_group_derived_relations v where v.org_id = dbo_VITPM_PROJECTS.org_id and v.user_id = LOGGED_IN_USER_ID)','authentication.getPrincipal().getAttributes().find{it.getAttrName()== "nsd_UserId"}.attrValue')</filterExpression>
    5. Search for Task_OBSFilter. Go to the FilterExpression tag and replace the code with the following code:

      Code Block
      <filterExpression>AddSqlTemplateFunction('Exists(select 1 from vorg_contact_group_derived_relations v where v.org_id = dbo_VITPM_PROJECT_TASKS.org_id and v.user_id = LOGGED_IN_USER_ID)','authentication.getPrincipal().getAttributes().find{it.getAttrName()== "nsd_UserId"}.attrValue')</filterExpression>
    6. Search for PA_OBSFilter. Go to the FilterExpression tag and replace the code with the following code:

      Code Block
      <filterExpression>AddSqlTemplateFunction('Exists(select 1 from vorg_contact_group_derived_relations v where v.org_id = dbo_VITPM_ASSOCIATIONS.org_id and v.user_id = LOGGED_IN_USER_ID)','authentication.getPrincipal().getAttributes().find{it.getAttrName()== "nsd_UserId"}.attrValue')</filterExpression>
    7. Search for TimeLog_OBSFilter. Go to the FilterExpression tag and replace the code with the following code:

      Code Block
      <filterExpression>AddSqlTemplateFunction('Exists(select 1 from vorg_contact_group_derived_relations v where v.org_id = dbo_VITPM_TASK_TIMELOG.org_id and v.user_id = LOGGED_IN_USER_ID)','authentication.getPrincipal().getAttributes().find{it.getAttrName()== "nsd_UserId"}.attrValue')</filterExpression>
  4. Save your changes and close the security file.
  5. In the Edit Domain page, click Change against the corresponding security file. Browse and select the security file from your local computer.
  6. Click Submit.
    The old security file is replaced with the updated file and issue of duplicate records is removed for Analyst user.