TableOperations Klasse

Namespace für Metadatenvorgänge auf Tabellenebene.

Zugriff über client.tables. Stellt Vorgänge zum Erstellen, Löschen, Überprüfen und Auflisten von Dataverse-Tabellen sowie zum Hinzufügen und Entfernen von Spalten bereit.

Beispiel:


   client = DataverseClient(base_url, credential)

   # Create a table
   info = client.tables.create(
       "new_Product",
       {"new_Price": "decimal", "new_InStock": "bool"},
       solution="MySolution",
   )

   # List tables
   tables = client.tables.list()

   # Get table info
   info = client.tables.get("new_Product")

   # Add columns
   client.tables.add_columns("new_Product", {"new_Rating": "int"})

   # Remove columns
   client.tables.remove_columns("new_Product", "new_Rating")

   # Delete a table
   client.tables.delete("new_Product")

Konstruktor

TableOperations(client: DataverseClient)

Parameter

Name Beschreibung
client
Erforderlich

Die übergeordnete DataverseClient Instanz.

Methoden

add_columns

Fügen Sie einer vorhandenen Tabelle mindestens eine Spalte hinzu.

Beispiel:


   created = client.tables.add_columns(
       "new_MyTestTable",
       {"new_Notes": "string", "new_Active": "bool"},
   )
   print(created)  # ['new_Notes', 'new_Active']
create

Erstellen Sie eine benutzerdefinierte Tabelle mit den angegebenen Spalten.

create_alternate_key

Erstellen Sie einen alternativen Schlüssel in einer Tabelle.

Alternative Schlüssel ermöglichen upsert-Vorgängen, Datensätze nach einer oder mehreren Spalten anstelle der primären GUID zu identifizieren. Nach der Erstellung wird der Schlüssel für die Indexerstellung in die Warteschlange gestellt; ihr status wechselt von "Pending" zu "Active" dem, nachdem der Index bereit ist.

create_lookup_field

Erstellen Sie eine einfache Nachschlagefeldbeziehung.

Dies ist eine Bequeme Methode, die für den gängigen Fall beim Hinzufügen eines Nachschlagefelds create_one_to_many_relationship zu einer vorhandenen Tabelle umschließt.

create_many_to_many_relationship

Erstellen Sie eine m:n-Beziehung zwischen Tabellen.

Dieser Vorgang erstellt eine m:n-Beziehung und eine überschneidende Tabelle zum Verwalten der Beziehung.

create_one_to_many_relationship

Erstellen Sie eine 1:n-Beziehung zwischen Tabellen.

Dieser Vorgang erstellt sowohl die Beziehung als auch das Nachschlageattribute für die referenzierende Tabelle.

delete

Löschen Sie eine benutzerdefinierte Tabelle anhand des Schemanamens.

Warning

Dieser Vorgang ist unumkehrbar und löscht alle Datensätze im

Tabelle zusammen mit der Tabellendefinition.

Beispiel:


   client.tables.delete("new_MyTestTable")
delete_alternate_key

Löschen Sie einen alternativen Schlüssel anhand der Metadaten-ID.

Warning

Das Löschen eines alternativen Schlüssels, der von Upsert-Vorgängen verwendet wird, wird

bewirkt, dass diese Vorgänge fehlschlagen. Dieser Vorgang kann nicht rückgängig gemacht werden.

Beispiel:


   client.tables.delete_alternate_key(
       "new_Product",
       "12345678-1234-1234-1234-123456789abc",
   )
delete_relationship

Löschen Sie eine Beziehung anhand ihrer Metadaten-ID.

Warning

Durch das Löschen einer Beziehung wird auch das zugeordnete Nachschlageattribute entfernt.

für 1:n-Beziehungen. Dieser Vorgang kann nicht rückgängig gemacht werden.

Beispiel:


   client.tables.delete_relationship(
       "12345678-1234-1234-1234-123456789abc"
   )
get

