Abhängigkeitsnachverfolgung für Lösungskomponenten

Lösungen bestehen aus Lösungskomponenten. Verwenden Sie den Bereich Lösungen in Microsoft Dataverse, um Lösungskomponenten zu erstellen oder hinzuzufügen. Sie können diese Aktionen programmgesteuert ausführen, indem Sie die Meldung AddSolutionComponentRequest verwenden, oder eine beliebige Meldung, die Lösungskomponenten erstellt oder aktualisiert, die einen SolutionUniqueName-Parameter enthalten.

Lösungskomponenten sind oft von anderen Lösungskomponenten abhängig. Sie können keine Lösungskomponente löschen, die von einer anderen Lösungskomponente abhängig ist. Beispielsweise benötigt ein benutzerdefiniertes Menüband normalerweise Bild- oder Skript-Webressourcen, um Symbole anzuzeigen und Aktionen mithilfe von Skripts auszuführen. Solange das benutzerdefinierte Menüband Bestandteil der Lösung ist, werden die spezifischen Webressourcen, die es verwendet, benötigt. Bevor Sie die Webressourcen löschen können, müssen Sie Verweise auf diese Webressourcen im benutzerdefinierten Menüband entfernen. Sie können diese Abhängigkeiten der Lösungskomponenten in der Anwendung anzeigen, indem Sie " Abhängigkeiten anzeigen" auswählen.

Dieser Artikel beschreibt die Typen von Lösungskomponenten, die Sie in Ihre Lösungen integrieren können, und wie diese voneinander abhängig sind.

Alle Lösungskomponenten

Die globale Systemauswahlspalte componenttype enthält die vollständige Liste der verfügbaren Lösungskomponententypen. Sie können den unterstützten Wertebereich für diese Eigenschaft anzeigen, indem Sie die Datei OptionSets.cs oder OptionSets.vb in Ihr Projekt einschließen. Viele der aufgeführten Lösungskomponententypen sind jedoch nur für die interne Verwendung vorhanden, und die Liste enthält keine Informationen zu den Beziehungen zwischen Lösungskomponenten.

Lösungskomponentenabhängigkeiten

Abhängigkeiten von Lösungskomponenten stellen sicher, dass Sie eine zuverlässige Erfahrung beim Arbeiten mit Lösungen haben. So wird verhindert, dass mit üblicherweise ausgeführten Aktionen versehentlich Anpassungen beschädigt werden, die in einer Lösung definiert sind. Durch die Abhängigkeiten wird ermöglicht, dass eine verwaltete Lösung durch das einfache Importieren oder Löschen einer Lösung installiert und deinstalliert wird.

Durch das Solutions Framework werden Abhängigkeiten für Lösungskomponenten automatisch nachverfolgt. Jeder Vorgang an einer Lösungskomponente berechnet automatisch alle Abhängigkeiten zu anderen Komponenten im System. Das System verwendet die Abhängigkeitsinformationen, um seine Integrität beizubehalten und zu verhindern, dass Operationen ausgeführt werden, die zu einem inkonsistenten Zustand führen könnten.

Die Abhängigkeitsüberwachung erzwingt die folgenden Verhaltensweisen:

  • Das Löschen einer Komponente wird verhindert, wenn eine andere Komponente im System von ihr abhängig ist.

  • Der Export einer Lösung warnt Sie, wenn fehlende Komponenten vorhanden sind, die beim Importieren dieser Lösung in einer anderen Umgebung zu Fehlern führen können.

    Sie können Warnungen während des Exports ignorieren, wenn die Lösung nur in einer Umgebung installiert werden soll, in der abhängige Komponenten erwartet werden. Wenn Sie beispielsweise eine Lösung erstellen, die über eine vorinstallierte Basislösung installiert werden soll.

  • Der Import einer Lösung schlägt fehl, wenn die Lösung nicht alle erforderlichen Komponenten enthält und die Zielumgebung sie nicht bereits hat.

  • Wenn Sie eine verwaltete Lösung importieren, müssen alle erforderlichen Komponenten mit dem Pakettyp der Lösung übereinstimmen. Eine Komponente in einer verwalteten Lösung kann nur von einer anderen verwalteten Komponente abhängen.

