종속성 제거 개요

솔루션 구성 요소는 종종 다른 솔루션 구성 요소에 따라 달라집니다. 다른 솔루션 구성 요소에 대한 종속성이 있는 솔루션 구성 요소는 삭제할 수 없습니다. 종속성은 하나 이상의 종속 구성 요소에 여전히 참조가 포함되어 있는 동안 필수 구성 요소가 삭제되는 것을 방지하기 위해 솔루션 프레임워크에서 자동으로 생성된 레코드입니다. 종속성의 예는 다음과 같습니다. 양식이 작동하는 데 필드가 필요한 경우 해당 필드를 삭제하는 작업을 실행하려고 하면 양식이 작동하지 않습니다.

노트

이 문서에서 삭제란 구성 요소가 시스템에서 완전히 제거되었음을 의미합니다.

이 문서에서는 이러한 종속성을 처리하는 방법과 더 이상 필요하지 않은 종속성을 제거하는 데 사용할 수 있는 전략에 대해 설명합니다.

비관리형과 관리형 구성 요소의 종속성

첫째, 종속성은 필요한 구성 요소를 삭제하는 작업만 방지한다는 점을 이해해야 합니다. 구성 요소를 삭제할 수 있는 작업은 비관리형 또는 관리형인지에 따라 다릅니다.

비관리형 구성 요소

이러한 구성 요소는 활성 솔루션에서 단일 계층으로 표시됩니다. 이러한 구성 요소에 대한 모든 삭제 작업은 구성 요소를 완전히 제거합니다.

관리형 구성 요소

관리형 구성 요소의 삭제는 솔루션 레이어 수, 제거 중인 레이어의 상대 위치 및 구성 요소 게시자 등 여러 요소에 따라 다릅니다. 예를 들어, 구성 요소가 삭제되면 다음 시나리오와 다양한 레이어를 제거할 때 예상되는 동작을 고려하십시오.

예제 시나리오

다음 예제 시나리오는 솔루션을 제거할 때 솔루션 레이어에 발생하는 상황을 보여줍니다.

시나리오 1: 단일 솔루션 레이어 제거

단일 레이어로 제거.

솔루션 1을 제거하면 구성 요소의 유일한 레이어이므로 구성 요소가 삭제됩니다.

시나리오 2: 다른 게시자에서 솔루션 레이어 제거

두 개의 레이어로 제거 - 다른 게시자.

  • 솔루션 2를 제거해도 구성 요소가 삭제되지 않습니다. 해당 레이어만 제거됩니다.
  • 솔루션 1을 제거하면 기준 레이어에서 작업이 발생하므로 구성 요소가 삭제됩니다. 실제로 이 시나리오에서는 솔루션 1을 제거할 수 없습니다. 다른 게시자의 솔루션이 구성 요소를 확장하기 때문입니다.

시나리오 3: 다른 게시자에서 여러 솔루션 레이어 제거

여러 레이어로 제거 - 다른 게시자.

  • 솔루션 3을 제거해도 구성 요소가 삭제되지 않습니다. 해당 레이어만 제거됩니다.
  • 솔루션 2를 제거해도 구성 요소가 삭제되지 않습니다. 해당 레이어만 제거됩니다.
  • 솔루션 1을 제거해도 구성 요소가 삭제되지 않습니다. 이 경우 동일한 게시자(게시자 A = 게시자 C)의 다른 솔루션이 있기 때문입니다. 플랫폼은 솔루션 1에서 레이어를 제거하고 솔루션 3의 레이어로 대체합니다.

시나리오 4: 비관리형 사용자 지정에서 솔루션 레이어 제거

두 레이어로 제거 - 비관리형 사용자 지정.

  • 활성(비관리형) 레이어를 제거해도 구성 요소가 삭제되지 않습니다. 해당 레이어만 제거됩니다. 활성 솔루션은 제거할 수 없지만 활성 사용자 지정 제거 기능을 사용하여 구성 요소를 제거할 수 있습니다.
  • 솔루션 1을 제거하면 구성 요소가 삭제됩니다. 기본 레이어에서 작업이 수행됩니다. 시나리오 2와 달리 솔루션 1을 제거할 수 있습니다. 활성 솔루션은 확장으로 간주되지 않으며 두 레이어가 모두 제거됩니다.

종속성 페이지 표시

