Compartir a través de


Error de integración de Data Mart de Management Reporter 2012 "El índice estaba fuera del intervalo"

En este artículo se proporciona una solución para el error De índice fuera del intervalo que se produce cuando se usa la integración de data mart de Management Reporter 2012 con Microsoft Dynamics GP.

Se aplica a: Microsoft Management Reporter 2012, Microsoft Dynamics GP
Número de KB original: 3029952

Síntomas

El siguiente mensaje de error puede aparecer en la integración de Dynamics GP Data Mart de Management Reporter para la tarea Valor de dimensión:

DimensionValueProvider a Valor de dimensión: texto de error: el índice estaba fuera del intervalo. Debe ser no negativo y menor que el tamaño de la colección.

Además, el visor de eventos del servidor que hospeda los servicios de Management Reporter mostrará los siguientes detalles de error en los registros de aplicaciones de Windows.

El índice estaba fuera del intervalo. Debe ser no negativo y menor que el tamaño de la colección.
Nombre del parámetro: index
--- --- de volcado de excepciones
Excepción detectada: [System.ArgumentOutOfRangeException] El índice estaba fuera del intervalo. Debe ser no negativo y menor que el tamaño de la colección.
Nombre del parámetro: index

Seguimiento de pila:
at Microsoft.Dynamics.Performance.Integration.Reporting.Adapter.GP.DimensionValueProvider.CreateGLDimensionValueFromReader(SqlDataReader reader, Company cmp)
at Microsoft.Dynamics.Performance.Integration.Reporting.Adapter.GP.DimensionValueProvider.<ReadObjects>d__0.MoveNext()
at Microsoft.Dynamics.Integration.Service.Tasks.MapWork.ProcessRecordsImplementation(OperationType operationType)

Este mensaje de error también puede producirse al intentar abrir un bloque de creación o generar un informe.

Causa

Este error puede producirse si hay referencias a cuentas en la tabla de segmentos de cuenta (GL40200) de la base de datos de aplicaciones de Microsoft Dynamics GP que no están presentes en la tabla configuración de la cuenta (SY00300) o en la tabla de índice de cuenta (GL00100).

Solución

Nota:

Antes de seguir las instrucciones de este artículo, asegúrese de que tiene una copia de seguridad completa de la base de datos que puede restaurar si se produce un problema.

  1. Ejecute la siguiente consulta en SQL Management Studio en la base de datos de empresa de Microsoft Dynamics GP para identificar los segmentos de cuenta no válidos:

    select * from GL40200 where SGMTNUMB not in (select SGMTNUMB from SY00300)
    select * from GL40200 where SGMTNUMB=1 and SGMNTID not in (select distinct ACTNUMBR_1 from GL00100)
    select * from GL40200 where SGMTNUMB=2 and SGMNTID not in (select distinct ACTNUMBR_2 from GL00100)
    select * from GL40200 where SGMTNUMB=3 and SGMNTID not in (select distinct ACTNUMBR_3 from GL00100)
    select * from GL40200 where SGMTNUMB=4 and SGMNTID not in (select distinct ACTNUMBR_4 from GL00100)
    

    En función del número de segmentos, es posible que tenga que ajustar la instrucción .

  2. Ejecute las instrucciones siguientes en SQL para eliminar los registros incorrectos de la tabla GL40200:

    delete GL40200 where SGMTNUMB not in (select SGMTNUMB from SY00300)
    delete GL40200 where SGMTNUMB=1 and SGMNTID not in (select distinct ACTNUMBR_1 from GL00100)
    delete GL40200 where SGMTNUMB=2 and SGMNTID not in (select distinct ACTNUMBR_2 from GL00100)
    delete GL40200 where SGMTNUMB=3 and SGMNTID not in (select distinct ACTNUMBR_3 from GL00100)
    delete GL40200 where SGMTNUMB=4 and SGMNTID not in (select distinct ACTNUMBR_4 from GL00100)
    
  3. Después de quitar los registros de la tabla de GL40200, ejecute Comprobar vínculos en el maestro de cuentas en Microsoft Dynamics GP:

    1. Seleccione Dynamics GP, seleccione Mantenimiento y, a continuación, seleccione Comprobar vínculos.
    2. Seleccione Serie financiera . Seleccione Maestro de cuenta, insertar y, a continuación, seleccione Aceptar.
  4. Vuelva a configurar la integración de Management Reporter Data Mart en una nueva base de datos de data mart después de corregir los segmentos de cuenta.

    Nota:

    Todos los pasos los debe completar un usuario de dominio asignado al rol Administrador en Management Reporter Security que también sea miembro del grupo administradores local en el servidor.

    1. Abra la consola de configuración de Management Reporter.

    2. Seleccione la integración de GP en Integraciones de ERP.

    3. Seleccione Deshabilitar integración.

    4. Seleccione Quitar en la esquina superior derecha para quitar la integración.

    5. Salga de la consola de configuración.

    6. Abra SQL Server Management Studio.

    7. Realice una copia de seguridad de la base de datos de Management Reporter.

    8. Realice una copia de seguridad de la base de datos de data mart (normalmente DDM o ManagementReporterDM).

    9. Elimine la base de datos de data mart.

    10. Abra la consola de configuración.

    11. Detenga el servicio de procesos de Management Reporter 2012.

    12. Detenga el servicio de aplicaciones de Management Reporter 2012.

    13. Inicie el servicio de aplicaciones de Management Reporter 2012.

    14. Inicie el servicio de procesos de Management Reporter 2012.

    15. Seleccione Archivo y, a continuación, seleccione Configurar.

    16. Seleccione Agregar Microsoft Dynamics GP Data Mart.

    17. Siga los pasos del proveedor de Microsoft Dynamics GP en:

      Management Reporter 2012 para Microsoft Dynamics ERP: guías de instalación, migración y configuración

    18. Cuando haya terminado, seleccione Habilitar integración en la consola de configuración.