다음을 통해 공유


명령 모음의 단추가 Power Apps에서 제대로 작동하지 않음

적용 대상: Power Apps
원본 KB 번호: 4552163

단추가 제대로 작동하지 않는 이유 확인

몇 가지 요인으로 인해 단추 작업이 실패할 수 있습니다. 여기에는 단추의 연결된 명령 정의가 잘못 선언된 잘못된 리본 사용자 지정이 포함됩니다.

경고

통합 인터페이스에 Mscrm.HideOnModern 단추를 강제로 표시하려면 명령에서 표시 규칙을 제거하지 마세요. 표시 규칙이 있는 Mscrm.HideOnModern 명령은 레거시 웹 클라이언트 인터페이스용이며 통합 인터페이스에서 지원되지 않습니다. 따라서 제대로 작동하지 않을 수 있습니다.

명령이 올바르게 선언되지 않은 경우 단추를 선택하면 아무 작업도 수행하지 않거나 오류 메시지가 표시될 수 있습니다.

최상의 해결 방법을 제공하는 데 도움이 되는 상황에 가장 적합한 다음 옵션 중 하나를 선택합니다. 첫 번째 탭은 기본적으로 선택됩니다.

선택할 때 아무 작업도 수행하지 않는 단추 수정

단추를 선택하고 아무 일도 발생하지 않으면 일반적으로 단추와 연결된 명령 의 잘못된 구성으로 인해 발생합니다.

다음은 작업에 대한 값을 선언할 JavaScriptFunction 때 수행되는 일반적인 명령 구성 실수 입니다. 이러한 실수로 인해 단추가 오작동하고 선택 시 아무 작업도 수행하지 않는 것처럼 보일 수 있습니다.

  • 잘못된 FunctionName: JavaScript 함수의 이름이 Library 속성에 할당된 JavaScript 웹 리소스의 유효한 함수 이름과 일치하지 않습니다.
  • 잘못된 라이브러리: 이 경로는 유효한 JavaScript 웹 리소스를 참조하지 않거나 접두사로 되어 $webresource:있지 않습니다.
  • 누락된 매개 변수: JavaScript 함수는 특정 매개 변수를 예상하며 명령 정의는 매개 변수를 선언하지 않습니다.
  • 잘못된 매개 변수 형식 또는 순서: 매개 변수는 잘못된 형식을 사용하여 선언되거나 JavaScript 함수 선언에 나열된 매개 변수와 다른 순서로 선언됩니다.

자세한 구성 도움말은 리본 작업 정의를 참조하세요.

이러한 구성이 올바른 경우 JavaScript 코드 오류가 원인일 수 있습니다. 사용자 지정 JavaScript 함수가 잘못 코딩되고 예상 동작을 호출하지 않으면 단추가 예상대로 작동하지 않습니다. 나열된 구성 실수 중 하나가 발견되면 명령 정의를 수정하여 문제를 resolve. 그렇지 않으면 단추가 올바르게 작동하도록 JavaScript 함수 코드를 디버그하고 수정해야 할 수 있습니다.

