operations Paquet

Espaces de noms d’opération pour le Kit de développement logiciel (SDK) Dataverse.

Ce module contient les classes d’espace de noms d’opération qui organisent les opérations du Kit de développement logiciel (SDK) en groupes logiques : enregistrements, requêtes et tables.

Modules

batch

Espaces de noms d’opération Batch pour le Kit de développement logiciel (SDK) Dataverse.

dataframe

Espace de noms des opérations CRUD DataFrame pour le Kit de développement logiciel (SDK) Dataverse.

files

Espace de noms des opérations de fichier pour le Kit de développement logiciel (SDK) Dataverse.

query

Espace de noms des opérations de requête pour le Kit de développement logiciel (SDK) Dataverse.

records

Enregistrez l’espace de noms des opérations CRUD pour le Kit de développement logiciel (SDK) Dataverse.

tables

Espace de noms des opérations de métadonnées de table pour le Kit de développement logiciel (SDK) Dataverse.

Classes

BatchDataFrameOperations

Wrappers orientés DataFrame pour les opérations d’enregistrement par lots.

Fournit create, updateet qui acceptent pandas.DataFrame / pandas.Series les entrées et delete les convertissent en dicts standard avant la mise en file d’attente sur le lot. Cela permet aux appelants de science des données de nourrir des DataFrames directement dans un lot sans conversion manuelle.

Accessible via batch.dataframe.

Exemple :


   import pandas as pd

   batch = client.batch.new()
   df = pd.DataFrame([
       {"name": "Contoso", "telephone1": "555-0100"},
       {"name": "Fabrikam", "telephone1": "555-0200"},
   ])
   batch.dataframe.create("account", df)
   result = batch.execute()
BatchOperations

Espace de noms pour les opérations par lots (client.batch).

Accessible via client.batch. Permet new de créer un BatchRequest générateur.

Exemple :


   batch = client.batch.new()
   batch.records.create("account", {"name": "Fabrikam"})
   result = batch.execute()
BatchQueryOperations

Interroger des opérations sur un BatchRequest.

Miroirs client.query exactement : mêmes noms de méthode, mêmes signatures. Tous les retours Nonede méthodes ; les résultats arrivent via BatchResult.

Ne pas instancier directement ; utiliser batch.query.

BatchRecordOperations

Enregistrer les opérations sur un BatchRequest.

Miroirs client.records: mêmes noms de méthode, mêmes signatures. Toutes les méthodes retournent None; les résultats sont disponibles après BatchResultexecute.

Méthodes ga : retrieve (enregistrement unique) et list (multi-enregistrement, page unique). get est déconseillé : utiliser retrieve à la place.

Ne pas instancier directement ; utiliser batch.records.

BatchRequest

Générateur pour la construction et l’exécution d’une requête OData $batch Dataverse.

Obtenir via new (client.batch.new()). Ajoutez des opérations via records, , tablesqueryet , et dataframe, si vous le souhaitez, regroupez les écritures dans un changeset, puis appelez execute.

Les opérations sont exécutées séquentiellement dans l’ordre ajouté. Le résultat BatchResult contient un BatchItemResponse par requête HTTP distribuée (certaines opérations s’étendent à plusieurs requêtes).

Note

1 000 opérations HTTP maximales par lot.

Exemple :


   batch = client.batch.new()
   batch.records.create("account", {"name": "Contoso"})
   batch.tables.get("account")
   with batch.changeset() as cs:
       ref = cs.records.create("contact", {"firstname": "Alice"})
       cs.records.update("account", account_id, {
           "primarycontactid@odata.bind": ref
       })
   result = batch.execute()
BatchTableOperations

Opérations de métadonnées de table sur un BatchRequest.

Miroirs client.tables exactement : mêmes noms de méthode, mêmes signatures. Tous les retours Nonede méthodes ; les résultats arrivent via BatchResult.

Note

tables.delete, tables.add_columns et tables.remove_columns

exiger une recherche de métadonnées (GET EntityDefinitions) à l’adresse

