Cuando se trabaja con la Generación de informes avanzados, se pueden encontrar las siguientes incidencias:
...
- Restaure los archivos de diseño de dominio y de la seguridad de la copia de seguridad. Para obtener más información, consulte la sección Restauración de los archivos del dominio en Sincronización de los campos personalizados con el dominio.
- Si no se ha realizado la copia de seguridad de los archivos de diseño del dominio y de la seguridad, póngase en contacto con Soporte de CA ServiceAide para restaurar la configuración predeterminada. Se perderán todos los datos como los campos personalizados y las vistas adhoc que se han creado cuando se restauren los valores de configuración predeterminados.
...
Este error se produce debido a la falta de coincidencia de los nombres del conjunto de datos con sus árboles de unión correspondiente en el archivo de seguridad y en el dominio. En el dominio, los conjuntos de datos están disponibles en Visualización, Recursos, Árboles de unión.
Para solucionar esta incidencia, descargue y abra el archivo de seguridad en el equipo local. Compare el conjunto de datos que se encuentra Árboles de unión entre el archivo de seguridad y el panel Recursos. Si los conjuntos de datos no coinciden con Árboles de unión, actualice Árboles de unión en el archivo de seguridad para que coincidan con el panel Recursos.
Siga los pasos siguientes:
- Haga clic y descargue al equipo local el archivo custom_cloud_sm_security.xml desde Editar dominio, Información opcional, Archivo de seguridad.
- Haga clic en Editar con el diseñador del dominio y acceda al Diseñador del dominio, ficha Visualización. La ficha Visualización se abre con la lista de árboles de unión en el panel izquierdo debajo de Recursos.
- Abra el archivo de seguridad descargado en un editor de texto como WordPad.
Expanda los árboles de unión en el panel Recursos. Verifique que los nombres de tabla en la sección Árboles de unión y en el archivo de seguridad sean los mismos.
Por ejemplo, tenga en cuenta el siguiente código del archivo de seguridad:Code Block language xml <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>
resourceId especifica el nombre del Árbol de unión JoinTree_1 y filterExpression especifica el nombre de la tabla dbo_VITPM_PROJECT_TASKS. Verifique que el nombre de tabla dbo_VITPM_PROJECT_TASKS coincide con el nombre de tabla que se encuentra en JointTree_1 debajo del panel Recursos.
Si los nombres de tabla del archivo de seguridad no coinciden con los Árboles de unión que se encuentran en el panel Recurso, edite el archivo de seguridad en consecuencia.
Por ejemplo, considere que el nombre de tabla dbo_VITPM_PROJECT_TASKS está en JoinTree_1 del archivo de seguridad. En el panel Recursos de la ficha Visualización, la tabla dbo_VITPM_PROJECT_TASKS está disponible en JoinTree_2. Para que coincida la información, edite el archivo de seguridad y cambie el nombre del valor resourceId de JoinTree_1 a JoinTree_2.
Cambie todos los valores de resourceId en el archivo de seguridad en consecuencia.Guarde los cambios y cierre el archivo de seguridad.
Haga clic en Cancelar para volver a la página Editar dominio.
En la página Editar dominio, haga clic en Cambiar que se corresponde con el archivo de seguridad. Busque y seleccione el archivo de seguridad en el equipo local.
Haga clic en Enviar. El archivo de seguridad antiguo se reemplaza con el archivo actualizado y se resuelve la incidencia del archivo de seguridad de dominio no válido.
...
- Haga clic en Editar dominio, Información opcional, Archivo de seguridad y descargue el archivo de seguridad custom_cloud_sm_security.xml al equipo local.
- Abra el archivo de seguridad descargado en un editor de texto o XML como WordPad XML Editor.
- Realice los siguientes pasos en el archivo de seguridad:
Nota: Si alguno de los elementos de búsqueda como Project_OBSFilter y TimeLog_OBSFilter no están disponibles en el archivo, pase al siguiente elemento de la búsqueda.Busque Ticket_OBSFilter. Vaya a la etiqueta FilterExpression y reemplace el código con el código siguiente:
Code Block title 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>
Busque CI_OBSFilter. Vaya a la etiqueta FilterExpression y reemplace el código con el código siguiente:
Code Block title 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>
Busque Asset_OBSFilter. Vaya a la etiqueta FilterExpression y reemplace el código con el código siguiente:
Code Block title Code Block <filterExpression>AddSqlTemplateFunction('Exists(select 1 from vorg_contact_group_derived_relations v where v.org_id = dbo_VAM_ASSET_LIST.ORGANIZATION_ID and v.user_id = LOGGED_IN_USER_ID)','authentication.getPrincipal().getAttributes().find{it.getAttrName()== "nsd_UserId"}.attrValue')</filterExpression>
Busque Project_OBSFilter. Vaya a la etiqueta FilterExpression y reemplace el código con el código siguiente:
Code Block title 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>
Busque Task_OBSFilter. Vaya a la etiqueta FilterExpression y reemplace el código con el código siguiente:
Code Block title 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>
Busque PA_OBSFilter. Vaya a la etiqueta FilterExpression y reemplace el código con el código siguiente:
Code Block title 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>
Busque TimeLog_OBSFilter. Vaya a la etiqueta FilterExpression y reemplace el código con el código siguiente:
Code Block title 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>
- Guarde los cambios y cierre el archivo de seguridad.
- En la página Editar dominio, haga clic en Cambiar que se corresponde con el archivo de seguridad. Busque y seleccione el archivo de seguridad en el equipo local.
- Haga clic en Enviar.
El archivo de seguridad antiguo se reemplaza con el archivo actualizado y se elimina la incidencia de los registros duplicados para el usuario analista.