DataClassAttribute
データクラス属性は、それぞれのクラスのプロパティとして利用可能です。 例:
nameAttribute:=ds.Company.name // クラス属性への参照
revenuesAttribute:=ds.Company["revenues"] // 別の書き方
このコードは、nameAttribute および revenuesAttribute 変数に、Company
クラスの name および revenues 属性の参照をそれぞれ代入します。 このシンタックスは属性内に保管されている値を返すのではありません。その代わりに、属性自身への参照を返します。 値を管理するには、エンティティ を使用する必要があります。
DataClassAttribute
オブジェクトが持つプロパティを読み取ることによって、データクラス属性に関する情報が取得できます。
データクラス属性オブジェクトを編集することは可能ですが、元となるデータベースストラクチャーは変更されません。
概要
.autoFilled : Boolean 属性値が 4D によって自動生成される場合に true です |
.exposed : Boolean 属性が REST で公開されている場合に trueです |
.fieldNumber : Integer 属性の内部的な 4Dフィールド番号を格納します |
.fieldType : Integer 属性の 4Dデータベースタイプを格納します |
.indexed : Boolean 属性に対して B-tree もしくは クラスターB-Tree インデックスが設定されている場合に true です |
.inverseName : Text リレーション先の属性名を格納します |
.keywordIndexed : Boolean 属性にキーワードインデックスが存在すれば true です |
.kind : Text 属性の種類を格納します |
.mandatory : Boolean 属性において Null値の入力が拒否されている場合に true です |
.name : Text dataClassAttribute オブジェクトの名称を文字列として返します |
.path : Text リレーション属性を指し示すエイリアス属性のパスを返します |
.readOnly : Boolean 読み取り専用属性の場合に trueです |
.relatedDataClass : Text 属性にリレートされているデータクラスの名称を返します |
.type : Text 属性の概念的な値タイプが格納されています |
.unique : Boolean 属性値が重複不可の場合に true です |
.autoFilled
履歴
バージョン | 内容 |
---|---|
v17 R5 | 追加 |
.autoFilled : Boolean
説明
.autoFilled
プロパティは、 属性値が 4D によって自動生成される場合に true です。 このプロパティは以下の 4Dフィールドプロパティに対応しています:
- 数値型フィールドの "自動インクリメント"
- UUID (文字型)フィールドの "自動UUID"
.kind
が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。
汎用的なプログラミングのために、
.autoFilled
が返されない場合でも Bool (dataClassAttribute.autoFilled) と書くことで、有効な値 (false) を受け取ることができます。
.exposed
履歴
バージョン | 内容 |
---|---|
v19 R3 | 追加 |
.exposed : Boolean
説明
.exposed
プロパティは、 属性が REST で公開されている場合に trueです。
参照
.fieldNumber
履歴
バージョン | 内容 |
---|---|
v17 R5 | 追加 |
.fieldNumber : Integer
説明
.fieldNumber
プロパティは、 属性の内部的な 4Dフィールド番号を格納します。
.kind
が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。
汎用的なプログラミングのために、
.fieldNumber
が返されない場合でも Num (dataClassAttribute.fieldNumber) と書くことで、有効な値 (0) を受け取ることができます。
.fieldType
履歴
バージョン | 内容 |
---|---|
v19 R4 | エイリアス属性をサポート |
v19 R3 | 計算属性をサポート |
.fieldType : Integer
説明
.fieldType
プロパティは、 属性の 4Dデータベースタイプを格納します。 これは属性の種類 (kind) によります (.kind
参照)。
とりうる値:
dataClassAttribute.kind | fieldType |
---|---|
storage | 4Dフィールドタイプに対応、Value type コマンド参照 |
relatedEntity | 38 (Is object ) |
relatedEntities | 42 (Is collection ) |
calculated | Value type コマンド参照Is object )Is collection ) |
alias | Value type コマンド参照Is object )Is collection ) |
参照
.indexed
履歴
バージョン | 内容 |
---|---|
v17 R5 | 追加 |
.indexed : Boolean
説明
.indexed
プロパティは、 属性に対して B-tree もしくは クラスターB-Tree インデックスが設定されている場合に true です。
.kind
が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。
汎用的なプログラミングのために、
.indexed
が返されない場合でも Bool (dataClassAttribute.indexed) と書くことで、有効な値 (false) を受け取ることができます。
.inverseName
履歴
バージョン | 内容 |
---|---|
v17 R5 | 追加 |
.inverseName : Text
説明
.inverseName
プロパティは、 リレーション先の属性名を格納します。
.kind
が "storage" の場合には、このプロパティは返されません。 .kind は "relatedEntity" または "relatedEntities" でなくてはなりません。
汎用的なプログラミングのために、
.inverseName
が返されない場合でも String (dataClassAttribute.inverseName) と書くことで、有効な値 ("") を受け取ることができます。
.keywordIndexed
履歴
バージョン | 内容 |
---|---|
v17 R5 | 追加 |
.keywordIndexed : Boolean
説明
.keywordIndexed
プロパティは、 属性にキーワードインデックスが存在すれば true です。
.kind
が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。
汎用的なプログラミングのために、
.keywordIndexed
が返されない場合でも Bool (dataClassAttribute.keywordIndexed) と書くことで、有効な値 (false) を受け取ることができます。
.kind
履歴
バージョン | 内容 |
---|---|
v19 R4 | "alias" を追加 |
v19 R3 | "calculated" を追加 |
.kind : Text
説明
.kind
プロパティは、 属性の種類を格納します。 以下のいずれかの値が返されます:
- "storage": ストレージ (あるいはスカラー) 属性。つまり、属性は値を保存しており、他の属性への参照ではありません。
- "calculated": 計算属性。
get
関数 によって定義されます。 - "alias": 他の属性 を指し示す属性。
- "relatedEntity": N対1 リレーション属性 (エンティティへの参照)
- "relatedEntities": 1対N リレーション属性 (エンティティセレクションへの参照)
例題
以下のテーブルとリレーションを前提とします:
var $attKind : Text
$attKind:=ds.Employee.lastname.kind //$attKind="storage"
$attKind:=ds.Employee.manager.kind //$attKind="relatedEntity"
$attKind:=ds.Employee.directReports.kind //$attKind="relatedEntities"
.mandatory
履歴
バージョン | 内容 |
---|---|
v17 R5 | 追加 |
.mandatory : Boolean
説明
.mandatory
プロパティは、 属性において Null値の入力が拒否されている場合に true です。
.kind
が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。
汎用的なプログラミングのために、
.mandatory
が返されない場合でも Bool (dataClassAttribute.mandatory) と書くことで、有効な値 (false) を受け取ることができます。 警告: このプロパティは、4Dデータベースレベルの "Null値の入力を拒否" フィールドプロパティと対応しています。 フィールドのデータ入力制御オプションである既存の "必須入力" プロパティとは無関係です。
.name
履歴
バージョン | 内容 |
---|---|
v17 R5 | 追加 |
.name : Text
説明
.name
プロパティは、 dataClassAttribute
オブジェクトの名称を文字列として返します。
例題
var $attName : Text
$attName:=ds.Employee.lastname.name //$attName="lastname"
.path
履歴
バージョン | 内容 |
---|---|
v19 R4 | 追加 |
.path : Text
説明
.path
プロパティは、 リレーション属性を指し示すエイリアス属性のパスを返します。
例題
var $path : Text
$path:=ds.Teacher.students.path // $path="courses.student"
.readOnly
履歴
バージョン | 内容 |
---|---|
v19 R3 | 追加 |
.readOnly : Boolean
説明
.readOnly
プロパティは、 読み取り専用属性の場合に trueです。
たとえば、set
関数 を持たない計算属性は読み取り専用です。
.relatedDataClass
履歴
バージョン | 内容 |
---|---|
v17 R5 | 追加 |
.relatedDataClass : Text
説明
このプロパティは、
.kind
プロパティ値が "relatedEntity" または "relatedEntities" である属性においてのみ利用可能です。
.relatedDataClass
プロパティは、 属性にリレートされているデータクラスの名称を返します。
例題
以下のテーブルとリレーションを前提とします:
var $relClass1; $relClassN : Text
$relClass1:=ds.Employee.employer.relatedDataClass //$relClass1="Company"
$relClassN:=ds.Employee.directReports.relatedDataClass //$relClassN="Employee"
.type
履歴
バージョン | 内容 |
---|---|
v19 R3 | 計算属性をサポート |
.type : Text
説明
.type
プロパティは、 属性の概念的な値タイプが格納されています。これは、汎用的なプログラミングに有用です
この概念的な値タイプは属性の種類 (.kind
) によります。
とりうる値:
dataClassAttribute.kind | type | 説明 |
---|---|---|
storage | "blob", "bool", "date", "image", "number", "object", または "string" | 数値型の場合 "number" が返されます (時間を含む)。 UUID、文字およびテキスト型フィールドの場合 "string" が返されます。 "blob" 属性は BLOB オブジェクト で、Blob クラス によって扱われます。 |
relatedEntity | リレートされたデータクラス名 | 例: "Companies" |
relatedEntities | リレートされたデータクラス名 + "Selection" | 例: "EmployeeSelection" |
calculated |
参照
.unique
履歴
バージョン | 内容 |
---|---|
v17 R5 | 追加 |
.unique : Boolean
説明
.unique
プロパティは、 属性値が重複不可の場合に true です。 このプロパティは、4Dフィールドプロパティの "重複不可" に対応しています.
.kind
が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。
汎用的なプログラミングのために、
.unique
が返されない場合でも Bool (dataClassAttribute.unique) と書くことで、有効な値 (false) を受け取ることができます。