Rufen Sie grundlegende Metadaten für eine Tabelle ab, falls sie vorhanden ist.

Beispiel:


   info = client.tables.get("new_MyTestTable")
   if info:
       print(f"Logical name: {info['table_logical_name']}")
       print(f"Entity set: {info['entity_set_name']}")
get_alternate_keys

Auflisten aller alternativen Schlüssel, die in einer Tabelle definiert sind.

get_relationship

Abrufen von Beziehungsmetadaten nach Schemaname.

Beispiel:


   rel = client.tables.get_relationship("new_Department_Employee")
   if rel:
       print(f"Found: {rel.relationship_schema_name}")
list

Listet alle nicht privaten Tabellen in der Dataverse-Umgebung auf.

Standardmäßig wird jede Tabelle zurückgegeben, in der IsPrivate eq false. Geben Sie einen optionalen OData-Ausdruck $filter an, um die Ergebnisse weiter einzugrenzen. Der Ausdruck wird mit der Standardklausel IsPrivate eq false kombiniert, die andverwendet wird.

Beispiel:


   # List all non-private tables
   tables = client.tables.list()
   for table in tables:
       print(table["LogicalName"])

   # List only tables whose schema name starts with "new_"
   custom_tables = client.tables.list(
       filter="startswith(SchemaName, 'new_')"
   )

   # List tables with only specific properties
   tables = client.tables.list(
       select=["LogicalName", "SchemaName", "EntitySetName"]
   )
list_columns

Listen Sie alle Attributdefinitionen (Spalten) für eine Tabelle auf.

Beispiel:


   # List all columns on the account table
   columns = client.tables.list_columns("account")
   for col in columns:
       print(f"{col['LogicalName']} ({col.get('AttributeType')})")

   # List only specific properties
   columns = client.tables.list_columns(
       "account",
       select=["LogicalName", "SchemaName", "AttributeType"],
   )

   # Filter to only string attributes
   columns = client.tables.list_columns(
       "account",
       filter="AttributeType eq 'String'",
   )
list_relationships

Listet alle Beziehungsdefinitionen in der Umgebung auf.

Beispiel:


   # List all relationships
   rels = client.tables.list_relationships()
   for rel in rels:
       print(f"{rel['SchemaName']} ({rel.get('@odata.type')})")

   # Filter by type
   one_to_many = client.tables.list_relationships(
       filter="RelationshipType eq Microsoft.Dynamics.CRM.RelationshipType'OneToManyRelationship'"
   )

   # Select specific properties
   rels = client.tables.list_relationships(
       select=["SchemaName", "ReferencedEntity", "ReferencingEntity"]
   )
list_table_relationships

Listet alle Beziehungen für eine bestimmte Tabelle auf.

Kombiniert 1:n-, n:n- und m:n-Beziehungen für die angegebene Tabelle durch Abfragen EntityDefinitions({id})/OneToManyRelationships, EntityDefinitions({id})/ManyToOneRelationshipsund EntityDefinitions({id})/ManyToManyRelationships.

Beispiel:


   # List all relationships for the account table
   rels = client.tables.list_table_relationships("account")
   for rel in rels:
       print(f"{rel['SchemaName']} -> {rel.get('@odata.type')}")
remove_columns

Entfernen Sie eine oder mehrere Spalten aus einer Tabelle.

Beispiel:


   removed = client.tables.remove_columns(
       "new_MyTestTable",
       ["new_Notes", "new_Active"],
   )
   print(removed)  # ['new_Notes', 'new_Active']

add_columns

Fügen Sie einer vorhandenen Tabelle mindestens eine Spalte hinzu.

Beispiel:


   created = client.tables.add_columns(
       "new_MyTestTable",
       {"new_Notes": "string", "new_Active": "bool"},
   )
   print(created)  # ['new_Notes', 'new_Active']
add_columns(table: str, columns: Dict[str, Any]) -> List[str]

Parameter

Name Beschreibung
table
Erforderlich
str