단추 명령이 무엇이며 잘못된 정의를 설치한 솔루션을 식별합니다.

  1. 명령 검사기를 사용하도록 설정하고 검사할 명령 단추를 선택합니다.

  2. 명령 속성 탭을 선택하여 이 단추에 대한 명령의 세부 정보를 표시합니다.

    단추의 명령 속성 탭 스크린샷

  3. 명령 속성 탭에는 작업 및 해당 JavaScriptFunction 구성이 표시됩니다. 명령 이름 아래의 명령 정의 솔루션 계층 보기 링크를 선택하여 명령 정의를 설치한 솔루션을 확인합니다.

    명령 이름 아래의 명령 정의 솔루션 계층 보기 링크 스크린샷

  4. 솔루션 계층 창에는 특정 솔루션이 설치한 각 리본 구성 요소 정의의 계층화가 표시됩니다. 목록 맨 위에 있는 계층은 애플리케이션에서 사용하는 현재 정의입니다. 다른 계층은 비활성 상태이며 현재 애플리케이션에서 사용되지 않습니다. 최상위 솔루션이 제거되거나 정의를 제거하는 업데이트된 버전이 설치된 경우 다음 계층은 애플리케이션에서 사용하는 현재 활성 정의가 됩니다. 관리되지 않는 활성 솔루션 계층이 있는 경우 항상 애플리케이션에서 사용하는 정의입니다. 나열된 활성 솔루션이 없는 경우 목록 맨 위에 나열된 솔루션은 애플리케이션에서 사용하는 정의가 됩니다. Microsoft에서 게시하지 않은 사용자 지정 관리형 솔루션도 Microsoft에서 게시한 솔루션 계층보다 우선합니다.

    엔터티 컨텍스트는 리본 사용자 지정이 있는 개체를 나타냅니다. "모든 엔터티"가 나열된 경우 계층은 엔터티별이 아닌 애플리케이션 리본 클라이언트 확장에서 가져옵니다. 그렇지 않으면 엔터티의 논리적 이름이 나열됩니다.

    둘 이상의 계층이 있는 경우 두 개의 행을 선택하고 비교 를 선택하여 각 솔루션에서 제공하는 정의의 비교를 볼 수 있습니다.

    뒤로를 선택하면 이전 명령 검사기 창으로 돌아갑니다.

    솔루션 계층이 하나만 있는 경우 8단계로 이동합니다. 그렇지 않으면 상위 두 솔루션 계층을 선택합니다. (활성 솔루션에 레이어가 있지만 맨 위에 나열되지 않은 경우 활성 솔루션 계층을 선택한 다음 맨 위 행을 선택합니다.) 그런 다음, 비교를 선택합니다.

    상위 두 솔루션 계층을 선택하고 비교 옵션을 선택하는 스크린샷

  5. 현재 활성 정의와 이전 비활성 정의의 비교가 표시되며 차이점(있는 경우)을 표시합니다. 다음 예제에서는 Microsoft에서 게시한 시스템 솔루션 계층의 다른 비활성 정의와 비교하여 값을 잘못 지정하여 FunctionName 관리되지 않는 활성 정의가 사용자 지정되었음을 보여줍니다. 값은 FunctionName 로 예상되지 XrmCore.Commands.Delete.deletePrimaryRecord만 사용자 지정 정의는 를 선언했습니다 FunctionName="deletePrimaryRecord". 이 경우 함수를 찾을 수 없으므로 단추를 선택할 때 아무 일도 발생하지 않습니다.

    스크린샷은 현재 활성 정의와 이전 비활성 정의의 비교를 보여줍니다.

  6. 단추의 작업 기능을 수정하는 데 필요한 접근 방식은 특정 시나리오의 다양한 사용자 지정에 따라 달라집니다. 예제를 고려할 때 잘못된 값을 지정하여 명령을 사용자 지정했습니다 FunctionName . 명령의 사용자 지정 버전을 수정하고 값을 수정할 수 있습니다 FunctionName . 이는 Microsoft에서 게시한 정의의 사용자 지정 재정의이며 다른 의도적인 수정 사항이 없으므로 이 사용자 지정 버전의 명령을 삭제하여 기본 기능을 복원하는 것이 좋습니다.

다음 복구 옵션 중 하나를 선택합니다.

옵션 1: 잘못된 JavaScriptFunction 선언이 있는 명령을 삭제합니다.
명령은 관리되지 않는 활성 솔루션에 있습니다.

활성 비관리 솔루션 계층에서 명령을 삭제하려면 엔터티 또는 애플리케이션 리본이 포함된 관리되지 않는 솔루션을 내보내고 customizations.xml 파일에서 노드를 편집 <RibbonDiffXml> 한 다음 구성 요소를 삭제하기 위해 이 명령이 제거된 이 솔루션의 새 버전을 가져옵니다. 내보내기, 편집 준비 및 리본 가져오기를 참조하세요.

명령은 엔터티별입니다.

예제 시나리오에 따라 엔터티가 계정이고 삭제Mscrm.DeletePrimaryRecord해야 하는 명령이 이고 DefaultPublisherCITest라는 게시자의 관리되지 않는 활성 솔루션 계층에 선언된 것으로 확인되었습니다.

  1. 고급 설정을 엽니다.

  2. 설정>솔루션으로 이동합니다.

  3. 새로 만들기를 선택하여 새 솔루션을 만들고 명령 및 활성 솔루션 계층에 대한 명령 검사기의 솔루션 계층 목록에 표시된 값으로 게시자를 설정합니다. (이 예제에서는 DefaultPublisherCITTest입니다.)

  4. 엔터티 기존 항목>추가를 선택합니다.

  5. 명령이 정의된 엔터티(예에서는 "계정")를 선택한 다음 확인을 선택합니다.

  6. 마침을 선택하기 전에 엔터티 메타데이터 포함모든 자산 추가 옵션을 선택 취소해야 합니다.

  7. 저장을 선택합니다.

  8. 솔루션 내보내기를 선택하고 관리되지 않는 솔루션을 내보냅니다.

  9. .zip 파일을 추출합니다.

  10. customizations.xml 파일을 엽니다.

  11. <Entity> 편집할 엔터티 노드의 노드 자식 을 찾아 자식 <RibbonDiffXml> 노드를 찾습니다.

  12. 노드를 찾습니다 <CommandDefinition> . (예제에서 노드의 ID는 <CommandDefinition> 입니다 Mscrm.DeletePrimaryRecord. 따라서 다음 노드를 찾습니다.)

    스크린샷은 CommandDefinition 노드의 위치를 보여줍니다.

  13. 노드를 <RibbonDiffXml> 편집하여 삭제하려는 명령의 ID가 있는 특정 <CommandDefinition> 노드를 제거합니다. 존재할 수 있는 다른 <CommandDefinition> 노드를 의도치 않게 삭제하지 않도록 합니다. (예제에 따라 ID가 <CommandDefinition> 인 노드를 삭제합니다 Mscrm.DeletePrimaryRecord.)

    CommandDefinition 노드를 삭제하는 스크린샷

  14. customizations.xml 파일을 저장합니다.

  15. 수정된 customizations.xml 파일을 솔루션 .zip 파일로 복원합니다.

  16. 솔루션 파일을 가져옵니다.

  17. 모든 사용자 지정 게시를 선택합니다.

