注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
プロパティリデューサーは開発のベータ版段階にあり、お使いのエンロールメントでは利用できない場合があります。開発が進行している間は、機能が変更される可能性があります。
プロパティリデューサーを使用すると、表示やインターフェース実装のために、配列プロパティを配列内の単一の値に変換できます。縮約によって、基になるプロパティタイプや保存されているプロパティデータが変更されることはありません。代わりに、プロパティ値を読み取るときに、配列内の縮約された値にアクセスできるようになります。
たとえば、複数の検査日を含む配列にリデューサーを適用すると、テーブルやアプリケーションでプロパティを表示する際に最新の日付のみを表示できますが、クエリやその他の操作では引き続き配列全体にアクセスできます。Workshop などのリデューサーをサポートするアプリケーションでは、ホバー時や展開表示でも配列全体を表示できます。
リデューサーは、数値、時間、文字列、ブール値のベースタイプを含む配列プロパティで使用できます。構造体の配列は、サポートされるベースタイプを使用する任意の構造体フィールドに基づいて縮約できます。プロパティリデューサーがサポートするベースタイプの詳細については、以下のテーブルを確認してください。
次の場合にプロパティリデューサーを使用します。
リデューサーは、基になるベースタイプに応じて配列プロパティで使用できます。以下のテーブルでは、リデューサーをサポートする配列のサブタイプと、サポートしないサブタイプを分類しています。
次のサブタイプを含む配列では、プロパティリデューサーを利用できます。
| カテゴリー | ベースタイプ | リデューサーの選択肢 |
|---|---|---|
| 数値 | Byte, Short, Integer, Long, Float, Double, Decimal | 最大、最小 |
| 時間 | Date, Timestamp | 最新、最古 |
| 文字列 | String | 最初、最後(辞書順) |
| ブール値 | Boolean | true を優先、false を優先 |
| 構造体 | 以下で説明する、サポートされる任意の構造体フィールドによる | 構造体フィールドのベースタイプによって異なります |
次のサブタイプを含む配列では、プロパティリデューサーを利用できません。
AttachmentCipher TextGeohashGeoshapeGeotemporal Series ReferenceMarkingMedia ReferenceTime DependentVectorリデューサーは、構造体自体ではなく、構造体内の特定のフィールドに基づいて構造体配列を縮約します。縮約に使用できるのは、上記のサポートされるベースタイプのいずれかを使用する構造体フィールドのみです。また、異なる構造体フィールドを使用する複数のリデューサーを設定して、同順位の項目がある場合に対処することもできます。
構造体配列では、リデューサーを最も柔軟に使用できます。サポートされるベースタイプを使用する構造体内の任意のフィールドに基づいて縮約でき、同順位の項目がある場合に対処するために複数のリデューサーを設定できます。
次のフィールドを含む customerReviews 構造体配列プロパティを持つ Product オブジェクトタイプを考えます。
rating (`Integer):1〜5つ星の評価。reviewDate (Date):顧客がレビューを投稿した日付。reviewerName (String):レビュー投稿者の名前。verifiedPurchase (Boolean):購入が確認されたかどうかを示します。Product オブジェクトの customerReviews プロパティのサンプルデータは、次のようになります。
rating | reviewDate | reviewerName | verifiedPurchase |
|---|---|---|---|
| 5 | 2024-11-20 | Alice Chen | true |
| 3 | 2024-11-15 | Bob Smith | false |
| 4 | 2024-11-22 | Carol Lee | true |
開始する前に、プロパティリデューサーの設定手順とサポートされるベースタイプのテーブルを確認してください。構造体フィールドに単一のリデューサーを設定できます。Foundry はそのリデューサーを使用して構造体の配列を単一の構造体に縮約し、リデューサーが設定されたフィールドに基づいて、表示する値を並べ替えます。
reviewDate を表示します。2024-11-22 に投稿された Carol Lee の4つ星レビューを含む構造体が表示されます。ユーザーは引き続き、レビュー履歴全体をクエリしてアクセスできます。
複数のリデューサーを設定して、同順位の項目がある場合に対処できます。
reviewDate を持つ構造体を表示します。rating を表示します。フォールバックリデューサーは、主要リデューサーの結果に複数の項目が含まれる場合にのみ適用されます。主要リデューサーは常に最初に評価され、主要な基準で同順位になった項目のみが、フォールバックリデューサーによってさらに縮約されます。追加のリデューサーが設定されている場合も、この縮約動作が繰り返されます。
リデューサーをサポートするアプリケーションでは、テーブルやリストなどのコンパクトな表示で縮約された値が表示され、展開表示やホバー時の仕組みを通じて配列全体にアクセスできます。この方法により、ユーザーは冗長な配列表示を見ることなくデータをすばやく確認でき、必要なときには配列全体を詳しく確認することもできます。
たとえば、アプリケーションではテーブルのセルに 2024-11-22(最新の日付)のみが表示され、ユーザーがそのセルにホバーするか展開すると、日付の配列全体が表示される場合があります。
プロパティリデューサーを使用すると、配列プロパティで配列以外のインターフェースプロパティを実装できます。これにより、配列データを持つオブジェクトタイプを、単一の値を期待するインターフェースプロパティにマッピングできます。
インターフェース: Asset
lastMaintenanceDate (Date)オブジェクトタイプ: Equipment
maintenanceHistory(Date 配列)
[2024-01-15, 2024-03-22, 2024-11-01]maintenanceHistory の最新の日付。Date 配列プロパティが、設定されたリデューサーを通じて単一の Date を実装します。インターフェースを通じてこのプロパティを表示すると、2024-11-01 が表示されます。リデューサーによって maintenanceHistory 配列プロパティを単一の Date 値として表現できるため、Equipment オブジェクトタイプは Asset インターフェースを実装できます。ユーザーが Asset インターフェースを通じて Equipment オブジェクトを表示すると、最新のメンテナンス日のみが表示されます。
オブジェクトタイプの配列を縮約した値を使用して、インターフェースアクションのパラメーターであるインターフェースプロパティを満たす場合、そのタイプのオブジェクトに対してアクションを呼び出すとエラーが返されます。ただし、配列を縮約した値を通じてインターフェースを実装していないオブジェクトに対しては、引き続きインターフェースアクションを使用できます。
プロパティリデューサーと構造体のメインフィールドを組み合わせると、プロパティの表示が可能になり、実装できるインターフェースの数と形式が広がります。
以下の Event オブジェクトタイプについて考えます。このオブジェクトタイプには、構造体の配列である Locations プロパティが含まれています。
オブジェクトタイプ: Event
locations(Struct 配列)
streetName (String)、dateCollected (Date)、numberOfGuests (Integer)。streetNamedateCollected に基づく最新の値。streetName フィールドをメインフィールドとして設定し、最新の dateCollected を選択するプロパティリデューサーを設定すると、インターフェースの実装に複数の選択肢が生まれます。
| 設定 | 実装可能なデータ型 |
|---|---|
| どちらの機能も未設定 | Struct Array のみ |
| メインフィールドのみ | Struct Array、String Array |
| リデューサーのみ | Struct Array、Struct |
| 両方を設定 | Struct Array、String Array、Struct、String |
たとえば、構造体のメインフィールドとプロパティリデューサーの両方を設定すると、locations プロパティを使用して、以下の画像に示す仮の Event インターフェースの Event street name のような、インターフェースの単一の文字列プロパティを満たすことができます。
構造体のメインフィールドとプロパティリデューサーの両方を設定すると、変換では次の処理が行われます。
つまり、単一のプロパティで、Struct Array、String Array、Struct、String のいずれかのデータ型を必要とするインターフェースを実装できます。
はい、Ontology Manager でいつでもリデューサーを変更または削除できます。変更に再インデックスは不要で、即座に反映されます。
構造体の配列では、同順位に対応するためにフォールバックリデューサーを設定できます。フォールバックリデューサーは、主要なリデューサーで同順位となった項目に対してのみ評価されます。プリミティブ型の配列、またはフォールバックリデューサーのない構造体の場合、同順位の値のうち1つが、決定論的ですが順序付けに基づかない方法で返されます。
はい、編集専用プロパティにリデューサーを設定できます。リデューサーの設定は、プロパティに元の列があるかどうかとは無関係です。
アプリケーションでは、縮約されたプロパティへの対応を段階的に展開しています。プロパティにリデューサーを設定し、リデューサーにまだ対応していないアプリケーションを使用しても、既存の機能が損なわれることはないはずです。プロパティは単に配列として引き続き表示されます。縮約された値を表示できるのは、リデューサーに対応したアプリケーションのみです。