SCCHのトラブルシューティング

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このトピックでは、Content Hub(SCCH)コネクタのSitecore Connectで直面する可能性のある問題を解決する方法を含みます。

一般的なトラブルシューティングの助け

エラーや問題の解決策を見つけるために、以下のことができます:

  • Sitecore Content Hubのログで作成されたトリガーを確認してください。トリガーを発生させるイベントをトリガーし、その後ログを以下のように確認します。
    • メニューのリボンで 「管理」をクリックします。
    • アクションをクリックします。
    • 監査タブをクリックしてください。
  • Azureサービスバスに投稿されたメッセージを確認してください。
  • Sitecoreのログファイルを確認し、CMPやDAM関連のエラーがないかスキャンしてください。

NullReferenceExceptionはCDサーバーのGetLabelsメソッドで発生します

Content Delivery(CD)サーバー上でContent HubのためSitecore Connectを設定するために使われるウェブデータベースパッチには、削除しなければならないrole

この問題を解決するには、以下の設定変更を行います。

  1. Content Delivery(CD)インスタンスで \App_Config\Modules\Sitecore.Connector.ContentHub.DAM\Sitecore.Connector.ContentHub.DAM.configファイル(デフォルトのファイルパス)を開きます。

  2. 設定ファイル内で、次のノードを見つけてください:

  3. database idノードから以下のroleパラメータを削除します:

    role

    ="!ContentDelivery"

  4. 変更を保存してください。

  5. CDサーバーを再起動してください。

Azureでは、Sitecore DAMリンクを閲覧すると404エラーが表示されます

画像フィールドSitecore DAMのリンクを閲覧すると、404の「見つからない 」エラーが表示されます。

この問題を解決するために:

  1. Sitecore LaunchpadでDesktopをクリックし、データベースからCoreデータベースMaster切り替えてください。
  2. コンテンツエディターで sitecore/system/Field types/Simple types/Imageに移動します。
  3. コンテンツタブのデータセクションでコントロールフィールドを消してください。アイテムを保存します。

Sitecoreのリッチテキストエディタでは、XHTML関連の検証エラーが表示されます

コネクターは、Content HubのリッチテキストエディタフィールドからSitecoreリッチテキストエディタへの同期時に、データ値やフォーマットを変更しません。SitecoreリッチテキストエディタのXHTML検証でエラーが強調されることがあります:

XHTML validation error about incorrect formatting attributes in the Sitecore rich text editor

この問題を解決するために:

  1. コンテンツエディターで以下の項目を探してください:

    • /sitecore/system/Settings/Validation Rules/Field Types/Rich Text
    • /sitecore/system/Settings/Validation Rules/Global Rules
  2. これら2つの項目のすべての検証ルールについては、「 選択 リスト」で「 Is Xhtml 」をクリックして 「すべて リスト」に移動します。

    Dialog for adding validation rules to items
  3. アイテムは保存してください。

Azureのデプロイメントでエラーが出ます
'Microsoft.Extensions.Caching.Abstractions'エラー

Sitecore Azure ToolKit(SAT)には、設定変換を実行するために必要な依存関係に関する参照が欠けています。

SCCHパッケージをインスタンスに適用した後、bin\scchフォルダに必要なアセンブリがすべて入ります。

問題を解決するために:

  1. Azure App Service EditorでWeb.configファイルを開いてください。

  2. assemblyBindingノードに次のコードを追加します:

  3. Azure App Service Editorを保存して更新してください。

ハイフン(-)を含むエンティティ識別子フィールド値を持つCMPアイテムを検索すると、CMPインデックスプロセッサはそのアイテムのクローンを作成します。その結果、CMPアイテムバケットには同じエンティティIDを持つ2つのCMPアイテムが存在します。

この問題を避けるために、SearchItemUnderItemBucket関数の検索クエリ$"{fieldValue}"をSitecore.Connector.CMP.Helpers.SitecoreHelperクラスから変更し、検索クエリラッパー($"\"{fieldValue}\"".)を実装する必要があります。

