Microsoft Dynamics CRM 2015에서 JavaScript 사용
게시 날짜: 2016년 11월
적용 대상: Dynamics CRM 2015
Microsoft Dynamics CRM 2015 및 Microsoft Dynamics CRM Online 2015 업데이트은 JavaScript를 사용할 많은 기회를 제공합니다.Microsoft Dynamics 365에서 사용되는 모든 JavaScript는 JScript 웹 리소스를 만들어 추가됩니다. 이 항목에는 JavaScript를 사용하는 개발자를 위한 정보가 있으며 Microsoft Dynamics CRM SDK 및 다른 리소스의 관련 항목에 대한 링크가 포함되어 있습니다.
이 항목의 내용
Microsoft Dynamics CRM에서 JavaScript를 사용할 수 있는 영역
jQuery 사용
여러 브라우저에 대해 JavaScript 작성
JavaScript를 사용하여 데이터 액세스
JavaScript 프로그래밍 유용한 정보
Microsoft Dynamics CRM에서 JavaScript 디버깅
Microsoft Dynamics CRM에서 JavaScript를 사용할 수 있는 영역
JavaScript를 사용하여 양식 스크립트, 명령 모음(리본) 명령 및 웹 리소스에서 작업을 수행할 수 있습니다.
양식 스크립트
Microsoft Dynamics 365에서 JavaScript를 가장 많이 사용하는 것은 엔터티 양식 이벤트에 대해 함수를 이벤트 처리기로 추가하는 것입니다. 자세한 내용은 Microsoft Dynamics CRM 2015 양식용 코드 작성을 참조하십시오.
명령 모음(리본) 명령
Microsoft Dynamics 365 명령 모음을 사용자 지정할 경우 추가할 컨트롤에 대한 명령을 구성할 수 있습니다. 이러한 명령에는 컨트롤 활성화 여부 및 컨트롤을 사용할 때 수행할 작업을 제어하는 규칙이 있습니다. 자세한 내용은 명령 및 리본 사용자 지정을 참조하십시오.
웹 리소스
Microsoft Dynamics 365은 URL을 사용하여 액세스할 수 있는 파일의 이진 표현을 저장하는 조직 담당 엔터티를 제공합니다. 이 파일을 웹 리소스라고 합니다. 몇 가지 유형의 웹 리소스가 있습니다.JavaScript 라이브러리를 나타내는 웹 리소스를 JScript 웹 리소스라고 합니다. 웹 페이지(HTML) 웹 리소스를 사용하여 웹 서버에서 파일처럼 JavaScript 라이브러리가 포함된 사용자 인터페이스를 제공할 수 있습니다. 이러한 파일은 Microsoft Dynamics 365의 일부이므로 파일에 액세스하는 사용자가 이미 인증되어 있습니다. 따라서 사용자를 인증하는 코드를 작성하지 않아도 Microsoft Dynamics 365 웹 서비스를 사용할 수 있습니다. 자세한 내용은 Microsoft Dynamics CRM 2015용 웹 리소스을 참조하십시오.
jQuery 사용
HTML 웹 리소스에 jQuery 사용
jQuery는 뛰어난 브라우저 간 라이브러리이므로 HTML 웹 리소스와 함께 사용하여 사용자 인터페이스를 제공하는 것이 좋습니다.HTML 웹 리소스를 사용하면 현재 있는 라이브러리를 제어하고 DOM 조작에 대한 제한이 없습니다. HTML 웹 리소스 내에서 jQuery를 마음껏 사용하십시오.
양식 스크립트 또는 리본 메뉴에서 jQuery를 사용하지 않음
양식 스크립트 및 리본 명령에서 jQuery를 사용하지 않는 것이 좋습니다.jQuery에서 제공하는 대부분의 혜택은 DOM의 브라우저 간 조작을 쉽게 사용할 수 있다는 점입니다. 양식 스크립트 및 리본 명령 내에서는 명시적으로 지원되지 않습니다. 스크립트를 제한하여 양식 스크립트 및 리본 명령에서 사용할 수 있는 Xrm.Page 및 Xrm.Utility 라이브러리를 사용합니다.Microsoft Dynamics 365에 유용한 jQuery의 다른 기능을 사용하고 $.ajax를 사용할 수 있는 기능을 포함하도록 결정할 경우 다음을 고려하십시오.
최상의 성능을 위해 jQuery가 필요 없을 경우 페이지에서 jQuery를 로드하지 않음
OData 및 최신 앱 SOAP 끝점에 대한 요청을 수행하기 위해 $.ajax를 사용할 수 있지만 대안이 있습니다.$.ajax를 사용하는 대안은 브라우저 XMLHttpRequest 개체를 직접 사용하는 것입니다. jQuery $.ajax 메서드는 단지 이 개체에 대한 래퍼입니다. 기본 XMLHttpRequest 개체를 직접 사용하면 jQuery를 로드할 필요가 없습니다.
샘플: JavaScript와 함께 OData 끝점을 사용하여 만들기, 검색, 업데이트 및 삭제 및 샘플: JavaScript 및 jQuery와 함께 OData 끝점을 사용하여 만들기, 검색, 업데이트 및 삭제에서 찾은 SDK.REST.js 및 SDK.JQuery.js 샘플 라이브러리를 비교합니다. 둘 다 동일한 작업을 수행하지만 SDK.REST.js에는 jQuery가 필요하지 않습니다.
페이지에 로드된 각 버전의 jQuery는 다른 버전일 수 있습니다. 다른 버전의 jQuery에는 다른 동작이 있을 경우 여러 버전의 jQuery가 동일한 페이지에서 로드되면 문제가 될 수 있습니다. 이를 완화하는 기술이 있지만 jQuery 및 jQuery에 의존하는 다른 라이브러리 편집에 따라 달라집니다.추가 정보:jQuery and jQuery UI with Dynamics CRM 2011 & 2013, jQuery.noConflict()
참고
Microsoft Dynamics CRM Online 2015 업데이트 1을 사용하여 응용 프로그램에서 사용되는 jQuery 인스턴스와는 다른 범위에서 양식 스크립트를 실행합니다. 즉, 코드가 jQuery.noConflict를 사용하려고 시도할 때 사용할 수 있는 jQuery의 인스턴스가 없을 수 있습니다. jQuery를 사용해야 하는 경우 jQuery.noConflict를 사용하기 전에 먼저 jQuery의 인스턴스가 존재하는지 여부를 감지해야 합니다.
여러 브라우저에 대해 JavaScript 작성
사용되는 브라우저를 모르므로 지원되는 모든 브라우저에서 사용하는 모든 스크립트가 작동하도록 해야 합니다.Internet Explorer와 다른 브라우저의 주요 차이점은 대부분 HTML 및 XML DOM 조작에 있습니다. HTML DOM 조작이 지원되지 않으므로 스크립트 논리는 지원되는 작업만 수행하고 Xrm.Page API만 사용할 경우 다른 브라우저를 지원하는 데 필요한 변경이 작을 수 있습니다.사용자 지정 코드 유효성 검사 도구를 사용하여 Internet Explorer에서만 작동하는 코드를 식별합니다.
jQuery와 같은 브라우저 간 라이브러리는 웹 리소스를 개발하는 데 좋은 솔루션이지만 양식 스크립트 및 리본 명령에는 필요하지 않습니다.추가 정보:jQuery 사용
다른 브라우저에 대한 지원
Microsoft Dynamics CRM 2015 및 Microsoft Dynamics CRM Online 2015 업데이트은 W3C 표준을 지원하므로 응용 프로그램은 이러한 표준을 지원하는 모든 플랫폼에서 최신 브라우저를 사용하여 액세스할 수 있습니다. 하지만 Microsoft Dynamics 365은 특정 브라우저 및 플랫폼 집합을 사용해서만 테스트합니다. 지원되는 플랫폼 및 브라우저 목록은 TechNet: 지원되는 웹 브라우저를 참조하십시오.
지원되지 않는 브라우저(브라우저 버전)를 사용하고 서버 이름 또는 조직과 함께 서버 이름을 URL로만 입력하면 휴대폰용 Microsoft Dynamics CRM 페이지로 리디렉션됩니다.휴대폰용 CRM 페이지는 제한된 기능으로 모바일 장치에 사용되는 브라우저와 같은 대부분의 브라우저에서 제대로 작동할 수 있습니다.
조직 또는 솔루션에 대해 브라우저 지원 제어
최신 브라우저를 지원하도록 공용 웹 사이트를 만들지만 기존의 모든 브라우저를 지원하는 공용 웹 사이트는 거의 없습니다. 지원할 브라우저를 설정해야 합니다. 개발 및 테스트 비용을 절약하기 위해 많은 비즈니스 응용 프로그램에서는 사용자가 특정 브라우저를 사용하도록 합니다.
Microsoft Dynamics 365을 사용하여 조직에 대한 솔루션을 준비하는 ISV인 경우 모든 조직에서 Microsoft Dynamics CRM 2015 및 Microsoft Dynamics CRM Online 2015 업데이트에서 지원하는 브라우저 중 하나를 사용하도록 해야 합니다. 하지만 사람들이 특정 브라우저를 사용하도록 조직에 대해 사용자 지정만 준비하는 경우에는 조직에서 지원하지 않는 브라우저에 대해 사용자 지정을 개발하고 테스트할 이유가 없습니다.
네트워크 관리자는 TechNet: 소프트웨어 제한 정책 및/또는 TechNet: AppLocker를 사용하여 도메인에서 실행하거나 설치할 수 있는 응용 프로그램을 적용합니다.
XML 구문 분석
JavaScript를 사용하여 XML을 구문 분석해야 하는 기회가 많습니다.Internet Explorer와 다른 브라우저를 사용하여 XML를 구문 분석할 수 있는 방법에는 중요한 차이점이 있습니다.Internet Explorer에서는 Microsoft XML Core Services (MSXML) APIs를 사용하여 XML 문서 개체와 상호 작용합니다. 이러한 APIs에는 다른 브라우저에서는 사용할 수 없는 W3C DOM에 대한 많은 확장이 포함되어 있습니다. 다음은 두 가지 예입니다.
Internet Explorer를 사용하여 XML 문서에서 데이터를 추출하는 데 사용되는 두 가지 일반적인 방법은 selectNodes 및 selectSingleNode입니다. 두 가지 방법 모두 XPath 식을 매개 변수로 사용하고 노드 또는 노드 목록을 반환합니다. 다른 브라우저의 경우 XPath 식을 사용하려고 할 때 evaluate 메서드를 사용합니다. 또한 문서 계층 구조를 탐색하기 위해 코드를 리팩터링하고 getElementsByTagNameNS 메서드를 사용할 수 있습니다.
Internet Explorer에서는 text 속성을 사용하여 요소 텍스트에 액세스합니다. 다른 브라우저에서는 textContent 속성을 사용합니다.
이러한 차이를 해결할 수 있는 다양한 방법이 많습니다. 사용하는 방법은 기본 설정 및 코드 요구 사항에 따라 달라집니다.
샘플: JavaScript를 사용하여 엔터티 메타데이터 검색에 있는 SDK.MetaData.js 라이브러리는 도우미 함수를 사용합니다. 이 라이브러리는 웹 리소스에 대해 SOAP 끝점을 사용하여 엔터티 및 특성 메타데이터를 검색합니다. 이 라이브러리는 XMLHttpRequest.responseXML로 반환되는 XML 문서에서 데이터 구문 분석에 따라 달라집니다. 이 라이브러리에서 다음 도우미 함수가 추가되었으며 라이브러리의 다른 함수에서도 사용되었습니다.
이러한 도우미 함수를 사용하면 Internet Explorer 전용으로 작성된 기존 코드가 다음과 같이 업데이트됩니다.
원래 Internet Explorer 전용 코드 |
여러 브라우저를 지원하는 새 함수 |
---|---|
node.selectNodes(XPathExpr); |
SDK.MetaData._selectNodes(node,XpathExpr); |
node.selectSingleNode(XPathExpr); |
SDK.MetaData._selectSingleNode(node, XPathExpr); |
node.selectSingleNode(ElementName).text; |
SDK.MetaData._selectSingleNodeText(node, ElementName); |
node.text |
SDK.MetaData._getNodeText(node); |
JavaScript를 사용하여 데이터 액세스
JavaScript를 사용하여 데이터에 액세스하도록 응용 프로그램 내에서 사용할 수 있는 웹 서비스는 두 가지입니다.
OData (REST) 끝점
이전에는 '웹 리소스용 REST 끝점'으로 알려졌습니다. URI(Uniform Resource Identifier)를 기반으로 하는 웹 서비스를 사용하여 HTTP 요청을 실행하기 위해 OData 끝점을 사용할 수 있습니다. “RESTful” 웹 서비스는 프로그래밍을 쉽게 만들 수 있도록 하여 많이 사용됩니다.
OData 끝점의 현재 구현은 작업 만들기, 검색, 업데이트 및 삭제로 제한됩니다.샘플: JavaScript와 함께 OData 끝점을 사용하여 만들기, 검색, 업데이트 및 삭제에는 OData 끝점 사용을 더 간단하게 할 수 있는 재사용 가능한 라이브러리 예제를 제공하는 SDK.REST.js 라이브러리가 포함됩니다.
OData 끝점의 이점은 데이터를 쿼리하고 업데이트하는 방법을 제공하는 OData 프로토콜을 구현한다는 것입니다.JavaScript를 사용하는 경우 일반적으로 JavaScript Object Notation(JSON) 형식의 개체를 검색합니다. 이렇게 하면 결과를 더 쉽게 작업하도록 합니다.OData 끝점의 기본 제한 사항은 IOrganizationService.Execute 메서드를 사용하여 메시지(Request 및 Response 클래스)를 실행할 수 없다는 것입니다. 메시지를 실행하기 위해 웹 리소스에 대해 SOAP 끝점을 사용합니다.
자세한 내용은 웹 리소스와 함께 OData 끝점 사용을 참조하십시오.
SOAP 끝점
SOAP 끝점을 사용하면 REST 끝점에서 이를 아직 허용하지 않으므로 메시지를 실행할 수 있습니다. 이 웹 서비스의 Create, Retrieve, Update, Delete 및 RetrieveMultiple 메서드를 호출할 수도 있지만 REST 끝점을 사용하는 것만큼 쉽지 않습니다.
Microsoft Dynamics 365은 SOAP 끝점을 사용하여 활용하기 위해 JavaScript 라이브러리를 제공하지 않습니다.SOAP 끝점을 사용할 경우 요청을 정의하는 XML이 포함된 http 요청을 게시한 후 응답으로 반환된 XML을 구문 분석해야 합니다.
Sdk.Soap.js 샘플 라이브러리 및 기타 관련 샘플은 SOAP 끝점에 사용할 수 있는 라이브러리의 예제를 제공합니다.
SDK는 Visual C#을 사용하여 Microsoft Dynamics 365 웹 서비스에서 작업을 수행할 때 보내고 받은 XML을 캡처할 수 있는 SoapLogger라는 Microsoft Visual C# 솔루션을 제공합니다. 이 정보를 사용하면 자신의 JavaScript 라이브러리를 빌드할 수 있습니다.
자세한 내용은 웹 리소스를 사용하여 최신 응용 프로그램에 대해 최신 앱 SOAP 끝점 사용을 참조하십시오.
JavaScript 프로그래밍 유용한 정보
다음 섹션에서는 JavaScript를 Microsoft Dynamics 365에서 사용할 경우 유용한 정보를 설명합니다.
지원되지 않는 메서드 사용 안 함
지원되지 않는 메서드 사용에 대해 설명하는 많은 예제 또는 제안을 인터넷에서 찾을 수 있습니다. 여기에는 페이지 컨트롤에 대해 문서화되지 않은 내부 함수 활용도 포함될 수 있습니다. 이러한 방법을 사용할 수 있지만 지원되지 않으므로 Microsoft Dynamics 365 이후 버전에서 계속 사용할 것을 기대할 수는 없습니다.
사용자 지정 코드 유효성 검사 도구를 사용하여 지원되지 않는 메서드를 사용하는 코드를 식별합니다.
HTML 웹 리소스 사용자 인터페이스에 대해 브라우저 간 JavaScript 라이브러리 사용
jQuery와 같은 브라우저 간 JavaScript라이브러리는 여러 브라우저를 지원해야 하는 HTML 웹 리소스를 개발하는 경우 여러 가지 이점을 제공합니다.jQuery와 같은 JavaScript 라이브러리는 Microsoft Dynamics 365가 지원하는 모든 브라우저에 대해 통합된 개발 환경을 제공합니다. 이러한 기능은 HTML 웹 리소스를 사용하여 사용자 인터페이스를 제공하는 경우 적절합니다.jQuery와 같은 JavaScript 라이브러리는 DOM(문서 개체 모델)과 상호 작용하는 일관된 방법을 제공합니다.
양식 스크립트 또는 명령에 대해 jQuery 사용하지 않음
응용 프로그램 내 어떤 페이지에 대해서도 jQuery 사용을 권장하거나 지원하지 않습니다. 여기에는 양식 스크립트 및 리본 명령도 포함됩니다.추가 정보:jQuery 사용.
CDN(콘텐츠 전송 네트워크) 라이브러리에 대한 제한 인식
CDN(콘텐츠 전송 네트워크) JavaScript 라이브러리는 공용 웹 사이트에 대해 많은 이점을 제공합니다. 이러한 라이브러리는 인터넷에서 호스팅되므로 라이브러리의 콘텐츠를 포함하는 웹 리소스를 만들 필요가 없습니다.Microsoft Dynamics 365의 경우 CDN JavaScript 라이브러리를 사용하기 전에 다음 문제를 고려해야 합니다.
Microsoft Office Outlook용 Microsoft Dynamics CRM(오프라인 액세스 가능) 클라이언트의 사용자는 오프라인 작업 중에 인터넷 연결 없이 작업할 수 있는 기능이 있습니다.JavaScript 라이브러리에 대해 인터넷 연결에 종속될 경우 코드는 실패합니다.
일부 조직에서는 직원들에 대한 인터넷 액세스를 제한합니다. CDN 라이브러리 사이트에 대한 액세스를 허용하도록 네트워크를 구성하지 않으면 해당 조직에 대한 코드가 실패할 수 있습니다.
CDN 라이브러리를 사용하는 대안은 라이브러리의 콘텐츠로 스크립트(JavaScript) 웹 리소스를 만드는 것입니다. 웹 리소스는 조직 담당 엔터티이므로 Outlook용 Microsoft Dynamics CRM(오프라인 액세스 가능) 사용자가 오프라인 상태일 때 동기화됩니다. 이러한 웹 리소스는 이제 응용 프로그램의 일부가 되므로 조직에서 인터넷에 대한 액세스를 제한하면 차단됩니다.
여러 브라우저에 대한 함수를 작성할 때 기능 검색 사용
jQuery와 같은 브라우저 간 라이브러리를 사용하더라도 브라우저 간 차이점에 대해 확실히 알고 있어야 합니다. 일반적으로 navigator.useragent 속성을 쿼리하여 사용되는 브라우저를 검색할 수 있습니다. 이를 브라우저 검색이라고 합니다. 브라우저 검색은 브라우저가 가진 최신 버전의 기능을 알 수 없으므로 대부분의 경우 좋은 전략은 아닙니다. 일부 브라우저에서는 다른 브라우저로 표시되도록 navigation.useragent 속성을 수정할 수 있는 기능을 제공합니다.
기능 검색은 권장되는 방법입니다. 사용할 수 있는 기능을 검색하여 사용되는 브라우저를 정확히 몰라도 지원하는 브라우저에 대한 코드 경로를 만들 수 있습니다. 기능 검색에 대한 자세한 내용은 브라우저 대신 기능을 검색하는 방법을 참조하십시오.
DOM에 액세스하지 않음
JavaScript 개발자는 코드에서 DOM(문서 개체 모델) 요소와 상호 작용하는 데 사용됩니다.window.getElementById 메서드 또는 jQuery 라이브러리를 사용할 수 있습니다.HTML 웹 리소스에서 이러한 기술을 자유롭게 사용하지만 Microsoft Dynamics 365 응용 프로그램 페이지 또는 엔터티 양식의 요소에 대한 액세스를 지원하지 않습니다. 대신 엔터티 양식 요소에 대한 액세스는 Xrm.Page 개체 모델을 통해 노출됩니다.Microsoft Dynamics 365 개발 팀은 요소의 ID 값을 포함하여 페이지가 구성되는 방법을 변경할 권한을 보유하므로 Xrm.Page 개체 모델을 사용하면 페이지가 구현되는 방식의 변경으로부터 코드를 보호합니다. 자세한 내용은 Xrm.Page 개체 모델 사용을 참조하십시오.
JavaScript 함수에 대한 고유 이름 정의
HTML 페이지의 유일한 개발자인 경우 사용할 JavaScript 함수의 이름을 쉽게 관리할 수 있습니다.Microsoft Dynamics 365에서 다른 솔루션은 함수가 사용되는 페이지에 JavaScript 함수를 추가할 수 있습니다.
한 페이지에 이름이 같은 JavaScript 함수가 두 개 있으면 정의된 첫 번째 함수를 두 번째 함수가 덮어씁니다. 따라서 JavaScript 함수에 고유한 이름을 정의해야 합니다. 자세한 내용은 스크립트 라이브러리 만들기을 참조하십시오.
비동기 데이터 액세스 메서드 사용
웹 리소스에 대해 REST 또는 SOAP 끝점을 사용하는 Microsoft Dynamics 365 웹 서비스를 사용하여 데이터에 액세스할 경우 비동기적으로 실행하도록 구성된 XMLHttpRequest를 항상 사용합니다. 그 이유는 브라우저가 단일 스레드에서 작동하기 때문입니다. 스레드가 장기 실행 프로세스를 동기적으로 실행하는 데 사용되면 브라우저가 응답을 중지합니다.
Microsoft Dynamics CRM에서 JavaScript 디버깅
각 브라우저는 몇 가지 종류의 디버깅 확장을 제공합니다.Internet Explorer는 Microsoft Dynamics 365에서 스크립트를 디버깅하는 데 사용할 수 있는 개발자 도구를 제공합니다.Internet Explorer 개발자 도구는 Internet Explorer를 사용하여 페이지를 볼 때 F12를 눌러 열 수 있습니다. 자세한 내용은 F12 개발자 도구 사용을 참조하십시오.
Google Chrome의 경우 F12를 눌러 개발자 도구를 엽니다.Firebug는 Mozilla Firefox를 사용하는 웹 개발용 인기 있는 브라우저 확장입니다.Apple Safari의 경우 먼저 고급 선호 설정에서 메뉴 모음에서 개발 메뉴 표시를 선택해야 합니다. 그런 다음 개발 메뉴에서 웹 검사자 표시를 선택할 수 있습니다.
Microsoft Visual Studio를 사용할 수도 있습니다. 자세한 내용은 Microsoft Dynamics CRM 2011에서 JScript를 디버깅하는 방법을 참조하십시오.
Microsoft Dynamics 365에서 JavaScript를 사용할 경우 라이브러리는 많은 라이브러리가 포함되어 있는 페이지에 추가됩니다. 디버깅 환경에서 특정 라이브러리를 격리하기 어려운 경우도 있습니다.Internet Explorer에서 디버깅 도구를 사용할 경우 스크립트 탭에서 사용 가능한 스크립트를 확장하고 아래 표시된 new_debugging_example_script.js 웹 리소스와 같은 JavaScript 웹 리소스에 해당하는 이름을 가진 스크립트를 찾습니다.
다른 브라우저용 디버깅 도구는 유사한 기능을 가집니다. 라이브러리를 찾은 경우 중단점을 설정하고 코드를 실행 시키는 이벤트를 다시 만들어야 할 수 있습니다.
콘솔에 메시지 기록
JavaScript를 디버깅할 때 window.alert 메서드를 사용하는 것은 여전히 응용 프로그램에서 코드 문제를 해결하는 일반적인 방법입니다. 하지만 이제 최신 브라우저는 모두 디버깅 도구에 쉽게 액세스할 수 있으므로 특히 다른 브라우저에서 디버깅 중인 응용 프로그램을 사용할 경우 효율적인 방법이 아닙니다.
대신 콘솔에 메시지를 기록하는 것이 좋습니다. 다음은 콘솔을 열면 표시할 메시지를 콘솔에 보낼 때 사용할 수 있는 라이브러리에 추가할 수 있는 작은 함수입니다.
function writeToConsole(message)
{
if (typeof console != 'undefined') {
console.log(message);
}
}
경고 메서드를 사용하는 것과 달리 이 함수를 사용하는 코드를 제거하는 것을 잊을 경우 응용 프로그램을 사용하는 사용자는 메시지를 보지 못합니다.
참고 항목
클라이언트 응용 프로그램 확장 작성
웹 리소스에서 웹 서비스 데이터 사용(OData 및 최신 앱 SOAP 끝점)
응용 프로그램 및 서버 확장 작성
Microsoft Dynamics CRM 2015 양식용 코드 작성
명령 및 리본 사용자 지정
Microsoft Dynamics CRM 2015용 웹 리소스
웹 리소스와 함께 OData 끝점 사용
웹 리소스를 사용하여 최신 응용 프로그램에 대해 최신 앱 SOAP 끝점 사용
Xrm.Page 개체 모델 사용
© 2017 Microsoft. All rights reserved. 저작권 정보