Schemaname der Tabelle (z. B. "new_MyTestTable").

columns
Erforderlich

Zuordnung von Spaltenschemanamen (mit Anpassungspräfix) zu ihren Typen. Unterstützte Typen sind identisch mit create.

Gibt zurück

Typ Beschreibung

Schemanamen der spalten, die erstellt wurden.

Ausnahmen

Typ Beschreibung

Wenn die Tabelle nicht vorhanden ist.

create

Erstellen Sie eine benutzerdefinierte Tabelle mit den angegebenen Spalten.

create(table: str, columns: Dict[str, Any], *, solution: str | None = None, primary_column: str | None = None, display_name: str | None = None) -> TableInfo

Parameter

Name Beschreibung
table
Erforderlich
str

Schemaname der Tabelle mit Anpassungspräfix (z. B. "new_MyTestTable").

columns
Erforderlich

Zuordnung von Spaltenschemanamen (mit Anpassungspräfix) zu ihren Typen. Unterstützte Typen umfassen "string" (oder "text"), "memo" (oder ), "int" (oder "integer""multiline"), "decimal" (oder "money"), "float" (oder "double"), "datetime" (oder ), (oder "date"), "bool" (oder "boolean"), "file"und Enum Unterklassen (für lokale Optionssätze).

solution
Erforderlich
str

Optionaler Eindeutiger Lösungsname, der die neue Tabelle besitzen soll. Wenn sie nicht angegeben wird, wird die Tabelle in der Standardlösung erstellt.

primary_column
Erforderlich
str

Optionaler Name des Spaltenschemanamens mit Anpassungspräfix (z. B. "new_ProductName"). Wenn nicht angegeben, wird standardmäßig auf "{prefix}_Name".

display_name
Erforderlich
str

Lesbarer Anzeigename für die Tabelle (z. B. "Product"). Wenn dieser Parameter nicht angegeben wird, wird standardmäßig der Tabellenschemaname verwendet.

Nur Schlüsselwortparameter

Name Beschreibung
solution
Standardwert: None
primary_column
Standardwert: None
display_name
Standardwert: None

Gibt zurück

Typ Beschreibung

Tabellenmetadaten mit schema_name, entity_set_name, , logical_name, metadata_idund columns_created. Unterstützt den diktierähnlichen Zugriff mit Legacyschlüsseln zur Abwärtskompatibilität.

Ausnahmen

Typ Beschreibung

Wenn die Tabellenerstellung fehlschlägt oder die Tabelle bereits vorhanden ist.

Beispiele

Erstellen einer Tabelle mit einfachen Spalten:


   from enum import IntEnum

   class ItemStatus(IntEnum):
       ACTIVE = 1
       INACTIVE = 2

   result = client.tables.create(
       "new_Product",
       {
           "new_Title": "string",
           "new_Price": "decimal",
           "new_Status": ItemStatus,
       },
       solution="MySolution",
       primary_column="new_ProductName",
       display_name="Product",
   )
   print(f"Created: {result['table_schema_name']}")

create_alternate_key

Erstellen Sie einen alternativen Schlüssel in einer Tabelle.

Alternative Schlüssel ermöglichen upsert-Vorgängen, Datensätze nach einer oder mehreren Spalten anstelle der primären GUID zu identifizieren. Nach der Erstellung wird der Schlüssel für die Indexerstellung in die Warteschlange gestellt; ihr status wechselt von "Pending" zu "Active" dem, nachdem der Index bereit ist.

create_alternate_key(table: str, key_name: str, columns: List[str], *, display_name: str | None = None, language_code: int = 1033) -> AlternateKeyInfo

Parameter

Name Beschreibung
table
Erforderlich
str

Schemaname der Tabelle (z. B. "new_Product").

key_name
Erforderlich
str

Schemaname für den neuen alternativen Schlüssel (z. B. "new_product_code_key").

columns
Erforderlich

