API-Rücksichten auf virtuelle Entitäten

Es gibt zwei große Kategorien von Änderungen am Metadatensystem, die mit der Einführung von virtuellen Entitäten in Dynamics 365 for Customer Engagement-Apps Version 9.0 verbunden sind:

  • Hinzufügung eines neuen Assemblys, der Namespaces, Klassen und anderer Typen, um die Entwicklung der virtuellen Entitätsdatenanbieter zu unterstützen
  • Änderungen an der Kernplattform einschließlich einige zusätzliche Eigenschaften, um die externe Datenquellenzuordnung und Modifizierung des Verhaltens der vorhandenen Entitäts- und Attributeigenschaften, die die Beschränkungen der ursprünglichen Implementierung dieser Funktion widerspiegeln, zu unterstützen

Neue Dynamics 365 Customer Engagement Data SDK-Assembly

Das Dynamics 365 Customer Engagement (on-premises) Data SDK-Assembly, Microsoft.Xrm.Sdk.Data.dll, enthält Typen, die bei der Erstellung der benutzerdefinierten virtuellen Entitätsdatenanbieter hilfreich sind. Es ist in den folgenden Namespaces enthalten:

Namespace Beschreibung
Microsoft.Xrm.Sdk.Data Basis-Namespace, der einige allgemeine Typen enthält wie z.B. AllowedQueryOptions-Enumeration.
Microsoft.Xrm.Sdk.Data.CodeGen Enthält Klassen und Schnittstellen, die die dynamische Reflektion, den Typenabgleich und die Codegenerierung unterstützen. Hauptsächlich wird von der internen Anbieterengine genutzt.
Microsoft.Xrm.Sdk.Data.Converters Einer Satz der Klassen, um Standard-XRM-Typen in ihre entsprechenden .NETs-Basistypen zu konvertieren.
Microsoft.Xrm.Sdk.Data.Exceptions Einer Satz der Ausnahmeklassen, die Fehler darstellen, die während der Ablaufwertlösung auftreten können. Alle resultieren aus Microsoft.Xrm.Sdk.SdkExceptionBase.
Microsoft.Xrm.Sdk.Data.Expressions Klassen, um bei der Implementierung der unterstützten Abfragentransformationen wie FILTER, JOIN und ORDER zu helfen.
Microsoft.Xrm.Sdk.Data.Infra Einige andere Klassen, die die zentrale Abfrageverarbeitung unterstützen.
Microsoft.Xrm.Sdk.Data.Mappings Klassen und Schnittstellen, die die Zuordnung von den Entitätsmetadatentypen zu den externen Typen aufbaut.
Microsoft.Xrm.Sdk.Data.Visitors Klassen, die die Besuchermuster implementieren, um bestimmte Operationen für den QueryExpression-Parameter, übergaben an den Datenanbieter über RetrieveMultiple-Anfragen, auszuführen. Gewährt bestimmte Unterstützung für Verarbeitung allgemeiner und LINQ-basierten Abfragen. Diese Klassen resultieren aus Microsoft.Xrm.Sdk.Query.QueryExpressionVisitorBase.

Dieses Assembly wird mit dem Dynamics 365 Customer Engagement (on-premises) Data-SDK geliefert, das auch als ein NuGet Paket verfügbar ist.

Änderungen an der Kernplattform

Die folgenden Änderungen an den Standardreferenztypen von Dynamics 365 wurden eingeführt, um virtuelle Entitäten zu unterstützen.

Neue Web-API-Typen

Die Dynamics 365 Customer Engagement-Web-API stellt virtuelle Entitätsdatenanbieter und -quellen als die folgenden neuen Entitätstypen dar: EntityDataProvider und EntityDataSource.

Neue Metadateneigenschaften

Vier neue Eigenschaften wurden zur Microsoft.Xrm.Sdk.Metadata.EntityMetadata-Klasse hinzugefügt:

  • DataProviderId - GUID, das den verbundenen virtuellen Entitätsdatenanbieter bestimmt.
  • DataSourceId - GUID, das die verbundene virtuelle Entitätsdatenquelle bestimmt.
  • ExternalName - Name für diesen Typ in der externen Datenquelle.
  • ExternalCollectionName - Pluralname für diesen Typ, der in der Benutzerschnittstelle und zur Unterstützung des OData-Zugriffs verwendet wird.

Zwei neue Eigenschaften wurden zur Microsoft.Xrm.Sdk.Metadata.AttributeMetadata-Klasse hinzugefügt:

  • ExternalName - Name dieses Typs in der externen Datenquelle.
  • IsDataSourceSecret - Bestimmt, ob das Feld vertrauliche Informationen enthält.

