다음을 통해 공유


openForm(클라이언트 API 참조)

엔터티 양식 또는 빠른 만들기 양식을 엽니다.

비고

기본 폼을 대화 상자로 열려면 navigateTo 메서드를 대신 사용합니다. 추가 정보: 클라이언트 API를 사용하여 대화 상자에서 기본 양식 열기

Syntax

Xrm.Navigation.openForm(entityFormOptions, formParameters).then(successCallback, errorCallback);

매개 변수

이름 유형 필수 Description
entityFormOptions Object Yes 폼을 열기 위한 양식 옵션입니다. entityFormOptions 개체 참조
formParameters Object 아니오 폼에 추가 매개 변수를 전달하는 사전 개체입니다. 매개 변수가 잘못되면 오류가 발생합니다.

폼에 매개 변수를 전달하는 방법에 대한 자세한 내용은 폼에 전달된 매개 변수를 사용하여 열 값 설정사용자 지정 쿼리 문자열 매개 변수를 허용하도록 폼 구성을 참조하세요.
successCallback 기능 아니오 레코드가 빠른 만들기 형식으로 저장되면 실행할 함수입니다. 이 함수는 개체를 매개 변수로 전달합니다. 개체에는 savedEntityReference 표시되거나 생성된 레코드를 식별하는 다음 속성이 있는 배열이 있습니다.
- entityType: 테이블의 논리적 이름입니다.
- id: 레코드에 대한 GUID 값의 문자열 표현입니다.
- name: 표시되거나 생성된 레코드의 기본 열 값입니다.

참고:
successCallback- 기존 레코드 또는 새 레코드에 대한 폼을 열 때 함수가 실행되지 않습니다.
- 함수는 successCallback openForm 메서드를 사용하여 연 빠른 만들기 형식으로 레코드를 저장할 때만 실행됩니다.
errorCallback 기능 아니오 작업이 실패할 때 실행할 함수입니다.

entityFormOptions 개체

개체에는 다음 값이 포함됩니다.

이름 유형 필수 Description
entityName String Yes 폼을 표시할 테이블의 논리적 이름입니다.
entityId String 아니오 폼을 표시할 테이블 레코드의 ID입니다.
formId String 아니오 표시할 양식 인스턴스의 ID입니다.
cmdbar Bool 아니오 명령 모음을 표시할지 여부를 나타냅니다. 이 매개변수를 지정하지 않으면 기본적으로 명령 모음이 표시됩니다. 매개 변수를 true로 전달 openInNewWindow 해야 합니다.
createFromEntity Lookup 아니오 매핑된 열 값을 기반으로 기본값을 제공하는 레코드를 지정합니다. 조회 개체에는 다음과 같은 문자열 속성 entityType이 있습니다. , idname (선택 사항).
openInNewWindow Bool 아니오 새 창에 폼을 표시할지 또는 새 탭에 표시할지를 나타냅니다. 높이 또는 너비 값을 지정 true 하고 지정하지 않으면 폼이 새 탭에 표시됩니다. 새 창이나 새 탭에서 폼을 열면 같은 탭에서 폼을 여는 것에 비해 폼 렌더링 속도가 느려집니다. 대신 기본 폼 대화 상자에서 폼을 여는 것이 좋습니다. 이 속성은 현재 새 창이나 탭에서 열 수 없으므로 빠른 만들기 양식에 대해 지원되지 않습니다.
height Number 아니오 표시할 양식 창의 높이(픽셀)입니다. 매개 변수를 true로 전달 openInNewWindow 해야 합니다.
width Number 아니오 표시할 양식 창의 너비(픽셀)입니다. 매개 변수를 true로 전달 openInNewWindow 해야 합니다.
navbar String 아니오 탐색 모음이 표시되는지 여부와 사이트 맵에 정의된 영역 및 하위 영역을 사용하여 응용 프로그램 탐색을 사용할 수 있는지 여부를 제어합니다. 유효한 값은 다음과 onoffentity같습니다. openInNewWindow 매개 변수를 true로 전달해야 합니다.
- on: 탐색 모음이 표시됩니다. 탐색 모음 매개 변수를 사용하지 않는 경우 기본 동작입니다.
- off: 탐색 모음이 표시되지 않습니다. 사용자는 다른 사용자 인터페이스 요소나 뒤로 및 앞으로 단추를 사용하여 탐색할 수 있습니다.
- entity: 양식에서 관련 테이블에 대한 탐색 옵션만 사용할 수 있습니다. 관련 테이블로 이동한 후 탐색 모음에 뒤로 단추가 표시되어 원래 레코드로 돌아갈 수 있습니다.
relationship Object 아니오 양식에 관련 레코드를 표시할 관계 개체를 정의합니다. 관계 개체 참조
selectedStageId String 아니오 비즈니스 프로세스 인스턴스에서 선택한 단계의 ID입니다.
useQuickCreateForm Bool 아니오 빠른 만들기 양식을 열지 여부를 나타냅니다. 빠른 만들기 폼을 표시하려면 테이블의 빠른 만들기 허용 옵션을 사용하도록 설정해야 하며, 테이블과 빠른 만들기 양식도 앱에 추가해야 합니다. 값을 useQuickCreateForm지정하지 않으면 기본값이 .로 false설정됩니다.

