Abhängigkeitsnachverfolgung für Lösungskomponenten

Dieses Thema bezieht sich auf Dynamics 365 Customer Engagement (on-premises). Die Power Apps-Version dieses Themas finden Sie unter: Abhängigkeitsverfolgung für Lösungskomponenten.

Lösungen bestehen aus Lösungskomponenten. Sie können den Bereich Lösungen in Dynamics 365 Customer Engagement (on-premises) verwenden, 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, von der andere Lösungskomponenten abhängig sind. 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 verwendeten die Webressourcen benötigt. Bevor Sie die Webressourcen löschen können, müssen Sie diese Referenzen im benutzerdefinierten Menüband entfernen. Diese Abhängigkeiten der Lösungskomponenten können in der Anwendung angezeigt werden, indem Sie auf Abhängigkeiten anzeigen klicken.

Dieses Thema 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 vollständige Liste aller verfügbaren Lösungskomponententypen ist im globalen Optionssatz componenttype des Systems zu finden. Sie können https://[ORGANIZATION_NAME].api.crm.dynamics.com/api/data/v9.0/GlobalOptionSetDefinitions(Name='componenttype')REST Endpunkt verwenden, um diese Daten abzufragen und alle Komponenten anzuzeigen, die Code verwenden. Der unterstützte Wertebereich für diese Eigenschaft ist verfügbar durch Einschließen der Datei SampleCode\CS\HelperCode\OptionSets.cs oder SampleCode\VB\HelperCode\OptionSets.vb in Ihr Projekt. Viele der hier aufgeführten Lösungskomponententypen sind jedoch nur für den internen Gebrauch bestimmt, und die Liste enthält keine Informationen zu den Beziehungen zwischen Lösungskomponenten.

Lösungskomponentenabhängigkeiten

Mithilfe der Komponentenabhängigkeiten kann sichergestellt werden, dass Sie beim Verwenden von Lösungen über eine zuverlässige Umgebung verfügen. So wird verhindert, das 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 neuen Lösung installiert und deinstalliert wird.

Durch das Solutions Framework werden Abhängigkeiten für Lösungskomponenten automatisch überwacht. Jeder Vorgang über eine Lösungskomponente berechnet automatisch alle Abhängigkeiten zu anderen Komponenten im System. Die Abhängigkeitsinformationen werden verwendet, um die Integrität des Systems beizubehalten und Vorgänge zu verhindern, die zu einem inkonsistenten Zustand führen können.

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.

  • Beim Exportieren einer Lösung wird der Benutzer gewarnt, falls eine Komponente fehlen sollte und der Import der Daten in ein anderes System dadurch fehlschlagen kann.

    Warnungen können während des Exports ignoriert werden, wenn der Lösungsentwickler beabsichtigt, die Lösung in nur einer Organisation zu installieren, in der die abhängigen Komponenten vorhanden sind. Ein Beispiel wäre, dass Sie eine Lösung erstellen, die dafür konzipiert wurde, über eine vorinstallierten „Basis“-Lösung installiert zu werden.

  • Das Importieren einer Lösung ist nicht erfolgreich, falls nicht alle erforderlichen Komponenten in der Lösung enthalten sind und auch nicht in dem Zielsystem vorhanden sind.

    • Wenn Sie außerdem 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ängig sein.

    Es gibt drei Arten von Lösungskomponentenabhängigkeiten:

    Lösungsintern
    Interne Abhängigkeiten werden von Dynamics 365 Customer Engagement (on-premises) verwaltet. Diese sind dann vorhanden, wenn eine bestimmte Lösungskomponente nicht ohne eine andere Lösungskomponente verwendet werden kann.

    Veröffentlicht
    Veröffentlichte Abhängigkeiten werden erstellt, wenn zwei Lösungskomponenten miteinander verknüpft sind und dann veröffentlicht werden. Um diese Art von Abhängigkeit zu entfernen, müssen Sie die Zuordnung entfernen und anschließend die Entitäten 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 die Lösungskomponente veröffentlicht wurde, 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 z. B. eine Entität löschen, erwarten Sie, dass mit dem Löschen alle Attribute der Entität ebenfalls gelöscht werden. Alle Entitätsbeziehungen zu anderen Entitäten werden auch gelöscht.

    Es ist jedoch möglich, dass eine interne Abhängigkeit mit einer veröffentlichten Abhängigkeit verknüpft ist und daher weiterhin eine manuelle Bearbeitung erfordert. Wenn Sie beispielsweise ein Suchfeld in ein Entitätsformular integriert haben und die primäre Entität in der Beziehung löschen, können Sie den Löschvorgang solange nicht abschließen, bis Sie das Suchfeld aus dem verknüpften Entitätsformular entfernen und das Formular erneut veröffentlichen.

    Wenn Sie programmgesteuerte Aktionen ausführen, können Sie Nachrichten verwenden, die mit der Entität Dependency zusammenhängen. Weitere Informationen zu Nachrichten, die Sie verwenden können, um vorhandene Abhängigkeiten zu ermitteln, bevor Sie eine Komponente löschen oder eine Lösung deinstallieren, finden Sie unter Abhängigkeitsentität.