Die ExternalName-Eigenschaft wurde auch zu der Option- und OptionSetMetadata-Klasse hinzugefügt. Diese externe Namen helfen bei der externen Datenquellenzuordnung, indem der Name des verbundenen Typs in der externen Datenquelle bestimmt wird. Diese Eigenschaften werden nur für virtuelle Entitäten verwendet; für einen eingebauten oder Standardtyp der benutzerdefinierten Entität müssen diese externen Namen null sein.

Erstellung einer virtuellen Entität

Die Vorgehensweise der programmgesteuerten Erstellung eines virtuellen Entitätstyps unterscheidet sich etwas von einer Erstellung der benutzerdefinierten Entitätstypen wie folgt:

  • Wenn der verbundene Datenanbieter (und Datenquelle optional) am Erstellungszeitpunkt bekannt ist, dann werden diese bestimmt.
  • Wenn der Datenanbieter für den Typ unbekannt ist, dann wird EntityMetadata.DataProviderId auf zumindest auf 7015A531-CC0D-4537-B5F2-C882A1EB65AD festgelegt, und die EntityMetadata.DataSourceId wird auf null festgelegt. Bevor Instanzen dieses Typs zur Laufzeit verwendet werden, müssen diesen Eigenschaften entsprechende Werten zugewiesen werden.

Zwei neue Entitätstypen - EntityDataProvider und EntityDataSource optional - werden erstellt, wenn Sie ein Plug-In registrieren und seine jeweilige ID, entitydataproviderid und entitydatasourceid die erforderlichen GUIDs darstellen. (Andernfalls müssen die Entwickler manchmal diese benutzerdefinierten Typen direkt aufrufen.) Beachten Sie, dass diese Datenquelle die Eigenschaft entitydataproviderid, die mit dem entsprechenden Datenanbietertyp übereinstimmen muss, enthält, oder eine Ablaufausnahme wird ausgelöst.

Warnung

(Nicht virtuelle) Standard-Entitäten müssen die Werte derer verbundenen EntityMetadata.DataProviderId und EntityMetadata.DataSourceId, die für deren Standardwerte (null)festgelegt sind, besitzen; andernfalls wird eine Ablaufausnahme ausgelöst. Sobald es erstellt wurde, können Sie nicht von einem nicht virtuellen Typ in einen virtuellen Typ oder zurück konvertieren.

Entitätsmetadateneigenschaften-Verhaltensänderungen

Die folgenden Tabellendetails darüber, wie das Verhalten von EntityMetadata-Eigenschaften geändert wird, wenn diese zu den virtuellen Entitäten angewendet werden. Einige Eigenschaften sind für virtuelle Entitäten ungültig, während andere im Umfang oder im Wert beschränkt sind.

