Urmărirea dependenței pentru componentele de soluție

Soluțiile sunt alcătuite din componente de soluție. Veți folosi zona Soluții din Microsoft Dataverse pentru a crea sau adăuga componente de soluție. Puteți efectua aceste acțiuni programatic folosind mesaj AddSolutionComponentRequest sau orice mesaje care creează sau actualizează componente de soluție care includ un parametru SolutionUniqueName.

Componentele soluției depind adesea de alte componente ale soluției. Nu puteți șterge orice componenta de soluție ce are dependențe la altă componentă de soluție. De exemplu, o panglică particularizată necesită de obicei resurse de imagine sau script web pentru a afișa pictograme și pentru a efectua acțiuni folosind scripturi. Atâta timp cât panglica particularizată este în soluție, sunt necesare resursele web specifice pe care le folosește. Înainte de a putea șterge resursele web, trebuie să eliminați referințele la acestea din panglica particularizată. Aceste dependențe componente de soluție pot fi vizualizate în aplicație făcând clic pe Afișați dependențe.

Acest subiect descrie tipurile de componente de soluție pe care le puteți include în soluțiile dvs. și modul în care acestea depind unele de altele.

Toate componentele de soluție

Lista completă a tipurilor de componente de soluții disponibile este localizată în setul de opțiuni global componenttype al sistemului. Gama de valori acceptată pentru această proprietate este disponibilă prin includerea fișierului OptionSets.cs sau OptionSets.vb în proiect. Cu toate acestea, multe dintre tipurile de componente de soluție enumerate acolo sunt destinate numai uzului intern și lista nu oferă informații despre relațiile dintre componentele de soluție.

Dependențe componente de soluții

Dependențele componentelor de soluție vă asigură de o experiență de încredere în lucrul cu soluțiile. Acestea împiedică posibilitatea ca acțiunile pe care le efectuați în mod normal să defecteze neintenționat particularizările definite într-o soluție. Aceste dependențe sunt cele care permit instalarea și dezinstalarea unui soluții gestionate pur și simplu prin importul sau ștergerea unei soluții.

Cadrul de lucru pentru soluții urmărește automat dependențele pentru componentele soluției. Fiecare operație pe o componentă de soluție calculează automat orice dependență de alte componente din sistem. Informațiile de dependență sunt utilizate pentru a menține integritatea sistemului și pentru a preveni operațiunile care ar putea duce la o stare inconsistentă.

Ca urmare a urmăririi dependențelor, sunt impuse următoarele comportamente:

  • Ștergerea unei componente este evitată dacă o altă componentă din sistem depinde de aceasta.

  • Exportul unei soluții avertizează utilizatorul dacă există componente care lipsesc care ar putea provoca defecțiuni la importul soluției în alt sistem.

    Avertismentele din timpul exportului pot fi ignorate dacă dezvoltatorul soluției intenționează ca soluția să fie instalată doar într-o organizație unde se așteaptă să existe componente dependente. De exemplu, atunci când creați o soluție care este proiectată pentru a fi instalată pe o soluție „de bază” preinstalată.

  • Importul unei soluții nu reușește dacă nu sunt incluse în soluție toate componentele necesare și, de asemenea, nu există în sistemul țintă.

    • În plus, atunci când importați o soluție gestionată, toate componentele necesare trebuie să corespundă tipului de pachet al soluției. O componentă dintr-o soluție gestionată poate depinde doar de o altă componentă gestionată.

    Există trei tipuri de dependențe ale componentelor soluției:

    Intern soluție
    Dependențele interne sunt gestionate de Dataverse. Ele există atunci când o anumită componentă de soluție nu poate exista fără o altă componentă a soluției.

    Publicat
    Dependențele publicate sunt create atunci când două componente de soluție sunt legate între ele și apoi sunt publicate. Pentru a elimina acest tip de dependență, asocierea trebuie eliminată și entitățile publicate din nou.

    Retras de la publicare
    Dependențele nepublicate se aplică la versiunea nepublicată a unei componente de soluție publicabilă care este actualizată. După ce componenta de soluție este publicată, devine o dependență publicată.

    Dependențele interne de soluție sunt dependențe în care acțiunile cu o componentă de soluție necesită o acțiune pentru o altă componentă de soluție. De exemplu, dacă ștergeți o entitate, trebuie să vă așteptați ca toate atributele de entitate să fie șterse cu ea. Orice relații de entitate cu alte entități vor fi, de asemenea, șterse.

    Cu toate acestea, o dependență internă poate duce la o dependență publicată și necesită totuși intervenție manuală. De exemplu, dacă includeți un câmp de căutare într-un formular de entitate și apoi ștergeți entitatea primară din relație, nu puteți finaliza ștergerea respectivă până când nu eliminați câmpul de căutare din formularul de entitate aferent și apoi publicați formularul.

    Atunci când efectuați acțiuni programatic cu soluții, puteți utiliza mesaje legate de entitatea Dependency. Vedeți Entitatea dependență pentru mesajele pe care le puteți utiliza pentru a identifica dependențele care pot exista înainte de a șterge o componentă sau a dezinstala o soluție.