Überprüfen der Abhängigkeiten von Komponentenlösungen

Wenn Sie Lösungen bearbeiten, kommt es möglicherweise vor, dass Sie eine Lösungskomponente nicht löschen können, da sie in einer veröffentlichten Abhängigkeit zu einer anderen Lösungskomponente steht. Oder Sie können unter Umständen eine verwaltete Lösung nicht deinstallieren, da eine der Komponenten in der verwalteten Lösung für eine Anpassung in einer anderen unverwalteten Lösung verwendet wurde.

In der folgenden Tabelle sind die Meldungen aufgeführt, die Sie verwenden können, um Daten über Lösungskomponentenabhängigkeiten abzurufen.

Meldung Beschreibung
RetrieveDependentComponentsRequest Gibt eine Liste der Abhängigkeiten für Lösungskomponenten zurück, die direkt von einer Lösungskomponente abhängen.

Wenn Sie z. B. diese Nachricht für eine globale Optionssatzlösungskomponente verwenden, werden die Abhängigkeitsdatensätze für Lösungskomponenten zurückgegeben, die Optionssatzattribute darstellen, die auf die Optionssatzlösungskomponente verweisen.

Wenn Sie diese Meldung für den Lösungskomponentendatensatz der Firmenentität verwenden, werden die Abhängigkeitsdatensätze für alle Lösungskomponenten zurückgegeben, die Attribute, Ansichten und Formularen darstellen, die für diese Entität verwendet werden.
RetrieveRequiredComponentsRequest Gibt eine Liste der Abhängigkeiten für Lösungskomponenten zurück, von denen eine andere Lösungskomponente direkt abhängig ist. Diese Meldung gibt das Gegenteil der RetrieveDependentComponentsRequest-Meldung aus.
RetrieveDependenciesForDeleteRequest Gibt eine Liste aller Abhängigkeiten für Lösungskomponenten zurück, die das Löschen einer Lösungskomponente verhindern könnten.
RetrieveDependenciesForUninstallRequest Gibt eine Liste aller Abhängigkeiten für Lösungskomponenten zurück, die die Deinstallation einer verwalteten Lösungskomponente verhindern könnten.

Allgemeine Lösungskomponenten

Dies sind die Lösungskomponenten, die in der Anwendung und in den Komponenten angezeigt werden, mit denen Sie direkt arbeiten werden, wenn Sie mithilfe der Lösungsseite Lösungskomponenten hinzufügen oder entfernen. Jeder der anderen Typen von Lösungskomponenten ist von mindestens einer dieser Lösungskomponenten anhängig.

Anwendungsmenübänder (RibbonCustomization)

Menübandanpassungen für die Anwendungs- und Entitätsmenübandvorlagen. Anwendungsmenübänder schließen keine Definitionen von Menübändern auf Entitäts- oder Formularebene ein.

