savedquery 元素的內容不完整。 預期的可能元素清單:匯入 Microsoft Dynamics 365 解決方案時發生 LocalizedNames 錯誤

本文提供您嘗試匯入 Microsoft Dynamics 365 解決方案時所發生錯誤的解決方案。

適用于: Microsoft Dynamics 365
原始 KB 編號: 4463330

徵狀

嘗試在 Dynamics 365 中匯入解決方案時,您會收到下列錯誤:

「無法匯入此方案套件,因為它包含不正確 XML。 您可以嘗試使用架構驗證錯誤中找到的資訊手動編輯 XML 內容來修復檔案,也可以連絡您的解決方案提供者。 錯誤碼 8004801a。」

如果您選取 [技術詳細資料],您會看到下列訊息以及其他錯誤詳細資料:

「壓縮方案套件檔案內customizations.xml檔案的架構驗證失敗。 若要手動驗證和編輯檔案,您可以 在這裡 下載架構檔案,並使用支援架構驗證的 XML 編輯器來取得更多詳細資料。」

顯示更多詳細資料的文字方塊包含下列資訊:

「元素 'savedquery' 的內容不完整。 預期的可能元素清單:'LocalizedNames'。」

此文字方塊也包含額外的詳細資料,例如用於已儲存查詢的 FetchXML (檢視) 。

原因

此錯誤表示已儲存的查詢 (檢視) 包含在方案中,而該已儲存查詢定義的 XML 缺少 LocalizedNames 區段。 如果有人手動修改了customizations.xml檔案,就可能發生此情況。

解決方案

若要允許成功匯入解決方案,必須新增儲存查詢之 XML 內的 LocalizedNames 區段。

  1. 將解決方案的內容解壓縮.zip您嘗試匯入的檔案。

  2. 在文字編輯器中開啟customization.xml檔案。

  3. 請參閱應包含已儲存查詢之 fetchxml 區段部分的錯誤詳細資料。 您可能需要尋找這個 XML 的唯一區段,然後在customization.xml檔案中搜尋,以尋找相符的已儲存查詢。

  4. 找到錯誤詳細資料中參考的已儲存查詢之後,請更新 XML 以包含 LocalizedNames 區段。 以下提供已儲存查詢的範例,其中包含遺漏區段。

    <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. 更正 XML 之後,請選取您從方案檔擷取的所有元件,並將其傳送至新的.zip檔。

  6. 再次嘗試匯入解決方案。

注意事項

如果有多個已儲存的查詢 (檢視) 遺漏 < LocalizedNames > 區段,則可能需要針對每個檢視重複步驟。

其他資訊

如果您不確定要為此區段提供的正確儲存查詢 (檢視) 名稱,您可以使用 savedqueryid 值和 Dynamics 365 WebAPI 來尋找名稱。 在上述範例中 savedqueryid ,此值為 65ffaf9a-e8c5-432d-860b-32f841b00d87。 然後,您可以在網頁瀏覽器中存取下列 URL,以傳回檢視的名稱:

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

範例:

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