次の方法で共有


データ型形式の変換

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

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

書式列は、コンテンツの表示方法に関する UI を指定します。 UI で使用できる一部の形式は、 電話電子メール、または 期間です。 適用された形式では、コンテキスト、ドメイン、またはその他の値は検証されません。 ユーザーは、その型に使用するコントロールについて UI に指示します。

形式

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

データ型 書式設定名 説明 アプリ 作成者が利用できますか? Notes
テキスト テキスト テキスト文字を含む基本的なテキスト列。 イエス テキスト列の既定の書式値。
テキスト領域 テキスト文字を含み、改行も可能なテキスト列。 イエス
Email テキストには、ユーザーの電子メール アプリケーションを開くリンクが表示されます。 イエス
URL テキストには、指定されたページを開くハイパーリンクが表示されます。 https:// prepended は、有効なプロトコルで始まらないテキストの先頭に付加されます イエス
ティッカー 記号 ほとんどの言語では、テキストは MSN Money Web サイトを開いてティッカー シンボルで表される株価に関する詳細を表示するためのリンクとして有効になっています。 イエス
電話 列はクリック可能で、呼び出しを開始します。 イエス
JSON JSON 形式を使用してテキストを格納します はい (API のみ) 非 SQL ストアのみ (例えば、Audit)。
リッチ テキスト HTML マークアップを含むリッチ テキストの書式設定を許可します。 はい (API のみ)
バージョン番号 行のバージョン番号を格納します。 いいえ システム使用のみ。
複数行テキスト (メモ) テキスト テキスト文字を含む基本的なテキスト列。 イエス
テキスト領域 テキスト列にはテキスト文字が含まれており、改行が可能です。 イエス
Email 内部使用のみ。 いいえ
JSON JSON 形式を使用してテキストを格納します はい (API のみ) ログなどの SQL 以外のストアでのみ。
RichText HTML マークアップを含むリッチ テキストの書式設定を許可します。 Y (API のみ)
InternalExtentData 内部使用のみ。 いいえ システムの使用のみ
None/string.Empty このオプションでは、単に数字が表示されます。 イエス 整数列の既定の書式値。
整数 期間 この書式オプションは、期間オプションの一覧を表示します。 データベースに格納されているデータは、常に数分です。 このフィールドはドロップダウン リストのように見え、1 分、15 分、30 分などの推奨されるオプションを最大 3 日間提供します。 ユーザーはこれらのオプションを選ぶか、指定した分数を入力することで、その時間に設定されます。 たとえば、「60」と入力すると、1 時間に解決されます。 または、"1 時間" または "2 日" と入力すると、その時刻が表示されます。
期間は、"x 分"、"x 時間"、または "x 日" の形式で入力する必要があります。 時間と日は、"x.x hours" や "x.x days" などの小数点を使用して入力することもできます。
: 値は分単位で表現できる必要があり、サブミニット値は最も近い分に丸められます。
イエス システムは、この値を秒単位で読み取ります。
Timezone このオプションでは、タイム ゾーン コードを使用して、タイム ゾーンの選択リストが表示されます。 これらのゾーンのそれぞれは数値として保存されます。 たとえば、タイム ゾーン (GMT-08:00) 太平洋標準時 (米国およびカナダ)では、TimeZoneCode は 4 です。 モデル駆動型アプリでは、これらのコードがタイム ゾーン名に表示され、Canvas アプリは格納された数として表示されます。 イエス
Language このオプションは、組織でプロビジョニングされた言語の一覧を表示します。 値は LCID コードを使用して数値として格納されます。 言語コードは 4 桁または 5 桁のロケール ID です。 有効なロケール ID 値は、ロケール ID (LCID) の一覧で確認できます。 モデル駆動型アプリは言語名として言語を表示し、Canvas アプリは格納されている番号として表示します。 イエス
ロケール ISO 標準値を使用して特定のロケールに対応する値。 はい (API のみ) Power Apps Maker UI には表示されません。
日付と時間 日付のみ 日付のみ。 ユーザー ローカルまたは Time-Zone Independent が選択されている場合は、00:00:00 の時刻が含まれます。 イエス
日付と時間 日付と時刻の形式。 イエス DateTime 列の既定の書式値。

書式変換

データ型の形式は、データ型でサポートされている互換性のある形式のいずれかに変更できます。 形式を変更しても、以前のテーブル定義 (maxsize) が新しいターゲット形式で存在する場合は保持されます。 受信ペイロードに形式が含まれていない場合、Dataverse は形式を変更してはならないと想定します。 FormatName列の目的のペイロードを使用して API 呼び出しによって形式を変換できます。 新しく追加されたFormatの選択は無視されるため、Format列の値を変更することをお勧めします。

現時点では、形式変換は API 操作を実行することによってのみ行われます。 書式を変更しても、列に存在するデータは変更されません。 このため、変換後に解決する必要がある予期しない書式設定の問題が発生する可能性があります。

前の表で説明したように、形式変換にはいくつかの制限があります。

  • JSON は、テーブルが SQL 以外のストレージ (つまり Log) の一部である場合にのみ使用できます。
  • emailbody型、internalextentdata型の形式で列を他の形式に変換することはできません。 これらの列の変換は無視され、エラー メッセージは表示されません。
  • 列を emailbodyの形式に変換したり、他の形式に internalextentdata したりすることはできません。 試行すると、エラーが発生します。
  • 日付は DateTime にのみ変換できますが、 ユーザー ローカル または Time-Zone Independent の動作を持つ日付は DateTime に変更できます。

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

format <<formatname>> は、テーブル <<tablename>>のデータ型<<datatype>>タイプの列<<columnname>>に対して無効です。 たとえば、形式 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 列
書式の検証