Componentele de soluție comune

Acestea sunt componentele de soluție afișate în aplicație și componentele cu care veți lucra direct la adăugarea sau eliminarea componentelor soluției utilizând pagina soluției. Fiecare dintre celelalte tipuri de componente de soluție vor depinde de una sau mai multe dintre aceste componente de soluție.

Panglici de aplicație (RibbonCustomization) Entitate (Entity) Raport (Report)
Șablon articol (KBArticleTemplate) Profil de securitate câmp (FieldSecurityProfile) Pas de procesare mesaj SDK (SDKMessageProcessingStep)
Rol de conectare (ConnectionRole) Șablon de îmbinare corespondență (MailMergeTemplate) Rol de securitate (Role)
Șablon de contract (ContractTemplate) Set de opțiuni (OptionSet) Punct final al serviciului (ServiceEndpoint)
Tabloul de bord sau formularul de entitate (SystemForm) Ansamblul de insert (PluginAssembly) Hartă site (SiteMap)
Șablon de e-mail (EmailTemplate) Proces (Workflow) Resursă web (WebResource)

Panglici de aplicație (RibbonCustomization)

Particularizări de panglică pentru panglica de aplicații și șabloanele de panglică de entitate. Panglicile de aplicație nu includ definiții de panglici la nivel de entitate sau formular.

Panglicile de aplicații particularizate au frecvent dependențe publicate față de resurse web. Resursele web sunt utilizate pentru a defini pictogramele butoanelor de panglică și funcțiile JavaScript pentru a controla când sunt afișate elemente de panglică sau ce acțiuni sunt efectuate atunci când este utilizat un anumit control al panglicii. Dependențele sunt create numai atunci când definițiile panglicii folosesc directiva $webresource: pentru asocierea resursei web la panglică. Mai multe informatii: Directiva $webresource

Șablon articol (KBArticleTemplate)

Șablon care conține atributele standard ale unui articol. Întotdeauna există o dependență internă între șablonul articolului și entitatea KbArticle.

Rol de conectare (ConnectionRole)

Rol care descrie relația dintre două înregistrări. Fiecare rol de conexiune definește ce tipuri de înregistrări de entitate pot fi asociate folosind rolul de conexiune. Aceasta creează o dependență publicată între rolul de conexiune și entitate.

Șablon de contract (ContractTemplate)

Șablon care conține atributele standard ale unui contract. Întotdeauna există o dependență internă între șablonul de contract și entitatea contract.

Tablou de bord sau formular de entitate (SystemForm)

Înregistrările de entități de formular de sistem sunt utilizate pentru a defini tablourile de bord și formularele de entitate. Atunci când un SystemForm este utilizat ca formular de entitate, există o dependență internă de entitate. Când un SystemForm este utilizat ca tablou de bord, nu există dependențe interne. Atât formularele de entitate, cât și tablourile de bord au în mod obișnuit dependențe publicate legate de conținutul lor. Un formular de entitate poate avea câmpuri de căutare care depind de o relație de entitate. Atât tablourile de bord, cât și formularele de entitate pot conține diagrame sau subgrile care vor crea o dependență publicată de o vizualizare, care are apoi o dependență internă de o entitate. O dependență publicată de resursele web poate fi creată din cauza conținutului afișat în tabloul de bord sau al formularului sau când un formular conține biblioteci JavaScript. Formularele de entitate au dependențe publicat față de orice atribute care sunt afișate ca câmpuri în formular.

Șablon de e-mail (EmailTemplate)

Șablon conținând atributele standard ale unui mesaj de e-mail. Un șablon de e-mail include de obicei câmpuri care introduc date din atributele entității specificate. Un șablon de e-mail poate fi legat de o entitate specifică atunci când este creat, astfel încât să poată exista o dependență internă față de entitate. Un șablon global de e-mail nu este asociat cu o entitate specifică, dar este posibil să aibă dependențe publicate față de atributele de entitate utilizate pentru a furniza date. Un proces (flux de lucru) este configurat frecvent pentru a trimite un e-mail folosind un șablon de e-mail care creează o dependență publicată cu fluxul de lucru.

