注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
派生プロパティは、クエリ時にほかのプロパティやリンクされたオブジェクトから値が計算されるプロパティです。派生プロパティは値を保存するのではなく、その計算方法を定義します。計算方法には、リンクをたどってリンクされたオブジェクトからプロパティを選択する方法、多数のリンクされたオブジェクトを横断して集計する方法、値を算術演算で組み合わせる方法があります。
派生プロパティは保存されるのではなく計算されるため、基になるデータが変化しても正しい値を維持します。たとえば、リンクされた Employee オブジェクトの件数を計算する派生プロパティは、パイプラインを再実行したり更新ロジックを保守したりすることなく、入社や退職を自動的に反映します。
派生プロパティでは、次の3つの方法のいずれかで値を計算できます。
Department オブジェクトタイプで、リンクされた Employee オブジェクトの平均給与を公開できます。Employee オブジェクトタイプで、リンクされた1個の Employee オブジェクトから選択した上司の名前を公開できます。Employee オブジェクトタイプで、salary と bonus を加算して計算した報酬総額を公開できます。派生プロパティは読み取り専用です。アクションや関数で編集することはできず、オブジェクトストレージには保存されません。
派生プロパティは、オントロジーまたは実行時に定義できます。どちらの形式を使用するかによって、設定する場所、ほかに誰が閲覧できるか、利用可能な機能が決まります。

| オントロジー定義 | 実行時定義 | |
|---|---|---|
| 設定する場所 | Ontology Manager | Workshop モジュール、Insight ワークブック、またはオントロジー SDK リクエスト |
| 保存先 | オントロジー定義 | オブジェクトセット定義 |
| 閲覧範囲 | オブジェクトタイプを利用するすべての利用者 | 宣言元のリクエストまたはモジュール、およびその派生プロパティを含む保存済みオブジェクトセットにアクセスできるユーザー |
| リンク走査の最大回数 | 3 | Workshop、Insight: 1;オントロジー SDK:固定の上限なし |
| 式 | 利用できません | 利用可能 |
| 開発ステータス | ベータ版 | 一般提供 |
オントロジー定義の派生プロパティは開発のベータ版フェーズにあり、お使いのエンロールメントでは利用できない場合があります。開発が進む中で機能が変更される可能性があります。実行時定義の派生プロパティは一般提供されています。
計算が組織によるオブジェクトタイプのモデル化の一部であり、すべての利用者に表示する必要がある場合は、オントロジー定義の派生プロパティを使用します。計算が単一のアプリケーションや分析に属する場合、または算術式や日付式が必要な場合は、実行時定義の派生プロパティを使用します。
利用可能な集計と式の完全な一覧については、派生プロパティリファレンスを参照してください。
リンクベースの派生プロパティは、リンクされたオブジェクトから値を選択または集計します。オントロジー定義と実行時定義のどちらの派生プロパティも、リンクベースの計算に対応しています。
式は、ネイティブプロパティ、またはリンクや集計による派生プロパティを使用して、算術計算や日付計算を実行します。式を利用できるのは、実行時定義の派生プロパティのみです。計算プロパティは、同じ withProperties 操作で宣言された別の計算プロパティを参照できません。代わりに、依存するプロパティを後続の操作で宣言してください。
| アプリケーション | 対応内容 |
|---|---|
| Ontology Manager | オブジェクトタイプにオントロジー定義の派生プロパティを設定します。 |
| Workshop | オントロジー定義の派生プロパティを使用するか、一部のウィジェット向けにモジュールレベルで実行時定義の派生プロパティを定義します。 |
| オントロジー SDK | オントロジー定義の派生プロパティを使用するか、withProperties 操作で実行時定義の派生プロパティを定義し、結果、フィルター、並べ替え、集計で使用します。 |
| Insight | オントロジー定義の派生プロパティを使用するか、テーブル分析に実行時定義の派生プロパティを追加します。 |
TypeScript オントロジー SDK(オントロジー SDK 2.x)では、対応する @osdk/client パッケージの最小バージョンは 2.2.0-beta.x です。リンクされたオブジェクトからプロパティを選択する場合や、算術式または日付式を使用する場合は、バージョン 2.4.0 以降が必要です。詳細については、Developer Console の API ドキュメントを参照してください。
派生プロパティは、その計算に使用されるすべてのオブジェクトからセキュリティを継承します。値を組み合わせる前に、計算に含まれる各オブジェクトに対してアクセスチェックが適用されます。これには、複数ホップの走査における中間オブジェクトも含まれます。
その結果、2人のユーザーが同じオブジェクトの同じ派生プロパティに対して異なる値を見ることがあります。各ユーザーの計算値には、そのユーザーに閲覧権限があるソースオブジェクトと中間オブジェクトのみが反映されます。

値をリストやセットに収集する集計では、収集された各値のセキュリティマーキングが保持されるため、リスト内の個々の値にそれぞれのマーキングが付与されます。詳細については、プロパティのセキュリティマーキングを参照してください。
派生プロパティの値は、保存やインデックス化されるのではなく、クエリ時に評価されます。ただし、プラットフォームでは、フィルターを基になるオブジェクトインデックスにプッシュダウンすることで多くのクエリを最適化し、派生値の計算前に処理する必要があるデータを削減できます。
パフォーマンスは、フィルター適用後に残るオブジェクトの数、リンクされたオブジェクトの数と中間結果のサイズ、集計の種類、リンク走査の回数によって異なります。派生値による絞り込みや並べ替えでは、通常、残りの候補オブジェクトについてその値を計算する必要があります。クエリによっては、一部の結合や集計もプッシュダウンできます。
実行のしきい値、フォールバックの動作、クエリ設計のガイダンスについては、オントロジークエリの制限を参照してください。派生プロパティのクエリにかかるコンピュートコストについては、クエリのコンピュート使用量を参照してください。派生プロパティとパイプラインで事前計算した値のどちらを選ぶかについては、オントロジーの構造に関するガイダンスを参照してください。
リストを収集およびセットを収集の集計では、返される値の数に上限を指定できます。この上限は返される値を制限しますが、プラットフォームが評価する値は制限しません。
収集されたプロパティに対するフィルター、並べ替え、集計は、切り詰められたリストではなく、すべての値を対象に実行されます。そのため、受け取るリストに含まれていない値によって、オブジェクトがフィルターに一致することがあります。
収集されたプロパティに対するフィルターは、コレクションの上限内の値だけでなく、元の値をすべて確認します。つまり、フィルターの条件を満たした値が返されるリストに含まれていなくても、一致することがあります。返されるリストは上限に合わせて切り詰められますが、フィルターの対象は制限されません。リデューサーも同様に動作します。リデューサーはコレクションの上限を 1 に設定することと同等ですが、返される1個の値だけでなく、元の値すべてをフィルターの対象にします。

派生プロパティは現在も開発が進められており、オントロジーで定義された派生プロパティはベータ版です。以下の制限事項は、現在の動作を反映しています。
withProperties 操作で宣言された別の式を参照できません。代わりに、依存する式を後続の withProperties 操作で宣言します。