Liste der logischen Spaltennamen, die den Schlüssel verfassen (z. B. ["new_productcode"]).

display_name
Erforderlich
str

Anzeigename für den Schlüssel. Der Standardwert ist, wenn er nicht angegeben wird key_name .

language_code
Erforderlich
int

Sprachcode für Bezeichnungen. Standardwert ist 1033 (Englisch).

Nur Schlüsselwortparameter

Name Beschreibung
display_name
Standardwert: None
language_code
Standardwert: 1033

Gibt zurück

Typ Beschreibung

Metadaten für den neu erstellten alternativen Schlüssel.

Ausnahmen

Typ Beschreibung

Wenn die Tabelle nicht vorhanden ist.

Wenn die Web-API-Anforderung fehlschlägt.

Beispiele

Erstellen Eines einspaltigen alternativen Schlüssels für upsert:


   key = client.tables.create_alternate_key(
       "new_Product",
       "new_product_code_key",
       ["new_productcode"],
       display_name="Product Code",
   )
   print(f"Key ID: {key.metadata_id}")
   print(f"Columns: {key.key_attributes}")

create_lookup_field

Erstellen Sie eine einfache Nachschlagefeldbeziehung.

Dies ist eine Bequeme Methode, die für den gängigen Fall beim Hinzufügen eines Nachschlagefelds create_one_to_many_relationship zu einer vorhandenen Tabelle umschließt.

create_lookup_field(referencing_table: str, lookup_field_name: str, referenced_table: str, *, display_name: str | None = None, description: str | None = None, required: bool = False, cascade_delete: str = 'RemoveLink', solution: str | None = None, language_code: int = 1033) -> RelationshipInfo

Parameter

Name Beschreibung
referencing_table
Erforderlich
str

Logischer Name der Tabelle mit dem Nachschlagefeld (untergeordnete Tabelle).

lookup_field_name
Erforderlich
str

Schemaname für das Nachschlagefeld (z. B. "new_AccountId").

referenced_table
Erforderlich
str

Logischer Name der Tabelle, auf die verwiesen wird (übergeordnete Tabelle).

display_name
Erforderlich
str

Anzeigename für das Nachschlagefeld. Standardmäßig wird auf den Namen der referenzierten Tabelle verwiesen.

description
Erforderlich
str

Optionale Beschreibung für das Nachschlagefeld.

required
Erforderlich

Gibt an, ob die Suche erforderlich ist. Wird standardmäßig auf False festgelegt.

cascade_delete
Erforderlich
str

Löschverhalten ("RemoveLink", "Cascade", "Restrict"). Wird standardmäßig auf "RemoveLink" festgelegt.

solution
Erforderlich
str

Optionaler eindeutiger Lösungsname, dem die Beziehung hinzugefügt werden soll.

language_code
Erforderlich
int

Sprachcode für Bezeichnungen. Standardwert ist 1033 (Englisch).

Nur Schlüsselwortparameter

Name Beschreibung
display_name
Standardwert: None
description
Standardwert: None
required
Standardwert: False
cascade_delete
Standardwert: RemoveLink
solution
Standardwert: None
language_code
Standardwert: 1033

Gibt zurück

Typ Beschreibung

Beziehungsmetadaten mit relationship_id, relationship_schema_name, , relationship_typelookup_schema_name, , referenced_entityund referencing_entity.

Ausnahmen

Typ Beschreibung

Wenn die Web-API-Anforderung fehlschlägt.

Beispiele

Erstellen eines einfachen Nachschlagefelds:


   result = client.tables.create_lookup_field(
       referencing_table="new_order",
       lookup_field_name="new_AccountId",
       referenced_table="account",
       display_name="Account",
       required=True,
       cascade_delete=CASCADE_BEHAVIOR_REMOVE_LINK,
   )
   print(f"Created lookup: {result.lookup_schema_name}")

create_many_to_many_relationship

Erstellen Sie eine m:n-Beziehung zwischen Tabellen.

