createRecord (Client API 参照)

エンティティ レコードを作成します。

構文

Xrm.WebApi.createRecord(entityLogicalName, data).then(successCallback, errorCallback);

パラメーター

Name 種類​​ 必須出席者 内容
entityLogicalName String あり 作成するエンティティの論理名。 たとえば、「account」。
data オブジェクト あり

新しいエンティティ レコードの属性および値を定義する JSON オブジェクト。

さまざまな作成のシナリオ向けに data オブジェクトを定義する方法については、このトピックの以降の例を参照してください。

successCallback 関数 No

レコードを作成した場合に呼び出す関数。 次のプロパティを持つオブジェクトが渡され、新しいレコードが識別されます:

  • entityType: 文字列。 新しいレコードのエンティティ論理名。
  • id: 文字列。 新しいレコードの GUID。
errorCallback 関数 No 処理が失敗したときに呼び出す関数。 次のプロパティを持つオブジェクトが渡されます。
  • errorCode: 数値。 エラー コード。
  • message: 文字列。 問題を示すエラー メッセージが表示されます。

戻り値

成功時に、successCallback パラメーターの説明で指定済みの属性を含む promise オブジェクトを戻します。

これらの例は Web API を使用してエンティティを作成する で実演したのと同じ要求オブジェクトを使用して、エンティティ レコードを作成するためのデータ オブジェクトを定義します。

基本的な作成

サンプルの取引先企業レコードを作成します。

// 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
    }

// 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
    }
);

ナビゲーション プロパティの値として定義することで、相互に関連するエンティティを作成することができます。 これをディープ挿入と言います。 この例では、取引先責任者レコードとそれに関連する営業案件レコードと共にサンプル取引先企業レコードを作成します。

注意

1 回の作成操作で関連エンティティ レコードを作成することは、オフラインモードではサポートされていません。

// define data to create primary and related entity 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 注釈を使用して、単一値ナビゲーション プロパティの値を設定します。 ただし、オフライン モードのモバイル クライアントの場合、@odata.bind 注釈を使用することはできません。代わりに、目的のレコードを示す検索オブジェクト (logicalname および id) を渡す必要があります。 これは両方のシナリオ用のコード例です。

オンライン シナリオ用 (サーバーに接続済み)

次の例は取引先企業レコードを作成して、既存の取引先担当者レコードに関連付け、後者を新しい取引先企業レコードの取引先責任者としてセットします。

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
    }
);

モバイル オフライン シナリオ用

これは、オフライン モードで作業中にモバイル クライアントから取引先企業レコードを作成して、それを既存の取引先担当者レコードに関連付け、この取引先担当者レコードを新しい取引先企業レコードの取引先責任者として設定する、更新されたサンプル コードです。

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
    }
);

Web API を使用してエンティティを作成する

Xrm.WebApi