Tabellendefinitionen in Microsoft Dataverse

Tabellendefinitionen in Microsoft Dataverse beschreiben die Struktur und das Verhalten jeder Tabelle, die strukturierte Daten speichert. In diesem Artikel wird erläutert, wie Sie programmgesteuert mit Tabellendefinitionen arbeiten, einschließlich Tabellennamen, Schlüsseln, Eigentümerschaft und Status. Für Entwickler entsprechen Tabellen den Klassen, die Sie beim Arbeiten mit Daten in Microsoft Dataverse verwenden.

Die EntityMetadata-Klasse für .NET SDK und der EntityMetadata-Entitätstyp der Web-API enthalten die Eigenschaften, die Tabellen definieren.

Hinweis

Wenn Sie Tabellendefinitionen mithilfe der Web-API abrufen, werden in den Antwortdaten der komplexe Typ ComplexEntityMetadata verwendet. Der Unterschied besteht darin, dass Attributes, ManyToOneRelationships, Keys, ManyToManyRelationships und OneToManyRelationships Auflistungen (Arrays) und keine Navigationseigenschaften mit Auflistungswert sind. Verwenden Sie den EntityMetadata-Entitätstyp beim Erstellen oder Aktualisieren von Tabellen mithilfe der Web-API.

Tabellennamen

Jede Tabelle hat einen eindeutigen Namen, den Sie beim Erstellen definieren. Dieser Name wird auf verschiedene Arten angezeigt:

Name-Eigenschaft Beschreibung Example
SchemaName In der Regel wird eine Pascal-Groß-/Kleinschreibung des logischen Namens verwendet. Account
CollectionSchemaName Eine Pluralform des "Schema"-Namens. Accounts
LogicalName Alle kleingeschriebene Version des Schemanamens. account
LogicalCollectionName Alle kleingeschriebene Versionen des Schemanamens. accounts
EntitySetName Wird verwendet, um Sammlungen mit der Web-API zu identifizieren. Standardmäßig entspricht sie dem logischen Auflistungsnamen.
Sie können den Entitätssatznamen ändern, indem Sie die Tabellendefinition programmgesteuert aktualisieren. Nehmen Sie diese Änderung nur vor dem Schreiben von Web-API-Code für die Tabelle vor. Weitere Informationen finden Sie unter Entitätssatzname.
accounts

Hinweis

Wenn Sie eine benutzerdefinierte Tabelle mit Code erstellen, müssen Sie dem Präfix für die Anpassung des Lösungsherausgebers das SchemaNamePräfix voranstellen. Dataverse überprüft nicht, ob es sich um das richtige Anpassungspräfix ist – nur, dass es über ein Anpassungspräfix verfügt. Stellen Sie sicher, dass Sie das richtige Präfix verwenden, da Sie es später nicht ändern können.

CollectionSchemaName, LogicalName, LogicalCollectionNameund EntitySetName Werte werden mit dem SchemaName Wert generiert.

Jede Tabelle verfügt außerdem über drei Eigenschaften, die lokalisierte Werte anzeigen können:

Name Beschreibung Example
DisplayName Normalerweise gleich dem Schemanamen, kann aber Leerzeichen enthalten. Konto
DisplayCollectionName Eine Pluralform des Anzeigenamens. Konten
Description Ein kurzer Satz, der die Tabelle beschreibt. Unternehmen, das einen Kunden oder potenziellen Kunden repräsentiert. Die Firma, die in Geschäftsvorfällen fakturiert wird.

Verwenden Sie diese lokalisierbaren Werte, um auf die Tabellen in einer App zu verweisen. Die können diese Werte jederzeit ändern. Informationen zum Hinzufügen oder Bearbeiten lokalisierter Werte finden Sie unter Übersetzen von angepassten Tabellen-, Formular- und Spaltentexten in andere Sprachen.

Primärschlüssel

Der PrimaryIdAttribute Eigenschaftswert ist der logische Name der Spalte, die als Primärschlüssel für die Tabelle dient.

