Avhengighetssporing for løsningskomponenter
Løsninger består av løsningskomponenter. Du skal bruke Løsninger-området i Microsoft Dataverse til å opprette eller legge til løsningskomponenter. Du kan utføre disse handlingene programmatisk ved å bruke AddSolutionComponentRequest-meldingen eller meldinger som oppretter eller oppdaterer løsningskomponenter som inneholder en SolutionUniqueName
-parameter.
Løsningskomponenter er ofte avhengige av andre løsningskomponenter. Du kan ikke slette løsningskomponenten som har avhengigheter på en annen løsningskomponent. Et tilpasset bånd krever for eksempel vanligvis bilde- eller skript-webressurser for å vise ikoner og utføre handlinger ved hjelp av skript. Så lenge det tilpassede båndet er i løsningen, kreves de spesifikke webressursene det bruker. Før du kan slette webressursene må du fjerne referanser til dem i det tilpassede båndet. Disse løsningskomponentavhengighetene kan vises i programmet ved å klikke Vis avhengigheter.
Denne emnet beskriver typene løsningskomponenter som du kan inkludere i løsningene, og hvordan de er avhengige av hverandre.
Alle løsningskomponenter
Den fullstendige listen over tilgjengelige løsningskomponenttyper befinner seg i systemets globale componenttype
-alternativsett. Det støttede området med verdier for denne egenskapen er tilgjengelig ved å inkludere filen OptionSets.cs
eller OptionSets.vb
i prosjektet. Mange av løsningskomponenttypene som er oppført der, er imidlertid bare for intern bruk, og listen inneholder ikke informasjon om relasjoner mellom løsningskomponentene.
Avhengigheter for løsningskomponenter
Avhengigheter for løsningskomponenter bidrar til at du har en pålitelig opplevelse når du arbeider med løsninger. De hindrer handlinger som du vanligvis utfører ved utilsiktet brudd på tilpassinger som er definert i en løsning. Det er disse avhengighetene som tillater at en administrert løsning kan installeres og avinstalleres ved ganske enkelt å importere eller slette en løsning.
Løsningsrammeverket sporer avhengigheter automatisk for løsningskomponenter. Alle operasjoner på en løsningskomponent beregner automatisk avhengigheter til andre komponenter i systemet. Avhengighetsinformasjon brukes til å opprettholde integriteten til systemet og forhindre operasjoner som kan føre til inkonsekvent status.
Som et resultat av avhengighetssporing håndheves følgende handlinger:
Sletting av en komponent forhindres hvis en annen komponent i systemet avhenger av den.
Eksport av en løsning advarer brukeren hvis det finnes manglende komponenter som kan føre til feil under import av løsningen i et annet system.
Advarsler under eksport kan ignoreres hvis løsningsutvikleren bare vil at løsningen skal installeres i en organisasjon der avhengige komponenter forventes å eksistere. Når du for eksempel oppretter en løsning som er utformet for å bli installert via en forhåndsinstallert "base"-løsning.
Import av en løsning mislykkes hvis alle nødvendige komponenter ikke er inkludert i løsningen og heller ikke finnes i målsystemet.
- Når du i tillegg importerer en administrert løsning, må alle nødvendige komponenter samsvare med pakketypen for løsningen. En komponent i et administrert løsning kan bare være avhengig av en annen administrert komponent.
Det finnes tre typer avhengigheter for løsningskomponenter:
Intern løsning
Interne avhengigheter administreres av Dataverse. De finnes når en bestemt løsningskomponent ikke kan eksistere uten en annen løsningskomponent.Publisert
Publiserte avhengigheter opprettes når to løsninger er relatert til hverandre og deretter publiseres. Hvis du vil fjerne denne typen avhengighet, må tilknytningen fjernes, og enhetene må publiseres på nytt.Upublisert
Upubliserte avhengigheter gjelder for den upubliserte versjonen av en publiserbar løsningskomponent som oppdateres. Når løsningskomponenten er publisert, blir den til en publisert avhengighet.Løsningsinterne avhengigheter er avhengigheter der handlinger med en løsningskomponent krever en handling for en annen løsningskomponent. Hvis du for eksempel sletter en enhet, må du forvente at alle enhetsattributtene slettes samtidig. Alle enhetsrelasjoner med andre enheter slettes også.
En intern avhengighet kan imidlertid føre til en publisert avhengighet og fremdeles kreve manuell inngripen. Hvis du for eksempel inkluderer et oppslagsfelt på et enhetsskjema, og deretter sletter hovedenheten i relasjonen, kan du ikke fullføre slettingen før du fjerner oppslagsfeltet fra det relaterte enhetsskjemaet og deretter publiserer skjemaet.
Når du utfører handlinger programmatisk med løsninger, kan du bruke meldinger som er relatert til
Dependency
-enheten. Se Avhengighetsenhet for meldinger du kan bruke til å identifisere avhengigheter som kan eksistere før du sletter en komponent eller avinstallerer en løsning.
Felles løsningskomponenter
Dette er løsningskomponentene som vises i programmet og komponentene du skal arbeide med direkte når du legger til eller fjerner løsningskomponenter ved hjelp av løsningssiden. Hver av de andre typene løsningskomponenter er avhengige av én eller flere av disse løsningskomponentene for å eksistere.
Programbånd (RibbonCustomization)
Båndtilpassinger for programbånd og maler for enhetsbånd. Programbånd inneholder ikke definisjoner av bånd på enhets- eller skjemanivå.
Egendefinerte programbånd har ofte publiserte avhengigheter på nettressurser. Nettressurser brukes til å definere båndknappeikoner og JavaScript-funksjoner for å styre når båndelementer vises, eller hvilke handlinger som utføres når en bestemt båndkontroll brukes. Avhengigheter opprettes bare når bånddefinisjonene bruker $webresource:
-direktivet til å knytte nettressursen til båndet. Mer informasjon: $webresource-direktiv
Artikkelmal (KBArticleTemplate)
Mal som inneholder standardattributtene for en artikkel. Det er alltid en intern avhengighet mellom artikkelmalen og KbArticle-enheten.
Tilkoblingsrolle (ConnectionRole)
Rolle som beskriver en relasjon mellom to oppføringer. Hver tilkoblingsrolle definerer hvilke typer enhetsoppføringer som kan kobles til ved hjelp av tilkoblingsrollen. Dette oppretter en publisert avhengighet mellom tilkoblingsrollen og enheten.
Kontraktmal (ContractTemplate)
Mal som inneholder standardattributtene for en kontrakt. Det er alltid en intern avhengighet mellom kontraktmalen og kontraktenheten.
Instrumentbord eller enhetsskjema (SystemForm)
Enhetsoppføringer for systemskjema brukes til å definere instrumentbord og enhetsskjemaer. Når en SystemForm brukes som et enhetsskjema, finnes det en intern avhengighet på enheten. Når en SystemForm brukes som instrumentbord, er det ingen interne avhengigheter. Både enhetsskjemaer og instrumentbord har vanligvis publiserte avhengigheter relatert til innholdet. Et enhetsskjema kan ha oppslagsfelt som er avhengige av en enhetsrelasjon. Både instrumentbord og enhetsskjemaer kan inneholde diagrammer eller delrutenett som vil opprette en publisert avhengighet på en visning, som deretter har en intern avhengighet på en enhet. En publisert avhengighet på nettressurser kan opprettes på grunn av innhold som vises på instrumentbordet eller skjemaet, eller når et skjema inneholder JavaScript-biblioteker. Enhetsskjemaer har publiserte avhengigheter i alle attributter som vises som felt i skjemaet.
E-postmal (EmailTemplate)
Malen som inneholder standardattributtene for en e-postmelding. En e-postmal inneholder vanligvis felt som setter inn data fra angitte enhetsattributter. En e-postmal kan kobles til en bestemt enhet når den opprettes, slik at det kan være en intern avhengighet på enheten. En global e-postmal er ikke knyttet til en bestemt enhet, men den kan ha publiserte avhengigheter for enhetsattributter som brukes til å levere data. En prosess (arbeidsflyt) er ofte konfigurert til å sende en e-post ved hjelp av en e-postmal som oppretter en publisert avhengighet med arbeidsflyten.
Enhet (Entity)
Hovedstrukturen som brukes til å modellere og behandle data i Dataverse. Diagrammer, skjemaer, enhetsrelasjoner, visninger og attributter som er knyttet til en enhet, blir automatisk slettet når enheten slettes på grunn av de interne avhengighetene mellom dem. Enheter har ofte publiserte avhengigheter med prosesser, instrumentbord og e-postmaler.
Feltsikkerhetsprofil (FieldSecurityProfile)
Profil som definerer tilgangsnivået for sikrede attributter.
Mal for utskriftsfletting (MailMergeTemplate)
Mal som inneholder standardattributtene for et e-postflettingsdokument. En mal for utskriftsfletting har en publisert avhengighet på enheten den er knyttet til.
Alternativsett (OptionSet)
Et alternativsett definerer et sett med alternativer. Et plukklisteattributt bruker et alternativsett for å definere alternativene som er angitt. Flere plukklisteattributter kan bruke et globalt alternativsett, slik at alternativene de gir, alltid er de samme, og de kan beholdes på ett sted. En publisert avhengighet skjer når et plukklisteattributt refererer til et globalt alternativsett. Du kan ikke slette et globalt alternativsett som blir brukt av et plukklisteattributt.
Plugin-modulsamling (PluginAssembly)
Samling som inneholder én eller flere plugin-modulfeil. Plugin-moduler registreres i hendelser som vanligvis er knyttet til en enhet. Dette oppretter en publisert avhengighet.
Prosess (Workflow)
Gruppe med logiske regler som bestemmer de nødvendige trinnene for å automatisere en bestemt forretningsprosess, oppgave eller gruppe handlinger som skal utføres. Prosesser inneholder en rekke handlinger som oppretter publiserte avhengigheter på alle andre løsningskomponenter som prosessen refererer til. Hver prosess har også en publisert avhengighet på enheten den er knyttet til.
Rapport (Report)
Datosammendrag i et leservennlig oppsett. En rapport har publiserte avhengigheter for alle enhets- eller attributtdata som er inkludert i rapporten. Hver rapport må også knyttes til en rapportkategori som oppretter en intern avhengighet på en løsningskomponent kalt Rapportrelatert kategori (ReportCategory). Rapporter kan konfigureres til å være delrapporter som oppretter en publisert avhengighet med den overordnede rapporten.
Behandlingstrinn for SDK-meldingen (SDKMessageProcessingStep)
Fase i utføringspipeline som en plugin-modul skal utføre.
Sikkerhetsrolle (Role)
Gruppering av sikkerhetsrettigheter. Brukere blir tilordnet roller som gir dem tilgang til Dataverse-systemet. Enhetsskjemaer kan knyttes til bestemte sikkerhetsroller for å styre hvem som kan vise skjemaet. Dette oppretter en publisert avhengighet mellom sikkerhetsrollen og skjemaet.
Merk
Bare sikkerhetsroller fra organisasjonsforretningsenheten kan legges til i en løsning. Bare en bruker med lesetilgang til disse sikkerhetsrollene kan legge dem til i en løsning.
Serviceendepunkt (ServiceEndpoint)
Serviceendepunkt som kan kontaktes.
Områdekart (SiteMap)
XML-data som brukes til å kontrollere programnavigasjonsruten. Områdekartet kan være koblet til for å vise en HTML-nettressurs, eller et ikon i områdekartet kan bruke en bildenettressurs. Når $webresource:
-direktivet brukes til å opprette disse tilordningene, opprettes det en publisert avhengighet. Mer informasjon: $webresource-direktiv
Nettressurs (WebResource)
Dataekvivalent til filer som brukes i webutvikling. Webressurser genererer komponenter på klientsiden som brukes til å formidle tilpassede elementer i brukergrensesnittet. Webressurser kan ha publiserte avhengigheter med enhetsskjemaer, bånd og områdekartet. Når $webresource:
-direktivet brukes til å opprette tilordningene i et bånd eller et områdekart, opprettes det en publisert avhengighet. For mer informasjon, se $webresource-direktiv.
Merk
Webressurser kan være avhengig av andre webressurser basert på relative koblinger. En HTML-webressurs kan for eksempel bruke en CSS- eller skriptwebressurs. En Silverlight-webressurs som vises utenfor et enhetsskjema eller -diagram, må ha en HTML-webressurs som vert. Disse avhengighetene spores ikke som løsningsavhengigheter.
Se også
Løsningskonsepter
Fjerne avhengigheter
Miljøstrategi
Arbeide med løsninger ved hjelp av SDK-API-er]
Enhetsreferanse for løsning
Enhetsreferanse for SolutionComponent