El número de resultados de la búsqueda que se devuelve es de 5.000 cuando se establece el atributo "Número" a 20.000 en Microsoft Dynamics CRM

Se aplica a: Microsoft Dynamics CRM 2011Dynamics CRM 4.0

Importante: Este artículo contiene información acerca de cómo modificar el registro. Asegúrese de hacer copia de seguridad del registro antes de modificarlo. Asegúrese de que sabe cómo restaurarlo si ocurre algún problema. Para obtener más información acerca de cómo hacer copia de seguridad, restaurar y modificar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
322756 cómo hacer copia de seguridad y restaurar el registro en Windows

Síntomas


Utilice el atributo de número en el esquema de FetchXml para crear una consulta en la base de datos de Microsoft Dynamics CRM. A continuación, establezca el atributo de número a 20.000. En este escenario, el número de resultados de la búsqueda que se devuelve es 5.000. Además, la instrucción SELECT en el lenguaje SQL siempre es Seleccionar superior 5001 independientemente de lo que está establecido para el atributo de recuento y el atributo de paginación .

Causa


Este problema se produce cuando se utiliza el esquema de FetchXml para recuperar un conjunto resultante de la búsqueda y cuando se establece el atributo moreRecords en 1. El valor de 1 indica que más de 5.000 registros están disponibles. En Microsoft Dynamics CRM, el atributo de paginación tiene un límite de página de 5.000.

Solución


Microsoft proporciona ejemplos de programación únicamente con fines ilustrativos, sin ninguna garantía expresa o implícita. Esto incluye, pero no se limita, a las garantías implícitas de comerciabilidad o idoneidad para un propósito particular. Este artículo asume que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento. Sin embargo, no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos.

Para resolver este problema, utilice el atributo de paginación para recuperar registros. A continuación, utilice el atributo moreRecords en la búsqueda resultante para determinar si se debe devolver la siguiente página.

Por ejemplo, el código siguiente muestra cómo resolver este problema.
moreRecords = true;i = 0;
while(moreRecords)
{
get page i
if(result has more records)
i++
else
moreRecords = false
}

Más información


Advertencia: pueden producirse problemas graves si modifica incorrectamente el registro mediante el Editor del registro o mediante cualquier otro método. Estos problemas pueden requerir que reinstale el sistema operativo. Microsoft no puede garantizar que estos problemas puedan resolverse. Modifique el registro bajo su propio riesgo.

Para ajustar el límite de páginas en un valor que es inferior a 5.000, agregue el valor DWORD MaxRowsPerPage al registro. Para ello, siga estos pasos:
  1. Haga clic en Inicio, haga clic en Ejecutar, escriba regedit en el cuadro Abrir y, a continuación, haga clic en Aceptar.
  2. Busque y seleccione la siguiente subclave del registro:
    HKEY_LOCAL_MACHINE\Software\Microsoft\MSCRM
  3. En el menú Edición , seleccione Nuevo y, a continuación, haga clic en Valor DWORD.
  4. Escriba MaxRowsPerPagey, a continuación, presione ENTRAR.
  5. Haga clic en MaxRowsPerPagey, a continuación, haga clic en Modificar.
  6. Escriba un número que es menor o igual a 5.000, en el cuadro información del valor y, a continuación, haga clic en Aceptar.
  7. En el menú archivo, haga clic en Salir.
Para desactivar la característica de paginación y, a continuación, omita el parámetro MaxRowsPerPage de 5.000, agregue el valor DWORD TurnOffFetchThrottling en el registro. Para ello, siga estos pasos:

Nota: Llevar a cabo estos pasos puede causar problemas de rendimiento en el equipo.
  1. Haga clic en Inicio, haga clic en Ejecutar, escriba regedit en el cuadro Abrir y, a continuación, haga clic en Aceptar.
  2. Busque y seleccione la siguiente subclave del registro:
    HKEY_LOCAL_MACHINE\Software\Microsoft\MSCRM
  3. En el menú Edición , seleccione Nuevo y, a continuación, haga clic en Valor DWORD.
  4. Escriba TurnOffFetchThrottlingy, a continuación, presione ENTRAR.
  5. Haga clic en TurnOffFetchThrottlingy, a continuación, haga clic en Modificar.
  6. Escriba un número distinto de 0 en el cuadro información del valor y, a continuación, haga clic en Aceptar.

    Nota: Paso 6 le permite recuperar el número de registros especificados en el atributo de número de la instrucción fetch.
  7. En el menú archivo, haga clic en Salir.