Dieser Vorgang erstellt eine m:n-Beziehung und eine überschneidende Tabelle zum Verwalten der Beziehung.

create_many_to_many_relationship(relationship: ManyToManyRelationshipMetadata, *, solution: str | None = None) -> RelationshipInfo

Parameter

Name Beschreibung
relationship
Erforderlich

Metadaten, die die m:n-Beziehung definieren.

solution
Erforderlich
str

Optionaler eindeutiger Lösungsname zum Hinzufügen einer Beziehung zu.

Nur Schlüsselwortparameter

Name Beschreibung
solution
Standardwert: None

Gibt zurück

Typ Beschreibung

Beziehungsmetadaten mit relationship_id, relationship_schema_name, , relationship_type, entity1_logical_nameund entity2_logical_name.

Ausnahmen

Typ Beschreibung

Wenn die Web-API-Anforderung fehlschlägt.

Beispiele

Erstellen einer n:n-Beziehung: Mitarbeiter <-> Projekt:


   from PowerPlatform.Dataverse.models import (
       ManyToManyRelationshipMetadata,
   )

   relationship = ManyToManyRelationshipMetadata(
       schema_name="new_employee_project",
       entity1_logical_name="new_employee",
       entity2_logical_name="new_project",
   )

   result = client.tables.create_many_to_many_relationship(relationship)
   print(f"Created: {result.relationship_schema_name}")

create_one_to_many_relationship

Erstellen Sie eine 1:n-Beziehung zwischen Tabellen.

Dieser Vorgang erstellt sowohl die Beziehung als auch das Nachschlageattribute für die referenzierende Tabelle.

create_one_to_many_relationship(lookup: LookupAttributeMetadata, relationship: OneToManyRelationshipMetadata, *, solution: str | None = None) -> RelationshipInfo

Parameter

Name Beschreibung
lookup
Erforderlich

Metadaten, die das Nachschlageattribute definieren.

relationship
Erforderlich

Metadaten, die die Beziehung definieren.

solution
Erforderlich
str

Optionaler eindeutiger Lösungsname zum Hinzufügen einer Beziehung zu.

Nur Schlüsselwortparameter

Name Beschreibung
solution
Standardwert: None

Gibt zurück

Typ Beschreibung

Beziehungsmetadaten mit relationship_id, relationship_schema_name, , relationship_typelookup_schema_name, , referenced_entityund referencing_entity.

Ausnahmen

Typ Beschreibung

Wenn die Web-API-Anforderung fehlschlägt.

Beispiele

Erstellen sie eine 1:n-Beziehung: Abteilung (1) –> Mitarbeiter (N):


   from PowerPlatform.Dataverse.models import (
       LookupAttributeMetadata,
       OneToManyRelationshipMetadata,
       Label,
       LocalizedLabel,
       CascadeConfiguration,
   )
   from PowerPlatform.Dataverse.common.constants import (
       CASCADE_BEHAVIOR_REMOVE_LINK,
   )

   lookup = LookupAttributeMetadata(
       schema_name="new_DepartmentId",
       display_name=Label(
           localized_labels=[
               LocalizedLabel(label="Department", language_code=1033)
           ]
       ),
   )

   relationship = OneToManyRelationshipMetadata(
       schema_name="new_Department_Employee",
       referenced_entity="new_department",
       referencing_entity="new_employee",
       referenced_attribute="new_departmentid",
       cascade_configuration=CascadeConfiguration(
           delete=CASCADE_BEHAVIOR_REMOVE_LINK,
       ),
   )

   result = client.tables.create_one_to_many_relationship(lookup, relationship)
   print(f"Created lookup field: {result.lookup_schema_name}")

delete

Löschen Sie eine benutzerdefinierte Tabelle anhand des Schemanamens.

Warning

Dieser Vorgang ist unumkehrbar und löscht alle Datensätze im

Tabelle zusammen mit der Tabellendefinition.

