ウォークスルー
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
トラブルシューティングは、Sitecoreユーザーが選択したSitecoreアイテムが正しく設定され、正常に動作しているかを判断するロジックを実行するためのコンポーネントです。
このウォークスルーでは、「 テキストファイルのカスタムプロバイダーを実装するウォークスルー」シリーズで設定されたファイルシステムプロバイダーにトラブルシューティング機能を追加します。ファイルシステムのエンドポイントがSitecoreサーバーがアクセス可能なファイルを使用するよう設定されているかどうかを判定するトラブルシューティング機能も追加します。
トラブルシューティングは元々エンドポイント向けに設計されました。ユーザーがエンドポイントが正しく設定されているかどうかを判断するために使われます。これがトラブルシューターの主な用途ですが、以下のData Exchange Frameworkのベーステンプレートを継承すれば、あらゆる種類のアイテムに使用可能です。
- Convertible
- Troubleshootable
このウォークスルーでは以下の方法が示されています:
- トラブルシューティングコンポーネントを構築します
- エンドポイントにトラブルシューティングツールを指定します
- トラブルシューティングツールをテストしてください
!注完成したコードとインストールパッケージはGitHubで入手可能です。
トラブルシューティングコンポーネントを構築します
Microsoft Visual Studioでトラブルシューティングコンポーネントを構築し、サーバーにデプロイする必要があります。
トラブルシューティングコンポーネントを構築するには:
-
Visual Studioで、次のクラスを追加します:
using Sitecore.DataExchange.Models; using Sitecore.DataExchange.Troubleshooters; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Examples.DataExchange.Providers.FileSystem { public class TextFileEndpointTroubleshooter : BaseEndpointTroubleshooter { public TextFileEndpointTroubleshooter() { } protected override ITroubleshooterResult Troubleshoot(Endpoint endpoint, TroubleshooterContext context) { var settings = endpoint.GetPlugin
(); if (settings == null) { return TroubleshooterResult.FailResult("The endpoint is missing the plugin TextFileSettings."); } if (string.IsNullOrWhiteSpace(settings.Path)) { return TroubleshooterResult.FailResult("The endpoint does not have a file path specified on it."); } if (!File.Exists(settings.Path)) { return TroubleshooterResult.FailResult( "The path specified on the endpoint either " + "points to a file that does not exist " + "or the process does not have permission to read the file."); } return TroubleshooterResult.SuccessResult("The specified file exists and can be accessed."); } } } !注このトラブルシューティングツールはSitecore.DataExchange.Troubleshooters.BaseEndpointTroubleshooterから継承しています。 Sitecore.DataExchange.Troubleshooters.ITroubleshooterから継承することで、あらゆる種類のコンポーネントに対してカスタムトラブルシューティングを作成できます。
-
プロジェクトをコンパイルします。
-
Examples.DataExchange.Providers.FileSystem.dllをSitecoreサーバーにデプロイしてください。
エンドポイントにトラブルシューティングツールを指定します
Data Exchange Frameworkテンプレートから継承する任意の項目に対してトラブルシューティングを指定できますConvertible**Troubleshootable。
この例では、トラブルシューティングはテキストファイルのエンドポイントに追加されており、これは条件を満たすBase Endpointテンプレートから継承されるため、追加の作業は不要です。
エンドポイントのトラブルシューティングを指定するには:
-
コンテンツエディターで /sitecore/templates/Data Exchange/Providers/File System/endpoints/Text File Endpoint/__Standard Valuesに移動します。
-
右側のパネルで、以下のフィールド値を指定します:
フィールド
価値
トラブルシューティングタイプ
例
.Providers.FileSystem.TextFileEndpointTroubleshooter、例.Providers.FileSystem -
アイテムを保存してください。
トラブルシューティングツールをテストしてください
トラブルシューティングはテキストファイルのエンドポイントに割り当てられているため、トラブルシューティングをテストするには以下が必要です:
-
コンテンツエディターでテナントを選択してください。 Endpoints/Providers/File System/City Information Fileに移動します。

-
メニューのリボンで 「トラブルシューティングを実行する」をクリックします。

エンドポイントが正しく設定され、ファイルが存在し、Sitecoreサーバーがファイルにアクセスできる場合、成功メッセージが表示されます。

エンドポイントにファイルパスが指定されていない場合、エラーメッセージが表示されます。

エンドポイントにファイルパスが指定されていても、そのファイルが存在しない場合や、ファイル権限の関係でSitecoreサーバーがファイルにアクセスできない場合、エラーメッセージが表示されます。
