Примітка
Доступ до цієї сторінки потребує авторизації. Можна спробувати ввійти або змінити каталоги.
Доступ до цієї сторінки потребує авторизації. Можна спробувати змінити каталоги.
Компоненти рішення часто залежать від інших компонентів рішення. Ви можете видалити будь-який компонент рішення, який має залежності від іншого компонента рішення. Залежності — це записи, що автоматично створюються інфраструктурою рішень та не дозволяють видаляти обов'язкові компоненти, на які існують посилання у одному або кількох залежних компонентах.
Приклади залежності: якщо поле потрібне для функціонування форми, коли ви намагаєтеся виконати дію, яка призводить до видалення цього поля, форма перестане працювати.
Інший приклад – коли ви намагаєтеся видалити карту сайту для програми, керованої моделлю. Система вказує на залежність від програми. Додаток – це залежний компонент, а карта сайту – це обов’язковий компонент. Система забороняє вам видаляти карту сайту до тих пір, поки ви не приберете залежність.
Нотатка
Delete означає, що компонент повністю видалено з Microsoft Dataverse.
У цій статті ми обговорюємо, як обробляти ці залежності та стратегії, які ви можете використовувати для видалення залежностей, які вам більше не потрібні.
Залежності некерованих компонентів та залежності керованих компонентів
По-перше, важливо розуміти, що залежності лише запобігають операціям, які видаляють необхідний компонент. Дії для видалення компонента будуть різними для керованих та некерованих компонентів.
Добре бути знайомим з концепцією розчину та компонентних рівнів при описі залежностей. Якщо ви не знайомі, ми рекомендуємо вам прочитати цю статтю, перш ніж продовжувати: Шари розчину
Некеровані компоненти
Ці компоненти роботи представлені у активному рішенні на єдиному шарі. Будь-які операції Видалення для такого компонента повністю видалятимуть компонент.
Керовані компоненти
Видалення керованих компонентів залежить від кількох факторів, а саме: від кількості шарів рішення, од відносного розташування шару, який деінсталюється, а також од видавців компонента. Наприклад, при видаленні компонента обміркуйте наведені нижче сценарії, а також продумайте, якою буде поведінка після видалення різних шарів.
Приклади сценаріїв
Наступні приклади сценаріїв зображують можливі наслідки для шарів рішень після деінсталяції цих рішень.
Сценарій 1: деінсталяція єдиного шару рішення
Деінсталяція Рішення 1 спричиняє видалення компонента, оскільки для компонента цей шар — єдиний.
Сценарій 2: деінсталяція шарів рішення від різних видавців
- Деінсталяція Рішення 2 не призводить до видалення компонента. Знімається тільки той шар.
- Деінсталяція Рішення 1 спричиняє видалення компонента, оскільки дія виконується на базовому шарі. Фактично, у такому сценарію неможливо видалити Рішення 1, оскільки компонент розширюється за рахунок рішення від іншого видавця.
Сценарій 3: деінсталяція кількох шарів рішення від різних видавців
- Деінсталяція Рішення 3 не призводить до видалення компонента. Знімається тільки той шар.
- Деінсталяція Рішення 2 не призводить до видалення компонента. Знімається тільки той шар.
- Видалення рішення 1 не призводить до видалення компонента, оскільки в цьому випадку є інше рішення від того самого видавця (Publisher A = Publisher C). Платформа видалить шар з Рішення 1 та замінить його на шар з Рішення 3.
Сценарій 4: деінсталяція шарів рішення у некерованому настроюванні
- Видалення активного (некерованого) шару не призводить до видалення компонента. Знімається тільки той шар. Зауважте, що ви не можете видалити активне рішення, але ви можете видалити компоненти за допомогою функції «Видалити активну настройку ».
- Деінсталяція Рішення 1 призводить до видалення компонента. Ця дія виконується на базовому шарі. На відміну від Сценарію 2, ви можете деінсталювати Рішення 1. Активне рішення не вважається розширенням, і обидва шари видаляються.
Показати сторінку залежностей
Команда Показати залежності виводить список залежностей для вибраного рішення або компонента рішення. Її можна викликати переліченими нижче способами.
- Виберіть пункт Показувати залежності на сторінці рішення.
- Вибір Розширеного>відображення залежностей у розв’язанні, коли вибрано компонент рішення.
- Спроба видалити рішення, що призводить до того, що платформа виявляє наявність залежностей.
На сторінці Залежності ви можете відкрити, видалити або видалити компонент. Додаткові відомості: Перегляд залежностей для компонента
Діагностування залежностей
Розглянемо такий сценарій. Середовище тут має два рішення: Solution - Workflow і Solution - Custom Entity.
Творець середовища вирішує, що їм більше не потрібне рішення - Custom Entity. Виробник спробував видалити його, і йому була представлена наступна сторінка:
Видалення рішення полягає в спробі видалити таблицю з іменем Custom Entity і три поля — Custom Entity, Name і Number Field — і всі чотири компоненти мають залежності.
Нотатка
При деінсталяції рішення може бути видалено й більше компонентів, але, оскільки вони не мають залежностей, у списку вони не з'являються.
На наступному кроці слід відкрити посилання Шари рішення (крайній стовпець праворуч) для кожної залежності. Це допоможе вам вирішити, що робити, щоб видалити залежність.
На наступному малюнку показані деталі залежності між таблицею (Custom Entity) і процесом (Test Workflow).
Виходячи з відображених даних, можна помітити, що залежний компонент належить рішенню під назвою SolutionWorkflow. Для усунення цієї залежності ви можете виконати одну з перелічених нижче дій.
- Оновіть визначення робочого процесу в SolutionWorkflow, видаливши всі посилання на таблицю або її підкомпоненти. Потім Оновіть рішення або Перейдіть на наступну версію рішення.
- Видаліть рішення SolutionWorkflow.
- Видаліть робочий цикл з нової версії рішення SolutionWorkflow, а тоді виконайте Перехід на наступну версію.
Оскільки кожен з залежних компонентів може не дозволяти видалити рішення, радимо перевірити усі залежності та виконати усі необхідні зміни за одну операцію.
На наступному малюнку показані відомості про залежність між таблицею (Custom Entity) і додатком на основі моделі (MyApp).
Виходячи з відображених даних, можна помітити, що залежний компонент належить до рішення з іменем Active. Це показує, що залежність була створена при імпортуванні некерованого рішення або за допомогою некерованого настроювання, яке виконувалось із використанням сучасного інтерфейсу користувача або API.
Для усунення цієї залежності ви можете виконати одну з перелічених нижче дій.
- Відредагувати визначення модельної програми, щоб видалити усі посилання на сутність або її внутрішні компоненти. Оскільки модельні програми підтримують публікацію, необхідно опублікувати зміни.
- Видалити модельну програму.
Нотатка
Усунути цю залежність шляхом деінсталяції некерованого рішення не вийде, оскільки некеровані рішення є лише засобами групування компонентів.
Дії для усунення керованої залежності
Керовані залежності — це залежності, для яких залежний компонент пов'язаний із керованим рішенням. Щоб задовольнити залежність такого типу, необхідно працювати із тим рішенням, у якому додано відповідний компонент. Дії можуть бути різними, в залежності від конкретного завдання.
Якщо ви намагаєтеся видалити рішення
Виконайте такі кроки.
- У цільовому середовищі перевірте посилання на шари рішень, щоб знайти, яке рішення є найвищим у списку залежного компонента.
- У середовищі вихідного коду підготуйте нову версію цього рішення, де рішення або не містить залежного компонента, або має оновлену версію залежного компонента, яка не містить посилань на необхідний компонент. Ваша ціль полягає у тому, щоб усунути у новій версії рішення будь-які посилання на обов'язкові компоненти.
- Експортуйте нову версію рішення.
- У цільовому середовищі оновіть це рішення.
- Спробуйте виконати деінсталяцію знову.
Якщо ви намагаєтеся оновити рішення
У цьому випадку необхідно підтвердити, що ви хочете видалити обов'язковий компонент (пам'ятайте, що залежності застосовуються лише до компонентів, які видаляються).
Якщо немає потреби видаляти компонент, ви можете виправити нову версію рішення, знову додавши цей компонент, для чого виконайте зазначені нижче дії.
- У цільовому середовищі видаліть поетапне рішення (рішення, яке закінчується на _Upgrade ).
- У вихідному середовищі додайте необхідні компоненти назад у розчин.
- Експортуйте нову версію.
- Спробуйте оновити рішення знову.
Якщо видалення є навмисним, необхідно усунути залежність. Спробуйте кроки, описані в попередньому розділі, якщо ви намагаєтеся видалити рішення.
Шари та залежності
Залежні компоненти можуть бути розшаровані, тому для повного усунення залежності може знадобитися внести зміни до кількох рішень. Інфраструктура обробки залежностей лише обчислює залежності між найвищими шарами обов'язкових та залежних компонентів. Це означає, що вам доведеться пройти весь шлях зверху донизу для рішень із залежними компонентами.
Розглянемо такий сценарій.
Ви намагаєтесь деінсталювати Рішення — настроювана сутність, але операція блокується залежностями.
Діагностування залежності слід починати з вибору Шари рішення у атрибуті new_numberfield. Ви спостерігаєте за наступним екраном:
Оскільки залежності створюються лише між найвищими шарами компонентів, перш за все слід розібратися із залежністю між атрибутом new_numberfield у SolutionCustomEntity та Тестовим робочим циклом у SolutionWorkflow3.
Щоб усунути залежність, ви приймаєте рішення деінсталювати SolutionWorkflow3. Ви виконуєте цю процедуру, але під час наступної спроби деінсталяції рішення отримуєте таку ж саму сторінку із залежностями.
Однак стовпець new_numberfield більше не відображається у списку, навіть якщо він існував у більшій кількості шарів.
Дії для усунення некерованої залежності
Для видалення некерованих залежностей слід працювати безпосередньо із компонентами, а не із рішеннями, до яких вони належать. Наприклад, якщо потрібно видалити залежності між стовпцем і формою, потрібно відредагувати його в конструкторі форм і видалити стовпець із форми. Залежність видаляється після того, як ви виберете Зберегти та опублікувати.
Нотатка
- Команда «Показати залежності» дає змогу виконувати дії для перегляду, видалення залежностей, редагування компонента або видалення компонента. Додаткові відомості: Перегляд залежностей для компонента
- Кнопка «Залежності перегляду » з’являється, коли ви намагаєтеся видалити компонент, який має залежності. Хоча цей екран дозволяє переглядати залежність, він не дозволяє виконувати дії.
- Коли ви видаляєте залежний компонент, дія видаляє всі залежності разом із компонентом.
Щоб переглянути залежності компонента, в області «Рішення » відкрийте потрібне рішення, виберіть вертикальні еліпси поруч із компонентом, а потім виберіть «Розширені>залежності».
На сторінці залежностей присутні дві окремі частини.
- Залежні компоненти: список компонентів, які залежать від вибраного стовпця. Іншими словами, ці компоненти мають цю колонку як обов’язковий компонент.
- Обов’язкові компоненти: список компонентів, які потрібні для роботи цього стовпця. Іншими словами, ці компоненти мають цю колонку як залежну компоненту.