Beispiel:


   client.tables.delete("new_MyTestTable")
delete(table: str) -> None

Parameter

Name Beschreibung
table
Erforderlich
str

Schemaname der Tabelle (z. B. "new_MyTestTable").

Ausnahmen

Typ Beschreibung

Wenn die Tabelle nicht vorhanden ist oder ein Löschvorgang fehlschlägt.

delete_alternate_key

Löschen Sie einen alternativen Schlüssel anhand der Metadaten-ID.

Warning

Das Löschen eines alternativen Schlüssels, der von Upsert-Vorgängen verwendet wird, wird

bewirkt, dass diese Vorgänge fehlschlagen. Dieser Vorgang kann nicht rückgängig gemacht werden.

Beispiel:


   client.tables.delete_alternate_key(
       "new_Product",
       "12345678-1234-1234-1234-123456789abc",
   )
delete_alternate_key(table: str, key_id: str) -> None

Parameter

Name Beschreibung
table
Erforderlich
str

Schemaname der Tabelle (z. B. "new_Product").

key_id
Erforderlich
str

Metadaten-GUID des zu löschenden alternativen Schlüssels.

Ausnahmen

Typ Beschreibung

Wenn die Tabelle nicht vorhanden ist.

Wenn die Web-API-Anforderung fehlschlägt.

delete_relationship

Löschen Sie eine Beziehung anhand ihrer Metadaten-ID.

Warning

Durch das Löschen einer Beziehung wird auch das zugeordnete Nachschlageattribute entfernt.

für 1:n-Beziehungen. Dieser Vorgang kann nicht rückgängig gemacht werden.

Beispiel:


   client.tables.delete_relationship(
       "12345678-1234-1234-1234-123456789abc"
   )
delete_relationship(relationship_id: str) -> None

Parameter

Name Beschreibung
relationship_id
Erforderlich
str

Die GUID der Beziehungsmetadaten.

Ausnahmen

Typ Beschreibung

Wenn die Web-API-Anforderung fehlschlägt.

get

Rufen Sie grundlegende Metadaten für eine Tabelle ab, falls sie vorhanden ist.

Beispiel:


   info = client.tables.get("new_MyTestTable")
   if info:
       print(f"Logical name: {info['table_logical_name']}")
       print(f"Entity set: {info['entity_set_name']}")
get(table: str) -> TableInfo | None

Parameter

Name Beschreibung
table
Erforderlich
str

Schemaname der Tabelle (z. B. "new_MyTestTable" oder "account").

Gibt zurück

Typ Beschreibung

Tabellenmetadaten oder None wenn die Tabelle nicht gefunden wird. Unterstützt den diktierähnlichen Zugriff mit Legacyschlüsseln zur Abwärtskompatibilität.

get_alternate_keys

Auflisten aller alternativen Schlüssel, die in einer Tabelle definiert sind.

get_alternate_keys(table: str) -> List[AlternateKeyInfo]

Parameter

Name Beschreibung
table
Erforderlich
str

Schemaname der Tabelle (z. B. "new_Product").

Gibt zurück

Typ Beschreibung

Liste der alternativen Schlüsselmetadatenobjekte. Kann leer sein, wenn keine alternativen Schlüssel definiert sind.

Ausnahmen

Typ Beschreibung

Wenn die Tabelle nicht vorhanden ist.

Wenn die Web-API-Anforderung fehlschlägt.

Beispiele

Listen Sie alternative Schlüssel auf, und drucken Sie deren Status:


   keys = client.tables.get_alternate_keys("new_Product")
   for key in keys:
       print(f"{key.schema_name}: {key.status}")

get_relationship

Abrufen von Beziehungsmetadaten nach Schemaname.

Beispiel:


   rel = client.tables.get_relationship("new_Department_Employee")
   if rel:
       print(f"Found: {rel.relationship_schema_name}")
get_relationship(schema_name: str) -> RelationshipInfo | None

Parameter