execute heure de résolution de l’ID de métadonnées de la table.

Cette recherche est transparente pour l’appelant.

Note

tables.add_columns et tables.remove_columns chacun produit un

élément de lot par colonne, de sorte qu’ils contribuent à plusieurs entrées

responses.

Ne pas instancier directement ; utiliser batch.tables.

ChangeSet

Groupe transactionnel d’opérations d’écriture à enregistrement unique.

Toutes les opérations réussissent ou sont restaurées ensemble. Utilisez-le en tant que gestionnaire de contexte ou appelez-le records pour ajouter des opérations directement.

Ne pas instancier directement ; utiliser changeset.

Exemple :


   with batch.changeset() as cs:
       ref = cs.records.create("contact", {"firstname": "Alice"})
       cs.records.update("account", account_id, {
           "primarycontactid@odata.bind": ref
       })
ChangeSetRecordOperations

Enregistrer les opérations d’écriture disponibles à l’intérieur d’un ChangeSet.

Miroirs, mais limités client.records aux formulaires à enregistrement unique (aucune création/mise à jour/suppression en bloc). Seules les opérations d’écriture sont autorisées : GET n’est pas autorisé à l’intérieur d’un ensemble de modifications.

Ne pas instancier directement ; utiliser ChangeSet.records.

DataFrameOperations

Espace de noms pour les opérations CRUD de trame de données pandas.

Accessible via client.dataframe. Fournit des wrappers orientés DataFrame autour des opérations CRUD au niveau de l’enregistrement.

Exemple :


   import pandas as pd

   client = DataverseClient(base_url, credential)

   # Query records as a DataFrame
   df = client.dataframe.get("account", select=["name"], top=100)

   # Create records from a DataFrame
   new_df = pd.DataFrame([{"name": "Contoso"}, {"name": "Fabrikam"}])
   new_df["accountid"] = client.dataframe.create("account", new_df)

   # Update records
   new_df["telephone1"] = ["555-0100", "555-0200"]
   client.dataframe.update("account", new_df, id_column="accountid")

   # Delete records
   client.dataframe.delete("account", new_df["accountid"])
FileOperations

Espace de noms pour les opérations de fichier.

Accessible via client.files. Fournit des opérations de chargement de fichiers pour les colonnes de fichier Dataverse.

Exemple :


   client = DataverseClient(base_url, credential)

   client.files.upload(
       "account", account_id, "new_Document", "/path/to/file.pdf"
   )
QueryOperations

Espace de noms pour les opérations de requête.

Accessible via client.query. Fournit des opérations de requête et de recherche sur des tables Dataverse.

Exemple :


   from PowerPlatform.Dataverse.models.filters import col

   client = DataverseClient(base_url, credential)

   # Fluent query builder (recommended)
   for record in (client.query.builder("account")
                  .select("name", "revenue")
                  .where(col("statecode") == 0)
                  .order_by("revenue", descending=True)
                  .top(100)
                  .execute()):
       print(record["name"])

   # SQL query
   rows = client.query.sql("SELECT TOP 10 name FROM account ORDER BY name")
   for row in rows:
       print(row["name"])
RecordOperations

Espace de noms pour les opérations CRUD au niveau de l’enregistrement.

Accessible via client.records. Fournit des opérations de création, de mise à jour, de suppression et d’obtention sur des enregistrements Dataverse individuels.

Exemple :


   client = DataverseClient(base_url, credential)

   # Create a single record
   guid = client.records.create("account", {"name": "Contoso Ltd"})

   # Get a record
   record = client.records.get("account", guid, select=["name"])

   # Update a record
   client.records.update("account", guid, {"telephone1": "555-0100"})

   # Delete a record
   client.records.delete("account", guid)
TableOperations

Espace de noms pour les opérations de métadonnées au niveau de la table.

Accessible via client.tables. Fournit des opérations pour créer, supprimer, inspecter et répertorier des tables Dataverse, ainsi que pour ajouter et supprimer des colonnes.

Exemple :


   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")