Standardmäßig enthalten alle Tabellen eine einzelne GUID eindeutigen Bezeichnerspalte mit dem Namen <table logical name>Id.

Primärer Name

Der PrimaryNameAttribute Eigenschaftswert ist der logische Name der Spalte, in der der Zeichenfolgenwert gespeichert wird, der den Tabellendatensatz identifiziert. Dieser Wert wird in Links angezeigt, mit denen der Datensatz in einer Benutzeroberfläche geöffnet wird.

Beispiel: In der Tabelle "Kontakt " wird die Spalte "FullName" als primäre Namensspalte verwendet.

Hinweis

Nicht jede Tabelle weist einen Eigenschaftswert PrimaryNameAttribute auf. Einige Tabellen sollen nicht in einer Benutzeroberfläche angezeigt werden.

Bilder in Tabellen

Der PrimaryImageAttribute Eigenschaftswert ist der logische Name der Bildspalte, die Sie für die Darstellung des Entitätsdatensatzes auswählen. Eine Anwendung kann dieses Bild anzeigen.

Beispiel: Die Spalte "EntityImage" der Kontakttabelle kann ein Bild des Kontakts speichern.

Hinweis

Dieses Bild unterscheidet sich vom Symbol, das modellgesteuerte Apps für eine Tabelle anzeigen. Die IconVectorName Eigenschaft enthält den Namen der SVG-Webressource, die das Symbol festlegt.

Weitere Informationen finden Sie unter:

Arten von Tabellen

Die Funktionen und das Verhalten von Tabellen hängen von mehreren Tabelleneigenschaften ab. Die meisten dieser Eigenschaften sind relativ einfach und weisen beschreibende Namen auf. Vier Eigenschaften, die eine weitere Erläuterung erfordern, sind: Tabellenbesitz, Aktivitätstabellen, Aktivitätsparty-Tabelle und untergeordnete Tabellen.

Zuständigkeit für Tabellen

Sie können Tabellen kategorisieren, indem Sie festlegen, wie die Daten darin zugeordnet sind. Dieses Konzept ist wichtig, um zu verstehen, wie Sicherheit auf Tabellen angewendet wird. Die OwnershipType Eigenschaft enthält diese Informationen. In der folgenden Tabelle werden die verschiedenen Besitzertypen beschrieben:

Besitzertyp Beschreibung
BusinessOwned Die Daten gehören zur Geschäftseinheit. Sie können den Zugriff auf die Daten auf Geschäftseinheitsebene steuern.
None Daten gehören nicht zu einer anderen Tabelle.
OrganizationOwned Daten gehören zur Organisation. Sie können den Zugriff auf die Daten auf Organisationsebene steuern.
UserOwned Daten gehören zu einem Benutzer oder einem Team. Sie können Aktionen steuern, die für diese Datensätze auf Benutzerebene ausgeführt werden können.
Filtered (Vorschau) Datensätze haben keinen Besitzer. Sie können den Zugriff über Sicherheitsrollenberechtigungen basierend auf Filtern steuern, die Spaltenwerte auswerten.

Wenn Sie neue Tabellen erstellen, sind die einzigen Besitzeroptionen: OrganizationOwned, , UserOwned, oder Filtered (Vorschau). Sie können diese Option nicht ändern, nachdem Sie eine Auswahl vorgenommen haben.

Wählen Sie UserOwned, wenn Datensätze Benutzer- oder Teambesitz, Zuweisung und Freigabe benötigen. Wählen Sie aus OrganizationOwned , wann der Zugriff auf Organisationsebene ausreicht. Wählen Sie Filtered (Vorschau) aus, wenn Sie zugriff auf Zeilenebene basierend auf Spaltenwerten benötigen, wobei Berechtigungen über Sicherheitsrollenfilter gewährt werden. Datensätze in Filtered Tabellen haben keinen Besitzer und können nicht zugewiesen oder freigegeben werden.