Name Beschreibung
schema_name
Erforderlich
str

Der Schemaname der Beziehung.

Gibt zurück

Typ Beschreibung

Beziehungsmetadaten oder None falls nicht gefunden.

Ausnahmen

Typ Beschreibung

Wenn die Web-API-Anforderung fehlschlägt.

list

Listet alle nicht privaten Tabellen in der Dataverse-Umgebung auf.

Standardmäßig wird jede Tabelle zurückgegeben, in der IsPrivate eq false. Geben Sie einen optionalen OData-Ausdruck $filter an, um die Ergebnisse weiter einzugrenzen. Der Ausdruck wird mit der Standardklausel IsPrivate eq false kombiniert, die andverwendet wird.

Beispiel:


   # List all non-private tables
   tables = client.tables.list()
   for table in tables:
       print(table["LogicalName"])

   # List only tables whose schema name starts with "new_"
   custom_tables = client.tables.list(
       filter="startswith(SchemaName, 'new_')"
   )

   # List tables with only specific properties
   tables = client.tables.list(
       select=["LogicalName", "SchemaName", "EntitySetName"]
   )
list(*, filter: str | None = None, select: List[str] | None = None) -> List[Dict[str, Any]]

Parameter

Name Beschreibung
filter
Erforderlich
str

Optionaler OData-Ausdruck $filter , um die Liste der zurückgegebenen Tabellen weiter einzugrenzen (z. B. "SchemaName eq 'Account'"). Spaltennamen in Filterausdrücken müssen die genauen Eigenschaftennamen aus den EntityDefinitions Metadaten verwenden (in der Regel PascalCase).

select
Erforderlich
list[str] oder None

Optionale Liste der Eigenschaftsnamen, die in die Antwort eingeschlossen werden sollen (projiziert über die OData-Abfrageoption $select ). Eigenschaftennamen müssen die genauen PascalCase-Namen aus den EntityDefinitions Metadaten verwenden (z. B. ["LogicalName", "SchemaName", "DisplayName"]). Wenn None (standard) oder eine leere Liste alle Eigenschaften zurückgegeben werden.

Nur Schlüsselwortparameter

Name Beschreibung
filter
Standardwert: None
select
Standardwert: None

Gibt zurück

Typ Beschreibung

Liste der EntityDefinition-Metadatenwörterbücher.

list_columns

Listen Sie alle Attributdefinitionen (Spalten) für eine Tabelle auf.

Beispiel:


   # List all columns on the account table
   columns = client.tables.list_columns("account")
   for col in columns:
       print(f"{col['LogicalName']} ({col.get('AttributeType')})")

   # List only specific properties
   columns = client.tables.list_columns(
       "account",
       select=["LogicalName", "SchemaName", "AttributeType"],
   )

   # Filter to only string attributes
   columns = client.tables.list_columns(
       "account",
       filter="AttributeType eq 'String'",
   )
list_columns(table: str, *, select: List[str] | None = None, filter: str | None = None) -> List[Dict[str, Any]]

Parameter

Name Beschreibung
table
Erforderlich
str

Schemaname der Tabelle (z. B. "account" oder "new_Product").

select
Erforderlich
list[str] oder None

Optionale Liste der Eigenschaftsnamen für Das Projekt über $select. Werte werden as-is (PascalCase) übergeben.

filter
Erforderlich
str

Optionaler OData-Ausdruck $filter . Gibt beispielsweise "AttributeType eq 'String'" nur Zeichenfolgenspalten zurück.

Nur Schlüsselwortparameter

Name Beschreibung
select
Standardwert: None
filter
Standardwert: None

Gibt zurück

Typ Beschreibung

Liste der Unformatierten Attributmetadatenverzeichnisse.

Ausnahmen

Typ Beschreibung

Wenn die Tabelle nicht gefunden wird.

Wenn die Web-API-Anforderung fehlschlägt.

list_relationships

Listet alle Beziehungsdefinitionen in der Umgebung auf.