Benutzerdefinierte Anwendungsmenübänder weisen häufig eine veröffentlichte Abhängigkeit von Webressourcen auf. Webressourcen werden verwendet, um Menübandschaltflächensymbole und JavaScript-Funktionen zu definieren und so zu steuern, wann Menübandelemente angezeigt werden oder welche Aktionen ausgeführt werden, wenn ein bestimmtes Menübandsteuerelement verwendet wird. Abhängigkeiten werden erstellt nur, wenn die Menübanddefinitionen die $webresource:-Direktive verwenden, um die Webressource mit dem Menüband zu verknüpfen. Weitere Informationen: $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-Entität.

Verbindungsrolle (ConnectionRole)

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

Vertragsvorlage (ContractTemplate)

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

Dashboard oder Entitätsformular (SystemForm)

Systemformularentitätsdatensätze werden verwendet, um Dashboards und Entitätsformulare zu definieren. Wenn ein SystemForm als ein Entitätsformular verwendet wird, besteht eine interne Abhängigkeit von der Entität. Wenn ein SystemForm als Dashboard verwendet wird, treten keine internen Abhängigkeiten auf. Entitätsformulare und Dashboards weisen normalerweise auf ihrem Inhalt basierende veröffentlichte Abhängigkeiten auf. Bei einem Entitätsformular können Suchfelder vorkommen, die von einer Entitätsbeziehung abhängen. Dashboards und Entitätsformulare enthalten möglicherweise Diagramme oder Unterraster, die eine veröffentlichte Abhängigkeit von einer Ansicht erstellen, die dann eine interne Abhängigkeit von eine Entität aufweist. Eine veröffentlichte Abhängigkeit von Webressourcen kann aufgrund des Inhalt erstellt werden, der im Dashboard oder im Formular angezeigt wird, oder wenn ein Formular JavaScript-Bibliotheken enthält. Entitätsformulare weisen eine veröffentlichte Abhängigkeiten von allen Attributen auf, die als Felder 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 Entitätsattributen einfügen. Eine E-Mail-Vorlage kann bei ihrer Erstellung mit einer bestimmten Entität verknüpft werden, sodass eine interne Abhängigkeit von der Entität möglich wird. Eine globale E-Mail-Vorlage wird nicht mit einer bestimmten Entität verknüpft, aber sie weist möglicherweise veröffentlichte Abhängigkeiten von Entitätsattributen auf, die verwendet werden, um Daten bereitzustellen. Ein Prozess (Workflow) wird häufig so konfiguriert, dass eine E-Mail gesendet werden kann, die auf einer E-Mail-Vorlage basiert, wodurch eine veröffentlichte Abhängigkeit mit dem Workflow erstellt wird.

Entität (Entity)

Die primäre Struktur, die verwendet wird, um Daten in Dynamics 365 Customer Engagement (on-premises) zu modellieren und zu verwalten. Diagramme, Formulare, Entitätsbeziehungen, Ansichten und Attribute, die einer Entität zugeordnet sind, werden automatisch gelöscht, wenn die Entität aufgrund der internen Abhängigkeiten zwischen ihnen gelöscht wird. Entitäten weisen oft veröffentlichte Abhängigkeiten von Prozessen, Dashboards und E-Mail-Vorlagen auf.

