다음을 통해 공유


솔루션 구성 요소에 대한 종속성 추적

이 항목은 Dynamics 365 Customer Engagement (on-premises)에 적용됩니다. 이 항목의 Power Apps 버전은 다음을 참조하십시오. 솔루션 구성 요소에 대한 종속성 추적

솔루션은 솔루션 구성 요소로 구성됩니다. Dynamics 365 고객 참여(온-프레미스)의 솔루션 영역을 사용하여 솔루션 구성 요소를 만들거나 추가합니다. 매개 변수를 포함하는 AddSolutionComponentRequest 솔루션 구성 요소를 만들거나 업데이트하는 메시지 또는 메시지를 사용하여 SolutionUniqueName 프로그래밍 방식으로 이러한 작업을 수행할 수 있습니다.

솔루션 구성 요소는 종종 다른 솔루션 구성 요소에 따라 달라집니다. 다른 솔루션 구성 요소에 대한 종속성이 있는 솔루션 구성 요소는 삭제할 수 없습니다. 예를 들어 사용자 지정된 리본에는 일반적으로 이미지 또는 스크립트 웹 리소스가 아이콘을 표시하고 스크립트를 사용하여 작업을 수행해야 합니다. 사용자 지정된 리본이 솔루션에 있는 한 사용하는 특정 웹 리소스가 필요합니다. 웹 리소스를 삭제하려면 먼저 사용자 지정된 리본에서 해당 리소스에 대한 참조를 제거해야 합니다. 이러한 솔루션 구성 요소 종속성은 종속성 표시를 클릭하여 애플리케이션에서 볼 수 있습니다.

이 항목에서는 솔루션에 포함할 수 있는 솔루션 구성 요소의 유형과 솔루션이 서로 어떻게 의존하는지에 대해 설명합니다.

모든 솔루션 구성 요소

사용 가능한 솔루션 구성 요소 유형의 전체 목록은 시스템 componenttype 전역 옵션 집합에 있습니다. REST 엔드포인트를 https://[ORGANIZATION_NAME].api.crm.dynamics.com/api/data/v9.0/GlobalOptionSetDefinitions(Name='componenttype')사용하여 이 데이터를 쿼리하고 코드를 사용하여 모든 componenet을 볼 수 있습니다. 이 속성에 대해 지원되는 값 범위는 프로젝트에 SampleCode\CS\HelperCode\OptionSets.cs 또는 SampleCode\VB\HelperCode\OptionSets.vb 포함하여 사용할 수 있습니다. 그러나 나열된 많은 솔루션 구성 요소 유형은 내부용으로만 사용되며, 목록에는 솔루션 구성 요소 간의 관계에 대한 정보가 제공되지 않습니다.

솔루션 구성 요소 종속성

솔루션 구성 요소 종속성은 솔루션으로 작업하는 신뢰할 수 있는 환경을 보장하는 데 도움이 됩니다. 일반적으로 수행하는 작업이 솔루션에 정의된 사용자 지정을 실수로 중단하지 않도록 방지합니다. 이러한 종속성은 단순히 솔루션을 가져오거나 삭제하여 관리형 솔루션을 설치하고 제거할 수 있도록 하는 것입니다.

솔루션 프레임워크는 솔루션 구성 요소에 대한 종속성을 자동으로 추적합니다. 솔루션 구성 요소의 모든 작업은 시스템의 다른 구성 요소에 대한 종속성을 자동으로 계산합니다. 종속성 정보는 시스템의 무결성을 유지하고 일관성 없는 상태로 이어질 수 있는 작업을 방지하는 데 사용됩니다.

