El elemento savedquery tiene contenido incompleto. Lista de posibles elementos esperados: se produce un error LocalizedNames al importar una solución de Microsoft Dynamics 365

En este artículo se proporciona una solución a un error que se produce al intentar importar una solución de Microsoft Dynamics 365.

Se aplica a: Microsoft Dynamics 365
Número de KB original: 4463330

Síntomas

Al intentar importar una solución en Dynamics 365, recibe el siguiente error:

"Este paquete de solución no se puede importar porque contiene XML no válido. Puede intentar reparar el archivo editando manualmente el contenido XML mediante la información que se encuentra en los errores de validación del esquema, o bien puede ponerse en contacto con el proveedor de soluciones. Código de error 8004801a."

Si selecciona Detalles técnicos, verá el siguiente mensaje junto con otros detalles de error:

"Error en la validación del esquema del archivo de customizations.xml dentro del archivo de paquete de solución comprimido. Para validar y editar manualmente el archivo, puede descargar el archivo de esquema aquí y usar un editor XML que admita la validación de esquemas para obtener más detalles."

El cuadro de texto que muestra más detalles incluye la siguiente información:

"El elemento 'savedquery' tiene contenido incompleto. Lista de posibles elementos esperados: "LocalizedNames".

El cuadro de texto también incluye detalles adicionales, como parte de FetchXML usado para la consulta guardada (vista).

Causa

Este error indica que se incluye una consulta guardada (vista) en la solución y que falta el XML de esa definición de consulta guardada en la sección LocalizedNames. Esto puede ocurrir si alguien ha modificado manualmente el archivo customizations.xml.

Solución

Para permitir que la solución se importe correctamente, es preciso agregar la sección LocalizedNames en el XML de la consulta guardada.

  1. Extraiga el contenido de la solución .zip archivo que está intentando importar.

  2. Abra el archivo customization.xml en un editor de texto.

  3. Consulte los detalles del error que deben incluir parte de la sección fetchxml de la consulta guardada. Es posible que tenga que encontrar una sección única de este XML y, a continuación, buscar en el archivo customization.xml para buscar una consulta guardada coincidente.

  4. Una vez que haya localizado la consulta guardada a la que se hace referencia en los detalles del error, actualice el XML para incluir la sección LocalizedNames. A continuación se proporciona un ejemplo de una consulta guardada con la sección que falta.

    <savedquery unmodified="1">
                <isquickfindquery>0</isquickfindquery>
                <isprivate>0</isprivate>
                <isdefault>0</isdefault>
                <savedqueryid>{65ffaf9a-e8c5-432d-860b-32f841b00d87}</savedqueryid>
                <queryapi></queryapi>
                <layoutxml>
                  <grid name="resultset" jump="name" select="1" icon="1" preview="1">
                    <row name="result" id="accountid">
                      <cell name="name" width="300" />
                      <cell name="telephone1" width="100" />
                      <cell name="address1_city" width="100" />
                      <cell name="primarycontactid" width="150" />
                      <cell name="accountprimarycontactidcontactcontactid.emailaddress1" width="150" disableSorting="1" />
                      <cell name="statecode" width="100" />
                    </row>
                  </grid>
                </layoutxml>
                <querytype>0</querytype>
                <fetchxml>
                  <fetch version="1.0" output-format="xml-platform" mapping="logical">
                    <entity name="account">
                      <attribute name="name" />
                      <attribute name="telephone1" />
                      <attribute name="address1_city" />
                      <attribute name="primarycontactid" />
                      <link-entity alias="accountprimarycontactidcontactcontactid" name="contact" from="contactid" to="primarycontactid" link-type="outer" visible="false">
                        <attribute name="emailaddress1" />
                      </link-entity>
                      <attribute name="statecode" />
                    </entity>
                  </fetch>
                </fetchxml>
                <IntroducedVersion>9.0.0.0</IntroducedVersion>
                <LocalizedNames>
                  <LocalizedName description="All Accounts" languagecode="1033" />
                </LocalizedNames>
              </savedquery>
    
  5. Después de corregir el XML, seleccione todos los componentes que extrajo del archivo de solución y envíelos a un nuevo archivo .zip.

  6. Intente volver a importar la solución.

Nota:

Si faltan varias consultas guardadas (vistas) en la <sección LocalizedNames> , es posible que sea necesario repetir los pasos para cada vista.

Más información

Si no está seguro del nombre correcto de la consulta guardada (vista) que se va a proporcionar para esta sección, puede encontrar el nombre mediante el savedqueryid valor y el Dynamics 365 WebAPI. En el ejemplo anterior, el savedqueryid valor es 65ffaf9a-e8c5-432d-860b-32f841b00d87. A continuación, puede acceder a la siguiente dirección URL en el explorador web para devolver el nombre de la vista:

https://<your dynamics 365 URL>/api/data/v9.0/savedqueries(<savedqueryid>)?$select=name

Ejemplo:

https://contoso.crm.dynamics.com/api/data/v9.0/savedqueries(65ffaf9a-e8c5-432d-860b-32f841b00d87)?$select=name