명령은 애플리케이션 리본에 있습니다("모든 엔터티"에 적용됨).

명령이 엔터티별이 아니라 애플리케이션 리본에 선언된 "모든 엔터티"에 적용할 수 있는 경우 단계는 다음과 같이 약간 다릅니다.

  1. 고급 설정을 엽니다.
  2. 설정>솔루션으로 이동합니다.
  3. 새로 만들기를 선택하여 새 솔루션을 만들고 명령 및 활성 솔루션 계층에 대한 명령 검사기의 솔루션 계층 목록에 표시된 값으로 게시자를 설정합니다.
  4. 클라이언트 확장> 기존애플리케이션 리본추가를> 선택합니다.
  5. 저장을 선택합니다.
  6. 솔루션 내보내기를 선택하고 관리되지 않는 솔루션을 내보냅니다.
  7. .zip 파일을 추출합니다.
  8. customizations.xml 파일을 엽니다.
  9. 루트 <RibbonDiffXml> 노드를 찾습니다.
  10. 노드를 찾습니다 <CommandDefinition> .
  11. <RibbonDiffXml>편집하고 삭제하려는 명령의 ID가 있는 노드를 제거 <CommandDefinition> 합니다. 존재할 수 있는 다른 <CommandDefinition> 노드를 의도치 않게 삭제하지 않도록 합니다.
  12. customizations.xml 파일을 저장합니다.
  13. 수정된 customizations.xml 파일을 압축된 솔루션 .zip 파일로 복원합니다.
  14. 솔루션 파일을 가져옵니다.
  15. 모든 사용자 지정 게시를 선택합니다.
이 명령은 회사에서 작성한 사용자 지정 관리형 솔루션의 명령입니다.

만든 사용자 지정 관리형 솔루션에서 설치한 명령을 삭제하려면 다음 단계를 수행합니다.

  1. 사용자 지정 솔루션의 관리되지 않는 원본 버전이 있는 별도의 개발 organization 명령의 위에 나열된 단계를 완료합니다. 이 명령은 관리되지 않는 활성 솔루션 옵션에 있습니다.
  2. 사용자 지정 솔루션의 버전을 증분합니다.
  3. 솔루션을 관리되는 솔루션으로 내보냅니다.
  4. 영향을 받는 별도의 organization 사용자 지정 관리형 솔루션의 새 버전을 가져옵니다.
이 명령은 회사에서 작성하지 않은 사용자 지정 관리형 솔루션(세 번째 부분 또는 ISV)의 명령입니다.

타사 또는 ISV에서 만든 사용자 지정 관리형 솔루션에 의해 설치된 명령을 삭제하려면 솔루션 작성자에게 문의하여 특정 명령 정의가 제거된 솔루션의 새 버전을 요청한 다음 영향을 받는 organization 이 새 솔루션을 설치해야 합니다.

옵션 2: JavaScriptFunction 선언 명령 수정
명령은 관리되지 않는 활성 솔루션에 있습니다.

활성 비관리 솔루션 계층에서 명령을 수정하려면 엔터티 또는 애플리케이션 리본이 포함된 관리되지 않는 솔루션을 내보내고 ,customizations.xml 파일에서 노드를 편집 <RibbonDiffXml> 한 다음, 고정 명령 정의가 포함된 이 솔루션의 새 버전을 가져옵니다. 내보내기, 편집 준비 및 리본 가져오기를 참조하세요.

경고

통합 인터페이스에 단추를 강제로 표시하려면 명령에서 표시 규칙을 제거 Mscrm.HideOnModern 하지 마세요. 표시 규칙이 있는 Mscrm.HideOnModern 명령은 레거시 웹 클라이언트 인터페이스용이며 통합 인터페이스에서 지원되지 않으며 제대로 작동하지 않을 수 있습니다.

