솔루션 검사기를 사용하여 솔루션의 유효성을 검사합니다.

복잡한 비즈니스 요구 사항을 제공하기 위해 제작자는 종종 Microsoft Dataverse 플랫폼을 사용자 지정하고 확장하는 고도의 솔루션으로 끝날 수 있습니다. 고급 구현에서는 성능, 안정성 및 안정성 문제가 도입되어 사용자 환경에 부정적인 영향을 줄 수 있는 위험이 증가합니다. 이러한 문제를 해결하는 방법을 확인하고 이해하는 것은 복잡하고 시간이 많이 걸릴 수 있습니다. 솔루션 검사 기능을 사용하면 모범 사례 규칙 세트에 따라 솔루션에 대한 풍부한 정적 분석 검사를 수행하고 이러한 문제 패턴을 신속하게 식별할 수 있습니다. 확인이 완료되면 식별된 문제, 영향을 받는 구성 요소 및 코드, 각 문제를 해결하는 방법을 설명하는 설명서에 대한 링크가 나열된 자세한 보고서를 받게 됩니다.

솔루션 검사기에서 이러한 솔루션 구성 요소를 분석합니다.

  • Dataverse 사용자 지정 워크플로 활동
  • Dataverse 웹 리소스(HTML 및 JavaScript)
  • SDK 메시지 단계와 같은 Dataverse 구성
  • Power Automate 흐름(흐름 검사기를 통해)
  • Power Fx 식(앱 검사기를 통해)

솔루션 검사기는 환경에서 내보낼 수 있는 비관리형 솔루션에서 작동합니다.

참고

  • 이 항목에서는 Power Apps 제조업체 포털에서 솔루션 검사기를 실행하는 방법에 대해 설명합니다. PowerShell 모듈을 사용하여 서비스와 직접 상호 작용할 수도 있습니다. Microsoft.PowerApps.Checker.PowerShell 모듈은 Power Apps 환경의 관리 및 비관리 솔루션 분석에 사용하거나 서비스를 자동화하고 빌드 및 릴리스 파이프라인에 통합하는 데 사용할 수 있습니다. 추가 정보: Microsoft.PowerApps.Checker.PowerShell Overview
  • 솔루션 검사기는 ECMAScript 2015(ES6) 이상부터 ECMAScript 2018(ES9)까지 구문을 위한 전역 변수를 지원합니다. ES6 이후의 전역 변수나 ES9 이후 구문을 사용하여 JavaScript를 검색하면 웹 리소스가 웹을 지원하지 않는 문제가 있습니다.
  • 솔루션 검사기는 솔루션 가져오기의 성공을 보장하지 않습니다. 솔루션에 대해 수행된 정적 분석 검사는 대상 환경의 구성된 상태를 알지 못하며 가져오기 성공 여부는 환경의 다른 솔루션이나 구성에 따라 달라질 수 있습니다.

솔루션 검사 실행

  1. Power Apps에 로그인합니다.

  2. 왼쪽 탐색 창에서 솔루션을 선택합니다. 항목이 측면 패널 창을 경우 ...자세히를 선택한 다음 원하는 항목을 선택하세요.

  3. 분석하려는 비관리형 솔루션 옆, ... 을 클릭하고 솔루션검사기를 가리킨 다음 실행을 선택합니다.

    솔루션 검사기 명령.

  4. 솔루션 검사기 명령 버튼에는 로딩 표시기가 있으며 실행 중... 이 표시됩니다. 솔루션 목록의 솔루션 확인 열에서 상태를 표시합니다.

    솔루션 검사기 상태.

    다음을 참고하세요.

    • 솔루션 검사기에서 분석을 완료하는 데 몇 분 정도 걸릴 수 있습니다.

    • 확인이 완료되면 Power Apps 사이트의 알림 영역에 전자 메일 알림 및 알림이 표시 됩니다.

  5. 검사가 완료 되면 보고서를 봅니다.

