Personalización de tablas y columnas

El SDK admite operaciones de creación, actualización y eliminación (CUD) para tablas y columnas personalizadas, asociación de soluciones opcionales, además de definiciones de tabla de recuperación y lista.

Echemos un vistazo al código de ejemplo para trabajar con una tabla personalizada.

# 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

Todos los nombres de columna personalizados deben incluir el valor de prefijo de personalización (por ejemplo, "new_"). Este requisito garantiza la nomenclatura explícita y predecible y se alinea con los requisitos de metadatos de Dataverse.

Para obtener más información sobre cómo trabajar con metadatos de tabla personalizados:

  • create siempre devuelve una lista de GUID (length=1 para una sola entrada).
  • update y delete devuelven None para interfaces únicas y múltiples.
  • Pasar una lista de cargas para create desencadenar una creación masiva y devuelve una list[str] de identificadores.
  • get admite la recuperación de registros únicos con identificador de registro o paginación a través de conjuntos de resultados (prefiere seleccionar para limitar columnas).
  • Para los métodos CRUD que toman un identificador de registro pase la cadena GUID (36 caracteres con guiones). Los paréntesis alrededor del GUID se aceptan, pero no son necesarios.

Consulte también