다음을 통해 공유


양식 스크립팅 빠른 참조

 

게시 날짜: 2017년 1월

적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

이 항목에서는 수행할 작업에 따라 자주 사용하는 양식 스크립팅 메서드의 빠른 참조를 제공합니다. 전체 참조는 클라이언트 쪽 프로그래밍 참조를 참조하십시오. 이 페이지의 모든 예제는 별도로 명시하지 않는 한 기본 거래처 엔터티 기본 양식을 사용합니다.

이 항목의 내용

특성

  • 특성 액세스

  • 엔터티 특성 데이터를 가져오거나 설정합니다.

  • 특성 메타데이터 가져오기

저장 이벤트 인수

알림 표시

컨트롤

  • 양식 컨트롤 액세스

  • 머리글 컨트롤 액세스

  • 비즈니스 프로세스 흐름 컨트롤 액세스

  • 양식 컨트롤 메서드

  • 옵션 집합 컨트롤 메서드

  • IFRAME 및 웹 리소스 컨트롤 메서드

  • 조회 컨트롤 메서드

  • SubGrid 컨트롤 메서드

  • 날짜 컨트롤 메서드

양식 탐색

탭 및 섹션

런타임에 이벤트 처리기 추가 또는 제거

상황별 정보 메서드

엔터티 데이터 가져오기, 새로 고침 또는 저장

특성

특성은 레코드에서 사용 가능한 데이터를 저장합니다.

특성 액세스

특성은 Xrm.Page.data.entity.attributes 컬렉션에서 사용할 수 있습니다. 특성에 액세스하려면 **Xrm.Page.data.entity.attributes.**9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_get 메서드 또는 바로 가기 버전 Xrm.Page.getAttribute를 사용할 수 있습니다.get 메서드는 네 가지 유형의 인수를 허용합니다.

  • 문자열: 특성 이름이 문자열과 일치하는 특성 개체를 반환합니다.

  • 번호:Xrm.Page.data.entity.attributes 컬렉션 인덱스가 번호와 일치하는 특성 개체를 반환합니다.

  • 없음: 모든 특성의 배열을 반환합니다.

  • Delegate function(attribute,index): 대리인 함수가 true를 반환할 수 있는 Xrm.Page.data.entity.attributes 컬렉션에서 특성의 배열을 반환합니다.

작업

예제

이름으로 특성 액세스

var nameAttribute = Xrm.Page.getAttribute("name");

거래처 이름 필드의 특성을 nameAttribute 변수에 할당합니다.

인덱스로 특성 액세스

var firstAttribute = Xrm.Page.getAttribute(0);

Xrm.Page.data.entity.attributes 컬렉션의 첫 번째 특성을 firstAttribute 변수에 할당합니다.

모든 특성 액세스

var allAttributes = Xrm.Page.getAttribute();

Xrm.Page.data.entity.attributes 컬렉션의 모든 특성의 배열을 allAttributes 변수에 할당합니다.

특정 조건을 만족하는 모든 특성 액세스

var optionsetAttributes = Xrm.Page.getAttribute(function (attribute, index) {
return attribute.getAttributeType() == "optionset";
});

특성 유형이 “optionset”인 경우 true를 반환하는 익명 함수에 설정된 조건을 만족하는 Xrm.Page.data.entity.attributes 컬렉션의 모든 특성의 배열을 optionsetAttributes 변수에 할당합니다.

Xrm.Page.data.entity.attributes 컬렉션에는 함수 내에서 특성에 액세스하는 데 사용할 수 있는 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_forEach 메서드도 있습니다.writeRequiredAttributesToConsole 함수는 데이터가 필요한 특성의 이름을 디버깅 콘솔에 기록합니다.

function writeRequiredAttributesToConsole() {
 var requiredAttributeNames = [];

 Xrm.Page.data.entity.attributes.forEach(
 function (attribute, index) {
  if (attribute.getRequiredLevel() == "required")
  { requiredAttributeNames.push(attribute.getName()); }
 });

 if (requiredAttributeNames.length > 0) {
  if (typeof console != "undefined") {
   console.log(requiredAttributeNames.join());
  }
 }
 else {
  if (typeof console != "undefined") {
   console.log("No required attributes detected");
  }
 }
}

이 항목의 내용

엔터티 특성 데이터를 가져오거나 설정합니다.

다음 표의 예제는 특성에 저장된 데이터를 검색하거나 변경할 수 있는 방법을 보여 줍니다.

작업

방법

예제

특성 값 가져오기

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getValue

var nameValue = Xrm.Page.getAttribute("name").getValue();

거래처 이름 필드의 값을 nameValue 변수에 할당합니다.

특성 값 설정

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setValue

Xrm.Page.getAttribute("name").setValue("new name");

거래처 이름 필드의 값을 "new name"으로 설정합니다.

옵션 집합 특성의 현재 선택한 옵션의 텍스트 값을 가져옵니다.

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getText

var addressType = Xrm.Page.getAttribute("address1_addresstypecode").getText();

주소 유형 필드에서 선택한 옵션의 텍스트를 addressType 변수에 할당합니다.

optionset 특성에서 현재 선택한 옵션 개체를 가져옵니다.

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getSelectedOption

var addressTypeOption = Xrm.Page.getAttribute("address1_addresstypecode").getSelectedOption();

주소 유형 필드에서 선택한 옵션을 addressTypeOption 변수에 할당합니다.

이 항목의 내용

특성 메타데이터 가져오기

다음 표의 예제는 특성의 종류를 이해하기 위해 특성 속성을 쿼리하거나 특성의 동작을 변경하는 방법을 보여 줍니다.

작업

방법

예제

특성 유형 가져오기

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getAttributeType

var attributeType = Xrm.Page.getAttribute(0).getAttributeType();

첫 번째 특성의 유형을 나타내는 문자열 값을 attributeType 변수에 할당합니다.