Es gibt drei Arten von Lösungskomponentenabhängigkeiten:

  • Intern für Lösungen Dataverse verwaltet interne Abhängigkeiten. Diese Abhängigkeiten sind vorhanden, wenn eine bestimmte Lösungskomponente ohne eine andere Lösungskomponente nicht vorhanden sein kann.
  • Veröffentlicht. Dataverse erstellt veröffentlichungsbedingte Abhängigkeiten, wenn zwei Lösungskomponenten miteinander in Beziehung stehen und veröffentlicht werden. Um diesen Abhängigkeitstyp zu entfernen, müssen Sie die Zuordnung entfernen und die Tabellen erneut veröffentlichen.
  • Unveröffentlicht. Unveröffentlichte Abhängigkeiten gelten für die unveröffentlichte Version einer veröffentlichbaren Lösungskomponente, die gerade aktualisiert wird. Nachdem Sie die Lösungskomponente veröffentlicht haben, wird sie zu einer veröffentlichten Abhängigkeit.

Lösungsinterne Abhängigkeiten sind Abhängigkeiten, bei denen für die Aktion mit einer Lösungskomponente die Aktion einer anderen Lösungskomponente erforderlich ist. Wenn Sie beispielsweise eine Tabelle löschen, erwarten Sie, dass alle Tabellenattribute damit gelöscht werden. Das System löscht auch alle Tabellenbeziehungen mit anderen Tabellen.

Eine interne Abhängigkeit könnte jedoch zu einer veröffentlichten Abhängigkeit führen und weiterhin eine manuelle Bearbeitung erfordern. Wenn Sie z. B. ein Nachschlagefeld in ein Tabellenformular einfügen und dann die Primärtabelle in der Beziehung löschen, können Sie diesen Löschvorgang erst abschließen, wenn Sie die Nachschlagespalte aus dem verknüpften Tabellenformular entfernen und dann das Formular veröffentlichen.

Wenn Sie Aktionen programmgesteuert mit Lösungen ausführen, verwenden Sie Nachrichten im Zusammenhang mit der Dependency Tabelle. Wechseln Sie zu Abhängigkeitsentität, um Nachrichten zu erhalten, die Sie verwenden können, um vorhandene Abhängigkeiten zu ermitteln, bevor Sie eine Komponente löschen oder eine Lösung deinstallieren.

Allgemeine Lösungskomponenten

Diese Lösungskomponenten erscheinen in der Anwendung. Sie arbeiten mit ihnen direkt zusammen, wenn Sie Lösungskomponenten über die Lösungsseite hinzufügen oder entfernen. Jede der anderen Lösungskomponenten hängt von einer oder mehreren dieser Lösungskomponenten ab.

Menübänder (RibbonCustomization)

Menübandanpassungen für das Anwendungsmenüband und die Vorlagen für Tabellenmenübänder. Anwendungsmenübänder enthalten keine Menübanddefinitionen auf Tabellen- oder Formularebene.

Benutzerdefinierte Menübänder weisen häufig veröffentlichte Abhängigkeiten von Webressourcen auf. Verwenden Sie Webressourcen zum Definieren von Symbolen für Ribbonschaltflächen und JavaScript-Funktionen, die steuern, wann Ribbonelemente angezeigt werden oder welche Aktionen ausgeführt werden, wenn ein bestimmtes Ribbon-Steuerelement verwendet wird. Abhängigkeiten werden nur erstellt, wenn die Menübanddefinitionen die $webresource: Direktive verwenden, um die Webressource dem Menüband zuzuordnen. Weitere Informationen finden Sie unter $webresource-Direktive.

Artikelvorlage (KBArticleTemplate)

Vorlage, die die Standardattribute eines Artikels enthält. Es besteht immer eine interne Abhängigkeit zwischen der Artikelvorlage und der KbArticle-Tabelle.

Verbindungsrolle (ConnectionRole)

Rolle, die eine Beziehung zwischen zwei Datensätzen beschreibt. Jede Verbindungsrolle definiert, welche Typen von Entitätsdatensätzen mithilfe der Verbindungsrolle verknüpft werden können. Diese Rolle erstellt eine veröffentlichte Abhängigkeit zwischen der Verbindungsrolle und der Tabelle.

