注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
必須プロパティは、値を持つ必要があるオブジェクトタイプのプロパティです。このオブジェクトタイプのプロパティを使用して、このプロパティに対してnull値を持つオブジェクトがないこと、または配列プロパティの場合は空の配列がないことを検証できます。この検証は、バッキングデータソースからのデータや、アクションによる編集に適用されます。
必須プロパティを使用する際には、以下の点に注意してください:
なお、プロパティのバッキング列に現在null値が設定されている場合、再インデックスは失敗します。これを修正するには、バッキングデータソースを更新して列にnullがないようにするか、プロパティの必須設定を解除する必要があります。
オブジェクトタイプが複数のデータソースにバックアップされている場合、null値が必須プロパティに現れる状況が稀に発生することがあります。この現象は、オブジェクトのレコードが一部のデータソースに存在するが、必須プロパティを提供するデータソースには存在しない場合に発生します。
以下にこの挙動を示す例を挙げます。Movieオブジェクトタイプが2つのバッキングデータソースを持ち、Genreプロパティが必須であると仮定します。
データソース1
| Movie Id | Title | Box office | Regions | 
|---|---|---|---|
| 101 | The Adventure Begins | 200m | ["USA", "Canada", "UK"] | 
| 102 | Love in the City | 75m | [] | 
| 103 | Galactic Battles | 500m | ["USA", "UK", "Australia"] | 
データソース2
| Movie Id | Budget | Genre (Required) | Director | 
|---|---|---|---|
| 101 | 50m | Adventure | Michael John Smith | 
| 102 | 20m | Romance | Jane Doe | 
| 103 | 150m | Sci-Fi | 
新たなMovieがGenreの値を提供せずに両方のバッキングデータソースに追加された場合、それはオントロジーへのインデックス作成に失敗します。
しかし、新たなMovieオブジェクトの行がデータソース1にしか存在しない場合を考えてみましょう。
データソース1
| Movie Id | Title | Box office | Regions | 
|---|---|---|---|
| 101 | The Adventure Begins | 200m | ["USA", "Canada", "UK"] | 
| 102 | Love in the City | 75m | [] | 
| 103 | Galactic Battles | 500m | ["USA", "UK", "Australia"] | 
| 104 | Happy Ending | 150m | ["UK", "FRANCE"] | 
データソース2
| Movie Id | Budget | Genre (Required) | Director | 
|---|---|---|---|
| 101 | 50m | Adventure | Michael John Smith | 
| 102 | 20m | Romance | Jane Doe | 
| 103 | 150m | Sci-Fi | 
上記の例では、結果として得られるオブジェクトが必須プロパティの値を持たないにもかかわらず、オントロジーに正常にインデックスされます。
| Property | Value | 
|---|---|
| Movie Id | 104 | 
| Title | Happy Ending | 
| Box Office | 150m | 
| Regions | ["UK", "FRANCE"] | 
| Budget | |
| Genre (Required) | |
| Director | 
これは、アクションによる編集で作成されたオブジェクトにも同様に適用されます。Movieオブジェクトは、Datasource 1の列に関連付けられたプロパティのみを含む場合、成功裏に作成または変更できます。しかし、アクションがDatasource 2から取得したプロパティ(例えばBudget)をオブジェクトに追加する場合、そのアクションは無効となり、実行に失敗します。これは、オブジェクトがDatasource 2に存在するため、Genreを設定しなければならないためです。