Prezentare generală a eliminării dependențelor

Componentele soluției depind adesea de alte componente ale soluției. Nu puteți șterge nicio componentă a soluției care are dependențe față de alte componente ale soluției. Dependențele sunt înregistrări create automat de cadrul de soluții pentru a preveni ștergerea componentelor obligatorii în timp ce una sau mai multe componente dependente includ încă referințe la acestea.

Exemple de dependențe sunt: dat fiind că un câmp este necesar pentru ca un formular să funcționeze, atunci când încercați să executați o acțiune care are ca rezultat ștergerea acelui câmp, formularul va înceta să funcționeze.

Un alt exemplu este atunci când încercați să ștergeți harta site-ului pentru o aplicație bazată pe model. Sistemul indică faptul că există o dependență de aplicație. Aplicația este componenta dependentă, iar harta site-ului este componenta obligatorie. Sistemul vă împiedică să ștergeți harta site-ului până când nu eliminați dependența.

Sistemul detectează o dependență în care aplicația depinde de harta site-ului.

Notă

Ștergere înseamnă că componenta este eliminată complet din Microsoft Dataverse.

În acest articol, vom discuta despre cum să gestionăm aceste dependențe și despre strategiile pe care le puteți utiliza pentru a elimina dependențele de care nu mai aveți nevoie.

Dependențele componentelor negestionate vs. gestionate

În primul rând, este important să înțelegem că dependențele împiedică doar operațiunile care șterg o componentă necesară. Acțiunile care pot șterge o componentă sunt diferite, în funcție de măsura în care componenta este negestionată sau gestionată.

Este bine să fii familiarizat cu conceptul de straturi de soluții și componente atunci când descrii dependențele. Dacă nu sunteți familiarizat, vă recomandăm să citiți acest articol înainte de a continua: Straturi de soluție

Componente negestionate

Aceste componente sunt reprezentate de un singur strat în soluția activă. Orice operațiune Ștergere pe o astfel de componentă duce la eliminarea completă a componentei.

Componente gestionate

Ștergerea componentelor gestionate depinde de mai mulți factori: numărul de straturi de soluție, poziția relativă a stratului care este dezinstalat și editorii de componente. De exemplu, atunci când o componentă este ștersă, luați în considerare următoarele scenarii și care va fi comportamentul preconizat atunci când dezinstalați diversele straturi.

Exemple de scenarii

Următoarele exemple de scenarii ilustrează ce se întâmplă cu straturile de soluții atunci când soluțiile sunt dezinstalate.

Scenariul 1: Dezinstalați un singur strat de soluție

Dezinstalați cu un singur strat.

Dezinstalarea soluției 1 provoacă o ștergere a componentelor, deoarece este singurul strat pentru componentă.

Scenariul 2: Dezinstalați straturile de soluții de la diferiți editori

Dezinstalare cu două straturi - Editor diferit.

  • Dezinstalarea soluției 2 nu produce o ștergere a componentelor. Doar acel strat este eliminat.
  • Dezinstalarea soluției 1 provoacă o ștergere a componentelor, deoarece acțiunea are loc în stratul de bază. De fapt, Soluția 1 nu poate fi dezinstalată în acest scenariu, deoarece o soluție de la un editor diferit extinde componenta.

Scenariul 3: Dezinstalați straturile multiple de soluții de la diferiți editori

Dezinstalare cu mai multe straturi - Editor diferit.

  • Dezinstalarea soluției 3 nu produce o ștergere a componentelor. Doar acel strat este eliminat.
  • Dezinstalarea soluției 2 nu produce o ștergere a componentelor. Doar acel strat este eliminat.
  • Dezinstalarea Soluției 1 nu determină ștergerea unei componente, deoarece în acest caz există o altă soluție de la același editor (Editorul A = Editorul C). Platforma elimină stratul din Soluția 1 și îl înlocuiește cu stratul din Soluția 3.

Scenariul 4: Dezinstalați straturile de soluție într-o particularizare negestionată

Dezinstalare cu două straturi - Personalizare negestionată.

  • Dezinstalarea stratului activ (negestionat) nu determină ștergerea unei componente. Doar acel strat este eliminat. Rețineți că nu puteți dezinstala soluția activă, dar puteți elimina componente utilizând funcția Eliminați personalizarea activă .
  • Dezinstalarea soluției 1 cauzează ștergerea componentelor. Acțiunea are loc în stratul de bază. Spre deosebire de scenariul 2, puteți dezinstala Soluția 1. Soluția activă nu este considerată o extensie, iar ambele straturi sunt eliminate.

