データ型形式の変換

Microsoft Dataverse には、さまざまな形式で構成できる データ型 が複数あります。 ソリューション エクスプローラー または API 操作のいずれかを使用して列の形式を指定できます。 次のセクションでは、次のようなデータ型形式の詳細について説明します。

データ型でサポートされている形式

形式列は、コンテンツの表示方法に関する UI を指定します。 UI で使用できる形式には、電話、メール、または期間があります。 以前にこれらの形式を試したことがあるとします。 その場合、適用された形式はコンテキスト、ドメイン、またはその他の値を検証しないことがわかります。 それらは、そのタイプに使用するコントロールを UI に指示します。

形式

次の表に、各データ型で使用可能な形式に関する情報を示します。

データの種類 形式名 説明 アプリ開発者は利用できますか メモ
テキスト テキスト テキスト文字を含む基本的なテキスト列。 有効 ティスト列の既定形式値。
テキスト領域 テキスト文字を含み、改行も許可するテキスト列。 有効
メール このテキストは、ユーザーの電子メール アプリケーションを開くためのリンクを提供します。 有効
URL テキストは、指定されたテキストをページを開くハイパーリンクを含めることができます。 有効なプロトコルで開始されていないすべてのテキストには、先頭に "https://" が追加されます。 有効
株式銘柄コード ほとんどの言語では、テキストは MSN マネー Webサイトを開くリンクとして機能し、株式銘柄コードで表された株価に関する詳細を表示します。 有効
電話 列をクリックすると、通話を開始できるようになります。 はい
JSON JSON 形式を使用してテキストを保存します はい (API のみ) Audit のような非 SQL ストアでのみ。
リッチ テキスト HTML 利幅を含むリッチ テキスト形式を許可します。 はい (API のみ)
バージョン番号 行のバージョン番号を保存します。 無効 システムでのみ使用します。
複数行テキスト (メモ) テキスト テキスト文字を含む基本的なテキスト列。 有効
テキスト領域 テキスト文字を含み、改行を許可するテキスト列。 有効
Email 内部使用のみ。 いいえ
JSON JSON 形式を使用してテキストを保存します はい (API のみ) Log のような非 SQL ストアでのみ。
リッチ テキスト HTML 利幅を含むリッチ テキスト形式を許可します。 Y (API のみ)
InternalExtentData 内部使用のみ。 いいえ システムでのみ使用します
なし/string.Empty このオプションでは、単に数字が表示されます。 はい 整数列の既定形式値。
整数 期間 この形式オプションは期間オプションの一覧を表示します。 データベースに保存されるデータは、常に分の数です。 フィールドはドロップダウン リストとして表示され、1 分、15 分、30 分、さらには 3 日などの候補のオプションを提供します。 ユーザーがこれらのオプションを選択するか、または分の数を入力すると、その期間に対して解決できます。 たとえば、60 を入力する場合は、1 時間に解決されます。 または、"1 時間" または "2 日" と入力するだけで、その時間を表示するよう解決されます。
期間は "x 分"、"x 時間"、および "x 日" の形式で入力する必要があります。 時間と日は、小数点使用して入力できます。たとえば、"x.x 時間" または "x.x 日" と入力することができます。
注意: 値は分単位で表現可能でなければならず、分未満の値は、最も近い分に丸められます。
はい システムはこの値を秒単位で読み取ります。
タイムゾーン このオプションは、タイム ゾーン コードを使用してタイム ゾーンの選択リストを表示します。 これらのゾーンのそれぞれは数値として保存されます。 たとえば、タイム ゾーン (GMT-08:00) 太平洋標準時 (米国およびカナダ)では、TimeZoneCode は 4 です。 これらのコードを、モデル駆動型アプリはタイム ゾーン名で表示し、キャンバス アプリは格納されている番号で表示します。 はい
言語 このオプションは、組織でプロビジョニングされた言語の一覧を表示します。 値は LCID コードを使用して数値として格納します。 言語コードは 4 桁または 5 桁のロケール ID です。 有効なロケール ID 値は、ロケール ID (LCID) の一覧で確認できます。 言語を、モデル駆動型アプリは言語名で表示し、キャンバス アプリは格納されている番号で表示します。 はい
ロケール ISO 標準値を使用して特定のロケールに対応する値。 はい (API のみ) Power Apps メーカー UI に表示されていません。
日付と時間 日付のみ 日付のみ。 ユーザー ローカル または タイム ゾーン非依存 が選択されている場合は、00:00:00 (時間) を含みます。 有効
日付と時間 日付と時刻の形式。 有効 DateTime 列の既定形式値。

形式の変換

データ型の形式は、データ型がサポートする互換性のある形式のいずれかに変更できます。 以前のテーブル定義 (maxsize) が新しいターゲット形式で存在する場合、形式を変更するとそれが維持されます。 インバウンド ペイロードに形式が含まれていない場合、Dataverse 形式を変更すべきではないと想定しています。 FormatName 列で必要なペイロードを使用して、API 呼び出しで形式を変換できます。 新たに追加された Format の選択肢は無視されるため、Format 列の値の変更が推奨されています。

注意

現時点では、形式の変換は API 操作を実行することでのみ行われます。 形式を変更しても、列に存在するデータは変更されません。 このため、変換後に解決する必要のある予期しない形式に関する問題に遭遇する場合があります。

上記のテーブルで述べたように、形式変換には制限があります。

  • JSON は、テーブルが非 SQL ストレージ (つまり Log) の一部である場合にのみ使用できます。
  • 形式タイプが emailbodyinternalextentdata の列を他の形式に変換することはできません。 これらの変換はすべて無視され、エラー メッセージは表示されません。
  • 形式が emailbodyinternalextentdata の列を他の形式に変換することはできません。 試行すると、エラーが発生します。
  • 日付のみを DateTime に変換することはできませんが、ユーザー ローカル または タイム ゾーンに非依存 動作のある日付は DateTime に変更できます。

データ型を互換性のない形式に変更すると、次のエラーが表示されます。

<<formatname>> の形式は、<<datatype>> タイプ列 <<columnname>> テーブル <<tablename>> では無効です。 例えば、datetime の形式はテキスト タイプでは無効です。

データ型の形式を変更する際は、新しい形式の詳細を OData API PUT 呼び出しに追加する必要があります:

PUT [Organization URI]/api/data/v9.0/EntityDefinitions(<<entity name>>)/Attributes(<<attribute name>>)
To set or change the format of a data type, you need to add the new format details into an OData API **POST** for a new column or **PUT** call to update an existing column:

> [!NOTE]
> For more samples on how to use the API, see https://github.com/microsoft/PowerApps-Samples

Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
{
 "AttributeType": \<\<Data type you are setting the format for\>\>,
 "AttributeTypeName": {
"Value": *\<\<Datatype Type\>\>*
},
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": *\<\<text label to use for the format\>\>*
"LanguageCode": 1033
}
]
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [
{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": *\<\<text label to use for the format\>\>*
"LanguageCode": 1033
}
]
},
"RequiredLevel": {
"Value": "None",
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
},
"SchemaName": *\<\<Your chosen schema name\>\>*
"@odata.type": "Microsoft.Dynamics.CRM.StringAttributeMetadata",
"FormatName": {
"Value": *\<\<Formatname value\>\>*
},
"MaxLength": 100
}

Format 列と FormatName 列
形式の検証