Metadateneigenschaft Anwendbar? Notizen
ActivityTypeMask ungültig Immer 0
Attribute Gültig
AutoCreateAccessTeams ungültig Immer false
AutoRouteToOwnerQueue ungültig Immer false, Abfragen werden nicht unterstützt.
CanBeInManyToMany Gültig
CanBePrimaryEntityInRelationship Gültig
CanBeRelatedEntityInRelationship Gültig
CanChangeHierarchicalRelationship ungültig Immer false, hierarchische Beziehungen werden nicht unterstützt.
CanChangeTrackingBeEnabled ungültig Immer false, die Änderungsnachverfolgung und -überwachung werden nicht unterstützt.
CanCreateAttributes Gültig
CanCreateCharts ungültig Immer false
CanCreateForms Gültig
CanCreateViews Gültig
CanEnableSyncToExternalSearchIndex ungültig Immer false
CanModifyAdditionalSettings Gültig
CanTriggerWorkflow invalid Immer false, Workflows können nicht gestartet werden.
ChangeTrackingEnabled ungültig Immer false
CollectionSchemaName Gültig
DaysSinceRecordLastModified ungültig Immer null oder 0
Beschreibung Gültig
DisplayCollectionName Gültig
DisplayName Gültig
EnforceStateTransitions ungültig StateCode und Status werden nicht unterstützt.
EntityColor Gültig
EntityHelpUrl Gültig
EntityHelpUrlEnabled Gültig
EntitySetName Gültig
ExtensionData ungültig Veraltete Eigenschaft
HasChanged Gültig
IconLargeName Gültig
IconMediumName Gültig
IconSmallName Gültig
IntroducedVersion Gültig
IsActivity ungültig Immer false, Aktivitäten werden nicht unterstützt.
IsActivityParty ungültig Immer false
IsAIRUpdated ungültig Veraltet
IsAuditEnabled ungültig Immer false, die Überwachung wird nicht unterstützt.
IsAvailableOffline ungültig Immer false, Offline-Nutzung wird nicht unterstützt.
IsBusinessProcessEnabled ungültig Immer false, Geschäftsprozesse werden nicht unterstützt.
IsChildEntity ungültig Immer false, alle virtuellen Entitäten sind im Besitz einer Organisation.
IsConnectionsEnabled Gültig
IsCustomEntity Gültig
IsCustomizable Gültig
IsDocumentManagementEnabled Gültig
IsDocumentRecommendationsEnabled ungültig Immer false, die neue Funktion wird nicht unterstützt.
IsDuplicateDetectionEnabled ungültig Immer false, aber Duplikaterkennung kann an der Datenquelle ausgeführt werden.
IsEnabledForCharts limited Nur für unterstützte Fetch-Klassen.
IsEnabledForTrace Gültig
IsImportable Gültig
IsInteractionCentricEnabled Gültig
IsIntersect Gültig
IsKnowledgeManagementEnabled ungültig Immer false, Wissensmanagement-Integration wird nicht unterstützt.
IsMailMergeEnabled Gültig
IsManaged Gültig
IsMappable Gültig
IsOfflineInMobileClient ungültig Immer false, virtuelle Entitätswerte werden für Offline-Nutzung nicht zwischengespeichert.
IsOneNoteIntegrationEnabled Gültig
IsOptimisticConcurrencyEnabled ungültig Immer false, Parallelität muss in der Datenquelle implementiert werden.
IsPrivate Gültig
IsQuickCreateEnabled Gültig
IsReadOnlyInMobileClient Gültig
IsRenameable Gültig
IsSLAEnabled ungültig Immer false
IsStateModelAware ungültig
IsValidForAdvancedFind Gültig
IsValidForQueue Gültig
IsVisibleInMobile Gültig
IsVisibleInMobileClient Gültig
Schlüssel ungültig Alternativschlüssel werden nicht unterstützt.
LogicalCollectionName Gültig
LogicalName Gültig
ManyToManyRelationships Gültig
ManyToOneRelationships Gültig Nicht unterstützt zwischen zwei virtuellen Entitäten.
MetadataId Gültig
MobileOfflineFilters ungültig Immer false, Offline-Nutzung wird nicht unterstützt.
ObjectTypeCode Gültig
OneToManyRelationships Gültig
OwnershipType ungültig Immer OrganizationOwned
PrimaryIdAttribute Gültig
PrimaryImageAttribute Gültig
PrimaryNameAttribute Gültig
Rechte ungültig
RecurrenceBaseEntityLogicalName ungültig
ReportViewName ungültig
SchemaName Gültig
SyncToExternalSearchIndex ungültig

Attributmetadateneigenschaften-Verhaltensänderungen

Die folgende Tabellen zeigt, wie das Verhalten von AttributeMetadata-Eigenschaften geändert wird, wenn diese zu den virtuellen Entitäten angewendet werden. Einige Eigenschaften sind für virtuelle Entitäten ungültig, während andere im Umfang oder im Wert beschränkt sind.

Metadateneigenschaft Anwendbar? Notizen
ColumnNumber ungültig
DeprecatedVersion Gültig
Beschreibung Gültig
DisplayName Gültig
EntityLogicalName Gültig
ExtensionData ungültig
HasChanged Gültig
InheritsFrom Gültig
IntroducedVersion Gültig
IsAuditEnabled ungültig Immer false, die Überwachung wird nicht unterstützt.
IsCustomAttribute Gültig
IsCustomizable Gültig
IsFilterable Gültig
IsGlobalFilterEnabled Gültig
IsLogical Gültig
IsManaged Gültig
IsPrimaryId Gültig
IsPrimaryName Gültig
IsRenameable Gültig
IsSearchable Gültig
IsSecured ungültig Immer false, die Sicherheit auf der Feldebene wird nicht unterstützt.
IsSortableEnabled Gültig
IsValidForAdvancedFind Gültig
IsValidForCreate Gültig
IsValidForRead Gültig
IsValidForUpdate Gültig
LinkedAttributeId Gültig
LogicalName Gültig
MetadataId Gültig
RequiredLevel Gültig
SchemaName Gültig
SourceType ungültig Immer 0, berechnet oder Rollupwerte werden nicht unterstützt.