Anpassen von Tabellen und Spalten

Das SDK unterstützt Erstellungs-, Aktualisierungs- und Löschvorgänge (CUD) für benutzerdefinierte Tabellen und Spalten, optionale Lösungszuordnung sowie Abrufen und Listentabellendefinitionen.

Sehen wir uns Beispielcode für die Arbeit mit einer benutzerdefinierten Tabelle an.

# Create a custom table, including the customization prefix value in the schema names for the table and columns.
table_info = client.tables.create("new_Product", {
    "new_Code": "string",
    "new_Description": "memo",
    "new_Price": "decimal",
    "new_Active": "bool"
})

# Create with custom primary column name and solution assignment
table_info = client.tables.create(
    "new_Product",
    columns={
        "new_Code": "string",
        "new_Price": "decimal"
    },
    solution="MyPublisher",  # Optional: add to specific solution
    primary_column="new_ProductName",  # Optional: custom primary column (default is "{customization prefix value}_Name")
)

# Get table information
info = client.tables.get("new_Product")
print(f"Logical name: {info['table_logical_name']}")
print(f"Entity set: {info['entity_set_name']}")

# List all tables
tables = client.tables.list()
for table in tables:
    print(table)

# Add columns to existing table (columns must include customization prefix value)
client.tables.add_columns("new_Product", {"new_Category": "string"})

# Remove columns
client.tables.remove_columns("new_Product", ["new_Category"])

# List all columns (attributes) for a table to discover schema
columns = client.tables.list_columns("account")
for col in columns:
    print(f"{col['name']} ({col.get('AttributeType')})")

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

# Clean up
client.tables.delete("new_Product")

Important

Alle benutzerdefinierten Spaltennamen müssen den Präfixwert der Anpassung enthalten (z. B. "new_"). Diese Anforderung stellt eine explizite, vorhersagbare Benennung sicher und entspricht den Dataverse-Metadatenanforderungen.

Weitere Informationen zum Arbeiten mit benutzerdefinierten Tabellenmetadaten:

  • create gibt immer eine Liste von GUIDs zurück (Länge=1 für einzelne Eingaben).
  • update und delete geben None sowohl für einzelne als auch für mehrere Schnittstellen zurück.
  • Die Übergabe einer Liste von Payloads an create löst eine Sammelerstellung aus und gibt list[str] IDs zurück.
  • get unterstützt den Abruf einzelner Datensätze mit Datensatz-ID oder das Durchblättern von Ergebnismengen, wobei die Auswahl gegenüber der Einschränkung von Spalten bevorzugt wird.
  • Bei CRUD-Methoden, die eine Datensatz-ID akzeptieren, übergeben Sie die GUID-Zeichenfolge (36 Zeichen mit Bindestrichen). Klammern um die GUID werden akzeptiert, aber nicht erforderlich.

Siehe auch