Crearea de corecții pentru a simplifica actualizările soluțiilor
Dacă adăugați o entitate într-o soluție și când exportați soluția, entitatea și toate activele sale asociate sunt exportate în acea soluție. Aceste active includ atribute, forme, vizionări, relații și vizualizări și orice alte active care sunt ambalate împreună cu entitatea. Exportarea tuturor obiectelor înseamnă că puteți modifica neintenționat obiecte pe implementarea țintă sau puteți prelua dependențe nedorite.
Pentru a rezolva acest lucru, puteți crea și publica corecții de soluție care conțin subcomponente de entități, în loc să publicați întreaga entitate și toate activele sale. Soluția inițială și unul sau mai mulți conectori conecși pot fi rulați (combinați) ulterior într-o versiune actualizată a soluției, care poate înlocui atunci soluția inițială în organizația Microsoft Dataverse țintă.
Corecții
Puteți aplica corecții fie pentru soluții gestionate, fie pentru cele negestionate și puteți include doar modificări ale entităților și activelor entității corelate. Corecțiile nu conțin componente sau relații neparticularizabile ale sistemului de care depind, deoarece aceste componente există deja în organizația implementată. La un moment dat în ciclul dvs. de dezvoltare, puteți cumula toate corecțiile într-o nouă versiune de soluție pentru a înlocui soluția inițială din care au fost create corecțiile.
Corecțiile sunt stocate în baza de date Dataverse ca înregistrări de entitate ale Solution
. Un nul atribut ParentSolutionId
indică faptul că soluția este o corecție. Patch-urile pot fi create și gestionate prin SDK-ul pentru .NET sau API-uri Web, care sunt utile pentru dezvoltarea automatizării, cum ar fi un script de instalare a produsului. Însă aplicația web Dataverse oferă diverse formulare web care vă permit să creați și să gestionați interactiv corecții.
Corecțiile pot fi create doar dintr-o soluție părinte folosind CloneAsPatchRequest sau CloneAsPatch Action.
Patch-ul părinte nu poate fi un patch.
Corecțiile pot avea doar o soluție părinte.
O corecție creează o dependență (la nivelul soluției) de soluția sa părinte.
Puteți instala doar o corecție dacă soluția părinte este prezentă.
Nu puteți instala un patch decât dacă numele unic și numărul versiunii majore/minore ale soluției părinte, identificate prin
ParentSolutionId
, nu se potrivesc cu cele ale soluției părinte instalate în organizația țintă.O versiune de corecție trebuie să aibă același număr major și minor, dar un număr de construire și lansare mai mare decât numărul de versiune a soluției părinte. Numele afișat poate diferit.
Dacă o soluție are corecții, corecțiile ulterioare trebuie să aibă un număr de versiune numeric mai mare decât orice corecție existentă pentru acea soluție.
Corecțiile acceptă aceleași operații ca soluțiile, cum ar fi actualizarea aditivă, dar nu și eliminarea. Nu puteți elimina componentele dintr-o soluție folosind o corecție. Pentru a elimina componentele dintr-o soluție, efectuați o actualizare.
Corecțiile exportate ca fiind gestionate trebuie să fie importate pe baza unei soluții părinte gestionate. Regula este că protecția de corecție (gestionată sau negestionată) trebuie să se potrivească cu părintele său.
Nu utilizați patch-uri negestionate în scopuri de producție.
Corecțiile sunt acceptate doar în organizații Dataverse ale versiunii 8.0 sau ulterioare.
Instrumentele SolutionPackager și PackageDeployer din această versiune de soluții de asistență oferă corecții. Consultați ajutorul online al instrumentului pentru orice opțiuni din linia de comandă care sunt legate de corecții.
Creați o corecție
Creați o corecție dintr-o soluție negestionată într-o organizație folosind mesajul CloneAsPatchRequest sau CloneAsPatch Action, sau folosind aplicația web. Odată ce creați patch-ul, soluția originală devine blocată și nu o puteți modifica sau exporta atâta timp cât există patch-uri dependente în organizație care identifică soluția ca fiind soluția părinte. Versiunea de corecție este similară cu versiunea de soluții și este specificată în următorul format: major.minor.build.release. Nu puteți face modificări versiunilor de soluție majore sau minore existente atunci când creați un patch.
Importul și exportul unei corecții
Puteți utiliza SDK-ul pentru .NET sau API-uri web, aplicația web sau instrumentul Package Deployer pentru a exporta și importa o corecție. SDK-ul relevant pentru clasele de solicitare .NET sunt ImportSolutionRequest și ExportSolutionRequest. Acțiunile relevante pentru API-ul web sunt ImportSolution Action și ExportSolution Action.
Exemple de corecții
Următorul tabel prezintă detaliile unui exemplu de corecție. Rețineți că, în acest exemplu, soluția și corecțiile sunt importate în ordine numerică și sunt aditive, ceea ce este în concordanță cu importul soluțiilor în general.
Numele corecției | Descriere |
---|---|
SolutionA, versiunea 1.0 (negestionată) | Conține entityA cu 6 câmpuri. |
SolutionA, versiunea 1.0.1.0 (negestionată) | Conține entityA cu 6 câmpuri (3 actualizate) și adaugă entityB cu 10 câmpuri. |
SolutionA, versiunea 1.0.2.0 (negestionată) | Conține entityC cu 10 câmpuri. |
Procesul de import este următorul.
Dezvoltatorul sau persoana care particularizează importă mai întâi soluția de bază (SolutionA 1.0) în organizație. Rezultatul este entityA cu 6 câmpuri în organizație.
Apoi, corecția SolutionA 1.0.1.0 este importată. Organizația conține acum entityA cu 6 câmpuri (3 au fost actualizate), plus entityB cu 10 câmpuri.
În final, corecția SolutionA 1.0.2.0 este importată. Organizația conține acum entityA cu 6 câmpuri (3 au fost actualizate), entityB cu 10 câmpuri, plus entityC cu 10 câmpuri.
Un alt exemplu de corecție
Să aruncăm o privire la un alt exemplu de corecție, cu detaliile enumerate în tabelul următor.
Numele corecției | Descriere |
---|---|
SolutionA, versiunea 1.0 (soluție de bază negestionată) | Conține entitatea Account în care lungimea câmpului de număr al contului este ajustată de la 20 la 30 de caractere. |
SolutionB, versiunea 2.0 (furnizor negestionat, diferit) | Conține entitatea Account în care lungimea câmpului de număr al contului este ajustată la 50 de caractere. |
SolutionA, versiunea 1.0.1.0 (negestionată, corecție) | Conține o actualizare la entitatea Account în care lungimea câmpului de număr al contului este ajustată la 35 de caractere. |
Procesul de import este următorul:
Dezvoltatorul sau persoana care particularizează importă mai întâi soluția de bază (SolutionA 1.0) în organizație. Rezultatul este o entitate
Account
cu un câmp de număr de cont de 30 de caractere.SolutionB este importată. Organizația conține acum o entitate
Account
cu un câmp de număr de cont de 50 de caractere.Corecția SolutionA 1.0.1.0 este importată. Organizația conține în continuare o entitate
Account
cu un câmp de număr de cont de 50 de caractere, așa cum se aplică de SolutionB.SolutionB este dezinstalată. Organizația conține acum o entitate
Account
cu un câmp de număr de cont de 35 de caractere, așa cum se aplică de corecția SolutionA 1.0.1.0.
Ștergerea unei corecții
Puteți șterge o soluție de corecție sau de bază (părinte) folosind DeleteRequest sau, pentru API-ul Web, utilizați metoda HTTP DELETE
. Procesul de ștergere este diferit pentru o soluție gestionată sau negestionată care are una sau mai multe corecții existente în organizație.
Pentru o soluție negestionată, mai întâi, trebuie să dezinstalați toate corecțiile către soluția de bază, în ordinea versiunii inverse pe care au fost create, înainte de a dezinstala soluția de bază.
Pentru un soluție gestionată, pur și simplu dezinstalați soluția de bază. Sistemul Dataverse dezinstalează automat corecțiile în ordinea inversă versiunii înainte de a dezinstala soluția de bază. Puteți, de asemenea, să dezinstalați o singură corecție.
Actualizați o soluție
Actualizarea unei soluții presupune cumularea (îmbinarea) tuturor corecțiilor către soluția respectivă într-o nouă versiune a soluției. Ulterior, acea soluție devine deblocată și poate fi din nou modificată (numai soluția negestionată) sau exportată. Pentru un soluție gestionată, nu sunt permise alte modificări ale soluției, cu excepția creării de corecții din soluția recent actualizată. Pentru a lansa corecții într-o soluție negestionată, utilizați CloneAsSolutionRequest sau CloneAsSolution Action. Clonarea unei soluții creează o nouă versiune a soluției negestionate, încorporând toate corecțiile sale, cu un număr de versiune mai mare major.minor, același nume unic și un nume afișat.
Pentru un soluție gestionată lucrurile se gestionează puțin diferit. Mai întâi ați clonat soluția negestionată (A), încorporând toate corecțiile sale și apoi exportând-o sub formă de soluție gestionată (B). În organizația țintă care conține versiunea gestionată a soluției (A) și corecțiile acesteia, importați soluție gestionată (B) și apoi executați DeleteAndPromoteRequest sau DeleteAndPromoteAction pentru a înlocui soluția gestionată (A) și corecțiile sale cu o soluție gestionată (B) actualizată care are un număr de versiune mai mare.