テーブル レコードを作成します。
構文
Xrm.WebApi.createRecord(entityLogicalName, data).then(successCallback, errorCallback);
Parameters
| 件名 | タイプ | Required | プロパティ |
|---|---|---|---|
entityLogicalName |
String | 可 | 作成するテーブルの論理的な名前です。 例: account。 |
data |
Object | 可 | 新しいテーブルレコードの列と値を定義する JSON オブジェクトです。 例 を見る |
successCallback |
Function | いいえ | レコードを作成した場合に呼び出す関数。 戻り値 を見る |
errorCallback |
Function | いいえ | 処理が失敗したときに呼び出す関数。 次のプロパティを持つオブジェクトが渡されます: - errorCode: 数。 正の 10 進数でのエラー コード。 たとえば、0x80040333 として文書化されたエラー コードは、2147746611 として返されます。- message: 文字列。 問題を示すエラー メッセージが表示されます。 |
戻り値
成功すると、Promiseオブジェクトを successCallback 次のプロパティを使用します。
| 件名 | タイプ | プロパティ |
|---|---|---|
entityType |
String | 新しいレコードのテーブル論理名です。 |
id |
String | 新しいレコードの GUID。 |
使用例
これらの例では、次の記事と同じ要求オブジェクトを使用します。 Web API を使用してテーブル行を作成します。 この記事では、テーブル レコードを作成するためのデータ オブジェクトを定義する方法について説明します。
| 例 | 対象 | Web API の例 |
|---|---|---|
| 基本的な作成 | 列の値を含む取引先企業レコードを作成する方法。 | 基本的な作成 |
| 関連するテーブル レコードをプライマリ レコードと共に作成する | 1 回の操作で取引先企業と関連する連絡先、営業案件、タスク レコードを作成する方法。 | 関連するテーブル行を 1 回の操作で作成する |
| 新しいレコードの作成時にテーブルを関連付ける |
@odata.bindを使用して、新しいアカウントを既存の連絡先に関連付ける方法。 |
作成時にテーブル行を関連付ける |
基本的な作成の例
サンプルの取引先企業レコードを作成します。
// define the data to create new account
var data =
{
"name": "Sample Account",
"creditonhold": false,
"address1_latitude": 47.639583,
"description": "This is the description of the sample account",
"revenue": 5000000,
"accountcategorycode": 1,
"opendeals_date": new Date("2024-02-03T00:00:00Z")
}
// create account record
Xrm.WebApi.createRecord("account", data).then(
function success(result) {
console.log("Account created with ID: " + result.id);
// perform operations on record creation
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
ヒント
プライマリ イメージを使用したレコードの作成は、オフライン モードではサポートされていません。 プライマリ イメージは、オンライン モードで作成を使用してのみ設定できます。 create を使用して他のイメージ列を設定することはできません。 プライマリ イメージについて
プライマリ レコードの例と共に関連するテーブル レコードを作成する
相互に関連するテーブルを作成するには、それらをナビゲーション プロパティ値として定義します。 このパターンを ディープ挿入 と言います。 この例では、主要な連絡先レコードと関連する営業案件レコードと共に、サンプルの取引先企業レコードを作成します。
ヒント
1 回の作成操作での関連テーブル レコードの作成は、オフライン モードではサポートされていません。
// define data to create primary and related table records
var data =
{
"name": "Sample Account",
"primarycontactid":
{
"firstname": "John",
"lastname": "Smith"
},
"opportunity_customer_accounts":
[
{
"name": "Opportunity associated to Sample Account",
"Opportunity_Tasks":
[
{ "subject": "Task associated to opportunity" }
]
}
]
}
// create account record
Xrm.WebApi.createRecord("account", data).then(
function success(result) {
console.log("Account created with ID: " + result.id);
// perform operations on record creation
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
新しいレコードの作成時にテーブルを関連付ける例
新しいテーブル レコードを既存のテーブル レコードに関連付けるには、 @odata.bind 注釈を使用して単一値ナビゲーション プロパティの値を設定します。
ヒント
単一値ナビゲーション プロパティの名前は、参照属性の LogicalName と常に同じとは限りません。 Web API $metadata サービス ドキュメントのNavigationProperty要素のName属性値を使用していることを確認します。 詳細については、「 Web API のナビゲーション プロパティ」を参照してください。
次にコード例を示します。
次の例では、取引先企業レコードを作成し、それを既存の連絡先レコードに関連付けて、後者を新しい取引先企業レコードのプライマリ連絡先として設定します。
var data =
{
"name": "Sample Account",
"primarycontactid@odata.bind": "/contacts(465b158c-541c-e511-80d3-3863bb347ba8)"
}
// create account record
Xrm.WebApi.createRecord("account", data).then(
function success(result) {
console.log("Account created with ID: " + result.id);
// perform operations on record creation
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
モバイル オフライン シナリオの廃止されたメソッド
ヒント
前に示した@odata.bind注釈の例を使用する代わりに、大文字と小文字が区別されるプロパティ (logicalnameとid) を持つ非推奨の参照オブジェクトは、既存のカスタマイズで引き続きサポートされています。 ただし、この非推奨のオブジェクトを使用する代わりに、オンラインとオフラインの両方のシナリオで @odata.bind 注釈を使用します。
次の例では、非推奨の方法を使用して取引先企業レコードを作成し、それを既存の連絡先レコードに関連付けて、オフライン モードで作業するときにモバイル クライアントからの新しい取引先企業レコードのプライマリ連絡先として後者を設定します。
var data =
{
"name": "Sample Account",
"primarycontactid":
{
"logicalname": "contact",
"id": "465b158c-541c-e511-80d3-3863bb347ba8"
}
}
// create account record
Xrm.WebApi.offline.createRecord("account", data).then(
function success(result) {
console.log("Account created with ID: " + result.id);
// perform operations on record creation
},
function (error) {
console.log(error.message);
// handle error conditions
}
);