종속성 추적의 결과로 다음 동작이 적용됩니다.

  • 시스템의 다른 구성 요소가 구성 요소에 의존하는 경우 구성 요소를 삭제할 수 없습니다.

  • 솔루션을 내보내면 다른 시스템에서 해당 솔루션을 가져올 때 오류가 발생할 수 있는 누락된 구성 요소가 있는 경우 사용자에게 경고가 표시됩니다.

    솔루션 개발자가 종속 구성 요소가 있어야 하는 조직에만 솔루션을 설치하려는 경우 내보내기 중 경고를 무시할 수 있습니다. 예를 들어 미리 설치된 "기본" 솔루션을 통해 설치되도록 설계된 솔루션을 만들 때입니다.

  • 모든 필수 구성 요소가 솔루션에 포함되지 않고 대상 시스템에도 없는 경우 솔루션 가져오기가 실패합니다.

    • 또한 관리형 솔루션을 가져올 때 필요한 모든 구성 요소는 솔루션의 패키지 형식과 일치해야 합니다. 관리되는 솔루션의 구성 요소는 다른 관리되는 구성 요소에만 의존할 수 있습니다.

    솔루션 구성 요소 종속성에는 다음 세 가지 유형이 있습니다.

    솔루션 내부
    내부 종속성은 Dynamics 365 Customer Engagement(온-프레미스)에서 관리됩니다. 다른 솔루션 구성 요소 없이는 특정 솔루션 구성 요소가 존재할 수 없는 경우에 존재합니다.

    게시
    게시된 종속성은 두 솔루션 구성 요소가 서로 관련되어 게시될 때 만들어집니다. 이러한 유형의 종속성을 제거하려면 연결을 제거하고 엔터티를 다시 게시해야 합니다.

    미공개
    게시되지 않은 종속성은 업데이트 중인 게시할 수 있는 솔루션 구성 요소의 게시되지 않은 버전에 적용됩니다. 솔루션 구성 요소가 게시되면 게시된 종속성이 됩니다.

    솔루션 내부 종속성은 솔루션 구성 요소를 사용하는 작업에 다른 솔루션 구성 요소에 대한 작업이 필요한 종속성입니다. 예를 들어 엔터티를 삭제하는 경우 모든 엔터티 특성이 함께 삭제될 것으로 예상해야 합니다. 다른 엔터티와의 엔터티 관계도 삭제됩니다.

    그러나 내부 종속성은 게시된 종속성으로 이어질 수 있으며 여전히 수동 개입이 필요할 수 있습니다. 예를 들어 엔터티 폼에 조회 필드를 포함하고 관계에서 기본 엔터티를 삭제하는 경우 관련 엔터티 양식에서 조회 필드를 제거한 다음 양식을 게시할 때까지 해당 삭제를 완료할 수 없습니다.

    솔루션을 사용하여 프로그래밍 방식으로 작업을 수행하는 경우 엔터티와 관련된 Dependency 메시지를 사용할 수 있습니다. 구성 요소를 삭제하거나 솔루션을 제거하기 전에 존재할 수 있는 종속성을 식별하는 데 사용할 수 있는 메시지는 종 속성 엔터티 를 참조하세요.

솔루션 구성 요소 종속성 확인

솔루션을 편집할 때 다른 솔루션 구성 요소와 게시된 종속성이 있으므로 솔루션 구성 요소를 삭제할 수 없습니다. 또는 관리되는 솔루션의 구성 요소 중 하나가 다른 관리되지 않는 솔루션의 사용자 지정에 사용되었기 때문에 관리되는 솔루션을 제거하지 못할 수 있습니다.

다음 표에서는 솔루션 구성 요소 종속성에 대한 데이터를 검색하는 데 사용할 수 있는 메시지를 나열합니다.

Message Description
RetrieveDependentComponentsRequest 솔루션 구성 요소에 직접 의존하는 솔루션 구성 요소에 대한 종속성 목록을 반환합니다.

예를 들어 전역 옵션 집합 솔루션 구성 요소에 이 메시지를 사용하는 경우 전역 옵션 집합 솔루션 구성 요소를 참조하는 옵션 집합 특성을 나타내는 솔루션 구성 요소에 대한 종속성 레코드가 반환됩니다.

계정 엔터티에 대한 솔루션 구성 요소 레코드에 이 메시지를 사용하면 해당 엔터티에 사용되는 특성, 뷰 및 양식을 나타내는 모든 솔루션 구성 요소에 대한 종속성 레코드가 반환됩니다.
RetrieveRequiredComponentsRequest 다른 솔루션 구성 요소가 직접 사용하는 솔루션 구성 요소에 대한 종속성 목록을 반환합니다. 이 메시지는 메시지의 역방향을 RetrieveDependentComponentsRequest 제공합니다.
RetrieveDependenciesForDeleteRequest 솔루션 구성 요소를 삭제하지 못할 수 있는 솔루션 구성 요소에 대한 모든 종속성 목록을 반환합니다.
RetrieveDependenciesForUninstallRequest 관리되는 솔루션을 제거하지 못할 수 있는 솔루션 구성 요소에 대한 모든 종속성 목록을 반환합니다.

일반적인 솔루션 구성 요소

애플리케이션에 표시되는 솔루션 구성 요소와 솔루션 페이지를 사용하여 솔루션 구성 요소를 추가하거나 제거할 때 직접 작업할 구성 요소입니다. 솔루션 구성 요소의 다른 각 유형은 존재하기 위해 이러한 솔루션 구성 요소 중 하나 이상에 따라 달라집니다.

