メインコンテンツまでスキップ
バージョン: v19

DataClassAttribute

データクラス属性は、それぞれのクラスのプロパティとして利用可能です。 例:

 nameAttribute:=ds.Company.name // クラス属性への参照
revenuesAttribute:=ds.Company["revenues"] // 別の書き方

このコードは、nameAttribute および revenuesAttribute 変数に、Company クラスの name および revenues 属性の参照をそれぞれ代入します。 このシンタックスは属性内に保管されている値を返すのではありません。その代わりに、属性自身への参照を返します。 値を管理するには、エンティティ を使用する必要があります。

DataClassAttribute オブジェクトが持つプロパティを読み取ることによって、データクラス属性に関する情報が取得できます。

データクラス属性オブジェクトを編集することは可能ですが、元となるデータベースストラクチャーは変更されません。

概要

.autoFilled : Boolean    属性値が 4D によって自動生成される場合に 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 オブジェクトの名称を文字列として返します
.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) を受け取ることができます。

.fieldNumber

履歴
バージョン内容
v17 R5追加

.fieldNumber : Integer

説明

.fieldNumber プロパティは、 属性の内部的な 4Dフィールド番号を格納します。

.kind が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。

汎用的なプログラミングのために、.fieldNumber が返されない場合でも Num (dataClassAttribute.fieldNumber) と書くことで、有効な値 (0) を受け取ることができます。

.fieldType

履歴
バージョン内容
v17 R5追加

.fieldType : Integer

説明

.fieldType プロパティは、 属性の 4Dデータベースタイプを格納します。 これは属性の種類 (kind) によります (.kind 参照)。

とりうる値:

dataClassAttribute.kindfieldType説明
storage対応する 4Dフィールド型Type コマンド参照
relatedEntity38 (Is object)
relatedEntities42 (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

履歴
バージョン内容
v17 R5追加

.kind : Text

説明

.kind プロパティは、 属性の種類を格納します。 以下のいずれかの値が返されます:

  • "storage": ストレージ (あるいはスカラー) 属性。つまり、属性は値を保存しており、他の属性への参照ではありません。
  • "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"

.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

履歴
バージョン内容
v17 R5追加

.type : Text

説明

.type プロパティは、 属性の概念的な値タイプが格納されています。これは、汎用的なプログラミングに有用です

この概念的な値タイプは属性の種類 (.kind) によります。

とりうる値:

dataClassAttribute.kindtype説明
storage"number", "date", "object", "bool", "image", "string"数値型の場合 "number" が返されます (時間を含む)。 UUID、文字およびテキスト型フィールドの場合 "string" が返されます。
relatedEntityリレートされたデータクラス名例: "Companies"
relatedEntitiesリレートされたデータクラス名 + "Selection"例: "EmployeeSelection"

.unique

履歴
バージョン内容
v17 R5追加

.unique : Boolean

説明

.unique プロパティは、 属性値が重複不可の場合に true です。 このプロパティは、4Dフィールドプロパティの "重複不可" に対応しています.

.kind が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。

汎用的なプログラミングのために、.unique が返されない場合でも Bool (dataClassAttribute.unique) と書くことで、有効な値 (false) を受け取ることができます。