使用できるデータ型
このページでは、OutSystemsで使用できるデータ型、データ型のデフォルト値や制約、またこれらのデータ型を別のデータ型に変換するビルトイン関数について説明しています。
基本データ型
型 | デフォルト値 | 例 | コメント |
---|---|---|---|
Binary Data | 要素なしのByte配列 | n/a | |
Boolean | false | trueまたはfalse | |
Currency | 0.0 | 545870.025 | Decimal型を参照。 |
Date | #1900-01-01# | #1988-08-28# | サポートされる範囲は[#1900-01-01#, #3000-12-31#] |
Time | #00:00:00# | #12:20:56# | 最小値: #00:00:00# 最大値: #23:59:59# |
Date Time | #1900-01-01 00:00:00# | #1988-08-28 23:59:59# | サポートされる範囲は[#1900-01-01 00:00:00#, #3000-12-31 23:59:59#] タイムゾーンの変換についてはその他の注記をご覧ください。 |
Integer | 0 | 2147483600 | 最小値: -2^31-1。これは-2147483648です。 最大値: 2^31-1。これは2147483647です。 |
Long Integer | 0 | 5645245584135987412 | 最小値: -2^63 最大値: 2^63-1 |
Decimal | 0.0 | -158121.025 4000.0 | 整数部分と小数部分はピリオドで区切ります。 最小値: -2^96 最大値: 2^96-1 小数部分の最大桁数は8桁です。 |
「」(空の文字列) | 「fran.wilson@company.com」 | ||
Phone Number | 「」(空の文字列) | 「+1 555 565 3730」 | |
Text | 「」(空の文字列) | 「My name is Christina Sharp.」 | |
<エンティティ>識別子 | エンティティが作成されると、識別子アトリビュートの<エンティティ>識別子データ型が作成されます。 |
- サーバーでDate Timeデータ型を操作する際は、常にサーバーのタイムゾーンを考慮する必要があります。
- モバイルアプリのDate Time型はサーバーからリクエストされたときでも常にUTCです。
- モバイルアプリUIでDate Time型を使用する場合、値はデバイスの現地時間に変換されます。
以下は、GMT+01(パリ)のサーバーとGMT-05(ニューヨーク)のモバイルデバイスの例です。モバイルデバイスがサーバーに特定のDate Time値をリクエストします(#2007-12-18 17:00:00#
など)。この場合、以下のような動作になります。
- 値はUTC
#2007-12-18 16:00:00#
に変換され、モバイルデバイスに送信されます。 - モバイルアプリに値を保存すると、その値はUTCとして処理され、
#2007-12-18 16:00:00#
として保存されます。 - UIに値を表示すると、エンドユーザーには
#2007-12-18 11:00:00#
が表示されます。
このようなシナリオがロジックに必要ない場合は、Dateデータ型とTimeデータ型を別々に使用してそれぞれの値を処理します。
複合データ型
Type | Comments |
---|---|
<エンティティ>または<ストラクチャ> | エンティティまたはストラクチャが作成されると、そのエンティティまたはストラクチャのすべてのアトリビュートを備えたデータ型が作成されます。たとえば、Customerエンティティが作成された場合、Customerデータ型が作成されます。このデータ型の変数を作成するには、Data Typeプロパティを[Customer]に設定します。 変数のアトリビュートにアクセスするには、次の構文を使用します: <変数>.<アトリビュート> (MyCustomerVar.Name など)。
|
Object | OutSystemsは、Objectデータ型をサポートしているため、独自のJavaまたは.NETクラスを再利用できます。デフォルト値はNullObject()です。 |
Record |
Recordは固定数のアトリビュートからなるデータ型で、それぞれが固有のデータ型を持ちます。Recordを使用して、単独の変数で使用される複合データ型を定義します。複数の変数を同じ複合データ型で定義する必要がある場合は、RecordではなくStructureを使用します。>Recordデータ型を使用するユースケースは次のような場合です: •ユーザーアクションでAggregateの結果を返す必要がある場合。この場合、Recordデータ型を使用してユーザーアクションの出力パラメータを定義します。 •複合情報を返すユーザーアクションが必要であるにもかかわらず、新しいStructureを定義しない場合。 |
Collectionデータ型
Type | Comments |
---|---|
List | リストは同じデータ型の連続した要素で、基本または複合のいずれかです。要素はリストから挿入、取得、削除できます。 |
デフォルト値とNull値
OutSystemsではエンティティ識別子データ型を除き、Null値という概念を採用していません。そのため、各データ型には作成時に割り当てられた関連するデフォルト値があります。
データ型の変換
OutSystemsでは、異なるデータ型間の変換が可能です。これはデータ型変換関数を使用して、暗黙的または明示的に行われます。
暗黙的な変換
OutSystemsは自動的に以下の型の値を変換します。
想定される型 | 適用可能な型 | 備考 |
---|---|---|
Boolean | - | |
Currency | Decimal、Integer、Boolean、エンティティ識別子(Integer) | |
Date | Date Time型 | |
Date Time | Date、Text、Time | |
Integer | Decimal、Boolean、Currency、エンティティ識別子(Integer) | Decimal型を暗黙的にInteger型に変換する場合、小数は切り捨てられます。 |
Long Integer | Long Integer、Integer、Decimal、Boolean、Currency、エンティティ識別子(Integer)、エンティティ識別子(Long Integer) | |
Decimal | Integer、Boolean、Currency、エンティティ識別子(Integer) | |
エンティティ識別子 | エンティティ識別子 | 特定のエンティティ識別子を別のエンティティ識別子に変換できますが、警告が表示されます。 |
Text、Phone Number、Integer、Decimal、Boolean、Currency、エンティティ識別子(Integer)、エンティティ識別子(Text)、Date Time、Date、Time | ||
Phone Number | Text、Email、Integer、Decimal、Boolean、Currency、エンティティ識別子(Integer)、エンティティ識別子(Text)、Date Time、Date、Time | |
Text | Integer、Decimal、Boolean、Currency、Phone Number、Email、エンティティ識別子(Integer)、エンティティ識別子(Text) |
明示的な変換関数
1つのデータ型から別のデータ型に値を変換するには、データ型変換関数を使用します。
以下は、想定される明示的な変換の概要です。
変換元 | 変換先 | 関数 |
---|---|---|
Boolean | Integer Text |
BooleanToInteger BooleanToText |
Date | Date Time Text |
DateToDateTime DateToText |
Date Time | Date Text Time |
DateTimeToDate DateTimeToText DateTimeToTime |
Integer | Boolean Decimal Text Integer Identifier |
IntegerToBoolean IntegerToDecimal IntegerToText IntegerToIdentifier |
Long Integer | Long Integer Identifier Integer Text |
LongIntegerToIdentifier LongIntegerToInteger LongIntegerToText |
Decimal | Boolean Integer Text |
DecimalToBoolean DecimalToInteger DecimalToText |
エンティティ識別子(Integer) | Integer | IdentifierToInteger |
エンティティ識別子(Long Integer) | Long Integer | IdentifierToLongInteger |
エンティティ識別子(Text) | Text | IdentifierToText |
Text | Date Date Time Decimal Integer Time Text型識別子 |
TextToDate TextToDateTime TextToDecimal TextToInteger TextToTime TextToIdentifier |
Time | Text | TimeToText |
すべてのデータ型 | Object | ToObject |