タイムライン コントロールでカスタム コネクタを使用する
カスタムコネクタ機能は、開発者が TimelineWallControl コンポーネント内のレコードエントリとして、Dataverse テーブルの行や外部データソースなどの情報を表示する方法を提供します。 既存のすぐに使用できるメモ、投稿、アクティビティに加えて、より幅広いシナリオが可能になります。
タイムラインの構成と使用方法については、以下のトピックを参照してください。
カスタムコネクタに構成されているレコードは、IRecordSource インターフェイスに準拠した JavaScript のウェブリソースです。 Webリソースの名前、コンストラクター (名前空間を含む名前)、およびオプションの JSON Web リソースパスは、FormXML 内の UClientRecordSourcesJSON パラメータ構成として追加できます。
<UClientRecordSourcesJSON>
{"recordSources": [{
"name": "new_SecondaryRecordSource",
"constructor": "SampleNamespace.SecondaryRecordSource"}]
}
</UClientRecordSourcesJSON>
TimelineWallControl は、JavaScript の Web リソースを読み込み、構成されたコンストラクターから IRecordSource のインスタンスを生成することが期待されます。
IRecordSource を初期化し (init)、レコードのページを要求し (getRecordsData)、フィルター詳細をリクエストし (getFilterDetails)、1 つのレコードの UX 表現を要求します (getRecordUX)。
マルチセッション シナリオで発生するレコード リクエストの数を最小限にするために、レコードをリクエストした際のレスポンスを永続化します。
タイムライン コントロールのカスタム コネクタを構成する
作成者エクスペリエンスで構成することにより、タイムライン コントロールのカスタム コネクタを追加または編集できます。
タイムライン コントロールで、カスタム コネクタを追加または編集するフォームを選択します。
次のオプションのいずれかを完了します:
新しいカスタム コネクタを追加するには、タイムライン テーブルの プロパティ ペインの カスタム コネクタ で、コネクタの追加 を選択します。 新しいカスタム コネクタ ペインが表示されます。
アップロード済みの既存のカスタム コネクタを編集するには、タイムライン エンティティの プロパティ ペインでカスタム コネクタを選択し、編集 を選択します。 カスタム コネクタの編集ペイン が表示されます。
ページを編集してから、保存 を選択します。
フィルター サポート
カスタム コネクタ フィルターのサポートには、次の機能が含まれます。
- 既存のフィルター グループに新しいフィルタータイプを追加する
- 新しいフィルター グループを追加する
- 既存のフィルター タイプ カウントを更新する
- 検索キーでフィルタリングする
カスタム コネクタは、タイムライン レンダリングとの一貫性を保つため、init() で渡されたコンテキストから UserSettings タイムゾーン情報を使用する必要があります。
範囲
カスタム コネクタ機能は、統一インターフェイス クライアント モデル アプリのシングル セッションおよびマルチ セッションのテーブルフォームでサポートされています。
対象外
カスタム コネクター機能では、以下の機能は利用できません。
- オフラインと既定のオフライン シナリオ
- ダッシュボード
- TimelineWallControl が利用できない場所 (コンバージド アプリ、キャンバス アプリ、Power Pages、カスタムページなど)
既知の制限
設定された web リソースは、フォームへの依存関係として正式には宣言されていません。 つまり、フォームをエクスポートしても、Web リソースは自動的にはエクスポートされず、手動でエクスポートに追加する必要があります。 また、これらの Web リソースを誤って削除してしまう可能性があります。
レコードソースを開発する
レコード ソースを開発する際には、以下の点に注意してください。
- データを安全に取得していることを確認してください。 統一インターフェイスのセキュリティモデルでは、JS と JSON の Web リソースは信頼できないものとみなされます。これらはプレーンテキストで保存されることになるため、このようなリソースにはトークンや秘密が含むべきではありません。
- データが Dataverse の中にある場合は、init 動作のコンテキスト オブジェクトを使用して Dataverse へのリクエストを行います。 コンテキストから Dataverse への呼び出しは、リクエストが安全な iframe を通してプロキシされます。 これは、TimelineWallControl の既成のレコードソースがデータを取得する方法です。
- データが Dataverse の外部にある場合は、プラットフォームの既存のメカニズムを使って外部データを取得します。
- Fiddler を使用して変更をローカルにテストする: Fiddler AutoResponder を使用することで、JavaScript の Web リソースの開発やデバッグの俊敏性を向上させることができます。 詳細については、Fiddler AutoResponder を使用したスクリプトによる Web リソース開発を参照してだくさい。
- XSS 攻撃のリスクを軽減する: XSS攻撃のリスクは、DOM に HTML を追加/結合する際に発生します。 このリスクを軽減するために、可能な限りプレーンテキストを使用してください。 HTML が必要な場合は、レコードに追加する前にこのコンテンツをサニタイズする必要があります。
- クライアント スクリプトの一般的なベストプラクティスに従ってください。 詳細情報: モデル駆動型アプリでのクライアント スクリプティング
- Accessibility Insights などの自動テストツールの使用を含め、インクルーシブデザインの実践を確保します。
ソリューションのサンプル
まず、"インタラクティブな体験のための取引先企業" と "マルチセッション体験のための取引先企業" フォーム用に構成されている、"SecondaryRecordSource" というウェブ リソースがある カスタム コネクタ ソリューションのサンプル から始めることができます。
関連情報
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。