관계 개체

개체에는 다음 값이 있습니다.

이름 유형 Description
attributeName String 관계에 사용되는 열의 이름입니다.
name String 관계에 사용되는 열의 이름입니다.
navigationPropertyName String 관계에 사용되는 열의 이름입니다.
relationshipType Number 관계 유형. 다음 값 중 하나를 지정합니다.
- 0:OneToMany
- 1:ManyToMany
roleType Number 관계의 역할 유형입니다. 다음 값 중 하나를 지정합니다.
- 1:참조
- 2:AssociationEntity

비고

이 메서드를 사용하여 사용되지 않는 Xrm.Utility.openEntityForm 및 Xrm.Utility.openQuickCreate 메서드 대신 테이블을 열거나 양식을 빠르게 만들어야 합니다.

setActiveProcess를 사용하여 특정 비즈니스 프로세스를 표시하고 setActiveProcessInstance를 사용하여 양식에 특정 비즈니스 프로세스 인스턴스를 표시합니다.

예시

예제 1: 기존 레코드에 대한 폼 열기

다음 샘플 코드는 연락처 양식을 열어 기존 연락처 레코드를 표시합니다.

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["entityId"] = "00aa00aa-bb11-cc22-dd33-44ee44ee44ee";

// Open the form.
Xrm.Navigation.openForm(entityFormOptions).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

예제 2: 새 레코드에 대한 폼 열기

다음 샘플 코드는 미리 채워진 값이 있는 연락처 양식을 열어 새 레코드를 만듭니다.

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";

// Set default values for the Contact form
var formParameters = {};
formParameters["firstname"] = "Sample";
formParameters["lastname"] = "Contact";
formParameters["fullname"] = "Sample Contact";
formParameters["emailaddress1"] = "contact@adventure-works.com";
formParameters["jobtitle"] = "Sr. Marketing Manager";
formParameters["donotemail"] = "1";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["preferredsystemuseridname"] = "Admin user"; // Name of the user.
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

예제 3: 새 레코드에 대한 폼 열기(복잡한 조회)

다음 샘플 코드는 미리 채워진 일부 값(복잡한 조회 포함)이 있는 활동 양식을 열어 새 레코드를 만듭니다.

var entityFormOptions = {};
entityFormOptions["entityName"] = "email";

// Set default values for the Contact form
var formParameters = {};
formParameters["subject"] = "Sample";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["regardingobjectid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["regardingobjectidname"] = "Admin user"; // Name of the user.
formParameters["regardingobjectidtype"] = "systemuser"; // Table name. 
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

예제 4: 빠른 만들기 양식 열기

다음 샘플 코드는 미리 채워진 값이 있는 빠른 만들기 연락처 양식을 엽니다.

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["useQuickCreateForm"] = true;

// Set default values for the Contact form
var formParameters = {};
formParameters["firstname"] = "Sample";
formParameters["lastname"] = "Contact";
formParameters["fullname"] = "Sample Contact";
formParameters["emailaddress1"] = "contact@adventure-works.com";
formParameters["jobtitle"] = "Sr. Marketing Manager";
formParameters["donotemail"] = "1";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["preferredsystemuseridname"] = "Admin user"; // Name of the user.
formParameters["preferredsystemuseridtype"] = "systemuser"; // Table name.
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Xrm.Navigation