특성의 형식 지정 방법 가져오기

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getFormat

var attributeFormat = Xrm.Page.getAttribute(0).getFormat();

첫 번째 특성의 서식을 나타내는 문자열 값을 attributeFormat 변수에 할당합니다.

Boolean 또는 optionset 특성의 초기 값 가져오기

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getInitialValue

var attributeInitialValue = Xrm.Page.getAttribute("address1_addresstypecode").getInitialValue();

주소 유형 필드의 첫 숫자 값을 attributeInitialValue 변수에 할당합니다.

특성 값이 변경되었는지 여부를 확인합니다.

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getIsDirty

var isNameChanged = Xrm.Page.getAttribute("name").getIsDirty();

거래처 이름 필드 값이 변경되었는지 여부를 나타내는 Boolean 값을 isNameChanged 변수에 할당합니다.

조회 특성이 당사자 목록 조회를 나타내는지 여부를 결정합니다.

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getIsPartyList

var isPartyList = Xrm.Page.getAttribute("to").getIsPartyList();

전자 메일 엔터티 받는 사람 필드가 당사자 목록 조회를 나타내는지 여부를 나타내는 Boolean 값을 할당합니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

숫자가 포함된 특성에 대해 허용되는 최대값을 가져옵니다.

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getMax

var newValue = 100000000000001;
var newValueBelowMax = (newValue < Xrm.Page.getAttribute("creditlimit").getMax())

newValue 변수의 값이 신용 한도액 필드에 허용되는 최대값을 초과하는지 여부를 나타내는 Boolean 값을 newValueBelowMax 변수에 할당합니다.

문자열이 포함된 특성에 대해 허용되는 최대 길이를 가져옵니다.

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getMaxLength

var newAccountName = "A Store";
var nameTooLong = (newAccountName.length > Xrm.Page.getAttribute("name").getMaxLength())

newAccountName 변수의 값이 거래처 이름 필드에 허용되는 최대 길이를 초과하는지 여부를 나타내는 Boolean 값을 nameTooLong 변수에 할당합니다.

숫자가 포함된 특성에 대해 허용되는 최소값을 가져옵니다.

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getMin

var newValue = -1;
var newValueBelowMin = (newValue < Xrm.Page.getAttribute("creditlimit").getMin())

newValue 변수의 값이 신용 한도액 필드에 허용되는 최소값보다 작은지 여부를 나타내는 Boolean 값을 newValueBelowMin 변수에 할당합니다.

특성의 논리적 이름 가져오기

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getName

var attributeName = Xrm.Page.getAttribute(0).getName();

페이지에서 첫 번째 특성의 논리적 이름 값을 attributeName 변수에 할당합니다.

값을 나타내는 옵션 개체 가져오기

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getOption

var addressTypeOption = Xrm.Page.getAttribute("address1_addresstypecode").getOption(1);
alert(addressTypeOption.text); //displays 'Bill To'

값이 1인 주소 유형 필드 옵션의 텍스트를 표시하는 경고를 표시합니다.

숫자 특성에 대한 정밀도 수준을 나타내는 숫자 값 가져오기

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getPrecision

var creditLimitPrecision = Xrm.Page.getAttribute("creditlimit").getPrecision();

신용 한도액 필드의 정밀도 값을 creditLimitPrecision 변수에 할당합니다.

특성에 값이 필요한지 여부를 나타내는 문자열 값 가져오기

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getRequiredLevel

var creditLimitRequired = Xrm.Page.getAttribute("creditlimit").getRequiredLevel();

creditLimitRequired 변수 값은 none, required 또는 recommended일 수 있습니다.

레코드를 저장하기 위해 필드에 데이터가 필요한지 여부 변경

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setRequiredLevel

Xrm.Page.getAttribute("creditlimit").setRequiredLevel("required");

신용 한도액 필드를 필수 필드로 만듭니다.

레코드를 저장할 때 특성의 데이터를 제출할지 여부 결정

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getSubmitMode

var nameSubmitMode = Xrm.Page.getAttribute("name").getSubmitMode();

nameSubmitMode 변수 값은 거래처 이름 필드에 대해 submitMode를 나타내는 always, never 또는 dirty입니다.

레코드를 저장할 때 특성의 데이터를 저장할지 여부 제어

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setSubmitMode

Xrm.Page.getAttribute("name").setSubmitMode("always");

예제에서는 거래처 이름 필드 값이 변경되지 않아도 항상 저장하도록 합니다.

필드 수준 보안이 특성에 적용되면 사용자에게 특성에 대해
만들기, 읽기 또는 업데이트 작업을 수행할 수 있는 권한이 있는지
여부를 결정합니다. 자세한 내용은 다음을 참조하십시오.
Microsoft Dynamics 365의 필드 값에 대한 액세스를 제어하기 위해 필드 보안을 사용할 수 있는 방법

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getUserPrivilege

var canUpdateNameAttribute = Xrm.Page.getAttribute("name").getUserPrivilege().canUpdate;

거래처 이름 필드를 업데이트하는 사용자의 권한을 나타내는 Boolean 값을 canUpdateNameAttribute 변수에 할당합니다.

이 항목의 내용

저장 이벤트 인수

비즈니스 논리를 적용하는 경우 사용자가 필요한 정보를 포함할 수 있도록 레코드를 저장하지 않도록 할 필요가 많이 있습니다. 이렇게 하려면 실행 컨텍스트에서 전달하는 이벤트 처리기를 구성해야 합니다. 실행 컨텍스트에는 이벤트에 대한 인수를 검색하는 getEventArgs 메서드가 들어 있습니다. 인수에는 레코드를 저장할지 여부를 제어하기 위해 사용할 수 있는 메서드 및 save 이벤트에 대해 알려 주는 쿼리 속성이 포함됩니다.

작업

예제

