Поділитися через


Огляд видалення залежностей

Компоненти рішення часто залежать від інших компонентів рішення. Ви можете видалити будь-який компонент рішення, який має залежності від іншого компонента рішення. Залежності — це записи, що автоматично створюються інфраструктурою рішень та не дозволяють видаляти обов'язкові компоненти, на які існують посилання у одному або кількох залежних компонентах. Ось приклад залежності: якщо певне поле є обов'язковим для роботи форми, будь-які дії, що призводять до видалення цього поля, зроблять роботу форми неможливою.

Нотатка

У цій статті видалення означає повне усунення компонента з системи.

У цій статті ми обговорюємо, як обробляти ці залежності та стратегії, які ви можете використовувати для видалення залежностей, які вам більше не потрібні.

Залежності некерованих компонентів та залежності керованих компонентів

Перш за все, важливо розуміти, що залежності не дозволятимуть виконання лише операцій, які призводять до видалення обов'язкових компонентів. Дії для видалення компонента будуть різними для керованих та некерованих компонентів.

Некеровані компоненти

Ці компоненти роботи представлені у активному рішенні на єдиному шарі. Будь-які операції Видалення для такого компонента повністю видалятимуть компонент.

Керовані компоненти

Видалення керованих компонентів залежить від кількох факторів, а саме: від кількості шарів рішення, од відносного розташування шару, який деінсталюється, а також од видавців компонента. Наприклад, при видаленні компонента обміркуйте наведені нижче сценарії, а також продумайте, якою буде поведінка після видалення різних шарів.

Приклади сценаріїв

Наступні приклади сценаріїв зображують можливі наслідки для шарів рішень після деінсталяції цих рішень.

Сценарій 1: деінсталяція єдиного шару рішення

Видаліть за допомогою одного шару.

Деінсталяція Рішення 1 спричиняє видалення компонента, оскільки для компонента цей шар — єдиний.

Сценарій 2: деінсталяція шарів рішення від різних видавців

Видалення за допомогою двох шарів - Інший видавець.

  • Деінсталяція Рішення 2 не призводить до видалення компонента. Буде видалено лише відповідний шар.
  • Деінсталяція Рішення 1 спричиняє видалення компонента, оскільки дія виконується на базовому шарі. Фактично, у такому сценарію неможливо видалити Рішення 1, оскільки компонент розширюється за рахунок рішення від іншого видавця.

Сценарій 3: деінсталяція кількох шарів рішення від різних видавців

Видалення за допомогою кількох шарів - Різні видавці.

  • Деінсталяція Рішення 3 не призводить до видалення компонента. Буде видалено лише відповідний шар.
  • Деінсталяція Рішення 2 не призводить до видалення компонента. Буде видалено лише відповідний шар.
  • Деінсталяція Рішення 1 не призводить до видалення компонента, оскільки у цьому випадку існує інше рішення від того ж самого видавця (Видавець A = Видавець C). Платформа видалить шар з Рішення 1 та замінить його на шар з Рішення 3.

Сценарій 4: деінсталяція шарів рішення у некерованому настроюванні

Видалення за допомогою двох рівнів - Некерована настройка.

  • Деінсталяція Активного (некерованого) шару не призводить до видалення компонента. Буде видалено лише відповідний шар. Зверніть увагу, що Активне рішення видалити неможливо, але можна видаляти компоненти, використовуючи функцію Видалити активні настроювання.
  • Деінсталяція Рішення 1 призводить до видалення компонента. Ця дія виконується на базовому шарі. На відміну від Сценарію 2, ви можете деінсталювати Рішення 1. Активне рішення не розглядається як розширення, тому буде видалено обидва шари.

Показати сторінку залежностей