Sie können auch Datensatzfilter auf UserOwned- und OrganizationOwned-Tabellen anwenden, um den Zugriff auf Zeilenebene basierend auf Spaltenwerten zu steuern, ohne ihr OwnershipType zu ändern. Diese Tabellen behalten ihr vorhandenes Besitzermodell bei.

Weitere Informationen zum gefilterten Datensatzbesitz:

Aktivitätstabellen

Eine Aktivität ist eine Aufgabe, die ein Benutzer ausführt oder plant. Eine Aktivität ist jede Aktion, für die Sie einen Eintrag in einem Kalender vornehmen können.

Aktivitäten werden anders modelliert als andere Arten von Tabellen, die Geschäftsdaten speichern. Daten zu Aktivitäten werden häufig in einer Liste angezeigt, aber jede Art von Aktivität erfordert eindeutige Eigenschaften. Statt eine einzelne Aktivitätstabelle mit jeder möglichen Eigenschaft zu verwenden, verwenden Sie separate Arten von Aktivitätstabellen.

Jede dieser Tabellen erbt Eigenschaften von der Basistabelle ActivityPointer (Web API activitypointer-Entitätstyp). Diese Tabellen haben die IsActivity Eigenschaft auf "true" festgelegt.

Tabelle /
Art der Entität
Anzeigename Beschreibung
adx_inviteredemption /
adx_inviteredemption
Einladung einlösen Enthält Informationen über die Einlösung einer Einladung.
adx_portalcomment /
adx_portalcomment
Portalkommentar Eine Aktivität, die verwendet wird, um Informationen zwischen dem Benutzer und dem Kunden im Portal auszutauschen.
Termin /
Termin
Appointment Verpflichtung, die ein Zeitintervall mit Start-/Endzeiten und Dauer darstellt.
Chat /
Chat
Teams-Chat Nur zur internen Verwendung. Entität, die Zuordnungsdaten von Dynamics 365 Datensätzen mit Microsoft Teams Chat speichert.
E-Mail /
email
E-Mail Aktivität, die unter Verwendung von E-Mail-Protokollen übermittelt wird.
Fax /
Fax
Fax Aktivität, die das Anrufergebnis sowie die Anzahl der Seiten eines Faxes nachverfolgt und optional eine elektronische Kopie des Dokuments speichert.
Brief /
Brief
Brief Aktivität, die die Zustellung eines Briefs nachverfolgt. Die Aktivität kann die elektronische Kopie des Briefs enthalten.
PhoneCall /
phonecall
Telefonanruf Aktivität zur Nachverfolgung eines Telefonanrufs.
RecurringAppointmentMaster /
recurringappointmentmaster
Serientermin Der Mastertermin einer Terminserie.
SocialActivity /
Soziale Aktivität
Soziale Aktivitäten Nur zur internen Verwendung.
Aufgabe /
Aufgabe
Aufgabe Allgemeine Aktivität, die die auszuführende Arbeit darstellt.

Wenn ein Benutzer eine dieser Arten von Aktivitätstabellendatensätzen erstellt, erstellt das System einen entsprechenden ActivityPointer Tabellendatensatz mit demselben ActivityId eindeutigen Bezeichnerspaltenwert. Sie können keine Instanzen der ActivityPointer Tabelle erstellen, aktualisieren oder löschen, aber Sie können sie abrufen. Mit diesem Design können Sie alle Arten von Aktivitäten in einer Liste präsentieren.

Sie können benutzerdefinierte Aktivitätstabellen erstellen, die sich auf die gleiche Weise verhalten.

ActivityParty Tabelle

Verwenden Sie die ActivityParty-Tabelle (Web API-Entitätstyp activityparty), um die Spalten der Aktivitätstabelle PartyListType, die Verweise auf andere Tabellen enthalten, zu strukturieren. Verwenden Sie diese Tabelle, wenn Sie Werte für Spalten wie Email.to oder PhoneCall.from in der Aktivitätstabelle setzen. Legen Sie die participationtypemask Spalte fest, um die Rolle zu definieren, die der Verweis wiedergibt. Rollen umfassen Sender, ToRecipient, Organizer und mehr.