애플리케이션 리본 메뉴(RibbonCustomization)

애플리케이션 리본 및 엔터티 리본 템플릿에 대한 리본 사용자 지정 애플리케이션 리본에는 엔터티 또는 양식 수준에서 리본의 정의가 포함되지 않습니다.

사용자 지정 애플리케이션 리본에는 웹 리소스에 대한 종속성이 게시되는 경우가 많습니다. 웹 리소스는 리본 메뉴 단추 아이콘 및 JavaScript 함수를 정의하여 리본 요소가 표시되는 시기 또는 특정 리본 컨트롤을 사용할 때 수행되는 작업을 제어하는 데 사용됩니다. 종속성은 리본 정의가 지시문을 사용하여 $webresource: 웹 리소스를 리본 메뉴에 연결하는 경우에만 생성됩니다. 추가 정보: $webresource 지시문

아티클 템플릿(KBArticleTemplate)

아티클의 표준 특성을 포함하는 템플릿입니다. 아티클 템플릿과 KbArticle 엔터티 간에는 항상 내부 종속성이 있습니다.

연결 역할(ConnectionRole)

두 레코드 간의 관계를 설명하는 역할입니다. 각 연결 역할은 연결 역할을 사용하여 연결할 수 있는 엔터티 레코드 유형을 정의합니다. 그러면 연결 역할과 엔터티 간에 게시된 종속성이 만들어집니다.

계약 템플릿(ContractTemplate)

계약의 표준 특성을 포함하는 템플릿입니다. 계약 템플릿과 계약 엔터티 간에는 항상 내부 종속성이 있습니다.

대시보드 또는 엔터티 양식(SystemForm)

시스템 양식 엔터티 레코드는 대시보드 및 엔터티 양식을 정의하는 데 사용됩니다. SystemForm을 엔터티 양식으로 사용하는 경우 엔터티에 대한 내부 종속성이 있습니다. SystemForm을 대시보드로 사용하는 경우 내부 종속성이 없습니다. 엔터티 양식과 대시보드는 일반적으로 콘텐츠와 관련된 종속성을 게시합니다. 엔터티 양식에는 엔터티 관계에 따라 달라지는 조회 필드가 있을 수 있습니다. 대시보드 및 엔터티 양식에는 뷰에 게시된 종속성을 만든 다음 엔터티에 대한 내부 종속성을 갖는 차트 또는 하위 그리드가 포함될 수 있습니다. 대시보드 또는 양식에 표시되는 콘텐츠 또는 양식에 JavaScript 라이브러리가 포함되어 있기 때문에 웹 리소스에 대한 게시된 종속성을 만들 수 있습니다. 엔터티 양식은 양식의 필드로 표시되는 모든 특성에 대한 종속성을 게시했습니다.

전자 메일 템플릿(EmailTemplate)

전자 메일 메시지의 표준 특성을 포함하는 템플릿입니다. 전자 메일 템플릿에는 일반적으로 지정된 엔터티 특성의 데이터를 삽입하는 필드가 포함됩니다. 전자 메일 템플릿을 만들 때 특정 엔터티에 연결할 수 있으므로 엔터티에 대한 내부 종속성이 있을 수 있습니다. 전역 전자 메일 템플릿은 특정 엔터티와 연결되지 않지만 데이터를 제공하는 데 사용되는 엔터티 특성에 대한 종속성을 게시했을 수 있습니다. 워크플로와 함께 게시된 종속성을 만드는 전자 메일 템플릿을 사용하여 전자 메일을 보내도록 프로세스(워크플로)를 자주 구성합니다.

엔터티(엔터티)

Dynamics 365 Customer Engagement(온-프레미스)에서 데이터를 모델링하고 관리하는 데 사용되는 기본 구조입니다. 엔터티와 연결된 차트, 양식, 엔터티 관계, 뷰 및 특성은 엔터티 간의 내부 종속성 때문에 엔터티가 삭제될 때 자동으로 삭제됩니다. 엔터티는 프로세스, 대시보드 및 전자 메일 템플릿을 사용하여 종속성을 게시하는 경우가 많습니다.

필드 보안 프로필(FieldSecurityProfile)

보안 특성에 대한 액세스 수준을 정의하는 프로필입니다.

편지 병합 서식 파일(MailMergeTemplate)

편지 병합 문서의 표준 특성을 포함하는 서식 파일입니다. 메일 병합 템플릿에는 연결된 엔터티에 대한 게시된 종속성이 있습니다.

옵션 집합(OptionSet)