레코드가 저장되지 않도록 방지합니다.

function My_PreventSaveFunction(eContext) {
 eContext.getEventArgs().preventDefault();
}

eContext 매개 변수를 사용하여 실행 텍스트를 캡처하고 이벤트 인수에 포함된 preventDefault 메서드를 사용합니다.

저장을 시작할 작업 결정

function My_GetSaveModeTextFunction(eContext) {
 var saveModeCode = eContext.getEventArgs().getSaveMode();
 var saveModeText = "Unknown";
 switch (saveModeCode) {
  case 1:
   saveModeText = "Save";
   break;
  case 2:
   saveModeText = "SaveAndClose";
   break;
  case 5:
   saveModeText = "Deactivate";
   break;
  case 6:
   saveModeText = "Reactivate";
   break;
  case 7:
   saveModeText = "Send";
   break;
  case 15:
   saveModeText = "Disqualify";
   break;
  case 16:
   saveModeText = "Qualify";
   break;
  case 47:
   saveModeText = "Assign";
   break;
  case 58:
   saveModeText = "SaveAsCompleted";
   break;
  case 59:
   saveModeText = "SaveAndNew";
   break;
  case 70:
   saveModeText = "AutoSave";
   break;
 }
 return saveModeText;
}

eContext 매개 변수를 사용하여 실행 텍스트를 캡처하고 이벤트 인수에 포함된 getSaveMode 메서드를 사용하여 정수 코드 값을 텍스트로 변환합니다.

이 항목의 내용

알림 표시

알림은 사용자에게 메시지를 표시하는 방법을 제공합니다.

작업

방법

예제

데이터가 잘못되었음을 나타내도록 컨트롤 옆에 메시지를 표시합니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setnotification

Xrm.Page.getAttribute("name").controls.forEach(
function (control, i) {
control.setNotification("'Test' is not a valid name.");
})

거래처 이름 특성의 양식에 있는 모든 컨트롤에 유효성 검사 오류 메시지를 설정합니다.

이 메시지가 표시되는 동안에는 레코드를 저장할 수 없습니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

컨트롤에 이미 표시된 메시지를 제거합니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_clearnotification

Xrm.Page.getAttribute("name").controls.forEach(
function (control, i) {
control.clearNotification();
})

거래처 이름 특성의 양식에 있는 모든 컨트롤에 유효성 검사 오류 메시지를 모두 지웁니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

양식 수준 알림을 표시합니다.

0375b206-d2bf-4034-a41d-fb476ecb4438#BKMK_setFormNotification

Xrm.Page.ui.setFormNotification(
"Hello",
"INFO",
"helloMsg"
);

시스템 정보 아이콘으로 양식 맨 위에 “Hello” 메시지를 표시합니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

양식 수준 알림 제거

0375b206-d2bf-4034-a41d-fb476ecb4438#BKMK_clearFormNotification

Xrm.Page.ui.clearFormNotification("helloMsg");

“helloMsg”를 uniqueid 매개 변수로 사용하여 앞에서 설정한 메시지를 지웁니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

콜백 함수를 사용하여 비차단 경고 대화 상자를 표시합니다.

72a66f93-92df-42b9-a8fd-b6125c7fe83b#BKMK_alertDialog

var alertDisplayed = false;
Xrm.Utility.alertDialog(
"Showing Alert",
function () { alertDisplayed = true; }
)

경고를 표시하고 닫히면 alertDisplayed 변수의 값을 설정합니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

사용자가 클릭한 단추에 따라 다른 콜백을 사용하여 비차단 확인 대화 상자를 표시합니다.

72a66f93-92df-42b9-a8fd-b6125c7fe83b#BKMK_confirmDialog

var agree = false;
Xrm.Utility.confirmDialog(
"Do you agree?",
function () { agree = true;},
function () { agree = false; }
);

확인 메시지를 표시하고 응답에 따라 agree 변수의 값을 설정합니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

이 항목의 내용

컨트롤

양식에 있는 사용자 인터페이스 요소를 나타내는 컨트롤입니다. 양식의 각 특성에는 하나 이상의 컨트롤이 연결되어 있어야 합니다. 모든 컨트롤이 특성에 연결되는 것은 아닙니다.IFRAME, 웹 리소스 및 하위 표는 특성이 없는 컨트롤입니다.

양식 컨트롤 액세스

컨트롤은 Xrm.Page.ui.controls 컬렉션에서 사용할 수 있습니다. 컨트롤에 액세스하려면 **Xrm.Page.ui.controls.**9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_get 메서드 또는 바로 가기 버전 Xrm.Page.getControl을 사용할 수 있습니다.

get 메서드는 네 가지 유형의 인수를 허용합니다.

  • 문자열: 논리적 이름이 문자열과 일치하는 컨트롤을 반환합니다.

  • 번호:Xrm.Page.ui.controls 컬렉션 인덱스가 번호와 일치하는 컨트롤을 반환합니다.

  • 없음: 모든 컨트롤의 배열을 반환합니다.

  • Delegate function(control,index): 대리인 함수가 true를 반환할 수 있는 Xrm.Page.ui.controls 컬렉션에서 컨트롤의 배열을 반환합니다.

작업

예제

특정 특성에 대한 모든 컨트롤 액세스

var nameControls = Xrm.Page.getAttribute("name").controls.get();

name 특성의 모든 컨트롤에 대한 배열을 nameControls 변수에 할당합니다.

이름으로 컨트롤 액세스

var nameControl = Xrm.Page.getControl("name");

거래처 이름 필드를 나타내는 첫 번째 컨트롤을 nameControl 변수에 할당합니다.

특성에 대해 양식에 추가된 첫 번째 컨트롤은 특성과 이름이 같습니다. 각 추가 컨트롤 이름에는 이름 뒤에 추가되는 인덱스 번호가 있습니다. 예를 들어 이름 특성에 대해 컨트롤이 세 개 있을 경우 이름은 각각 name, name1name2입니다.