Afișați pagina de dependențe

Comanda Afișează dependențele listerează dependențele pentru soluția sau componenta soluției selectată. Poate fi invocată prin:

  • Selectarea opțiunii Afișare dependențe pe pagina soluției.
  • Selectarea Avansat>Afișarea dependențelor într-o soluție atunci când este selectată o componentă a soluției.
  • Încercarea de a dezinstala o soluție face ca platforma să detecteze existența unor dependențe.

Din pagina Dependențe puteți deschide, elimina sau șterge componenta. Mai multe informații: Vizualizați dependențele pentru o componentă

Diagnosticarea dependențelor

Luați în considerare acest scenariu. Mediul de aici are două soluții: Soluție - Flux de lucru și Soluție - Entitate personalizată.

Listă de soluții cu două soluții.

Un creator al mediului decide că nu mai are nevoie de Soluție - Entitate personalizată. Creatorul a încercat să îl șteargă și i s-a prezentat următoarea pagină:

Detalii despre dependențe după încercarea de ștergere a unei soluții.

Dezinstalarea soluției încearcă să șteargă un tabel numit Entitate personalizată și trei câmpuri—Entitate personalizată, Nume și Câmp numeric—și toate cele patru componente au dependențe.

Notă

Dezinstalarea soluției ar putea șterge mai multe componente, dar pentru că nu au dependențe, acestea nu vor apărea pe listă.

Următorul pas este să verificați linkul Straturile de soluție (coloana din dreapta) pentru fiecare dependență. Asta te ajută să decizi ce să faci pentru a elimina dependența.

Următoarea figură prezintă detalii despre dependența dintre tabel (Entitate personalizată) și proces (Flux de lucru de testare).

Detalii despre dependența tabelului personalizat.

Pe baza datelor afișate, puteți observa că componenta dependentă aparține unei soluții numite SolutionWorkflow. Pentru a elimina această dependență, puteți:

  • Actualizați definiția fluxului de lucru din SolutionWorkflow prin eliminarea oricăror referințe la tabel sau la subcomponentele sale. Apoi Actualizare sau Upgrade soluție.
  • Dezinstalarea soluției SolutionWorkflow.
  • Eliminați fluxul de lucru dintr-o nouă versiune a soluției SolutionWorkflow, apoi efectuați un Upgrade.

Deoarece orice componentă dependentă poate preveni eliminarea soluției, vă recomandăm să verificați toate dependențele și să faceți toate modificările necesare într-o singură operație.

Următoarea figură prezintă detalii despre dependența dintre tabel (Entitate personalizată) și o aplicație bazată pe model (AplicațiaMea).

Dependență între tabel (Entitate personalizată) și aplicație (Aplicația mea).

Pe baza datelor afișate, puteți observa că componenta dependentă aparține unei soluții numite Activă. Acest lucru indică faptul că dependența a fost creată prin importarea unei soluții negestionate sau printr-o particularizare negestionată care a fost executată prin interfața de utilizator modernă sau API.

Pentru a elimina această dependență, puteți:

  • Edita definiția aplicației proiectate pe bază de model pentru a elimina orice referință la entitate sau subcomponentele acesteia. Deoarece aplicațiile proiectate pe bază de model acceptă publicarea, trebuie să publicați modificările.
  • Ștergeți aplicația proiectată pe bază de model.

Notă

Dezinstalarea unei soluții negestionate nu este o opțiune pentru înlăturarea acestei dependențe, deoarece soluțiile negestionate sunt doar un mijloc de a grupa componente.

Acțiuni pentru eliminarea unei dependențe gestionate

Dependențele gestionate sunt cele în care componenta dependentă este asociată unei soluții gestionate. Pentru a rezolva acest tip de dependență, trebuie să acționați asupra soluției în care a fost adăugată componenta. Acea acțiune poate fi diferită în funcție de ceea ce încercați să faceți.

Dacă încercați să dezinstalați o soluție

