「StartSearchLocation」ソース パラメータでSitecoreクエリを使用すると、検索付きマルチリスト フィールドが機能しない


説明

StartSearchLocation」ソース パラメータがSitecoreクエリとして設定された「検索付きマルチリスト(Multilist with Search)」フィールドを使用するときに、例えば以下のようなクエリの場合、

StartSearchLocation=query:ancestor-or-self::*[@@name->'Home']

コンテンツ エディタに次のエラーが表示される場合があります。

Field control has failed to render: Unexpected character '\'

次のエラーが、Sitecoreのログ ファイルにも記録されます。

5060 13:39:55 ERROR Content editor field has failed to render
Exception: Sitecore.Exceptions.QueryException
Message: Unexpected character '\'
Source: Sitecore.Kernel
   at Sitecore.Data.Query.Tokenizer.NextToken()
   ...
   at Sitecore.Data.Query.QueryParser.DoParse(String query)
   at Sitecore.Buckets.FieldTypes.SearchList.MakeFilterQueryable(String locationFilter)
   at Sitecore.Buckets.FieldTypes.SearchList.GetItems(Item current)
   at Sitecore.Buckets.FieldTypes.SearchList.DoRender(HtmlTextWriter output)
   at Sitecore.Web.UI.WebControl.Render(HtmlTextWriter output)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at Sitecore.Shell.Applications.ContentEditor.EditorFieldContainer.RenderChildren(HtmlTextWriter writer)

解決策

本問題を解決するには、次のパッチを適用してください。

  1. 添付された「Sitecore.Support.410621.dll」アセンブリを「/Website/bin」フォルダーに配置します。
  2. コンテンツ エディタのアプリケーションにて「Core」データベースにアクセスします。
  3. /sitecore/system/Field types/List Types/Multilist with Search」アイテムにアクセスします。
  4. Control」フィールドを空の値に変更します。
  5. Assembly」フィールドを次の値に変更します。
    Sitecore.Support.410621
  6. [Class]フィールドを次の値に変更します。
    Sitecore.Support.Buckets.FieldTypes.BucketList

「検索付きツリーリスト」フィールドで同じ問題が発生する場合は、代わりに「検索付きマルチリスト」フィールドを使用してください。 「検索付きツリーリスト」フィールドは、Sitecore CMSバージョン7.2 rev. 140228 (Initial Release)で非推奨になりました。詳細は、このリリース ノートを参照してください。