인덱스로 컨트롤 액세스

var firstControl = Xrm.Page.getControl(0);

Xrm.Page.ui.controls 컬렉션의 첫 번째 컨트롤을 firstControl 변수에 할당합니다.

모든 컨트롤 액세스

var allControls = Xrm.Page.getControl();

Xrm.Page.ui.controls 컬렉션의 모든 컨트롤의 배열을 allControls 변수에 할당합니다.

특정 조건을 만족하는 모든 컨트롤 액세스

var optionsetControls = Xrm.Page.getControl(function (control, index) {
return control.getControlType() == "optionset";
});

컨트롤 유형이 “옵션 집합”인 경우 true를 반환하는 익명 함수에 설정된 조건을 만족하는 Xrm.Page.ui.controls 컬렉션의 모든 특성의 배열을 optionsetControls 변수에 할당합니다.

각 섹션에도 섹션에 대한 컨트롤이 있는 컨트롤 컬렉션이 있습니다. 다음 코드 샘플은 generalTabAccountInfoSectionControls 변수를 일반 탭의 주소 섹션에 있는 컨트롤의 배열에 할당합니다.
var generalTabAccountInfoSectionControls = Xrm.Page.ui.tabs.get("general").sections.get("address").controls.get();

참고

각 특성은 양식에 한 번만 존재하지만 필드는 해당 특성에 대한 양식에 여러 번 추가할 수 있습니다. 추가된 각 필드는 다른 컨트롤을 만듭니다. 양식은 스크립트를 작성한 후 추가로 사용자 지정할 수 있습니다. 특성 컨트롤에 대해 작성한 스크립트는 양식에 여러 번 포함된 것으로 가정합니다. 특성의 컨트롤에 수행하려는 작업은 일반적으로 해당 특성의 모든 컨트롤에 적용되어야 합니다. 예를 들어 컨트롤을 비활성화하려고 하지만 그 중 하나만 비활성화하려고 할 경우 사용자는 다른 값을 사용하여 데이터를 입력할 수 있습니다. 따라서 스크립트를 작성할 때 컨트롤이 하나만 있어도 컬렉션 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_forEach 메서드를 사용하여 동일한 논리를 특성의 모든 컨트롤에 적용하는 다음 패턴을 사용하는 것이 좋습니다.

Xrm.Page.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); });

이 항목의 내용

머리글 컨트롤 액세스

머리글의 컨트롤은 “header_”가 컨트롤 이름 앞에 추가되는 명령 규칙을 따릅니다. 예를 들어, name 특성이 머리글에 있는 경우
var nameControlInHeader = Xrm.Page.getControl("header_name");를 사용하여 액세스할 수 있습니다.

비즈니스 프로세스 흐름 컨트롤 액세스

비즈니스 흐름 컨트롤은 “header_process_”가 컨트롤 이름 앞에 추가되는 명령 규칙을 따릅니다. 예를 들어, name 특성이 머리글에 있는 경우
var nameControlInBPF = Xrm.Page.getControl("header_process_name");를 사용하여 액세스할 수 있습니다.

참고

양식을 로드할 때는 활성 스테이지에 있는 컨트롤만 Xrm.Page.ui.controls 컬렉션에 있습니다. 현재 엔터티에 대한 스테이지가 선택되면 다른 비즈니스 프로세스 흐름 컨트롤이 추가됩니다.

양식 컨트롤 메서드

컨트롤에 액세스한 후 다음 메서드를 호출할 수 있습니다.

작업

방법

예제

컨트롤이 표시되는지 여부 확인

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getVisible

var isNameVisible = Xrm.Page.getControl("name").getVisible();

Boolean 값을 거래처 이름 필드가 표시되는지 여부를 나타내는 isNameVisible 변수에 할당합니다.

컨트롤 표시 또는 숨기기

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setVisible

Xrm.Page.getControl("name").setVisible(false);

거래처 이름 필드를 숨깁니다.

컨트롤의 특성에 대한 참조 가져오기

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getAttribute

var nameAttribute = Xrm.Page.getControl("name").getAttribute();

거래처 이름 필드의 컨트롤에 대한 특성을 nameAttribute 변수에 할당합니다.

참고

모든 컨트롤에 특성이 있는 것은 아닙니다.

컨트롤 유형 확인

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getControlType

var optionSetControls = Xrm.Page.getControl(function (control, index) { return control.getControlType() == "optionset"; });

optionset 컨트롤의 배열을 optionSetControls 변수에 할당합니다.

컨트롤이 활성화되는지 여부 확인

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getDisabled

var disabledControls = Xrm.Page.getControl(function(control, index) { return control.getDisabled(); });

비활성화된 컨트롤의 배열을 disabledControls 변수에 할당합니다.

참고

웹 리소스 및 하위 표 컨트롤은 이 메서드를 지원하지 않습니다.

컨트롤 활성화 또는 비활성화

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setDisabled

Xrm.Page.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); });

name 특성에 대한 각 컨트롤을 비활성화합니다.

모든 특성에는 여러 개의 컨트롤이 있을 수 있습니다.

컨트롤의 레이블 가져오기

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getLabel

var nameControlLabel = Xrm.Page.getControl("name").getLabel();

거래처 이름 필드의 컨트롤 값을 nameControlLabel 변수에 할당합니다.

컨트롤의 레이블 변경

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setLabel

Xrm.Page.getControl("name").setLabel("Company Name");

거래처 이름 필드의 레이블을 회사 이름으로 변경합니다.

컨트롤의 이름 가져오기

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getName

var firstControlName = Xrm.Page.getControl(0).getName();

Xrm.Page.ui.controls 컬렉션의 첫 번째 컨트롤의 이름을 firstControlName 변수에 할당합니다.

컨트롤의 상위 항목 가져오기

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getParent

