Udostępnij za pośrednictwem


Element savedquery ma niekompletną zawartość. Oczekiwana lista możliwych elementów: błąd LocalizedNames występuje podczas importowania rozwiązania firmy Microsoft Dynamics 365

Ten artykuł zawiera rozwiązanie błędu występującego podczas próby zaimportowania rozwiązania firmy Microsoft Dynamics 365.

Dotyczy: Microsoft Dynamics 365
Oryginalny numer KB: 4463330

Symptomy

Podczas próby zaimportowania rozwiązania w Dynamics 365 występuje następujący błąd:

"Nie można zaimportować tego pakietu rozwiązania, ponieważ zawiera on nieprawidłowy kod XML. Możesz spróbować naprawić plik, ręcznie edytując zawartość XML przy użyciu informacji znalezionych w błędach sprawdzania poprawności schematu lub możesz skontaktować się z dostawcą rozwiązania. Kod błędu 8004801a."

Jeśli wybierzesz pozycję Szczegóły techniczne, zostanie wyświetlony następujący komunikat wraz z innymi szczegółami błędu:

"Sprawdzanie poprawności schematu pliku customizations.xml w skompresowanym pliku pakietu rozwiązania nie powiodło się. Aby ręcznie zweryfikować i edytować plik, możesz pobrać plik schematu tutaj i użyć edytora XML, który obsługuje walidację schematu, aby uzyskać więcej szczegółów."

Pole tekstowe zawierające więcej szczegółów zawiera następujące informacje:

"Element 'savedquery' ma niekompletną zawartość. Oczekiwana lista możliwych elementów: "LocalizedNames".

Pole tekstowe zawiera również dodatkowe szczegóły, takie jak część pliku FetchXML używanego dla zapisanego zapytania (widok).

Przyczyna

Ten błąd wskazuje, że w rozwiązaniu znajduje się zapisane zapytanie (widok), a w kodzie XML dla tej zapisanej definicji zapytania brakuje sekcji LocalizedNames. Może się to zdarzyć, jeśli ktoś ręcznie zmodyfikował plik customizations.xml.

Rozwiązanie

Aby umożliwić pomyślne zaimportowanie rozwiązania, należy dodać sekcję LocalizedNames w pliku XML dla zapisanego zapytania.

  1. Wyodrębnij zawartość pliku .zip rozwiązania, który próbujesz zaimportować.

  2. Otwórz plik customization.xml w edytorze tekstów.

  3. Zapoznaj się ze szczegółami błędu, które powinny zawierać część sekcji fetchxml z zapisanego zapytania. Może być konieczne znalezienie unikatowej sekcji tego kodu XML, a następnie wyszukanie w pliku customization.xml w celu znalezienia pasującego zapisanego zapytania.

  4. Po zlokalizowaniu zapisanego zapytania, do którego odwołuje się szczegóły błędu, zaktualizuj kod XML, aby uwzględnić sekcję LocalizedNames. Poniżej znajduje się przykład zapisanego zapytania z brakującą sekcją.

    <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. Po poprawieniu kodu XML wybierz wszystkie składniki wyodrębnione z pliku rozwiązania i wyślij je do nowego pliku .zip.

  6. Spróbuj ponownie zaimportować rozwiązanie.

Uwaga

Jeśli w sekcji LocalizedNames brakuje <wielu zapisanych zapytań (widoków> ), kroki mogą wymagać powtórzenia dla każdego widoku.

Więcej informacji

Jeśli nie masz pewności co do poprawnej nazwy zapisanego zapytania (widoku) do podania dla tej sekcji, możesz znaleźć nazwę przy użyciu savedqueryid wartości i Dynamics 365 interfejsu WebAPI. W powyższym przykładzie savedqueryid wartość to 65ffaf9a-e8c5-432d-860b-32f841b00d87. Następnie możesz uzyskać dostęp do następującego adresu URL w przeglądarce internetowej, aby zwrócić nazwę widoku:

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

Przykład:

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