Entitate (Entity)

Structura primară folosită pentru modelarea și gestionarea datelor din Dataverse. Graficele, formularele, relațiile de entitate, vizualizările și atributele asociate unei entități sunt șterse automat atunci când entitatea este ștearsă din cauza dependențelor interne dintre acestea. Entitățile au frecvent dependențe publicate față de procese, tablouri de bord și șabloane de e-mail.

Profil de securitate câmp (FieldSecurityProfile)

Profil ce definește nivelul de acces pentru atribute securizate.

Șablon de îmbinare corespondență (MailMergeTemplate)

Șablon care conține atributele standard ale unui document de îmbinare a corespondenței. Un șablon de îmbinare a corespondenței are o dependență publicată de entitatea cu care este asociat.

Set de opțiuni (OptionSet)

Un set de opțiuni definește un set de opțiuni. Un atribut de listă verticală utilizează un set de opțiuni pentru a defini opțiunile furnizate. Mai multe atribute de selecție pot utiliza un set de opțiuni global, astfel încât opțiunile pe care le oferă să fie întotdeauna aceleași și să poată fi menținute într-un singur loc. O dependență publicată apare atunci când un atribut de listă verticală face referire la un set de opțiuni global. Nu puteți șterge un set de opțiuni global care este utilizat de un atribut de listă verticală.

Ansamblu de insert (PluginAssembly)

Ansamblu care conține unul sau mai multe tipuri de insert. Inserturile sunt înregistrate la evenimente care sunt de obicei asociate cu o entitate. Aceasta creează o dependență publicată.

Proces (Workflow)

Set de reguli logice care definesc etapele necesare pentru a automatiza un anumit proces comercial, activitate sau set de acțiuni de efectuat. Procesele oferă o gamă largă de acțiuni care creează dependențe publicate față de orice altă componentă de soluție la care face referire procesul. Fiecare proces are, de asemenea o dependență publicată de entitatea cu care este asociat.

Raport (Report)

Rezumat de date într-un aspect ușor de citit. Un raport are dependențe publicate față de orice entitate sau date de atribute incluse în raport. Fiecare raport trebuie, de asemenea, asociat cu o categorie de raport care creează o dependență internă de o componentă de soluție numită Categorie corelată raportului(ReportCategory). Rapoartele pot fi configurate pentru a fi subrapoarte care creează o dependență publicată cu raportul părinte.

Pas de procesare mesaj SDK (SDKMessageProcessingStep)

Fază pe care o va executa un insert în canalul de execuție.

Rol de securitate (Role)

Gruparea privilegiilor de securitate. Utilizatorilor li se atribuie roluri care le autorizează accesul la sistemul Dataverse. Formularele de entitate pot fi asociate cu roluri de securitate specifice pentru a controla cine poate vizualiza formularul. Aceasta creează o dependență publicată între rolul de securitate și formular.

Notă

La o soluție se pot adăuga doar roluri de securitate din unitatea de business a organizației. Numai un utilizator cu acces de citire la aceste roluri de securitate le poate adăuga la o soluție.

Punct final al serviciului (ServiceEndpoint)

Punct final serviciu care poate fi contactat.

Hartă site (SiteMap)

Date XML folosite pentru a controla panoul de navigare a aplicației. Harta site-ului poate fi legată pentru a afișa o resursă web HTML sau o pictogramă din harta site-ului poate utiliza o resursă web imagine. Cand este utilizată directiva $webresource: pentru a stabili aceste asocieri, se creează o dependență publicată. Mai multe informatii: Directiva $webresource

Resursă web (WebResource)

Date echivalente cu fișierele utilizate în dezvoltarea web. Resursele web furnizează componente din partea clientului care sunt utilizate pentru a furniza elemente de interfață de utilizator particularizate. Resursele web pot avea dependențe publicate cu formularele de entitate, panglici și SiteMap. Când este utilizată directiva $webresource: pentru a stabili asocieri într-o panglică sau SiteMap, se creează o dependență publicată. Pentru mai multe informatii, vedeți Directiva $webresource

Notă

Resursele web pot depinde de alte resurse web bazate pe legături relative. De exemplu, o resursă web HTML poate utiliza o resursă web CSS sau script. O resursă web Silverlight afișată în afara unui formular de entitate sau a unui grafic trebuie să aibă o resursă web HTML pentru a o găzdui. Aceste dependențe nu sunt urmărite ca dependențe de soluție.

Consultați și

Concepte de soluție
Eliminarea dependențelor
Strategia de mediu
Lucrul cu soluții utilizând API-urile SDK]
Referință entitate soluție
Referință pentru entitatea SolutionComponent