var parentSection = Xrm.Page.getControl("name").getParent();

거래처 이름 필드의 컨트롤의 상위 섹션을 parentSection 변수에 할당합니다.

컨트롤에 포커스 설정

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setFocus

Xrm.Page.getControl("name").setFocus();

거래처 이름 필드에서 포커스를 설정합니다.

이 항목의 내용

옵션 집합 컨트롤 메서드

옵션 집합에는 특별한 메서드가 몇 가지 있습니다. 특성은 optionset에 대한 유효한 옵션을 정의합니다.optionset 컨트롤을 사용할 때 사용 가능한 옵션을 조작할 수 있지만 새 옵션을 만들 수는 없습니다.

작업

방법

예제

옵션 집합 컨트롤에 옵션 추가

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addOption

var addressTypeCodeControl = Xrm.Page.getControl("address1_addresstypecode");
var billToAddressOption = addressTypeCodeControl.getAttribute().getOption(1);
addressTypeCodeControl.clearOptions();
addressTypeCodeControl.addOption(billToAddressOption);

주소 유형 필드의 컨트롤에 대한 참조를 사용하면 컨트롤에 대한 특성에 액세스하고 6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_getOption 메서드를 사용하여 청구지 옵션을 나타내는 옵션으로 billToAddressOption 변수를 설정합니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_clearOptions을 사용하여 기존 옵션을 제거하고 addOption을 사용하여 billToAddressOption을 이 컨트롤에 사용할 수 있는 유일한 옵션으로 설정합니다.

옵션 집합 컨트롤에서 모든 옵션 제거

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_clearOptions

Xrm.Page.getControl("address1_addresstypecode").clearOptions();

주소 유형 필드의 컨트롤에서 모든 옵션을 제거합니다.

옵션 집합 컨트롤에서 하나의 옵션을 제거합니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_removeOption

Xrm.Page.getControl("address1_addresstypecode").removeOption(1);

주소 유형 필드에 대한 컨트롤에서 청구지 옵션을 제거합니다.

이 항목의 내용

IFRAME 및 웹 리소스 컨트롤 메서드

IFRAME 컨트롤을 사용하면 URL을 제공하여 양식 내에 페이지를 포함할 수 있습니다. 양식에 추가된 HTML 웹 리소스는 IFRAME 요소를 사용하여 표시됩니다.Silverlight 및 이미지 웹 리소스는 페이지 내에 직접 포함됩니다.

작업

방법

예제

Silverlight 웹 리소스에 전달되는 데이터 쿼리 문자열 매개 변수의 값을 가져옵니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getData

var dataValue = Xrm.Page.getControl("WebResource_SilverLightControl").getData();

데이터 쿼리 문자열 매개 변수를 통해 전달된 값을 dataValue 변수에 할당합니다.

현재 IFRAME에 표시된 콘텐츠에 대한 URL을 가져옵니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getSrc

var iframeSource = Xrm.Page.getControl("IFRAME_targetPage").getSrc();

현재 IFRAME.src 특성 값을 나타내는 문자열을 iframeSource 변수에 할당합니다.

IFRAME에 표시되는 콘텐츠에 대한 URL을 설정합니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setSrc

Xrm.Page.getControl("IFRAME_targetPage").setSrc("http://www.bing.com");

컨트롤에 대한 IFRAME.src가 되도록 URL를 설정합니다.

IFRAME에 대해 기본 구성된 URL을 나타내는 URL을 가져옵니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getUrl

var initialUrl = Xrm.Page.getControl("IFRAME_bing").getInitialUrl();

IFRAME에 표시되도록 구성된 초기 URL을 initialUrl 변수에 할당합니다.

웹 리소스 또는 IFRAME을 나타내는 양식의 개체를 가져옵니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getObject

var obj = Xrm.Page.getControl("IFRAME_bing").getObject();

개체 참조를 obj 변수에 할당합니다.IFRAME의 경우 IFRAME DOM(문서 개체 모델) 요소입니다.Silverlight 웹 리소스의 경우 포함된 Silverlight 플러그 인을 나타내는 개체 요소입니다.

이 항목의 내용

조회 컨트롤 메서드

조회 컨트롤에 대한 일반적인 요구 사항은 사용자가 필드를 업데이트할 때 기본 보기가 표시되도록 지정하는 것입니다.

작업

방법

예제

조회할 사용자 지정 보기를 추가합니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addCustomView

var viewId = "{C7034F4F-6F92-4DD7-BD9D-9B9C1E996380}";
var viewDisplayName = "SDK Sample View";
var fetchXml = "<fetch version='1.0' " +
"output-format='xml-platform' " +
"mapping='logical'>" +
"<entity name='account'>" +
"<attribute name='name' />" +
"<attribute name='address1_city' />" +
"<order attribute='name' " +
"descending='false' />" +
"<filter type='and'>" +
"<condition attribute='ownerid' " +
"operator='eq-userid' />" +
"<condition attribute='statecode' " +
"operator='eq' " +
"value='0' />" +
"</filter>" +
"<attribute name='primarycontactid' />" +
"<attribute name='telephone1' />" +
"<attribute name='accountid' />" +
"<link-entity "+
"alias='accountprimarycontactidcontactcontactid' " +
"name='contact' " +
"from='contactid' " +
"to='primarycontactid' " +
"link-type='outer' " +
"visible='false'>" +
"<attribute name='emailaddress1' />" +
"</link-entity>" +
"</entity>" +
"</fetch>";
var layoutXml = "<grid name='resultset' " +
"object='1' " +
"jump='name' " +
"select='1' " +
"icon='1' " +
"preview='1'>" +
"<row name='result' " +
"id='accountid'>" +
"<cell name='name' " +
"width='300' />" +
"<cell name='telephone1' " +
"width='100' />" +
"<cell name='address1_city' " +
"width='100' />" +
"<cell name='primarycontactid' " +
"width='150' />" +
"<cell name='accountprimarycontactidcontactcontactid.emailaddress1' " +
"width='150' " +
"disableSorting='1' />" +
"</row>" +
"</grid>";
Xrm.Page.getControl("parentaccountid").addCustomView(viewId, "account", viewDisplayName, fetchXml, layoutXml, true);

