You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Incorporate latest changes from microsoft/PowerPlatform-DataverseClient-Python:
- Batch API with changeset, upsert, and DataFrame integration (microsoft#129)
- Optimize picklist label resolution with bulk fetch (microsoft#154)
- Add memo/multiline column type support (microsoft#155)
- Add unit test coverage and CI coverage reporting (microsoft#158)
Made-with: Cursor
Copy file name to clipboardExpand all lines: .claude/skills/dataverse-sdk-dev/SKILL.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ This skill provides guidance for developers working on the PowerPlatform Dataver
13
13
14
14
### API Design
15
15
16
-
1.**Public methods in operation namespaces** - New public methods go in the appropriate namespace module under `src/PowerPlatform/Dataverse/operations/` (`records.py`, `query.py`, `tables.py`). The `client.py` file exposes these via namespace properties (`client.records`, `client.query`, `client.tables`). Public types and constants live in their own modules (e.g., `models/table_info.py`, `common/constants.py`)
16
+
1.**Public methods in operation namespaces** - New public methods go in the appropriate namespace module under `src/PowerPlatform/Dataverse/operations/` (`records.py`, `query.py`, `tables.py`, `batch.py`). The `client.py` file exposes these via namespace properties (`client.records`, `client.query`, `client.tables`, `client.batch`). Public types and constants live in their own modules (e.g., `models/metadata.py`, `models/batch.py`, `common/constants.py`)
17
17
2.**Every public method needs README example** - Public API methods must have examples in README.md
18
18
3.**Reuse existing APIs** - Always check if an existing method can be used before making direct Web API calls
19
19
4.**Update documentation** when adding features - Keep README and SKILL files (both copies) in sync
Copy file name to clipboardExpand all lines: .claude/skills/dataverse-sdk-use/SKILL.md
+46Lines changed: 46 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,7 @@ Use the PowerPlatform Dataverse Client Python SDK to interact with Microsoft Dat
22
22
-`client.query` -- query and search operations
23
23
-`client.tables` -- table metadata, columns, and relationships
24
24
-`client.files` -- file upload operations
25
+
-`client.batch` -- batch multiple operations into a single HTTP request
25
26
26
27
### Bulk Operations
27
28
The SDK supports Dataverse's native bulk operations: Pass lists to `create()`, `update()` for automatic bulk processing, for `delete()`, set `use_bulk_delete` when passing lists to use bulk operation
Types on the same line map to the same exact format under the hood
251
252
-`"string"` or `"text"` - Single line of text
253
+
-`"memo"` or `"multiline"` - Multiple lines of text (4000 character default)
252
254
-`"int"` or `"integer"` - Whole number
253
255
-`"decimal"` or `"money"` - Decimal number
254
256
-`"float"` or `"double"` - Floating point number
@@ -426,6 +428,50 @@ client.files.upload(
426
428
)
427
429
```
428
430
431
+
### Batch Operations
432
+
433
+
Use `client.batch` to send multiple operations in one HTTP request. All batch methods return `None`; results arrive via `BatchResult` after `execute()`.
@@ -43,6 +44,7 @@ A Python client library for Microsoft Dataverse that provides a unified interfac
43
44
-**🔗 Relationship Management**: Create one-to-many and many-to-many relationships between tables with full metadata control
44
45
-**🐼 DataFrame Support**: Pandas wrappers for all CRUD operations, returning DataFrames and Series
45
46
-**📎 File Operations**: Upload files to Dataverse file columns with automatic chunking for large files
47
+
-**📦 Batch Operations**: Send multiple CRUD, table metadata, and SQL query operations in a single HTTP request with optional transactional changesets
46
48
-**🔐 Azure Identity**: Built-in authentication using Azure Identity credential providers with comprehensive support
47
49
-**🛡️ Error Handling**: Structured exception hierarchy with detailed error context and retry guidance
48
50
@@ -115,9 +117,9 @@ The SDK provides a simple, pythonic interface for Dataverse operations:
115
117
116
118
| Concept | Description |
117
119
|---------|-------------|
118
-
|**DataverseClient**| Main entry point; provides `records`, `query`, `tables`, and `files` namespaces |
120
+
|**DataverseClient**| Main entry point; provides `records`, `query`, `tables`, `files`, and `batch` namespaces |
119
121
|**Context Manager**| Use `with DataverseClient(...) as client:` for automatic cleanup and HTTP connection pooling |
120
-
|**Namespaces**| Operations are organized into `client.records` (CRUD & OData queries), `client.query` (QueryBuilder & SQL), `client.tables` (metadata), and `client.files` (file uploads) |
122
+
|**Namespaces**| Operations are organized into `client.records` (CRUD & OData queries), `client.query` (QueryBuilder & SQL), `client.tables` (metadata), `client.files` (file uploads), and `client.batch` (batch requests) |
121
123
|**Records**| Dataverse records represented as Python dictionaries with column schema names |
122
124
|**Schema names**| Use table schema names (`"account"`, `"new_MyTestTable"`) and column schema names (`"name"`, `"new_MyTestColumn"`). See: [Table definitions in Microsoft Dataverse](https://learn.microsoft.com/en-us/power-apps/developer/data-platform/entity-metadata)|
123
125
|**Bulk Operations**| Efficient bulk processing for multiple records with automatic optimization |
@@ -402,6 +404,7 @@ for page in client.records.get(
402
404
# Create a custom table, including the customization prefix value in the schema names for the table and columns.
For a complete example see [examples/advanced/batch.py](https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/examples/advanced/batch.py).
636
+
550
637
## Next steps
551
638
552
639
### More sample code
@@ -561,6 +648,7 @@ Explore our comprehensive examples in the [`examples/`](https://github.com/micro
561
648
-**[Complete Walkthrough](https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/examples/advanced/walkthrough.py)** - Full feature demonstration with production patterns
562
649
-**[Relationship Management](https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/examples/advanced/relationships.py)** - Create and manage table relationships
563
650
-**[File Upload](https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/examples/advanced/file_upload.py)** - Upload files to Dataverse file columns
651
+
-**[Batch Operations](https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/examples/advanced/batch.py)** - Send multiple operations in a single request with changesets
564
652
565
653
📖 See the [examples README](https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/examples/README.md) for detailed guidance and learning progression.
566
654
@@ -621,7 +709,7 @@ For optimal performance in production environments:
621
709
### Limitations
622
710
623
711
- SQL queries are **read-only** and support a limited subset of SQL syntax
624
-
- Create Table supports a limited number of column types (string, int, decimal, bool, datetime, picklist)
712
+
- Create Table supports the following column types: string, memo, int, decimal, float, bool, datetime, file, and picklist (Enum subclass)
625
713
- File uploads are limited by Dataverse file size restrictions (default 128MB per file)
0 commit comments