테이블 레코드를 만듭니다.
Syntax
Xrm.WebApi.createRecord(entityLogicalName, data).then(successCallback, errorCallback);
매개 변수
| 이름 | 유형 | 필수 | Description |
|---|---|---|---|
entityLogicalName |
String | Yes | 만들려는 테이블의 논리적 이름입니다. 예: account. |
data |
Object | Yes | 새 테이블 레코드의 열과 값을 정의하는 JSON 개체입니다. 예제 참조 |
successCallback |
기능 | 아니오 | 레코드가 생성될 때 호출하는 함수입니다. 반환 값 참조 |
errorCallback |
기능 | 아니오 | 작업이 실패할 때 호출하는 함수입니다. 다음 속성을 가진 개체가 전달됩니다. - errorCode:수. 오류 코드는 양의 10진수입니다. 예를 들어 문서화된 오류 코드는 다음과 같이 0x800403332147746611반환됩니다.- message:문자열. 문제를 설명하는 오류 메시지입니다. |
반환 값
성공하면 다음 속성을 사용하여 promise 개체를 successCallback 반환합니다.
| 이름 | 유형 | Description |
|---|---|---|
entityType |
String | 새 레코드의 테이블 논리적 이름입니다. |
id |
String | 새 레코드의 GUID입니다. |
예시
이러한 예제에서는 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,
"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로 설정할 수 없습니다. 기본 이미지에 대해 자세히 알아보기
주 레코드와 함께 관련 테이블 레코드 만들기
탐색 속성 값으로 정의하여 서로 관련된 테이블을 만들 수 있습니다. 이 패턴을 딥 삽입이라고 합니다. 이 예제에서는 기본 연락처 레코드 및 연결된 기회 레코드와 함께 샘플 계정 레코드를 만듭니다.
비고
단일 만들기 작업에서 관련 테이블 레코드를 만드는 작업은 오프라인 모드에서 지원되지 않습니다.
// 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
}
);