Introducción
Este documento describe el problema en el que los usuarios supervisores de Cisco Unified Contact Center Management Portal (CCMP) no pueden realizar transacciones de actualización de habilidades.
Prerequisites
Comprender la administración de CCMP
Requirements
No hay requisitos específicos para este documento.
Problema
Después de actualizar el CCMP de 8.5 a 10.5. La actualización del agente por el supervisor mediante la ficha Grupo de habilidades en CCMP fallará con el siguiente error...
La investigación de errores apunta a los CDETS y la solución alternativa siguientes.
CSCup34703 - La actualización de CCMP de 8.5(4) a 9.1(1) impide que los usuarios vuelvan a asignar habilidades
Symptom:
Error message seen when adding or removing the Agents from a SG. Error attached to the defect.
Conditions:
This is because there is a new link between the route and skillgroup which is now imported, used by the system to add functionality and enforced by security i.e. the user must have rights to browse routes that are linked to skill groups. This essentially means that they should be stored in the same folder as the skillgroup to ensure security is ok.
Error messages in the logs:
Specific Error:
2014-06-05 04:56:55,692 DEBUG 4224 Application.DataCommand Exception: LoadEntitiesCommand Exception: Exony.Security.ExonySecurityException
Message: Request for operation permission failed - Demand: Operation: SEC_LIST_DIMENSIONS, Path: /tenant1
Source: Exony
at Exony.Security.ExonyOperationPermission.Demand() in t:\Dev\Source\Reporting\D9_2_1\App\Exony\Security\ExonyOperationPermission.cs:line 132
at System.Security.PermissionSet.DemandNonCAS()
at Exony.Reporting.Application.Provisioning.LoadEntitiesCommand.ExecuteCommand() in t:\Dev\Source\Reporting\D9_2_1\App\Exony.Reporting.Application.Provisioning\LoadEntitiesCommand.cs:line 41
at Exony.Reporting.Application.DataCommand.ExecuteMethodWithRetries(DatabaseMethod method, Boolean allowTransaction, Exception& exception) in t:\Dev\Source\Reporting\D9_2_1\App\Exony.Reporting.Application\DataCommand.cs:line 860
Workaround:
We can run the following script on both DB servers to move the routes to the skillgroup folder
update r
set r.FOLDER_ID = s.FOLDER_ID
from VW_DIM_ROUTE_SKILLGROUP_MEMBER as rsm
inner join TB_DIM_SKILLGROUP as s
on rsm.PARENT_ITEM_BIZ_URN = s.ITEM_BIZ_URN
inner join TB_DIM_ROUTE as r
on rsm.CHILD_ITEM_BIZ_URN = r.ITEM_BIZ_URN
restart the app server
Se aplicó la solución alternativa, pero persistió el siguiente error.
En este momento, CCMP funciona correctamente de lo contrario.
- Las transacciones de aprovisionamiento se han realizado correctamente.
- En la ficha Agente, la actualización funciona.
- En la ficha Grupo de habilidades, la actualización falla con el error anterior cuando se utilizan las credenciales del supervisor
- En la ficha Grupo de habilidades, la actualización se realiza correctamente cuando se utilizan las credenciales de administrador
El mensaje de error todavía apunta a CSCup34703 , excepto que no hay ningún mensaje de error específico esperado en el registro.
2014-06-05 04:56:55,692 DEBUG 4224 Application.DataCommand Excepción: excepción LoadEntitiesCommand: Exony.Security.ExonySecurityException
Mensaje: Fallo en la solicitud de permiso de operación - Demanda: Operación: SEC_LIST_DIMENSIONS, Ruta: /tenant1
Fuente: Exony
at Exony.Security.ExonyOperationPermission.Demand() en t:\Dev\Source\Reporting\D9_2_1\App\Exony\Security\ExonyOperationPermission.cs:line 132
at System.Security.PermissionSet.DemandNonCAS()
en Exony.Reporting.Application.Provisioning.LoadEntitiesCommand.ExecuteCommand() en t:\Dev\Source\Reporting\D9_2_1\App\Exony.Reporting.Application.Provisioning\LoadEntitiesCommand.cs:line 41
en Exony.Reporting.Application.DataCommand.ExecuteMethodWithRetries(método DatabaseMethod, Boolean allowTransaction, Exception& exception) en t:\Dev\Source\Reporting\D9_2_1\App\Exony.Reporting.Application\DataCommand.cs:line 860
Solución
El problema era específico de las funciones globales que se deben haber restablecido durante la actualización de la base de datos (DB). es necesario habilitar las "rutas de aprovisionamiento" en el nivel de función global, ya que las rutas pueden tener membresías en habilidades, lo que permite al usuario volver a habilitar etc. sin que se produzca el error.