사용자 지정 보기가 상위 거래처 조회 필드의 컨트롤에 대한 기본 보기로 추가되도록 viewId, viewDisplayName, fetchXmllayoutXml 변수를 설정하여 인수로 전달합니다.

조회할 기본 보기 가져오기

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getDefaultView

var defaultViewId = Xrm.Page.getControl("parentaccountid").getDefaultView();

기본 보기의 id 값을 defaultViewId 변수에 할당합니다.

조회할 기본 보기 설정

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setDefaultView

var viewId = "{C7034F4F-6F92-4DD7-BD9D-9B9C1E996380}";
Xrm.Page.getControl("parentaccountid").setDefaultView(viewId);

상위 거래처 필드의 컨트롤에 대한 기본 보기를 viewId 변수의 id 값으로 설정합니다.

조회 컨트롤에 대해 반환되는 레코드 필터링

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addCustomFilter

다음 코드 샘플은 영업 기회 양식 거래처(parentaccountid) 조회용입니다.Sdk.setParentAccountIdFilter 함수가 양식 Onload 이벤트 처리기에 설정되면 Sdk.filterCustomAccounts 함수는 해당 조회를 위해 PreSearch 이벤트에 추가됩니다. 결과적으로 선호 고객 (1)의 범주(accountcategorycode) 값을 갖는 거래처만 반환됩니다.

var Sdk = window.Sdk || {};

Sdk.filterCustomerAccounts = function () {
    //Only show accounts with the type 'Preferred Customer'
    var customerAccountFilter = "<filter type='and'><condition attribute='accountcategorycode' operator='eq' value='1'/></filter>";
    Xrm.Page.getControl("parentaccountid").addCustomFilter(customerAccountFilter, "account");
}
//set 'Sdk.setParentAccountIdFilter' in the Opportunity form Onload event handler
Sdk.setParentAccountIdFilter = function () {
    Xrm.Page.getControl("parentaccountid").addPreSearch(Sdk.filterCustomerAccounts);
}

이 항목의 내용

SubGrid 컨트롤 메서드

SubGrid 컨트롤은 양식 내 표입니다. 고유한 메서드가 하나 있습니다.

작업

방법

예제

하위 표에 표시되는 데이터 새로 고침

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_refresh

Xrm.Page.getControl("accountcontactsgrid").refresh();

연락처subgrid를 새로 고칩니다.

이 항목의 내용

날짜 컨트롤 메서드

날짜 컨트롤에는 고유한 하나의 메서드가 있습니다.

작업

방법

예제

날짜 컨트롤에 날짜의 시간 부분을 표시할지 여부를 지정합니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_setShowTime

Xrm.Page.getControl("createdon").setShowTime(false);

시간이 표시되지 않도록 만든 날짜 필드를 설정합니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

이 항목의 내용

양식 탐색

양식 왼쪽에 있는 탐색 항목을 사용하고 조작할 수 있습니다. 이러한 탐색 항목은 일반적으로 양식에 표시되는 레코드와 관련된 레코드를 표시합니다.

Xrm.Page.ui.navigation.items 컬렉션을 사용하여 탐색 항목에 액세스할 수 있습니다. 양식의 모든 컬렉션처럼 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_get 및 9b85e46f-ca6e-4313-af04-4290e3c6ab8b#BKMK_forEach 메서드가 있습니다.

작업

방법

예제

탐색 항목의 이름 가져오기

bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_getId

var navItemIds = [];
Xrm.Page.ui.navigation.items.forEach(
function (item, index)
{ navItemIds.push(item.getId()) }
);

Xrm.Page.ui.navigation.items 컬렉션에 있는 각 탐색 항목의 id 값이 포함된 navItemIds 배열을 만듭니다.

탐색 항목의 레이블을 가져옵니다.

bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_getLabel

var navAddressesLabel = Xrm.Page.ui.navigation.items.get("navAddresses").getLabel();

추가 주소 탐색 항목의 레이블을 navAddressesLabel 변수에 할당합니다.

탐색 항목의 레이블 설정

bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_setLabel

Xrm.Page.ui.navigation.items.get("navAddresses").setLabel("Other Addresses");

추가 주소 탐색 항목 레이블을 기타 주소로 변경합니다.

탐색 항목 표시 또는 숨기기

bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_setVisible

Xrm.Page.ui.navigation.items.get("navAddresses").setVisible(false);

More Addresses 탐색 항목을 숨깁니다.

탐색 항목이 표시되는지 여부 확인

bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_getVisible

var moreAddressesVisible = Xrm.Page.ui.navigation.items.get("navAddresses").getVisible()

Boolean 값을 moreAddressesVisible 변수에 할당하여 추가 주소 탐색 항목이 표시되는지 여부를 나타냅니다.

탐색 항목에 포커스를 설정합니다.

bcf7210d-df71-43a5-8052-a76de0d4763d#BKMK_setFocus

Xrm.Page.ui.navigation.items.get("navAddresses").setFocus();

추가 주소 탐색 항목에 포커스를 설정합니다.

이 항목의 내용

탭 및 섹션

각 양식에는 탭 모음이 있습니다. 각 탭에는 섹션 모음이 있습니다. 각 섹션에는 컨트롤 모음이 있습니다. 프로그래밍 방식으로 이러한 요소에 액세스하고 해당 메서드를 사용할 수 있습니다.

작업

방법

예제

탭을 확장할지 축소할지 확인

205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_getDisplayState