Beispiel:


   # List all relationships
   rels = client.tables.list_relationships()
   for rel in rels:
       print(f"{rel['SchemaName']} ({rel.get('@odata.type')})")

   # Filter by type
   one_to_many = client.tables.list_relationships(
       filter="RelationshipType eq Microsoft.Dynamics.CRM.RelationshipType'OneToManyRelationship'"
   )

   # Select specific properties
   rels = client.tables.list_relationships(
       select=["SchemaName", "ReferencedEntity", "ReferencingEntity"]
   )
list_relationships(*, filter: str | None = None, select: List[str] | None = None) -> List[Dict[str, Any]]

Parameter

Name Beschreibung
filter
Erforderlich
str

Optionaler OData-Ausdruck $filter . Beispiel: "RelationshipType eq Microsoft.Dynamics.CRM.RelationshipType'OneToManyRelationship'" gibt nur 1:n-Beziehungen zurück.

select
Erforderlich
list[str] oder None

Optionale Liste der Eigenschaftsnamen für Das Projekt über $select. Werte werden as-is (PascalCase) übergeben.

Nur Schlüsselwortparameter

Name Beschreibung
filter
Standardwert: None
select
Standardwert: None

Gibt zurück

Typ Beschreibung

Liste der Metadatenverzeichnisse für rohe Beziehungen.

Ausnahmen

Typ Beschreibung

Wenn die Web-API-Anforderung fehlschlägt.

list_table_relationships

Listet alle Beziehungen für eine bestimmte Tabelle auf.

Kombiniert 1:n-, n:n- und m:n-Beziehungen für die angegebene Tabelle durch Abfragen EntityDefinitions({id})/OneToManyRelationships, EntityDefinitions({id})/ManyToOneRelationshipsund EntityDefinitions({id})/ManyToManyRelationships.

Beispiel:


   # List all relationships for the account table
   rels = client.tables.list_table_relationships("account")
   for rel in rels:
       print(f"{rel['SchemaName']} -> {rel.get('@odata.type')}")
list_table_relationships(table: str, *, filter: str | None = None, select: List[str] | None = None) -> List[Dict[str, Any]]

Parameter

Name Beschreibung
table
Erforderlich
str

Schemaname der Tabelle (z. B. "account").

filter
Erforderlich
str

Optionaler OData-Ausdruck $filter , der auf jede Unteranforderung angewendet wird.

select
Erforderlich
list[str] oder None

Optionale Liste der Eigenschaftsnamen für Das Projekt über $select. Werte werden as-is (PascalCase) übergeben.

Nur Schlüsselwortparameter

Name Beschreibung
filter
Standardwert: None
select
Standardwert: None

Gibt zurück

Typ Beschreibung

Kombinierte Liste der 1:n-, n:n- und m:n-Beziehungsmetawörterbücher.

Ausnahmen

Typ Beschreibung

Wenn die Tabelle nicht gefunden wird.

Wenn die Web-API-Anforderung fehlschlägt.

remove_columns

Entfernen Sie eine oder mehrere Spalten aus einer Tabelle.

Beispiel:


   removed = client.tables.remove_columns(
       "new_MyTestTable",
       ["new_Notes", "new_Active"],
   )
   print(removed)  # ['new_Notes', 'new_Active']
remove_columns(table: str, columns: str | List[str]) -> List[str]

Parameter

Name Beschreibung
table
Erforderlich
str

Schemaname der Tabelle (z. B. "new_MyTestTable").

columns
Erforderlich
str oder list[str]

Spaltenschemaname oder Liste der zu entfernenden Spaltenschemanamen. Muss das Anpassungspräfix (z. B. "new_TestColumn") enthalten.

Gibt zurück

Typ Beschreibung

Schemanamen der Spalten, die entfernt wurden.

Ausnahmen

Typ Beschreibung

Wenn die Tabelle oder eine angegebene Spalte nicht vorhanden ist.