검사 취소

환경에서 솔루션 검사를 제출한 후에는 솔루션 페이지의 오른쪽 상단 영역에 있는 상태 창을 통해 검사를 취소할 수 있습니다.

검사를 취소 하면 솔루션 검사가 실행을 중지하고 솔루션 확인 상태가 이전 상태로 돌아갑니다.

솔루션 검사기 상태

사용자 환경에서 솔루션 검사기를 설치하면 솔루션 확인 열이 솔루션 목록에 제공됩니다. 이 열에는 솔루션용 솔루션 분석 상태가 표시됩니다.

상태 설명
실행 되지 않은 솔루션이 분석 된 적이 없습니다.
실행 중 솔루션이 분석되고 있습니다.
완료할 수 없습니다. 솔루션 분석이 요청되었으나 분석이 성공적으로 완료되지 않았습니다.
날짜 및 시간의 결과 솔루션 분석을 완료하고 결과를 다운로드할 수 있습니다.
완료할 수 없습니다. 날짜 및 시간의 결과 최신 분석 요청이 성공적으로 완료되지 않았습니다. 마지막으로 성공한 결과를 다운로드할 수 있습니다.
Microsoft에서 확인 이것은 Microsoft 관리형 솔루션입니다. 솔루션 분석은 이러한 솔루션에 허용되지 않습니다.
게시자에게 확인 타사 관리형 솔루션입니다. 현재 솔루션 분석은 솔루션에 사용할 수 없습니다.

솔루션 검사 보고서 검토

솔루션 검사가 완료되면 포털에서 분석 보고서를 보거나 웹 브라우저에서 보고서를 다운로드할 수 있습니다. 포털에는 문제, 위치 또는 심각도를 기준으로 결과를 정렬하며, 솔루션에서 발견된 문제에 대한 자세한 정보를 보는 옵션이 있습니다.

  1. 왼쪽 탐색 창에서 솔루션을 선택합니다. 항목이 측면 패널 창을 경우 ...자세히를 선택한 다음 원하는 항목을 선택하세요.

  2. 솔루션 검사기 보고서를 보려는 비관리형 솔루션 옆의 ... 을 선택합니다. 솔루션 검사기를 가리킨 다음 결과 보기를 선택합니다.

  3. 문제를 선택하여 해결 방법에 대한 세부 사항 및 지침을 봅니다.

    솔루션 검사기 보기 결과.

솔루션 검사 결과를 다운로드할 수도 있습니다. 솔루션 검사기 zip 파일이 웹 브라우저에서 지정한 폴더로 다운로드 됩니다. 다운로드 보고서는 Excel 형식이며 솔루션에서 검색된 각 문제의 영향, 유형 및 위치를 식별하는데 도움이 되는 여러 시각화 및 열을 포함 합니다. 이 문제를 해결하는 방법에 대한 자세한 지침에 대한 링크가 제공됩니다.

  1. 왼쪽 탐색 창에서 솔루션을 선택합니다. 항목이 측면 패널 창을 경우 ...자세히를 선택한 다음 원하는 항목을 선택하세요.
  2. 솔루션 검사기 보고서를 다운로드할 비관리형 솔루션 옆의 ... 을 선택합니다. 솔루션 검사기를 가리킨 다음 결과 다운로드를 선택합니다.
  3. 솔루션 검사기 zip 파일이 웹 브라우저에서 지정한 폴더로 다운로드 됩니다.

다음은 보고서의 각 열에 대한 요약입니다.