var isGeneralTabExpanded = (Xrm.Page.ui.tabs.get("general").getDisplayState() == "expanded")

Boolean 값을 일반 탭을 확장할지 여부를 나타내는 isGeneralTabExpanded 변수에 할당합니다.

탭 확장 또는 축소

205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetDisplayState

Xrm.Page.ui.tabs.get("general").setDisplayState("collapsed");

일반 탭을 축소합니다.

탭이 표시되는지 여부 확인

205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabgetVisible

var isGeneralTabVisible = Xrm.Page.ui.tabs.get("general").getVisible();

Boolean 값을 일반 탭을 표시할지 여부를 나타내는 isGeneralTabVisible 변수에 할당합니다.

탭 표시 또는 숨기기

205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetVisible

Xrm.Page.ui.tabs.get("general").setVisible(false);

일반 탭을 숨깁니다.

탭의 레이블 가져오기

205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabgetLabel

var generalTabLabel = Xrm.Page.ui.tabs.get("general").getLabel();

일반 탭 레이블을 generalTabLabel 변수에 할당합니다.

탭의 레이블 변경

205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetLabel

Xrm.Page.ui.tabs.get("general").setLabel("Major");

일반 탭 레이블을 로 변경합니다.

탭에 포커스 설정

205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabsetFocus

Xrm.Page.ui.tabs.get("general").setFocus();

일반 탭에서 포커스를 설정합니다.

탭의 이름 가져오기

205390b9-3eda-4a2b-87cb-2a8f83f953da#BKMK_tabgetName

var firstTabName = Xrm.Page.ui.tabs.get(0).getName();

첫 번째 탭의 이름을 firstTabName 변수에 할당합니다.

섹션의 상위 탭 가져오기

a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionGetParent

Xrm.Page.getControl("industrycode").getParent().getParent().setFocus();

산업 필드가 포함된 탭에 포커스를 설정합니다.

섹션이 표시되는지 여부 확인

a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionGetVisible

var industrySectionVisible = Xrm.Page.getControl("industrycode").getParent().getVisible();

산업 필드가 포함된 섹션이 표시되는지 여부를 나타내는 industrySectionVisible 변수에 Boolean 값을 할당합니다.

섹션 표시 또는 숨기기

a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionSetVisible

Xrm.Page.getControl("industrycode").getParent().setVisible(false);

산업 필드가 들어 있는 섹션을 숨깁니다.

섹션의 레이블 가져오기

a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_getLabel

var industryFieldSectionLabel = Xrm.Page.getControl("industrycode").getParent().getLabel();

산업 필드가 포함된 섹션의 레이블을 industryFieldSectionLabel 변수에 할당합니다.

섹션의 레이블 변경

a90df20b-42a6-444e-9912-e0ffab11daec#BKMK_sectionSetLabel

Xrm.Page.getControl("industrycode").getParent().setLabel("Detailed Information");

산업 필드가 포함된 섹션의 레이블을 자세한 정보로 변경합니다.

이 항목의 내용

런타임에 이벤트 처리기 추가 또는 제거

이벤트 처리기는 일반적으로 응용 프로그램에서 양식 편집기를 사용하여 구성되지만 이러한 APIs를 사용하여 런타임에 양식 OnSave 이벤트와 특성 OnChange 이벤트에 추가할 수도 있습니다. 이 섹션의 예제는
function myFunction() {
//perform action here
} 함수 정의를 참조하십시오.

익명 함수를 추가할 수는 있지만 함수에는 제거하기 위해 참조할 이름이 있어야 합니다.

작업

방법

예제

OnSave 이벤트에 함수 추가

fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_addOnSave

Xrm.Page.data.entity.addOnSave(myFunction);

myFunction 함수를 OnSave 이벤트에 추가합니다.

OnSave 이벤트에서 함수 제거

fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_removeOnSave

Xrm.Page.data.entity.removeOnSave(myFunction);

OnSave 이벤트에 대해 myFunction 함수를 제거합니다.

특성의 OnChange 이벤트에 함수를 추가합니다.

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_addOnChange

Xrm.Page.getAttribute("name").addOnChange(myFunction);

myFunction 함수를 거래처 이름 필드의 OnChange 이벤트에 추가합니다.

특성의 OnChange 이벤트에서 함수 제거

6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_removeOnChange

Xrm.Page.getAttribute("name").removeOnChange(myFunction);

거래처 이름 필드의 OnChange 이벤트에 대한 myFunction 함수를 제거합니다.

조회 컨트롤의 PreSearch 이벤트에 함수를 추가합니다.

51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addPreSearch

다음 코드 샘플은 영업 기회 양식 거래처(parentaccountid) 조회용입니다.Sdk.setParentAccountIdFilter 함수가 양식 Onload 이벤트 처리기에 설정되면 Sdk.filterCustomAccounts 함수는 해당 조회를 위해 PreSearch 이벤트에 추가됩니다. 결과적으로 선호 고객 (1)의 범주(accountcategorycode) 값을 갖는 거래처만 반환됩니다.

var Sdk = window.Sdk || {};

Sdk.filterCustomerAccounts = function () {
    //Only show accounts with the type 'Preferred Customer'
    var customerAccountFilter = "<filter type='and'><condition attribute='accountcategorycode' operator='eq' value='1'/></filter>";
    Xrm.Page.getControl("parentaccountid").addCustomFilter(customerAccountFilter, "account");
}
//set 'Sdk.setParentAccountIdFilter' in the Opportunity form Onload event handler
Sdk.setParentAccountIdFilter = function () {
    Xrm.Page.getControl("parentaccountid").addPreSearch(Sdk.filterCustomerAccounts);
}

비즈니스 프로세스 흐름 컨트롤에서 발생하는 이벤트의 경우 d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange 및 d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected를 사용합니다. 이러한 이벤트에는 이벤트 처리기를 프로그래밍 방식으로 추가하거나 제거하는 메서드만 있습니다.추가 정보:이벤트 처리기를 관리하는 방법.

