注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
必須プロパティは、値を持つ必要があるオブジェクトタイプのプロパティです。このオブジェクトタイプのプロパティを使用すると、このプロパティの値が null のオブジェクト、または配列プロパティの場合は空の配列を持つオブジェクトが存在しないことを検証できます。この検証は、元データソースのデータと、アクションによる編集に適用されます。
必須プロパティを使用する際は、次の点に注意してください。
プロパティの元の列に現在 null 値が設定されている場合、再インデックス化に失敗します。これを解決するには、その列に null 値が含まれないように元データソースを更新するか、プロパティの必須設定を解除する必要があります。
必須プロパティで空の配列を許可するように設定できます。この場合、プロパティは引き続き null 値を拒否しますが、空の配列は受け入れます。これは、null にすることはできないものの、空の配列を許可するように設定できる強制アクセス制御プロパティに便利です。強制アクセス制御プロパティについて詳しくはこちら。
アクションでは、パラメーターにマッピングされているプロパティで、そのパラメーターが設定されていない場合、空の配列が書き込まれます。つまり、空の配列を許可する必須プロパティがあり、アクションでパラメーターを空欄のままにすると、アクションは成功し、プロパティに空の配列を書き込みます。この動作を望まず、ユーザーがアクションによってこのプロパティに常に値を設定するように強制したい場合は、必須プロパティで空の配列を許可しないでください。
複数のデータソースを元にしているオブジェクトタイプの必須プロパティに、null 値が表示される場合があります。これは、オブジェクトのレコードが一部のデータソースには存在するものの、必須プロパティの値を供給するデータソースには存在しない場合に発生します。
次の例は、この動作を示しています。2つの元データソースを持つ Movie オブジェクトタイプがあり、Genre プロパティが必須であるとします。
データソース1
| 映画ID | タイトル | 興行収入 | リージョン |
|---|---|---|---|
| 101 | 冒険の始まり | 200m | ["USA", "Canada", "UK"] |
| 102 | 都会の恋 | 75m | [] |
| 103 | 銀河の戦い | 500m | ["USA", "UK", "Australia"] |
データソース2
| 映画ID | 予算 | ジャンル(必須) | 監督 |
|---|---|---|---|
| 101 | 50m | アドベンチャー | マイケル・ジョン・スミス |
| 102 | 20m | ロマンス | ジェーン・ドウ |
| 103 | 150m | SF |
Genre の値を指定せずに新しい Movie を両方の元データソースに追加すると、オントロジーへのインデックス化に失敗します。
一方、新しい Movie オブジェクトの行がデータソース1にしか存在しないとします。
データソース1
| 映画ID | タイトル | 興行収入 | リージョン |
|---|---|---|---|
| 101 | 冒険の始まり | 200m | ["USA", "Canada", "UK"] |
| 102 | 都会の恋 | 75m | [] |
| 103 | 銀河の戦い | 500m | ["USA", "UK", "Australia"] |
| 104 | ハッピーエンド | 150m | ["UK", "FRANCE"] |
データソース2
| 映画ID | 予算 | ジャンル(必須) | 監督 |
|---|---|---|---|
| 101 | 50m | アドベンチャー | マイケル・ジョン・スミス |
| 102 | 20m | ロマンス | ジェーン・ドウ |
| 103 | 150m | SF |
上記の例では、生成されるオブジェクトの必須プロパティに値がないにもかかわらず、オントロジーへのインデックス化に成功します。
| プロパティ | 値 |
|---|---|
| 映画ID | 104 |
| タイトル | ハッピーエンド |
| 興行収入 | 150m |
| リージョン | ["UK", "FRANCE"] |
| 予算 | |
| ジャンル(必須) | |
| 監督 |
アクションによる編集で作成されたオブジェクトにも同じことが当てはまります。Datasource 1 の列に関連付けられたプロパティのみを含む場合、Movie オブジェクトの作成や変更に成功します。ただし、アクションによって Budget などの Datasource 2 を元にするプロパティがオブジェクトに追加されると、アクションは無効になり、実行に失敗します。これは、オブジェクトが Datasource 2 にも存在するようになるため、Genre を設定する必要があるからです。