보고서 열 설명 구성 요소에 적용
이슈 솔루션에서 식별된 문제의 제목입니다. 모두
범주 성능, 유지 관리 가능성, 사용, 지원 가능성, 디자인, 보안, 접근성 또는 업그레이드 준비와 같은 식별된 문제의 범주입니다. 전체
심각도 식별된 문제의 잠재적 영향을 나타냅니다. 사용 가능한 영향 유형은 중요, 높음, 보통, 낮음, 정보입니다. 전체
지침 문제, 영향 및 권장되는 작업을 자세히 설명하는 문서에 연결합니다. 모두
구성 요소 문제를 해결하는 솔루션 구성 요소입니다. 모두
Location 어셈블리 또는 JavaScript 파일 이름과 같이 식별된 문제가 발생한 구성 요소의 위치 및/또는 소스 파일입니다. 모두
꺾은선형 # 영향을 받는 웹 리소스 구성 요소에 있는 문제의 줄 번호 참조입니다. 웹 리소스
모듈 어셈블리에서 식별된 문제가 발견된 모듈 이름입니다. 사용자 지정 워크플로 활동
유형 어셈블리에서 식별된 문제의 유형입니다. 사용자 지정 워크플로 활동
구성원 어셈블리에서 식별된 문제의 구성원입니다. 사용자 지정 워크플로 활동
문제를 일으킨 코드 문 또는 구성입니다. 모두
코멘트 높은 수준의 해결 단계를 포함하는 문제에 대한 세부 정보입니다. 전체

로컬에서 솔루션 검사기 규칙 실행

개발 환경에서 솔루션 검사기 규칙을 실행하여 솔루션 리소스를 생성하는 즉시 문제를 감지할 수 있습니다. 이것은 현재 웹 리소스(JavaScript 및 TypeScript)에 대해 지원됩니다. 자세한 내용은 NPM 패키지 @microsoft/eslint-plugin-power-apps를 참조하세요.

솔루션 검사기에서 사용하는 모범 사례 규칙

다음 표에는 구성 요소 유형, 규칙 설명, 심각도, 및 범주가 나와 있습니다. 관리형 환경에서 솔루션 검사기 시행을 위해 구성된 경우 심각한 위반은 차단되거나 경고됩니다. 추가 정보: 관리형 환경에서 솔루션 검사기 사용