検索クエリを変更するには、メソッドオーバーライドと依存性注入オーバーライドのメカニズムを使ってSitecoreHelperクラスをパッチできます:

  1. SitecoreHelperExtendという新しいクラスを作成し、SitecoreHelperをオーバーライドし、クエリラッパーの変更で既存のSearchItemUnderItemBucket関数を上書きします。

    例えば:

    public override bool SearchItemUnderItemBucket(string fieldName, string fieldValue, Item itemBucket, out ID itemId)    {     Assert.IsNotNull(fieldValue, $"Could not get the {fieldName}.");     using (var context = ContentSearchManager.GetIndex(new SitecoreIndexableItem(itemBucket)).CreateSearchContext())         {           SearchResultItem resultItem = context.GetQueryable().FirstOrDefault(                 searchResultItem => string.Equals(                    searchResultItemfieldName,                     $"\"{fieldValue}\"",                     StringComparison.Ordinal)                     && searchResultItem.Paths.Contains(itemBucket.ID));                   if (resultItem == null)                  {                   itemId = ID.Null;                      return false;                  }                   itemId = resultItem.ItemId;                  return true;           }       }

  2. 新しいServiceConfiguratorExtendクラスを作成SitecoreHelperExtend:

    public class ServicesConfiguratorExtend : IServicesConfigurator    {       public void Configure(IServiceCollection serviceCollection)         {   serviceCollection.AddSingleton<SitecoreHelper, SitecoreHelperExtend>();         }  }

  3. Sitecore.Connector.CMP.configファイルを開き、サービスコンフィギュレーターノードで新しい依存注入(DI)サービスコンフィギュレーターを追加します:

         

オンプレミス展開スローメソッドには実装エラーがありません

SCCH 5.0のContent Hub SDKはバージョン3.1.14.0 Microsoft.Extensions.DependencyInjection必要です。Sitecore 10.1.x以前のバージョンを参照する展開では、以下のいずれかを行う必要があります:

  • カスタムアセンブリはバージョン3.1.14.0を参照するように更新・再構築してください。
  • web.configファイルにリダイレクトバインディングの設定を追加します。

オンプレミス展開がMicrosoftでメソッド実装の欠落エラーを発生させます。拡張。依存注入またはDisposeAsyncメソッドエラー

10.2以前のSitecore展開では、カスタムアセンブリは最新のMicrosoft.Extensions.DependencyInjectionバージョン3.1.14.0を参照しなければなりません。なぜなら、SCCH 5.0はContent Hub SDKにバージョン3.1.14.0を必要とするからです。

このバージョンが使えない場合は、以下の方法でエラーを解決してください:

  1. Microsoft Visual Studio年に、Sitecore.Connector.DIという新しいライブラリプロジェクトを作成しましょう。

  2. 作成されたプロジェクトに対して以下のパッケージ参照を追加してください:

  3. プロジェクト内でConfigurator.csという新しいクラスを追加します。次のコードを追加します。

    using Microsoft.Extensions.DependencyInjection; using Sitecore.DependencyInjection; namespace Sitecore.Connector.DI { public class Configurator

    { public void Configure(IServiceCollection serviceCollection){} } }

  4. プロジェクトをアセンブリにコンパイルします。Content Management (CM)インスタンスでアセンブリファイルをbinフォルダにコピーします

  5. CMインスタンスで \App_Config\Modules\Sitecore.Connector.CMPフォルダに行き、新しい設定ファイルを追加します。

  6. 新しい設定ファイルに以下の構成を追加してください:

  7. ファイルを保存してください。

アイテムエラーでSitecore属性またはContent Hubマッピングフィールドが空

DAMの公開リンク選択ウィンドウで「選択」をクリックすると、ログに「Empty Sitecore Attribute」や「Content Hub Mapping Field on Item」エラーが表示されることがあります。

公開リンクを選択すると、DAM属性マッピング設定項目を取得します。デフォルトでは、Sitecore属性マッピング設定項目の英語版フィールド値を使用します。英語以外の言語(例えば日本語)を使用する場合は、コンテンツエディターのMaster DB/System/Modules/DAM/Config/Mapping項目で日本語版の言語値を入力します。

SXAフィールドはDAM機能では動作しません

DAM機能はSXAでは利用できませんが、DAMコネクタを取り付けると、Sitecore内のすべての画像タイプに ブラウズSitecore DAMが有効になります。DAM機能を活用できるSXA回避策を使えます。