옵션 집합은 옵션 집합을 정의합니다. picklist 특성은 옵션 집합을 사용하여 제공된 옵션을 정의합니다. 여러 선택 목록 특성은 전역 옵션 집합을 사용할 수 있으므로 제공하는 옵션은 항상 동일하며 한 곳에서 유지 관리할 수 있습니다. 게시된 종속성은 선택 목록 특성이 전역 옵션 집합을 참조할 때 발생합니다. 선택 목록 특성에 사용되는 전역 옵션 집합은 삭제할 수 없습니다.

플러그 인 어셈블리(PluginAssembly)

하나 이상의 플러그 인 형식을 포함하는 어셈블리입니다. 플러그 인은 일반적으로 엔터티와 연결된 이벤트에 등록됩니다. 그러면 게시된 종속성이 만들어집니다.

프로세스(워크플로)

수행할 특정 비즈니스 프로세스, 작업 또는 작업 집합을 자동화하는 데 필요한 단계를 정의하는 논리 규칙 집합입니다. 프로세스는 프로세스에서 참조하는 다른 솔루션 구성 요소에 게시된 종속성을 만드는 광범위한 작업을 제공합니다. 각 프로세스에는 연결된 엔터티에 대한 게시된 종속성도 있습니다.

보고서(보고서)

읽기 쉬운 레이아웃의 데이터 요약입니다. 보고서에 포함된 엔터티 또는 특성 데이터에 대한 종속성이 보고서에 게시되었습니다. 각 보고서는 보고서 관련 범주(ReportCategory)라는 솔루션 구성 요소에 대한 내부 종속성을 만드는 보고서 범주와도 연결되어야 합니다. 보고서는 부모 보고서를 사용하여 게시된 종속성을 만드는 하위 보고서로 구성될 수 있습니다.

SDK 메시지 처리 단계(SDKMessageProcessingStep)

플러그 인을 실행할 실행 파이프라인의 단계입니다.

보안 역할(역할)

보안 권한 그룹화 사용자에게 Dynamics 365 고객 참여(온-프레미스) 시스템에 대한 액세스 권한을 부여하는 역할이 할당됩니다. 엔터티 양식은 특정 보안 역할과 연결하여 양식을 볼 수 있는 사용자를 제어할 수 있습니다. 이렇게 하면 보안 역할과 양식 간에 게시된 종속성이 만들어집니다.

비고

조직 사업부의 보안 역할만 솔루션에 추가할 수 있습니다. 이러한 보안 역할에 대한 읽기 권한이 있는 사용자만 솔루션에 추가할 수 있습니다.

서비스 엔드포인트(ServiceEndpoint)

연결할 수 있는 서비스 엔드포인트입니다.

사이트 맵(SiteMap)

애플리케이션 탐색 창을 제어하는 데 사용되는 XML 데이터입니다. 사이트 맵을 연결하여 HTML 웹 리소스를 표시하거나 사이트 맵의 아이콘이 이미지 웹 리소스를 사용할 수 있습니다. $webresource: 이러한 연결을 설정하는 데 지시문을 사용하면 게시된 종속성이 만들어집니다. 추가 정보: $webresource 지시문

웹 리소스(WebResource)

웹 개발에 사용되는 파일에 해당하는 데이터입니다. 웹 리소스는 사용자 지정 사용자 인터페이스 요소를 제공하는 데 사용되는 클라이언트 쪽 구성 요소를 제공합니다. 웹 리소스는 엔터티 양식, 리본 및 SiteMap을 사용하여 종속성을 게시했을 수 있습니다. $webresource: 지시문을 사용하여 리본 또는 SiteMap에서 연결을 설정하는 경우 게시된 종속성이 만들어집니다. 자세한 내용은 $webresource 지시문을 참조하세요.

비고

웹 리소스는 상대 링크를 기반으로 다른 웹 리소스에 따라 달라질 수 있습니다. 예를 들어 HTML 웹 리소스는 CSS 또는 스크립트 웹 리소스를 사용할 수 있습니다. 엔터티 폼 또는 차트 외부에 표시되는 Silverlight 웹 리소스에는 호스트할 HTML 웹 리소스가 있어야 합니다. 이러한 종속성은 솔루션 종속성으로 추적되지 않습니다.

참고하십시오

Dynamics 365 Customer Engagement(온-프레미스) 솔루션을 사용하여 확장 패키지 및 배포
솔루션 소개
솔루션 개발 계획
관리되지 않는 솔루션 만들기, 내보내기 또는 가져오기
관리되는 솔루션 만들기, 설치 및 업데이트
관리되는 솔루션 만들기, 설치 및 업데이트
솔루션 제거 또는 삭제
솔루션 엔터티