이 항목의 내용

상황별 정보 메서드

이러한 메서드를 사용하여 사용자, 조직 및 클라이언트에 대한 정보를 가져옵니다. 다음 표는 가장 유용한 컨텍스트 메서드 중 일부를 제공합니다. 모든 상황별 메서드는 클라이언트 쪽 컨텍스트(클라이언트 쪽 참조)를 참조하십시오.

작업

방법

예제

조직에 연결할 URL을 가져옵니다.

getClientUrl

var serverUrl = Xrm.Page.context.getClientUrl();

URL을 나타내는 문자열을 serverUrl 변수에 할당합니다.

현재 사용자의 고유 식별자를 가져옵니다.

getUserId

var userId = Xrm.Page.context.getUserId();

사용자의 ID를 나타내는 문자열을 userId 변수에 할당합니다.

현재 사용자의 이름을 가져옵니다.

getUserName

var userName = Xrm.Page.context.getUserName();

사용자의 이름을 나타내는 문자열을 userName 변수에 할당합니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

사용자의 기본 사용자 인터페이스 언어를 나타내는 언어 코드를 가져옵니다.

getUserLcid

var userLCID = Xrm.Page.context.getUserLcid();

사용자의 기본 언어를 나타내는 숫자를 userLCID에 할당합니다.

현재 사용자 및 사용자가 연결된 팀에 할당된 각 보안 역할에 대한 GUID를 나타내는 문자열 배열을 가져옵니다.

getUserRoles

var userRoles = Xrm.Page.context.getUserRoles();

사용자의 보안 역할을 나타내는 문자열 배열을 userRoles 변수에 할당합니다.

Outlook용 Microsoft Dynamics 365 클라이언트에서 스크립트를 실행 중인지 여부를 결정합니다.

클라이언트.getClient

var isOutlookClient = (Xrm.Page.context.client.getClient() == "Outlook");

코드가 Outlook용 Dynamics 365 클라이언트에서 실행되고 있는지 여부를 나타내는 Boolean 값을 isOutlookClient 변수에 할당합니다.

사용자가 Microsoft Office Outlook용 Microsoft Dynamics 365(오프라인 액세스 가능) 클라이언트에서 오프라인으로 작업하고 있는지 여부를 결정합니다.

클라이언트.getClientState

var IsOffline = (Xrm.Page.context.client.getClientState() == "Offline");

사용자가 현재 오프라인으로 작업하고 있는 여부를 나타내는 Boolean 값을 IsOffline 변수에 할당합니다.

이 항목의 내용

엔터티 데이터 가져오기, 새로 고침 또는 저장

다음 표에는 현재 레코드에 대한 정보를 가져오거나 변경 내용을 저장하는 데 사용할 수 있는 방법이 들어 있습니다. 자세한 내용은 Xrm.Page.data.entity(클라이언트 쪽 참조)Xrm.Page.data(클라이언트 쪽 참조)을 참조하십시오.

작업

방법

예제

현재 엔터티의 논리적 이름 가져오기

fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getEntityName

var entityName = Xrm.Page.data.entity.getEntityName();

논리 엔터티 이름을 entityName 변수에 할당합니다.

현재 엔터티의 기본 특성 값을 가져옵니다.
기본 특성은 레코드를 식별하는 데 사용되는 값입니다.contact.fullname을 예로 들 수 있습니다.

fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getPrimaryAttributeValue

var primaryAttributeValue = Xrm.Page.data.entity.getPrimaryAttributeValue();

기본 보기의 값을 primaryAttributeValue 변수에 할당합니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

현재 레코드의 Id 가져오기

fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getId

var recordId = Xrm.Page.data.entity.getId();

레코드의 idrecordId 변수에 할당합니다.

페이지를 다시 로드하지 않고 비동기적으로 양식 데이터를 새로 고칩니다.

ab100e06-a3ba-47f8-a8f8-7b5fab2ab66d#BKMK_refresh

Xrm.Page.data.refresh();

양식의 데이터를 새로 고칩니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

현재 레코드 저장

Xrm.Page.data.entity.fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_save

Xrm.Page.data.entity.save();

레코드를 저장합니다. 선택적 인수가 있습니다.saveandclose 또는 saveandnew를 사용하여 동일한 작업을 수행합니다.

저장 작업이 완료된 후 실행되는 콜백 함수를 설정하는 옵션으로
현재 레코드를 비동기적으로 저장합니다.

Xrm.Page.data.ab100e06-a3ba-47f8-a8f8-7b5fab2ab66d#BKMK_dataSave

Xrm.Page.data.save().then(
function(){
Xrm.Utility.alertDialog("Record saved");
},
function(error){
Xrm.Utility.alertDialog(error.message);
});

레코드를 저장하고 저장 상태를 보여 주는 메시지를 표시합니다.

이 메서드는 41462684-3e5d-4858-8be4-1a7c4fcdeff6#BKMK_UpdatedEntties에만 사용할 수 있습니다.

현재 레코드의 데이터가 변경되는지 여부를 결정합니다.

fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getIsDirty

var isDirty = Xrm.Page.data.entity.getIsDirty();

레코드의 데이터가 변경되었는지 여부를 나타내는 Boolean 값을 isDirty 변수에 할당합니다.

레코드를 저장할 때 서버에 보내는 데이터를 나타내는 문자열을 가져옵니다.

fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getDataXml

var dataXml = Xrm.Page.data.entity.getDataXml();

저장되는 데이터를 나타내는 문자열을 dataXml 변수에 할당합니다.

이 항목의 내용

참고 항목

Xrm.Page 개체 모델 사용
Microsoft Dynamics 365 양식용 코드 작성
클라이언트 쪽 프로그래밍 참조

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 저작권 정보