종속성 표시 명령은 선택한 솔루션 또는 솔루션 구성 요소에 대한 종속성을 나열합니다. 다음을 통해 호출할 수 있습니다.

  • 솔루션 페이지에서 종속성 표시를 선택합니다.
  • 솔루션 구성 요소가 선택된 경우 솔루션 내에서 고급>종속성 표시를 선택합니다.
  • 솔루션을 제거하려고 하면 플랫폼이 종속성이 있음을 발견하게 됩니다.

종속성 페이지에서 구성 요소를 열거나 제거하거나 삭제할 수 있습니다. 추가 정보: 구성 요소에 대한 종속성 보기

종속성 진단

다음 시나리오를 살펴 보겠습니다. 아래 조직에는 두 가지 솔루션 솔루션 - 워크플로솔루션 - 사용자 지정 엔터티가 있습니다.

두 가지 솔루션이 포함된 솔루션 목록.

조직 소유자는 솔루션 - 사용자 지정 엔터티가 더 이상 필요하지 않다고 결정했고 이를 삭제하려고 시도했으며 다음 페이지가 표시되었습니다.

솔루션 삭제 시도 후 종속성 세부 정보.

자세히 설명하지 않고 솔루션 제거가 사용자 지정 엔터티라는 엔터티와 세 필드인 사용자 지정 엔터티, 이름숫자 필드를 삭제하려고 하며 네 가지 구성 요소 모두에 종속성이 있다는 결론을 내릴 수 있습니다.

노트

솔루션을 제거하면 잠재적으로 더 많은 구성 요소가 삭제될 수 있지만 종속성이 없기 때문에 목록에 표시되지 않습니다.

다음 단계는 각 종속성에 대한 솔루션 레이어 링크(가장 오른쪽 열)를 확인하는 것입니다. 그러면 종속성을 제거하기 위해 수행할 작업을 결정하는 데 도움이 됩니다.

다음 그림은 엔터티(사용자 지정 엔터티)와 프로세스(테스트 워크플로) 간의 종속성 세부 정보를 보여줍니다.

사용자 지정 엔터티 종속성 세부 정보.

표시된 데이터를 기반으로 종속 구성 요소가 SolutionWorkflow라는 솔루션에 속해 있음을 알 수 있습니다. 이 종속성을 제거하기 위해 다음 중 하나를 수행할 수 있습니다.

  • 엔터티 또는 해당 하위 구성 요소에 대한 참조를 제거하여 SolutionWorkflow에서 워크플로 정의를 업데이트합니다. 그런 다음 솔루션을 업데이트 또는 업그레이드합니다.
  • SolutionWorkflow 솔루션을 제거합니다.
  • 새 버전의 SolutionWorkflow 솔루션에서 워크플로를 제거한 다음 업그레이드를 수행합니다.

하나의 종속 구성 요소가 솔루션 제거를 방지할 수 있으므로 모든 종속성을 확인하고 단일 작업으로 필요한 모든 변경을 수행하는 것이 좋습니다.

다음 그림은 엔터티(사용자 지정 엔터티)와 모델 기반 앱(내 앱) 간의 종속성 세부 정보를 보여줍니다.

엔터티(사용자 지정 엔터티)와 앱(내 앱) 간의 종속성.

표시된 데이터를 기반으로 종속 구성 요소가 활성이라는 솔루션에 속해 있음을 알 수 있습니다. 이는 비관리형 솔루션을 가져오거나 최신 UI 또는 API를 통해 실행된 비관리형 사용자 지정을 통해 종속성이 작성되었음을 나타냅니다.

이 종속성을 제거하기 위해 다음 중 하나를 수행할 수 있습니다.

  • 모델 기반 앱의 정의를 편집하여 엔터티 또는 해당 하위 구성 요소에 대한 참조를 제거합니다. 모델 기반 앱은 게시를 지원하므로 변경 사항을 게시해야 합니다.
  • 모델 기반 앱을 삭제합니다.

노트

비관리형 솔루션은 구성 요소를 그룹화하는 수단일 뿐이므로 비관리형 솔루션을 제거하는 것은 이 종속성을 제거하는 옵션이 아닙니다.

관리형 종속성을 제거하기 위한 조치

관리형 종속성은 종속 구성 요소가 관리형 솔루션에 연결된 것입니다. 이러한 종류의 종속성을 해결하려면 구성 요소가 추가된 솔루션에서 작업해야 합니다. 이 작업은 수행하려는 작업에 따라 다를 수 있습니다.

솔루션을 제거하려고 하는 경우