以下の手順では、SXAファビコンフィールドを例として使いますが、同様の機能は他のSXAフィールドにもDAMてはまります。DAM画像リンクが機能しない主な理由は、ファビコンフィールドの値をSXAが取得する際にMediaManager.GetMediaUrl() メソッドが使われているからです。

この問題を解決するために:

  1. Sitecore.XA.Feature.SiteMetadata.Extensions.FieldExtensions.GetImageUrl()メソッドをパッチするか、以下の方法で新しい拡張クラスを作成することができます。

    public static class MediaExtension      {          public static string GetImageUrl(this Field field, Item item, ID fieldId, bool includeServerUrl = true)          {              var imageUrl = string.Empty;              if (field != null)              {                  var imageField = (ImageField)field;                  if (imageField != null)                 {                      if (imageField.MediaItem == null)                      {                          XmlField imageDAMField = item?.FieldsfieldId;                          string src = imageDAMField.GetAttribute("src");                          return src;                      }                      else                      {                          var urlOptions = new MediaUrlBuilderOptions();                          urlOptions.AlwaysIncludeServerUrl = includeServerUrl;                          return MediaManager.GetMediaUrl(imageField.MediaItem, urlOptions);                      }                  }              }              return imageUrl;          }  }

  2. Sitecore.XA.Feature.SiteMetadata.Repositories.Favicon.FaviconRepository.GetFaviconHref()メソッドを以下のメソッド拡張にパッチを当ててください:

    public virtual string GetFaviconHref(Item contextItem)          {              var faviconHref = string.Empty;              var settingsItem = GetSettingsItem(contextItem);              var faviconField = settingsItem.FieldsTemplates._Favicon.Fields.Favicon;              if (faviconField != null)              {                  faviconHref = faviconField.GetImageUrl(settingsItem, faviconField.ID, false);              }              return faviconHref;          }

  3. Sitecore.XA.Feature.SiteMetadata.configファイル内にFaviconRepositoryリポジトリ(またはカスタムリポジトリ)を実装に追加します。例えば:

DAMコネクタの既知の問題点

以下の表は、SCCHのDAM機能を使用する際に直面する可能性のある問題と、それらの解決方法を説明します。

問題が発生する地域

概要

回避策

コンテンツタイプ

Content Hub DAMでアセットのコンテンツタイプが変更された場合、その変更はSitecoreには反映されません。したがって、Sitecoreでのレンダリングは表示されません。

該当なし

画像特性

コンテンツエディターでは、画像を右クリックすると「画像マップエディター 」と **「プロパティ」**の2つのオプションが表示されます。どちらか一方を選択して 画像マネージャー のアイコンをクリックすると、開くメディアライブラリはSitecore DAMライブラリではなく sitecore/media ライブラリとなります。メディアライブラリを変更するオプションはありません。

該当なし

画像を変える

コンテンツエディター

DAM画像を挿入すると、サイトコア/メディアライブラリから画像を選択し、「ブラウズ」をクリックして画像を挿入すると、画像フィールドが正しくクリアされません。

クリアリンクを使ってフィールドをクリアし、アイテムを保存してから新しい画像を選択してください。

画像フィールドをクリアしてください

エクスペリエンスエディター

保存せずに削除 をクリックして画像を消すと、その画像がエクスペリエンスエディターに表示されていなくてもフィールドは消されません。

問題を解決するには 「保存 」をクリックしてください。

DAMからメディアライブラリイメージへの変更

エクスペリエンスエディター

DAMから画像を挿入し、「 画像を選択し 」をクリックして sitecore/media ライブラリから新しい画像を挿入してSitecore DAM画像を置き換えると、フィールドが正しくクリアされません。

画像 削除 をクリックし、 保存をクリックし、 サイトコアやメディア ライブラリから画像を挿入します。

SXA

このバージョンではSXAはサポートされていません。

この回避策を参照してください

SXA

SXAがインストールされていてIFrameが開かれている場合、「 MAssetコマンドが実装されていない 」というエラーが返され、IFrameが開かなくなります。

この問題はApp_Config\Modules\SXA\Feature\フォルダ内のSXA設定ファイルを更新Sitecore.XA.Feature. ContentTokens.configで解決します。Command Scriptタグの前に、以下のSXAキー属性を付けます:

この記事を改善するための提案がある場合は、 お知らせください!