Vertragsvorlage (ContractTemplate)

Vorlage, die die Standardattribute eines Vertrags enthält. Es besteht immer eine interne Abhängigkeit zwischen der Vertragsvorlagen und der Vertragstabelle.

Dashboard oder Entitätsformular (SystemForm)

Verwenden Sie Datensätze der Systemformulartabelle, um Dashboards und Tabellenformulare zu definieren. Wenn Sie ein SystemForm als Tabellenformular verwenden, gibt es eine interne Abhängigkeit von der Tabelle. Wenn Sie ein SystemForm Dashboard verwenden, gibt es keine internen Abhängigkeiten. Sowohl Tabellenformulare als auch Dashboards haben normalerweise veröffentlichte, inhaltsbezogene Abhängigkeiten. Ein Tabellenformular kann Nachschlagespalten enthalten, die von einer Tabellenbeziehung abhängen. Dashboards und Tabellenformulare enthalten möglicherweise Diagramme oder Unterraster, die eine veröffentlichte Abhängigkeit von einer Ansicht erstellen, die dann eine interne Abhängigkeit von eine Tabelle aufweist. Eine veröffentlichte Abhängigkeit von Webressourcen kann aufgrund von Inhalten erstellt werden, die im Dashboard oder im Formular angezeigt werden, oder wenn ein Formular JavaScript-Bibliotheken enthält. Tabellenformulare weisen veröffentlichte Abhängigkeiten von beliebigen Attributen auf, die als Spalten im Formular angezeigt werden.

E-Mail-Vorlage (EmailTemplate)

Vorlage, in der die Standardattribute einer E-Mail-Nachricht enthalten sind. Eine E-Mail-Vorlage enthält in der Regel Felder, die Daten aus angegebenen Tabellenattributen einfügen. Sie können eine E-Mail-Vorlage beim Erstellen mit einer bestimmten Tabelle verknüpfen, sodass es eine interne Abhängigkeit von der Tabelle geben kann. Eine globale E-Mail-Vorlage ist keiner bestimmten Tabelle zugeordnet, hat aber möglicherweise veröffentlichte Abhängigkeiten von Tabellenattributen, die zum Bereitstellen von Daten verwendet werden. Ein Prozess (Workflow) wird häufig so konfiguriert, dass mithilfe einer E-Mail-Vorlage eine E-Mail gesendet wird, wodurch eine veröffentlichte Abhängigkeit mit dem Workflow entsteht.

Entität (Entity)

Tabellen, früher als Entitäten bezeichnet, sind die primäre Struktur, die zum Modellieren und Verwalten von Daten in Dataverse verwendet wird. Aufgrund der internen Abhängigkeiten zwischen ihnen löschen Sie beim Löschen einer Tabelle auch Diagramme, Formulare, Tabellenbeziehungen, Ansichten und Attribute, die dieser Tabelle zugeordnet sind. Tabellen weisen oft veröffentlichte Abhängigkeiten mit Prozessen, Dashboards und E-Mail-Vorlagen auf.

Spaltensicherheitsprofil (FieldSecurityProfile)

Profil, das die Zugriffsebene für gesicherte Attribute definiert.

Seriendruckvorlage (MailMergeTemplate)

Vorlage, die die Standardattribute eines Seriendruckdokuments enthält. Eine Seriendruckvorlage weist eine veröffentlichte Abhängigkeit von der Tabelle auf, mit der sie verknüpft ist.

Optionset (OptionSet)

Eine Auswahlspalte, früher als Optionsmenge bezeichnet, definiert eine Reihe von Optionen. Ein Auswahllistenattribut verwendet eine Option, um die bereitgestellten Optionen zu definieren. Einige Auswahllistenattribute verwenden möglicherweise einen globalen Optionssatz, sodass die Optionen, die sie bereitstellen, immer dieselben sind und an einem Ort verwaltet werden können. Eine veröffentlichte Abhängigkeit tritt auf, wenn ein Auswahllistenattribut auf einen globalen Optionssatz verweist. Sie können einen globalen Optionssatz nicht löschen, der durch ein Auswahllistenattribut verwendet wird.

Plug-in assembly (PluginAssembly)