Parcurgeţi aceste etape:

  1. În mediul țintă, verificați linkul *Straturi de soluție* pentru a găsi soluția de top din lista componentei dependente.
  2. În mediul sursă, pregătiți o nouă versiune a acelei soluții, în care soluția fie nu conține componenta dependentă, fie are o versiune actualizată a componentei dependente care nu conține referințe la componenta necesară. Scopul dvs. este să eliminați orice referință la componentele obligatorii din noua versiune a soluției.
  3. Exportați noua versiune a soluției.
  4. În mediul țintă, Faceți upgrade acea soluție.
  5. Încercați din nou dezinstalarea.

Dacă încercați să actualizați o soluție

În acest caz, trebuie să confirmați că ați dorit să ștergeți componenta obligatorie (nu uitați că dependențele sunt aplicate numai pe componente care sunt șterse).

Dacă nu ați dorit să ștergeți componenta, puteți remedia noua versiune a soluției adăugând înapoi componenta, efectuând următoarele:

  1. În mediul țintă, dezinstalați soluția în etape (soluția care se termină în _Upgrade).
  2. În mediul sursă, adăugați componentele necesare înapoi la soluție.
  3. Exportați noua versiune.
  4. Reîncercați să efectuați upgrade-ul.

Dacă ștergerea este intenționată, trebuie să eliminați dependența. Încercați pașii descriși în secțiunea precedentă, dacă încercați să dezinstalați o soluție.

Straturi și dependențe

Componentele dependente pot fi stratificate, deci trebuie să schimbați mai multe soluții pentru a elimina complet o dependență. Cadrul de dependență calculează doar dependențele între straturile superioare pentru componentele obligatorii și dependente. Asta înseamnă că trebuie să avansați de sus în joc în cadrul soluțiilor componentei dependente.

Luați în considerare următorul scenariu:

Alegerea unei soluții pentru dezinstalare.

Încercați să dezinstalați Soluție - Entitate particularizată, iar operația este blocată de dependențe.

Dependențele care blochează dezinstalarea soluției.

Începeți să diagnosticați dependența selectând Straturi soluție pe atributul new_numberfield. Observați următorul ecran:

Dependența dintre atributul new_numberfield și fluxul de lucru Test Workflow.

Deoarece dependențele sunt create doar între straturile superioare ale fiecărei componente, primul pas este să se ocupe de dependența dintre atributul new_numberfield în SolutionCustomEntity și fluxul de lucru Testare flux de lucru în SolutionWorkflow3.

Pentru a elimina dependența, decideți să dezinstalați SolutionWorkflow3. Faceți acest lucru, dar atunci când încercați să dezinstalați soluția, vi se prezintă aceeași pagină de dependențe:

Dependențele care blochează dezinstalarea Soluției - Entitate personalizată.

Totuși, câmp_număr_nou Coloana nu mai este listată, chiar dacă a existat în mai multe straturi.

Acțiuni pentru eliminarea unei dependențe negestionate

Pentru a elimina dependențele negestionate, trebuie să acționați direct asupra componentelor, nu în soluțiile din care fac parte. De exemplu, dacă doriți să eliminați dependențele dintre o coloană și un formular, trebuie să o editați în proiectantul de formulare și să eliminați coloana din formular. Dependența este eliminată după ce selectați Salva şi Publica.

Notă

  • Cel/Cea/Cei/Cele Afișați dependențele Comanda vă permite să luați măsuri pentru a vizualiza, elimina dependența, edita componenta sau șterge componenta. Mai multe informații: Vizualizați dependențele pentru o componentă
  • Butonul *Vizualizare dependențe* apare atunci când încercați să ștergeți o componentă care are dependențe. Deși acest ecran vă permite să vizualizați dependența, nu vă permite să luați măsuri.
  • Când ștergeți componenta dependentă, acțiunea șterge toate dependențele, împreună cu componenta.

Pentru a vizualiza dependențele unei componente, din zona Soluții , deschideți soluția dorită, selectați elipsele verticale de lângă componentă, apoi selectați Avansat>Afișați dependențele.

Pagina de dependențe are două părți distincte:

  • Componente dependente: O listă de componente care depind de coloana selectată. Cu alte cuvinte, aceste componente au această coloană ca și componentă obligatorie.
  • Componente necesare: O listă de componente necesare acestei coloane pentru a funcționa. Cu alte cuvinte, aceste componente au această coloană ca și componentă dependentă.

Dependențele componentelor.

Pașii următori