명령은 엔터티별입니다.

예제 시나리오에 따라 엔터티가 계정이고, 수정해야 하는 명령이 Mscrm.DeletePrimaryRecord이고, DefaultPublisherCITest라는 게시자의 관리되지 않는 활성 솔루션 계층에 선언된 것으로 확인되었습니다.

  1. 고급 설정을 엽니다.

  2. 설정>솔루션으로 이동합니다.

  3. 새로 만들기를 선택하여 새 솔루션을 만들고 명령 및 활성 솔루션 계층에 대한 명령 검사기의 솔루션 계층 목록에 표시된 값으로 게시자를 설정합니다. (이 예제에서는 DefaultPublisherCITTest입니다.)

  4. 엔터티 기존 항목>추가를 선택합니다.

  5. 명령이 정의된 엔터티(예제에서는 계정)를 선택한 다음 확인을 선택합니다.

  6. 마침을 선택하기 전에 엔터티 메타데이터 포함모든 자산 추가 옵션을 선택 취소해야 합니다.

  7. 저장을 선택합니다.

  8. 솔루션 내보내기를 선택하고 관리되지 않는 솔루션을 내보냅니다.

  9. .zip 파일을 추출합니다.

  10. customizations.xml 파일을 엽니다.

  11. <Entity> 편집할 엔터티 노드의 노드 자식 을 찾아 자식 <RibbonDiffXml> 노드를 찾습니다.

  12. 노드를 찾습니다 <CommandDefinition> . (예제에서 노드의 ID는 <CommandDefinition> 입니다 Mscrm.DeletePrimaryRecord. 따라서 다음 노드를 찾습니다.)

    스크린샷은 예제 CommandDefinition 노드의 위치를 보여줍니다.

  13. 노드를 <RibbonDiffXml> 편집하고, 명령을 수정하기 위해 <CommandDefinition> 올바른 상황에서 명령이 올바르게 작동할 수 있도록 노드에 필요한 변경 내용을 적용합니다. 명령을 선언하는 방법에 대한 자세한 내용은 리본 명령 정의리본 작업 정의를 참조하세요. (예제에 따라 값을 로 설정하여 노드를 JavaScriptFunctionFunctionName 수정 <CommandDefinition> 합니다XrmCore.Commands.Delete.deletePrimaryRecord.)

    FunctionName 값을 설정하여 CommandDefinition 노드의 JavaScriptFunction을 수정하는 스크린샷

  14. 수정된 customizations.xml 파일을 솔루션 .zip 파일로 복원합니다.

  15. 솔루션 파일을 가져옵니다.

  16. 모든 사용자 지정 게시를 선택합니다.

명령은 애플리케이션 리본에 있습니다("모든 엔터티"에 적용됨).

명령이 엔터티별이 아니라 애플리케이션 리본에 선언된 "모든 엔터티"에 적용할 수 있는 경우 단계는 다음과 같이 약간 다릅니다.

  1. 고급 설정을 엽니다.
  2. 설정>솔루션으로 이동합니다.
  3. 새로 만들기를 선택하여 새 솔루션을 만들고 명령 및 활성 솔루션 계층에 대한 명령 검사기의 솔루션 계층 목록에 표시된 값으로 게시자를 설정합니다.
  4. 클라이언트 확장> 기존애플리케이션 리본추가를> 선택합니다.
  5. 저장을 선택합니다.
  6. 솔루션 내보내기를 선택하고 관리되지 않는 솔루션을 내보냅니다.
  7. .zip 파일을 추출합니다.
  8. customizations.xml 파일을 엽니다.
  9. 루트 <RibbonDiffXml> 노드를 찾습니다.
  10. 를 찾습니다 <CommandDefinition>.
  11. 노드를 <RibbonDiffXml> 편집하여 명령을 수정하기 위해 <CommandDefinition> 올바른 상황에서 명령이 올바르게 작동하도록 하는 노드에 필요한 변경 내용을 적용합니다. 명령을 선언하는 방법에 대한 자세한 내용은 리본 명령 정의리본 작업 정의를 참조하세요.
  12. customizations.xml 파일을 저장합니다.
  13. 수정된 customizations.xml 파일을 압축된 솔루션 .zip 파일로 복원합니다.
  14. 솔루션 파일을 가져옵니다.
  15. 모든 사용자 지정 게시를 선택합니다.
이 명령은 내가 작성한 사용자 지정 관리형 솔루션의 명령입니다.

