Personnaliser des tables et des colonnes

Le Kit de développement logiciel (SDK) prend en charge les opérations de création, de mise à jour et de suppression (CUD) pour les tables et colonnes personnalisées , l’association facultative de solution, ainsi que la récupération et la liste des définitions de tables.

Examinons l’exemple de code permettant d’utiliser une table personnalisée.

# 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

Tous les noms de colonnes personnalisés doivent inclure la valeur du préfixe de personnalisation (par exemple, « new_ »). Cette exigence garantit un nommage explicite, prévisible et s’aligne sur les exigences de métadonnées Dataverse.

Pour plus d’informations sur l’utilisation des métadonnées de table personnalisées :

  • create retourne toujours une liste de GUID (longueur=1 pour une entrée unique).
  • update et delete renvoient None pour des interfaces uniques et multiples.
  • Le passage d’une liste de payloads à create déclenche une création groupée et renvoie list[str] d’identifiants.
  • get prend en charge la récupération d'un enregistrement unique à l’aide de l'ID d'enregistrement ou la pagination à travers les ensembles de résultats (privilégiez l'utilisation de 'select' pour limiter les colonnes).
  • Pour les méthodes CRUD qui prennent un identifiant d’enregistrement, transmettez la chaîne GUID (de 36 caractères avec des traits d’union). Les parenthèses autour du GUID sont acceptées, mais pas obligatoires.

Voir aussi