다음 단계를 수행하세요.

  1. 대상 조직에서 솔루션 레이어 링크를 검사하여 종속 구성 요소 목록에서 최상위 솔루션이 무엇인지 찾습니다.
  2. 소스 조직에서 솔루션에 종속 구성 요소가 포함되어 있지 않거나 필수 구성 요소에 대한 참조가 포함되지 않은 종속 구성 요소의 업데이트된 버전이 있는 솔루션의 새 버전을 준비합니다. 목표는 새 버전의 솔루션에서 필요한 구성 요소에 대한 참조를 제거하는 것입니다.
  3. 솔루션의 새 버전을 내보냅니다.
  4. 대상 조직에서 해당 솔루션을 업그레이드합니다.
  5. 제거를 다시 시도합니다.

솔루션을 업그레이드하려는 경우

이 경우 필수 구성 요소를 삭제할 것인지 확인해야 합니다(종속성은 삭제되는 구성 요소에만 적용됨).

구성 요소를 삭제하지 않으려면 다음을 수행하여 구성 요소를 다시 추가하여 새 버전의 솔루션을 수정할 수 있습니다.

  1. 대상 조직에서 준비된 솔루션(_Upgrade로 끝나는 솔루션)을 제거합니다.
  2. 소스 조직에서 필요한 구성 요소를 솔루션에 다시 추가합니다.
  3. 새 버전을 내보냅니다.
  4. 업그레이드를 다시 시도합니다.

삭제가 의도적인 경우 종속성을 제거해야 합니다. 이전 섹션 "솔루션을 제거하려는 경우"에 설명된 단계를 시도합니다.

레이어 및 종속성

종속 구성 요소를 계층화할 수 있으므로 종속성을 완전히 제거하기 위해 둘 이상의 솔루션을 변경해야 할 수도 있습니다. 종속성 프레임워크는 필수 및 종속 구성 요소의 최상위 레이어 간 종속성만 계산합니다. 즉, 종속 구성 요소 솔루션의 상단에서 하단으로 작업해야 합니다.

다음 시나리오를 살펴 보십시오.

제거할 솔루션 선택.

솔루션 - 사용자 지정 엔터티를 제거하려고 하는데, 작업이 종속성에 의해 차단되었습니다.

솔루션 제거를 차단하는 종속성.

new_numberfield 특성에서 솔루션 레이어를 선택하여 종속성 진단을 시작합니다. 다음 화면을 참조하십시오.

new_numberfield 특성과 테스트 워크플로 워크플로 간의 종속성.

종속성은 각 구성 요소의 최상위 레이어 간에만 생성되므로 첫 번째 단계는 SolutionCustomEntity의 new_numberfield 특성 및 SolutionWorkflow3의 테스트 워크플로 워크플로 간의 종속성을 처리하는 것입니다.

종속성을 제거하기 위해 SolutionWorkflow3을 제거하기로 결정합니다. 그렇게 하지만 솔루션을 다시 제거하려고 하면 동일한 종속성 페이지가 표시됩니다.

솔루션 제거 - 사용자 지정 엔터티를 차단하는 종속성.

그러나, 더 많은 레이어에 존재하더라도 new_numberfield 특성이 더 이상 나열되지 않습니다.

비관리형 종속성을 제거하기 위한 조치

비관리형 종속성을 제거하려면 해당 구성 요소가 속한 솔루션이 아닌 구성 요소에 대해 직접 조치를 취해야 합니다. 예를 들어, 특성과 양식 간 종속성을 제거하려면 양식 편집기에서 특성을 편집하고 양식에서 특성을 제거해야 합니다. 저장게시를 선택하면 종속성이 제거됩니다.

참고

  • 종속성 표시 명령을 사용하면 종속성을 보거나 제거하거나 구성 요소를 편집하거나 삭제하는 작업을 수행할 수 있습니다. 추가 정보: 구성 요소에 대한 종속성 보기
  • 종속 구성 요소를 삭제할 수도 있습니다. 이 작업은 구성 요소와 함께 모든 종속성을 삭제합니다.

구성 요소의 종속성을 보려면 솔루션 영역에서 원하는 솔루션을 열고 구성 요소 옆에 있는 수직 타원을 선택한 다음 고급>종속성 표시를 선택합니다.

종속성 페이지에는 두 가지 고유한 부분이 있습니다.

  • 종속 구성 요소: 선택한 필드에 의존하는 구성 요소 목록입니다. 즉, 이러한 구성 요소에는 필수 구성 요소로 이 필드가 있습니다.
  • 필수 구성 요소: 이 필드가 작동하기 위해 필요한 구성 요소 목록입니다. 즉, 이러한 구성 요소에는 종속 구성 요소로 이 필드가 있습니다.

구성 요소 종속성.

참조 항목