Команда Показати залежності виводить список залежностей для вибраного рішення або компонента рішення. Її можна викликати переліченими нижче способами.

  • Виберіть пункт Показати залежності на сторінці розв’язку.
  • Вибір параметра >Додаткові параметри Показувати залежності в розв’язанні, коли вибрано компонент рішення.
  • Спробуйте деінсталювати рішення, і тоді платформа виявить, що існують залежності.

На сторінці Залежності ви можете відкрити, вилучити або вилучити компонент. Додаткові відомості: Перегляд залежностей для складника

Діагностування залежностей

Розглянемо наведений нижче сценарій. Організація, що розглядається далі, має два рішення: Рішення — робочий цикл та Рішення — настроювана сутність.

Список рішень з двома рішеннями.

Відповідальний за організацію вирішив, що рішення Рішення — настроювана сутність більше не потрібно, спробував його видалити та побачив наведену нижче сторінку.

Відомості про залежність після спроби видалити розв’язок.

Без зайвих подробиць, ми можемо зробити висновок, що деінсталяція рішення передбачає видалення сутності, яка має ім'я Настроювана сутність, та трьох полів — Настроювана сутність, Ім'я та Поле числа — а усі ці чотири компонента мають залежності.

Нотатка

При деінсталяції рішення може бути видалено й більше компонентів, але, оскільки вони не мають залежностей, у списку вони не з'являються.

На наступному кроці слід відкрити посилання Шари рішення (крайній стовпець праворуч) для кожної залежності. Це допоможе вирішити, які дії слід виконати для усунення залежності.

На наведеному далі малюнку показано відомості про залежність між Сутністю (Настроювана сутність) та Процесом (Тестовий робочий цикл)

Відомості про залежність від користувацької сутності.

На основі даних, що відображаються, ви можете побачити, що залежний компонент належить до рішення, яке має ім'я SolutionWorkflow. Для усунення цієї залежності ми можемо виконати одну з перелічених нижче дій.

  • Оновити визначення робочого циклу у SolutionWorkflow, усунувши усі посилання на сутність або її внутрішні компоненти. Потім Оновіть рішення або Перейдіть на наступну версію рішення.
  • Видаліть рішення SolutionWorkflow.
  • Видаліть робочий цикл з нової версії рішення SolutionWorkflow, а тоді виконайте Перехід на наступну версію.

Оскільки кожен з залежних компонентів може не дозволяти видалити рішення, радимо перевірити усі залежності та виконати усі необхідні зміни за одну операцію.

На наведеному далі малюнку показано відомості про залежність між Сутністю (Настроювана сутність) та модельною програмою (Моя програма).

Залежність між сутністю (Custom Entity) і App (My App).

На основі даних, що відображаються, ви можете побачити, що залежний компонент належить до рішення, яке має ім'я Активне. Це показує, що залежність була створена при імпортуванні некерованого рішення або за допомогою некерованого настроювання, яке виконувалось із використанням сучасного інтерфейсу користувача або API.

Для усунення цієї залежності ви можете виконати одну з перелічених нижче дій.

  • Відредагувати визначення модельної програми, щоб видалити усі посилання на сутність або її внутрішні компоненти. Оскільки модельні програми підтримують публікацію, необхідно опублікувати зміни.
  • Видалити модельну програму.

Нотатка

Усунути цю залежність шляхом деінсталяції некерованого рішення не вийде, оскільки некеровані рішення є лише засобами групування компонентів.

Дії для усунення керованої залежності

Керовані залежності — це залежності, для яких залежний компонент пов'язаний із керованим рішенням. Щоб задовольнити залежність такого типу, необхідно працювати із тим рішенням, у якому додано відповідний компонент. Дії можуть бути різними, в залежності від конкретного завдання.

Якщо необхідно деінсталювати рішення