만든 사용자 지정 관리형 솔루션에서 설치한 명령을 수정하려면 다음 단계를 수행합니다.

  1. 사용자 지정 솔루션의 관리되지 않는 원본 버전이 있는 별도의 개발 organization 명령의 위에 나열된 단계를 완료합니다. 이 명령은 관리되지 않는 활성 솔루션 옵션에 있습니다.
  2. 사용자 지정 솔루션의 버전을 증분합니다.
  3. 솔루션을 관리되는 솔루션으로 내보냅니다.
  4. 영향을 받는 별도의 organization 사용자 지정 관리형 솔루션의 새 버전을 가져옵니다.
이 명령은 작성하지 않았거나 제 organization 소유하지 않은 사용자 지정 관리형 솔루션의 명령입니다(타사/ISV에서).

타사 또는 ISV에서 만든 사용자 지정 관리형 솔루션에서 설치한 명령을 수정하려면 솔루션 작성자에게 문의하여 고정 명령 정의가 포함된 솔루션의 새 버전을 요청하고 영향을 받는 organization 이 새 솔루션을 설치해야 합니다.

스크립트 오류 메시지가 표시됩니다. "잘못된 JavaScript 작업 라이브러리"](#tab/error)

선택할 때 오류가 표시되는 단추 수정

리본 명령 모음 단추를 선택하고 오류가 발생하면 일반적으로 잘못된 리본 명령 사용자 지정으로 인해 오류가 발생합니다.

스크립트 오류 "잘못된 JavaScript 작업 라이브러리" 수정

다음과 유사한 스크립트 오류 메시지가 표시될 수 있습니다.

잘못된 JavaScript 작업 라이브러리: [스크립트 이름]은 웹 리소스가 아니며 지원되지 않습니다.

스크린샷은 스크립트 오류 메시지의 예를 보여줍니다.

이는 명령의 에 잘못된 라이브러리를 선언한 잘못된 리본 명령 JavaScriptFunction사용자 지정으로 인해 발생합니다.

  1. 명령 검사기를 사용하도록 설정하고 검사할 명령 단추를 선택합니다.

  2. 다음 예제에서는 계정 엔터티의 양식 페이지에 있는 새로 만들기 단추가 표시되고 새로 만들기라는 레이블이 지정된 항목으로 표시됩니다.

    스크린샷은 계정 엔터티의 양식 페이지에 있는 새로 만들기 단추를 보여줍니다.

  3. 명령 속성 탭을 선택하여 이 단추에 대한 명령의 세부 정보를 표시합니다. 그러면 Actions 및 JavaScriptFunction 선언이 표시되고 모든 규칙 평가의 결과(True, False, Skipped)와 함께 규칙을 사용하거나 표시합니다.

    "chevron" 아이콘을 선택하여 함수 선언의 세부 정보를 확인하여 JavaScriptFunction을 확장합니다. Library 속성은 JavaScript 웹 리소스여야 하며 접두사여야 $webresource:합니다. 다음 예제에서는 Library 속성이 _/_static/common/scripts/RibbonActions.js것을 보여 줍니다. 유효한 JavaScript 웹 리소스에 대한 경로가 아닙니다. 다음으로 명령의 솔루션 계층을 검토하여 문제를 해결하기 위한 올바른 값을 식별해야 합니다.

    스크린샷은 Library 속성의 예를 보여줍니다.

  4. 명령 이름 아래의 명령 정의 솔루션 계층 보기 링크를 선택하여 명령 정의를 설치한 솔루션을 확인합니다.

    명령 이름 아래의 명령 정의 솔루션 계층 보기 링크 스크린샷

  5. 솔루션 계층 창에는 특정 솔루션이 설치한 각 리본 구성 요소 정의의 계층화가 표시됩니다. 목록 맨 위에 있는 계층은 애플리케이션에서 사용되는 현재 정의이며, 다른 계층은 비활성 상태이며 현재 애플리케이션에서 사용되지 않습니다. 최상위 솔루션이 제거되거나 정의를 제거하는 업데이트된 버전이 설치된 경우 다음 계층은 애플리케이션에서 사용하는 현재 활성 정의가 됩니다. 관리되지 않는 활성 솔루션 계층이 있는 경우 항상 애플리케이션에서 사용하는 정의입니다. 나열된 활성 솔루션이 없는 경우 목록 맨 위에 나열된 솔루션은 애플리케이션에서 사용하는 정의입니다. Microsoft에서 게시하지 않은 사용자 지정 관리형 솔루션도 Microsoft에서 게시한 솔루션 계층보다 우선합니다.

    엔터티 컨텍스트는 리본 사용자 지정이 켜져 있는 개체를 나타내며, "모든 엔터티"가 나열된 경우 계층은 엔터티가 아닌 애플리케이션 리본 클라이언트 확장에서 온 것이며, 그렇지 않으면 엔터티의 논리적 이름이 나열됩니다.

    둘 이상의 계층이 있는 경우 두 개의 행을 선택하고 비교 를 선택하여 각 솔루션에서 가져온 정의의 비교를 볼 수 있습니다.

    뒤로를 선택하면 이전 명령 검사기 창으로 돌아갑니다.

    다음 이미지는 예제의 명령에 대한 솔루션 계층을 보여 줍니다. 두 개의 솔루션 계층이 있고 하나는 Active라는 솔루션에서 나타내는 관리되지 않는 사용자 지정이고 다른 하나는 Microsoft에서 게시한 시스템 솔루션에서 온 것입니다. 실제 시나리오가 다를 수 있고, 활성 솔루션 계층이 없을 수도 있고, 관리형 솔루션이 있을 수 있으며, 해당 솔루션의 이름이 여기에 나열됩니다.

    상위 두 행을 선택하고 비교 를 선택하여 각 솔루션에서 가져온 정의의 비교를 봅니다. 솔루션 계층이 하나만 있는 경우 이 단계를 건너뜁니다.

    상위 두 행을 선택하고 비교 옵션을 선택하여 정의 비교를 보는 스크린샷

  6. 명령 정의 간의 비교는 두 계층 간에 존재할 수 있는 모든 차이점을 보여 줍니다. 다음 예제에서는 라이브러리 값이 다르다는 것을 명확하게 보여줍니다. 활성 솔루션의 관리되지 않는 항목이 잘못된 경로 _/_static/common/scripts/RibbonActions.js (특정 경로가 약간 다를 수 있음)로 설정되었으며 Microsoft의 기본 정의에서 라이브러리를 로 $webresoure:Main_system_library.js설정했습니다. 이 특정 명령에 대해 지원되는 경로입니다(이 값은 특정 명령에 따라 다를 수 있습니다). 유일하게 지원되는 경로는 으로 $webresource: 시작하고 유효한 JavaScript 웹 리소스의 이름으로 끝나는 경로입니다.

    라이브러리 값이 다른 예제를 보여 주는 스크린샷

  7. 이제 솔루션 계층을 검토하고 사용자 지정을 설치한 솔루션을 결정했으므로 적절한 솔루션에서 정의를 수정해야 합니다.

특정 시나리오와 일치하는 다음 옵션 중 하나를 선택합니다.

명령은 관리되지 않는 활성 솔루션에 있습니다.

명령을 수정하는 방법은 정의가 유일한 정의인지 또는 다른 비활성 정의가 있는지 여부 및 변경 내용이 의도적인지 여부에 따라 달라집니다.

시나리오를 반영하는 옵션을 선택합니다.

  • 명령에 의도적인 수정 사항이 없으며 이 사용자 지정 계층을 제거하려고 합니다.

    활성 비관리 솔루션 계층에서 명령을 삭제하려면 엔터티 또는 애플리케이션 리본이 포함된 관리되지 않는 솔루션을 내보내고, customizations.xml 파일에서 노드를 편집 <RibbonDiffXml> 한 다음, 구성 요소를 삭제하기 위해 이 명령이 제거된 이 솔루션의 새 버전을 가져옵니다. 내보내기, 편집 준비 및 리본 가져오기를 참조하세요.

    명령은 엔터티별입니다.

    예제 시나리오에 따라 엔터티가 계정이고 삭제Mscrm.NewRecordFromForm해야 하는 명령이 이고 DefaultPublisherCITest라는 게시자의 관리되지 않는 활성 솔루션 계층에 선언된 것으로 확인되었습니다.

    1. 고급 설정을 엽니다.

    2. 설정>솔루션으로 이동합니다.

    3. 새로 만들기를 선택하여 새 솔루션을 만들고 명령 및 활성 솔루션 계층에 대한 명령 검사기의 솔루션 계층 목록에 표시된 값으로 게시자를 설정합니다. (이 예제에서는 DefaultPublisherCITTest입니다.)

    4. 엔터티 기존 항목>추가를 선택합니다.

    5. 명령이 정의된 엔터티를 선택합니다. (예제에서 이것은 계정)이며 확인을 선택합니다.

    6. 마침을 선택하기 전에 엔터티 메타데이터 포함모든 자산 추가 옵션을 선택 취소해야 합니다.

    7. 저장을 선택합니다.

    8. 솔루션 내보내기를 선택하고 관리되지 않는 솔루션을 내보냅니다.

    9. .zip 파일을 추출합니다.

    10. customizations.xml 파일을 엽니다.

    11. <Entity> 편집할 엔터티 노드의 노드 자식 을 찾아 자식 <RibbonDiffXml> 노드를 찾습니다.

    12. 노드를 찾습니다 <CommandDefinition> (예제에서 의 ID는 <CommandDefinition> 입니다 Mscrm.NewRecordFromForm. 따라서 다음 노드를 찾습니다.)

      CommandDefinition 노드의 위치 스크린샷

    13. 노드를 <RibbonDiffXml> 편집하여 특정 <CommandDefinition> 노드를 제거합니다. 존재할 수 있는 다른 <CommandDefinition> 노드를 의도치 않게 삭제하지 않도록 합니다. (예제에 따라 ID가 <CommandDefinition> 인 노드를 삭제합니다 Mscrm.NewRecordFromForm.)

      CommandDefinition 노드를 삭제하는 예제를 보여 주는 스크린샷

    14. customizations.xml 파일을 저장합니다.

    15. 수정된 customizations.xml 파일을 솔루션 .zip 파일로 복원합니다.

    16. 솔루션 파일을 가져옵니다.

    17. 모든 사용자 지정 게시를 선택합니다.

    명령은 애플리케이션 리본에 있습니다("모든 엔터티"에 적용됨).

    명령이 엔터티별이 아니라 애플리케이션 리본에 선언된 "모든 엔터티"에 적용할 수 있는 경우 단계는 다음과 같이 약간 다릅니다.

    1. 고급 설정을 엽니다.
    2. 설정>솔루션으로 이동합니다.
    3. 새로 만들기를 선택하여 새 솔루션을 만들고 명령 및 활성 솔루션 계층에 대한 명령 검사기의 솔루션 계층 목록에 표시된 값으로 게시자를 설정합니다.
    4. 클라이언트 확장> 기존애플리케이션 리본추가를> 선택합니다.
    5. 저장을 선택합니다.
    6. 솔루션 내보내기를 선택하고 관리되지 않는 솔루션을 내보냅니다.
    7. .zip 파일을 추출합니다.
    8. customizations.xml 파일을 엽니다.
    9. 루트 <RibbonDiffXml> 노드를 찾습니다.
    10. 노드를 찾습니다 <CommandDefinition> .
    11. 편집 <RibbonDiffXml> 하여 삭제하려는 명령의 ID가 일치하는 노드를 제거 <CommandDefinition> 합니다. 존재할 수 있는 다른 <CommandDefinition> 노드를 의도치 않게 삭제하지 않도록 합니다.
    12. customizations.xml 파일을 저장합니다.
    13. 수정된 customizations.xml 파일을 압축된 솔루션 .zip 파일로 복원합니다.
    14. 솔루션 파일을 가져옵니다.
    15. 모든 사용자 지정 게시를 선택합니다.
  • 명령에는 유지하려는 추가 수정 사항이 있으며 이 솔루션 계층을 수정하려고 합니다.

    활성 비관리 솔루션 계층에서 명령을 수정하려면 엔터티 또는 애플리케이션 리본이 포함된 관리되지 않는 솔루션을 내보내고 customizations.xml 파일에서 노드를 편집 <RibbonDiffXml> 한 다음 고정 명령 정의가 포함된 이 솔루션의 새 버전을 가져옵니다. 내보내기, 편집 준비 및 리본 가져오기를 참조하세요.

    경고

    통합 인터페이스에 단추를 강제로 표시하려면 명령에서 표시 규칙을 제거 Mscrm.HideOnModern 하지 마세요. 표시 규칙이 있는 Mscrm.HideOnModern 명령은 레거시 웹 클라이언트 인터페이스용이며 통합 인터페이스에서 지원되지 않으며 제대로 작동하지 않을 수 있습니다.

    명령은 엔터티별입니다.

    예제 시나리오에 따라 엔터티가 계정이고, 수정해야 하는 명령이 Mscrm.NewRecordFromForm이고, DefaultPublisherCITest라는 게시자의 관리되지 않는 활성 솔루션 계층에 선언된 것으로 확인되었습니다.

    1. 고급 설정을 엽니다.

    2. 설정>솔루션으로 이동합니다.

    3. 새로 만들기를 선택하여 새 솔루션을 만들고 명령 및 활성 솔루션 계층에 대한 명령 검사기의 솔루션 계층 목록에 표시된 값으로 게시자를 설정합니다. (이 예제에서는 DefaultPublisherCITTest입니다.)

    4. 엔터티 기존 항목>추가를 선택합니다.

    5. 명령이 정의된 엔터티(예제에서는 계정)를 선택한 다음 확인을 선택합니다.

    6. 마침을 선택하기 전에 엔터티 메타데이터 포함모든 자산 추가 옵션을 선택 취소해야 합니다.

    7. 저장을 선택합니다.

    8. 솔루션 내보내기를 선택하고 관리되지 않는 솔루션을 내보냅니다.

    9. .zip 파일을 추출합니다.

    10. customizations.xml 파일 열기

    11. <Entity> 편집할 엔터티 노드의 노드 자식 노드를 찾아 자식 <RibbonDiffXml> 노드를 찾습니다.

    12. 노드를 찾습니다 <CommandDefinition> . (예제에서 노드의 ID는 <CommandDefinition> 입니다 Mscrm.NewRecordFromForm. 따라서 다음 노드를 찾습니다.)

      스크린샷은 ID가 Mscrm.NewRecordFromForm인 CommandDefinition 노드의 위치를 보여줍니다.

    13. 명령을 수정하기 위해 <CommandDefinition> 올바른 상황에서 명령이 올바르게 작동하도록 하는 노드에 필요한 변경 내용을 적용하려면 편집 <RibbonDiffXml> 합니다. 명령을 선언하는 방법에 대한 자세한 내용은 리본 명령 정의리본 작업 정의를 참조하세요. (예제에 따라 를 설정Library="$webresoure:Main_system_library.js"하여 노드를 <CommandDefinition> 수정한 다음 값이 FunctionName 일치하는지 확인합니다. 이 예제에서는 입니다FunctionName="XrmCore.Commands.Open.openNewRecord".)

      CommandDefinition 노드를 수정한 다음 FunctionName 값이 일치하는지 확인하는 스크린샷

    14. customizations.xml 파일을 저장합니다.

    15. 수정된 customizations.xml 파일을 솔루션 .zip 파일로 복원합니다.

    16. 솔루션 파일을 가져옵니다.

    17. 모든 사용자 지정 게시를 선택합니다.

    명령은 애플리케이션 리본에 있습니다("모든 엔터티"에 적용됨).

    명령이 엔터티별이 아니고 애플리케이션 리본에 선언된 "모든 엔터티"에 적용할 수 있는 경우 단계는 다음과 같이 약간 다릅니다.

    1. 고급 설정을 엽니다.
    2. 설정>솔루션으로 이동합니다.
    3. 새로 만들기를 선택하여 새 솔루션을 만들고 명령 및 활성 솔루션 계층에 대한 명령 검사기의 솔루션 계층 목록에 표시된 값으로 게시자를 설정합니다.
    4. 클라이언트 확장> 기존애플리케이션 리본추가를> 선택합니다.
    5. 저장을 선택합니다.
    6. 솔루션 내보내기를 선택하고 관리되지 않는 솔루션을 내보냅니다.
    7. .zip 파일을 추출합니다.
    8. customizations.xml 파일을 엽니다.
    9. 루트 <RibbonDiffXml> 노드를 찾습니다.
    10. 노드를 찾습니다 <CommandDefinition> .
    11. 노드를 <RibbonDiffXml> 편집하여 명령을 수정하기 위해 <CommandDefinition> 올바른 상황에서 명령이 올바르게 작동하도록 하는 노드에 필요한 변경 내용을 적용합니다. 명령을 선언하는 방법에 대한 자세한 내용은 리본 명령 정의리본 작업 정의를 참조하세요.
    12. customizations.xml 파일을 저장합니다.
    13. 수정된 customizations.xml 파일을 압축된 솔루션 .zip 파일로 복원합니다.
    14. 솔루션 파일을 가져옵니다.
    15. 모든 사용자 지정 게시를 선택합니다.
이 명령은 내가 작성한 사용자 지정 관리형 솔루션의 명령입니다.

만든 사용자 지정 관리형 솔루션에서 설치한 명령을 수정하려면 다음 단계를 수행합니다.

  1. 사용자 지정 솔루션의 관리되지 않는 원본 버전이 있는 별도의 개발 organization 명령의 위에 나열된 단계를 완료합니다. 이 명령은 관리되지 않는 활성 솔루션 옵션에 있습니다.
  2. 사용자 지정 솔루션의 버전을 증분합니다.
  3. 솔루션을 관리되는 솔루션으로 내보냅니다.
  4. 영향을 받는 별도의 organization 사용자 지정 관리형 솔루션의 새 버전을 가져옵니다.
이 명령은 작성하지 않았거나 제 organization 소유하지 않은 사용자 지정 관리형 솔루션의 명령입니다(타사 또는 ISV에서).

타사 또는 ISV에서 만든 사용자 지정 관리형 솔루션에서 설치한 명령을 수정하려면 솔루션 작성자에게 문의하여 고정 명령 정의가 포함된 솔루션의 새 버전을 요청한 다음 영향을 받는 organization 이 새 솔루션을 설치해야 합니다.

명령은 Microsoft에서 게시한 관리형 솔루션에 있습니다.

Microsoft에서 게시한 관리형 솔루션에서 설치한 명령을 수정하려면 최신 버전의 솔루션을 설치해야 할 수 있습니다. 이 작업은 일반적으로 릴리스 업데이트 중에 수행됩니다. 여전히 수정해야 하는 버그를 식별했을 수 있습니다. 고객 지원에 문의하세요.