Feldsicherheitsprofil (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 Entität auf, mit der sie verknüpft ist.

Optionssatz (OptionSet)

Ein Optionssatz definiert einen Satz von Optionen. Ein Auswahllistenattribut verwendet einen Optionssatz, 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 mindestens einen Plug-In-Typ enthält. Plug-Ins werden für Ereignisse registriert, die einer Entität typischerweise zugeordnet sind. Dadurch wird eine veröffentlichte Abhängigkeit erstellt.

Prozess (Workflow)

Satz an logischen Regeln, die die erforderlichen Schritte zum Automatisieren eines bestimmten Geschäftsprozesses, einer bestimmten unternehmerischen Aufgabe oder einer Gruppe von auszuführenden Aktionen definieren. Prozesse stellen ein großes Angebot an Aktionen bereit, die veröffentlichte Abhängigkeiten von jeder anderen Lösungskomponente erstellen, auf die durch den Prozess verwiesen wird. Jeder Prozess weist auch eine veröffentlichte Abhängigkeit von der Entität auf, mit der er verknüpft ist.

Bericht (Report)

Datenzusammenfassung in einem leicht lesbaren Layout. Ein Bericht weist veröffentlichte Abhängigkeiten von allen Entitäts- oder Attributdaten auf, die im Bericht enthalten sind. Jeder Bericht muss auch einer Berichtskategorie zugeordnet werden, die eine interne Abhängigkeit zu einer Lösungskomponente erstellt, die als berichtsbezogene Kategorie (ReportCategory) bezeichnet wird. Berichte können so konfiguriert werden,dass sie Unterberichte darstellen, die eine veröffentlichte Abhängigkeit von dem übergeordneten Bericht erstellen.

Nachrichtenverarbeitungsschritt (SDKMessageProcessingStep)

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

Sicherheitsrolle (Role)

Gruppieren von Sicherheitsrechten. Benutzern werden Rollen zugewiesen, die ihren Zugriff auf das Dynamics 365 Customer Engagement (on-premises)-System autorisieren. Entitätsformulare können bestimmten Sicherheitsrollen zugeordnet werden, um zu steuern, wer das Formular anzeigen kann. Dadurch wird eine veröffentlichte Abhängigkeit zwischen der Sicherheitsrolle und dem Formular erstellt.

Notiz

Nur Sicherheitsrollen aus der Unternehmenseinheit der Organisation können einer Lösung hinzugefügt werden. Nur Benutzer mit Lesezugriff auf diese Sicherheitsrollen können sie einer Lösung hinzufügen.

Dienstendpunkt (ServiceEndpoint)

Dienstendpunkt, der kontaktiert werden kann.

Siteübersicht (SiteMap)

XML-Daten zum Steuern des Navigationsbereichs der Anwendung. Die Siteübersicht ist möglicher weise so verlinkt, dass eine HTML-Webressource angezeigt wird, oder ein Symbol in der Siteübersicht verwendet möglicherweise eine Bild-Webressource. Wenn die $webresource:-Direktive verwendet wird, um diese Zuordnungen festzulegen, wird eine veröffentlichte Abhängigkeit erstellt. Weitere Informationen: $webresource-Direktive.

Webressource (WebResource)

Datenentsprechung zu Dateien, die 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 Entitätsformularen, Menübändern und SiteMap auf. Wenn die $webresource:-Direktive verwendet wird, um diese Zuordnungen in einem Menüband oder SiteMap festzulegen, wird eine veröffentlichte Abhängigkeit erstellt. Weitere Informationen finden Sie unter $webresource-Direktive.

Notiz

Webressourcen sind möglicherweise von anderen Webressourcen abhängig, je nach den vorhandenen relativen Links. Z. B. verwendet eine HTML-Webressource möglicherweise eine CSS oder Skript-Webressource. Eine Silverlight-Webressource, die außerhalb eines Entitätsformulars oder Diagramms angezeigt wird, muss über eine HTML-Webressource verfügen muss, auf der sie gehostet ist. Diese Abhängigkeiten werden nicht als Lösungsabhängigkeiten überwacht.

Siehe auch

Packen und Verteilen von Erweiterungen mithilfe von Dynamics 365 Customer Engagement (on-premises) Lösungen
Einführung zu Lösungen
Planen einer Lösungsentwicklung
Erstellen, Exportieren oder Importieren einer nicht verwalteten Lösung
Eine verwaltete Lösung erstellen, installieren und aktualisieren
Eine verwaltete Lösung erstellen, installieren und aktualisieren
Deinstallieren oder Löschen einer Lösung
Lösungsentitäten