Assembly, die einen oder mehrere Plug-In-Typen enthält. Plug-Ins werden für Ereignisse registriert, die einer Tabelle typischerweise zugeordnet sind. Diese Registrierung erstellt eine publizierte Abhängigkeit.

Prozess (Workflow)

Satz logischer Regeln, die die schritte definieren, die erforderlich sind, um einen bestimmten Geschäftsprozess, eine bestimmte Aufgabe oder eine Gruppe auszuführender Aktionen zu automatisieren. Prozesse stellen ein großes Angebot an Aktionen bereit, die veröffentlichte Abhängigkeiten von jeder anderen Lösungskomponente erzeugen, auf die durch den Prozess verwiesen wird. Jeder Prozess weist auch eine veröffentlichte Abhängigkeit von der Tabelle auf, mit der er verknüpft ist.

Bericht (Bericht)

Datenzusammenfassung in einem leicht lesbaren Layout. Ein Bericht veröffentlicht Abhängigkeiten von beliebigen Tabellen- oder Attributdaten, die im Bericht enthalten sind. Jeder Bericht muss auch einer Berichtskategorie zugeordnet werden, wodurch eine interne Abhängigkeit von einer Lösungskomponente namens Report Related Category (ReportCategory) entsteht. Sie können Berichte als Unterberichte konfigurieren und eine veröffentlichte Verknüpfung mit dem übergeordneten Bericht erstellen.

SDK-Nachrichtenverarbeitungsschritt (SDKMessageProcessingStep)

Phase in der Ausführungspipeline, in der ein Plug-In ausgeführt werden soll.

Sicherheitsrolle (Rolle)

Gruppierung von Sicherheitsberechtigungen. Weisen Sie Benutzern Sicherheitsrollen zu, um ihren Zugriff auf das Dataverse-System zu autorisieren. Ordnen Sie Tabellenformulare bestimmten Sicherheitsrollen zu, um zu steuern, wer das Formular anzeigen kann. Diese Zuordnung erstellt eine veröffentlichte Abhängigkeit zwischen der Sicherheitsrolle und dem Formular.

Anmerkung

Sie können einer Lösung nur Sicherheitsrollen aus der Umgebungs-Geschäftseinheit hinzufügen. Nur Benutzer mit Lesezugriff auf diese Sicherheitsrollen können sie einer Lösung hinzufügen.

Serviceendpunkt (ServiceEndpoint)

Der Serviceendpunkt, den Sie kontaktieren können.

Sitemap (SiteMap)

XML-Daten zum Steuern des Navigationsbereichs der Anwendung. Sie können die Sitemap verknüpfen, um eine HTML-Webressource anzuzeigen, oder ein Symbol in der Sitemap verwendet möglicherweise eine Bildwebressource. Wenn Sie die $webresource: Direktive zum Einrichten dieser Zuordnungen verwenden, erstellen Sie eine veröffentlichte Abhängigkeit. Weitere Informationen finden Sie unter $webresource-Direktive.

Webressource (WebResource)

Dateien gleichwertige Daten, die zum Erweitern einer modellgesteuerten App oder in der Webentwicklung verwendet werden. Webressourcen bieten clientseitige Komponenten, die verwendet werden, um benutzerdefinierte Benutzeroberflächenelemente bereitzustellen. Webressourcen weisen möglicherweise veröffentlichte Abhängigkeiten von Tabellenformularen, Menübändern und der Sitemap auf. Wenn Sie die $webresource: Direktive verwenden, um Zuordnungen in einer Multifunktionsleiste oder der Sitemap einzurichten, erstellen Sie eine veröffentlichte Abhängigkeit. Weitere Informationen finden Sie unter $webresource-Direktive.

Anmerkung

Webressourcen sind möglicherweise von anderen Webressourcen abhängig, je nach den vorhandenen relativen Links. Eine HTML-Webressource verwendet beispielsweise möglicherweise eine CSS- oder Skript-Webressource. Eine Silverlight-Webressource, die außerhalb eines Tabellenformulars oder Diagramms angezeigt wird, muss über eine HTML-Webressource verfügen, die sie hostet. Diese Abhängigkeiten werden nicht als Lösungsabhängigkeiten nachverfolgt.

Siehe auch