휴대폰 및 태블릿용 Dynamics 365에 대한 스크립트 작성 및 디버깅

 

게시 날짜: 2017년 1월

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

휴대폰용 Microsoft Dynamics 365 및 태블릿용 Microsoft Dynamics 365은 웹 응용 프로그램에 사용되는 것과 동일한 양식 정의를 사용합니다. 웹 응용 프로그램의 리본 명령 또는 양식 이벤트 처리기에 추가한 모든 JavaScript 코드는 Dynamics 365 모바일 클라이언트(휴대폰 및 태블릿) 내에서도 실행할 수 있습니다. 유의해야 할 몇 가지 차이점이 있습니다.

이 항목의 내용

일부 Xrm.Page 또는 window 개체는 휴대폰 및 태블릿용 Dynamics 365에서 작동하지 않습니다.

휴대폰 및 태블릿용 Dynamics 365에서 실행할 코드 지정

휴대폰 및 태블릿용 Dynamics 365에 표시할 명령 지정

Dynamics 365 모바일 클라이언트와 브라우저의 웹 응용 프로그램의 차이점 인식

휴대폰 및 태블릿용 Dynamics 365에 대한 스크립트 디버깅

일부 Xrm.Page 또는 window 개체는 휴대폰 및 태블릿용 Dynamics 365에서 작동하지 않습니다.

Dynamics 365 모바일 클라이언트는 스크립트 실행을 차단할 수 있는 기능을 허용하지 않습니다.window.alert, window.confirmwindow.prompt와 같은 일반적인 JavaScript 함수는 예상대로 작동하지 않거나 오류를 발생시킵니다.

Xrm.UtilityalertDialogconfirmDialog 함수를 사용하여 사용자에게 메시지를 표시합니다. 사용자가 닫을 때까지 스크립트의 처리를 중지하지 않으므로 이러한 함수는 window 함수와 다르게 작동합니다. 사용자 입력에 대해 비동기 응답을 허용하는 콜백 함수를 제공합니다.window.confirm, window.prompt 또는 스크립트 실행을 막는 다른 기본 window 함수를 사용하면 오류가 발생합니다.

참고

양식 스크립트에서 window.alert를 사용하면 설정한 메시지가 지정한 콜백 함수 없이 Xrm.Utility.alertDialog를 사용하여 자동으로 표시지만 이는 일시적이며 이미 더 이상 사용되지 않는 것으로 간주됩니다. 대신 Xrm.Utility.alertDialog를 사용하도록 window.alert를 사용하는 모든 코드를 이동해야 합니다.

Dynamics 365 모바일 클라이언트 또한 window.open 메서드를 지원하지 않습니다. 새 레코드 또는 기존 레코드에 대한 엔터티 양식을 열려고 하는 경우 대신 Xrm.Utility.openEntityForm을 사용합니다.

다음 메서드는 Dynamics 365 모바일 클라이언트 (휴대폰 및 태블릿)에서 작동하지 않습니다.

Xrm.Page.context.getCurrentTheme

Xrm.Page.ui뷰포트 메서드

Xrm.Page.data.entity.getDataXml

Xrm.Page.ui.navigation.items 모음

Xrm.Page.ui.formSelector 개체 메서드

Xrm.Page.ui tab.setDisplayState

이러한 대부분의 함수는 빈 함수를 실행하고 아무 것도 반환되지 않습니다. 이러한 함수 중 하나에서 반환 값을 예상하는 코드가 있는 경우 정의되지 않습니다.

또한 휴대폰용 Dynamics 365은(는) 웹 리소스와 IFRAMES를 지원하지 않으므로 이러한 컨트롤에 대한 클라이언트 API가 작동되지 않습니다. 하지만, 웹 리소스 및 IFRAMES용 클라이언트 API는 태블릿용 Dynamics 365에서는 지원됩니다. 추가 정보: 웹 리소스 및 IFRAME 컨트롤 메서드

휴대폰 및 태블릿용 Dynamics 365에서 실행할 코드 지정