솔루션 구성 요소 규칙 이름 규칙 설명 심각도 카테고리
플러그 인 또는 워크플로 활동 meta-remove-dup-reg 중복 Dataverse 플러그 인 등록을 사용하지 마십시오. 중요 실적
플러그 인 또는 워크플로 활동 meta-avoid-reg-no-attribute Dataverse 플러그 인 등록에 필터링 특성을 포함하십시오. 보통 실적
플러그 인 또는 워크플로 활동 메타-회피-reg-검색 Retrieve 및 RetrieveMultiple 메시지에 등록된 Dataverse 플러그 인을 주의하여 사용하십시오. 보통 실적
플러그 인 또는 워크플로 활동 메타-제거-비활성 Dataverse에서 비활성 구성을 제거합니다. 낮은 값 유지 관리
플러그 인 또는 워크플로 활동 meta-avoid-crm4-event Microsoft Dynamics CRM 4.0 플러그 인 등록 스테이지를 사용하지 마십시오. 보통 업그레이드 준비
플러그 인 또는 워크플로 활동 meta-avoid-retrievemultiple-annotation 주석의 RetrieveMultiple에 플러그 인을 등록하지 마십시오. 높은 값 사용
웹 리소스 use-async 비동기적으로 HTTP 및 HTTPS 리소스와 상호작용 합니다. 중요 실적
웹 리소스 avoid-modals 모달 대화 상자를 사용하지 마십시오. 높은 값 지원 가능성
웹 리소스 avoid-dom-form 높은 값 지원 가능성
웹 리소스 avoid-dom-form-event 높은 값 지원 가능성
웹 리소스 avoid-crm2011-service-odata Microsoft Dynamics CRM 2011 OData 2.0 엔드포인트를 대상으로 지정하지 마십시오. 중요 업그레이드 준비
웹 리소스 avoid-crm2011-service-soap Microsoft Dynamics CRM 2011 SOAP 서비스를 대상으로 지정하지 마십시오. 중요 업그레이드 준비
웹 리소스 avoid-loadtheme loadTheme Fluent v8 API를 사용하지 마세요. 낮은 값 지원 가능성
웹 리소스 avoid-browser-specific-api Internet Explorer 레거시 API 또는 브라우저 플러그 인을 사용하지 마십시오. 중요 업그레이드 준비
웹 리소스 avoid-unpub-api 높은 값 지원 가능성
웹 리소스 avoid-window-top 높은 값 지원 가능성
웹 리소스 avoid-2011-api 더 이상 사용되지 않는 Microsoft Dynamics CRM 2011 개체 모델을 사용하지 마십시오. 대신 Dataverse Web API 설명서를 따르십시오. 높은 값 업그레이드 준비
웹 리소스 use-relative-uri 절대 Dataverse 엔드포인트 URL을 사용하지 마십시오. 보통 유지 관리
웹 리소스 use-cached-webresource 보통 실적
웹 리소스 use-client-context 클라이언트 컨텍스트를 사용하십시오. 보통 업그레이드 준비
웹 리소스 use-navigation-api 탐색 API 매개 변수를 사용합니다. 보통 업그레이드 준비
웹 리소스 use-offline 보통 업그레이드 준비
웹 리소스 do-not-make-parent-assumption 높은 값 설계
웹 리소스 use-org-setting 조직 설정을 사용하십시오. 보통 업그레이드 준비
웹 리소스 use-global-context 보통 업그레이드 준비
웹 리소스 use-grid-api 그리드 API를 사용하십시오. 보통 업그레이드 준비
웹 리소스 use-utility-dialogs 보통 사용
웹 리소스 avoid-isActivityType Xrm.Utility.isActivityType 매서드를 새로운 Xrm.Utility.gettableMetadata로 대체하고 리본 규칙에서 사용하지 마십시오. 보통 업그레이드 준비
웹 리소스 meta-avoid-silverlight Silverlight 웹 리소스 사용은 더 이상 사용되지 않습니다. 보통 업그레이드 준비
웹 리소스 remove-debug-script 비 개발 환경에서 디버그 스크립트를 포함하지 마십시오. 보통 사용
웹 리소스 use-strict-mode 가능한 경우 엄격 모드를 사용하십시오. 보통 사용
웹 리소스 use-strict-equality-operators 완전 항등 연산자를 사용하십시오. 보통 사용
웹 리소스 avoid-eval 'eval' 함수 또는 해당 기능을 사용하지 마십시오. 중요 보안
웹 리소스 with 피하기 'with' 연산자를 사용하지 마세요. 높은 값 실적
웹 리소스 remove-alert 'alert' 함수 또는 동일한 기능을 사용하지 마십시오. 보통 사용
웹 리소스 remove-console 콘솔에서 메서드를 사용하지 마십시오. 보통 사용
웹 리소스 avoid-ui-refreshribbon 양식 onload 및 EnableRule에서 refreshRibbon을 사용하지 마십시오. 중요 실적
웹 리소스 use-getsecurityroleprivilegesinfo userSettings.securityRolePrivileges를 사용하지 마십시오. 대신 userSettings.getSecurityRolePrivilegesInfo를 사용하십시오. 높은 값 실적
웹 리소스 use-appsidepane-api Xrm.Panels.loadPanel 대신 Xrm.App.sidePanes.createPane을 사용하세요. 보통 업그레이드 준비
웹 리소스 web-sdl-no-cookies HTTP 쿠키는 내재된 위험과 제한이 있는 오래된 클라이언트 측 저장 메커니즘입니다. 대신 웹 스토리지, IndexedDB 또는 기타 최신 방법을 사용하십시오. 보통 보안
웹 리소스 web-sdl-no-document-domain 동일한 출처 확인을 우회하지 않도록 document.domain 속성에 대한 쓰기를 검토해야 합니다. azurewebsites.net과 같은 최상위 도메인의 사용은 엄격히 금지됩니다. 보통 보안
웹 리소스 web-sdl-no-document-write document.write 또는 document.writeln에 대한 호출은 삭제 없이 DOM을 직접 조작하므로 피해야 합니다. 대신 document.createElement() 또는 유사한 메서드를 사용하세요. 보통 보안
웹 리소스 web-sdl-no-html-method 메서드 html()에 대한 직접 호출은 종종(예: jQuery 프레임워크에서) 어떤 삭제 없이 DOM을 조작하므로 피해야 합니다. 대신 document.createElement() 또는 유사한 메서드를 사용하세요. 보통 보안
웹 리소스 web-sdl-no-inner-html innerHTML 또는 outerHTML 속성에 대한 할당은 삭제 없이 DOM을 직접 조작하므로 피해야 합니다. 대신 document.createElement() 또는 유사한 메서드를 사용하세요. 보통 보안
웹 리소스 web-sdl-no-insecure-url HTTP 또는 FTP와 같은 안전하지 않은 프로토콜은 신뢰할 수 없는 네트워크를 통해 잠재적으로 민감한 데이터를 일반 텍스트로 보내는 것을 방지하기 위해 암호화된 프로토콜(HTTPS, FTPS)로 교체해야 합니다. 보통 보안
웹 리소스 web-sdl-no-msapp-exec-unsafe MSApp.execUnsafeLocalFunction()에 대한 호출은 스크립트 주입 유효성 검사를 우회하므로 피해야 합니다. 보통 보안
웹 리소스 web-sdl-no-postmessage-star-origin 트러스트 경계 외부의 데이터 유출을 방지하기 위해 postMessage를 사용하여 다른 창으로 데이터를 보낼 때 *가 아닌 항상 특정 대상 출처를 제공하십시오. 보통 보안
웹 리소스 web-sdl-no-winjs-html-unsafe WinJS.Utilities.setInnerHTMLUnsafe() 및 유사한 메서드에 대한 호출은 입력 유효성 검사를 수행하지 않으므로 피해야 합니다. 대신 WinJS.Utilities.setInnerHTML()을 사용하십시오. 보통 보안
캔버스 앱 app-formula-issues-high 자세한 내용은 Power Apps 수식 참조를 확인하십시오. 중요 설계
캔버스 앱 app-formula-issues-medium 자세한 내용은 Power Apps 수식 참조를 확인하십시오. 보통 설계
캔버스 앱 app-formula-issues-low 자세한 내용은 Power Apps 수식 참조를 확인하십시오. 낮은 값 설계
캔버스 앱 app-use-delayoutput-text-input 일부 시나리오에서는 지연된 로드를 사용하여 성능을 향상하세요. 보통 실적
캔버스 앱 app-reduce-screen-controls 성능 향상을 위해 앱 제어 수를 제한하십시오. 보통 실적
캔버스 앱 app-include-accessible-label 앱 접근성을 높이려면 명시적인 라벨을 사용하세요. 보통 접근성
캔버스 앱 app-include-alternative-input 모든 대화형 요소가 대체 입력에 액세스할 수 있는지 확인합니다. 보통 접근성
캔버스 앱 app-avoid-autostart 앱 내의 플레이어에서 자동 시작을 사용하지 마십시오. 보통 접근성

참조 항목

Dataverse에 대한 모범 사례 및 지침
모델 기반 앱에 대한 모범 사례 및 지침
솔루션 검사기에 대한 일반적인 문제 및 해결 방법

참고

귀사의 설명서 언어 기본 설정에 대해 말씀해 주시겠습니까? 간단한 설문 조사에 응해주세요. (이 설문 조사는 영어로 되어 있습니다.)

이 설문 조사는 약 7분 정도 걸립니다. 개인 데이터는 수집되지 않습니다(개인정보처리방침).