Sie können die Tabelle ActivityParty abfragen, aber Sie können eine Aktivitätspartei außerhalb der Aktivität, auf die sie sich bezieht, nicht erstellen, abrufen, aktualisieren oder löschen.

Untergeordnete Tabellen

Tabellen, in denen die IsChildEntity Eigenschaft wahr ist, verfügen nie über definierte Berechtigungen und sind nie im Besitz des Benutzers oder Teams. Vorgänge, die Sie für eine untergeordnete Tabelle ausführen können, sind an eine Tabelle gebunden, der sie über eine n:1-Beziehung zugeordnet sind. Benutzer können nur Vorgänge für untergeordnete Tabellen ausführen, wenn sie denselben Vorgang in der verknüpften Tabelle ausführen können. Untergeordnete Tabellen werden automatisch gelöscht, wenn der Tabellendatensatz, von dem sie abhängen, gelöscht wird.

Beispielsweise sind Comment (PostComment) und Like (PostLike) untergeordnete Elemente der Post-Tabelle .

Alternativschlüssel

Jede alternative Schlüsseldefinition beschreibt eine oder mehrere Spalten in Kombination, die einen Datensatz eindeutig identifizieren. In der Regel wenden Sie alternative Schlüssel nur für die Integration in externe Systeme an. Dieses Feature ist nützlich, wenn Sie Daten in ein System integrieren, das keine eindeutigen GUID-Bezeichnerschlüssel unterstützt. Sie können einen einzelnen Spaltenwert oder eine Kombination aus Spaltenwerten definieren, um eine Tabelle eindeutig zu identifizieren. Durch Hinzufügen eines alternativen Schlüssels wird eine Eindeutigkeitseinschränkung für diese Spalten erzwungen. Sie können keinen weiteren Datensatz in derselben Tabelle erstellen oder aktualisieren, sodass er dieselben Werte aufweist.

Weitere Informationen finden Sie unter:

Tabellenzustände

Die meisten Tabellen weisen zwei Eigenschaften auf, um den Status eines Datensatzes nachzuverfolgen. Diese Eigenschaften sind StateCode, die in modellgesteuerten Apps als Status angezeigt werden und StatusCodeals Statusgrund in modellgesteuerten Apps angezeigt werden.

Beide Eigenschaften enthalten eine Reihe von Auswahlmöglichkeiten, die die gültigen Werte anzeigen. Die Werte StateCode und StatusCode sind miteinander verknüpft, sodass nur bestimmte StatusCode-Auswahlmöglichkeiten für einen bestimmten StateCode gültig sind.

Diese Verknüpfung kann je nach Tabelle variieren, aber das allgemeine Muster für viele Tabellen und die Standardeinstellung für benutzerdefinierte Tabellen ist dieses Muster:

StateCode-Auswahlmöglichkeiten StatusCode-Auswahlmöglichkeiten
0: Aktiv 1: Aktiv
1: Inaktiv 2: Inaktiv

Einige Tabellen haben unterschiedliche Auswahlmöglichkeiten.

Beispiel: PhoneCall Tabelle StateCode und StatusCode Auswahlmöglichkeiten

StateCode StatusCode
0: Öffnen 1: Öffnen
1: Abgeschlossen 2: Hergestellt
4: Empfangen
2: Abgebrochen 3: Abgebrochen

Sie können den Satz gültiger Statuscodes für eine Tabelle nicht anpassen, aber Sie können die Statuscodes anpassen. Sie können weitere StatusCode-Auswahlen für einen entsprechenden StateCode hinzufügen.

Bei benutzerdefinierten Tabellen können Sie weitere Kriterien für gültige Übergänge zwischen Status definieren.

Weitere Informationen finden Sie unter:

Siehe auch

Dataverse-Tabellen