Виконайте такі кроки.

  1. У цільовій організації відвідайте посилання Шари рішення, щоб дізнатись, яке рішення стоїть першим у списку залежних компонентів.
  2. У вихідній організації підготуйте нову версію рішення, щоб у рішенні був відсутній залежний компонент або ж була присутня оновлена версія залежного компонента, яка не містила б посилань на обов'язковий компонент. Ваша ціль полягає у тому, щоб усунути у новій версії рішення будь-які посилання на обов'язкові компоненти.
  3. Експортуйте нову версію рішення.
  4. У цільовій організації Перейдіть на нову версію цього рішення.
  5. Спробуйте виконати деінсталяцію знову.

Якщо необхідно оновити рішення

У цьому випадку необхідно підтвердити, що ви хочете видалити обов'язковий компонент (пам'ятайте, що залежності застосовуються лише до компонентів, які видаляються).

Якщо немає потреби видаляти компонент, ви можете виправити нову версію рішення, знову додавши цей компонент, для чого виконайте зазначені нижче дії.

  1. У цільовій організації деінсталюйте підготоване рішення (рішення, що закінчується на _Upgrade).
  2. У вихідній організації повторно додайте до рішення обов'язковий компонент (або декілька).
  3. Експортуйте нову версію.
  4. Спробуйте оновити рішення знову.

Якщо видалення є навмисним, необхідно усунути залежність. Спробуйте виконати кроки, окреслені у попередньому розділі, «Якщо необхідно деінсталювати рішення».

Шари та залежності

Залежні компоненти можуть бути розшаровані, тому для повного усунення залежності може знадобитися внести зміни до кількох рішень. Інфраструктура обробки залежностей лише обчислює залежності між найвищими шарами обов'язкових та залежних компонентів. Це означає, що вам доведеться пройти весь шлях зверху донизу для рішень із залежними компонентами.

Розглянемо такий сценарій.

Вибір рішення для видалення.

Ви намагаєтесь деінсталювати Рішення — настроювана сутність, але операція блокується залежностями.

Залежності, що блокують видалення рішення.

Діагностування залежності слід починати з вибору Шари рішення у атрибуті new_numberfield. Ви побачите екран, подібний до наведеного нижче.

Залежність між атрибутом new_numberfield і робочим процесом Test Workflow.

Оскільки залежності створюються лише між найвищими шарами компонентів, перш за все слід розібратися із залежністю між атрибутом new_numberfield у SolutionCustomEntity та Тестовим робочим циклом у SolutionWorkflow3.

Щоб усунути залежність, ви приймаєте рішення деінсталювати SolutionWorkflow3. Ви виконуєте цю процедуру, але під час наступної спроби деінсталяції рішення отримуєте таку ж саму сторінку із залежностями.

Залежності, що блокують видалення Solution - Custom Entity.

Однак атрибут new_numberfield тепер відсутній у списку, навіть якщо він присутній в інших шарах.

Дії для усунення некерованої залежності

Для видалення некерованих залежностей слід працювати безпосередньо із компонентами, а не із рішеннями, до яких вони належать. Наприклад, якщо потрібно усунути залежності між атрибутом та формою, необхідно відредагувати її у редакторі форм та видалити атрибут з форми. Залежність буде усунуто після того, як ви виберете Зберегти та Опублікувати.

Нотатка

  • За допомогою команди Показати залежності ви можете виконати дію для перегляду, вилучення залежності, редагування компонента або видалення компонента. Додаткові відомості: Перегляд залежностей для складника
  • Також можна видалити залежний компонент. Ця дія видалить разом із компонентом усі залежності.

Щоб переглянути залежності компонента, в області Рішення відкрийте потрібне рішення, виділіть вертикальні еліпси поруч із компонентом, а потім виберіть Додатково>Показати залежності.

На сторінці залежностей присутні дві окремі частини.

  • Залежні компоненти: список компонентів, що залежать від обраного поля. Іншими словами, для цих компонентів це поле буде обов'язковим компонентом.
  • Обов'язкові компоненти: список компонентів, необхідних для роботи цього поля. Іншими словами, для цих компонентів це поле буде залежним компонентом.

Залежності компонентів.

Див. також