클라이언트 API의 기능이 다른 경우 각 클라이언트에 대해 적용하는 논리를 분리하도록 다음과 유사한 코드를 포함해야 합니다.

var isCrmForMobile = (Xrm.Page.context.client.getClient() == "Mobile")
if (isCrmForMobile)
{
 // Code for CRM for phones and tablets only goes here.
}
else
{
 // Code for web browser or CRM for Outlook only goes here.
}
// Code for any client goes here.

휴대폰 및 태블릿용 Dynamics 365에 표시할 명령 지정

사용자 지정 명령 모음(리본) 메뉴에서 <JavaScriptFunction> (RibbonDiffXml) 작업을 사용할 경우 Xrm.Page.context.client.getClient를 사용하여 코드를 분리할 수도 있습니다. 수행하려는 작업이 Dynamics 365 모바일 클라이언트를 사용하여 작동하지 않을 경우 태블릿용 Dynamics 365에 명령이 표시되지 않도록 표시 규칙을 포함해야 합니다. 사용자가 표시되지 않도록 명시적으로 구성하지 않으면 기본적으로 정의된 모든 명령은 Dynamics 365 모바일 클라이언트에 표시됩니다.Dynamics 365 모바일 클라이언트를 사용하여 작동하는 것을 알지 못할 경우 다음 표시 규칙을 규칙으로 정의하고 모든 명령에 포함해야 합니다.

<DisplayRule Id="My.HideOnModern">
 <CommandClientTypeRule Type="Modern"
                        InvertResult="true" />
</DisplayRule>

Dynamics 365 모바일 클라이언트와 브라우저의 웹 응용 프로그램의 차이점 인식

일부 Xrm.Page 또는 window 개체는 휴대폰 및 태블릿용 Dynamics 365에서 작동하지 않습니다.에 설명된 함수와 달리 다른 차이점이 있음을 알고 있어야 합니다.

  • 복합 필드
    Dynamics 365 모바일 클라이언트는 복합 필드를 다르게 구현합니다.Dynamics 365 모바일 클라이언트는 복합 특성을 포함하지 않습니다. 자동으로 구성원 특성을 대체하고 대신 표시합니다.추가 정보:복합 특성에 대한 스크립트 작성.

휴대폰 및 태블릿용 Dynamics 365에 대한 스크립트 디버깅

휴대폰용 Dynamics 365 또는 태블릿용 Dynamics 365은(는) 앱이므로 브라우저에서 사용할 수 있는 일반적인 JavaScript 디버깅 도구를 사용할 수 없습니다. 다음 절차를 사용하여 양식 스크립트와 리본 명령을 테스트하고 디버깅하는 것이 좋습니다.

  1. 웹 응용 프로그램을 사용하여 스크립트를 철저하게 테스트합니다.

  2. 테스트의 일부로 웹 브라우저를 사용하면 Xrm.Page.context.client.getClient를 사용하여 클라이언트를 확인할 때 조건을 거꾸로 하고 해당 논리가 Dynamics 365 모바일 클라이언트를 사용할 때 갖춰야 하는 환경에 적합한지 확인합니다.Dynamics 365 모바일 클라이언트에 사용할 수 있는 API는 웹 브라우저에 사용할 수 있는 API의 하위 집합이므로 웹 브라우저에서 대체 흐름을 테스트할 수 있어야 합니다.

  3. 가능한 경우 Windows 10 및 Microsoft Visual Studio가 설치된 컴퓨터에 Dynamics 365 모바일 클라이언트를 설치합니다.Visual Studio를 사용하여 디버거를 시작하는 debugger 문을 포함합니다.

  4. 마지막으로 Xrm.Utility.alertDialog를 사용하여 Dynamics 365 모바일 클라이언트 내에서 코드의 값을 표시합니다.

참고 항목

Microsoft Dynamics 365 양식용 코드 작성
양식 및 필드 이벤트 사용
Xrm.Page 개체 모델 사용
복합 특성에 대한 스크립트 작성
양식 스크립팅 빠른 참조
클라이언트 쪽 프로그래밍 참조
명령 모음 또는 리본 프레젠테이션

Microsoft Dynamics 365

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