Skip to content

Tools Views

Ryan James edited this page Aug 17, 2026 · 3 revisions

Views tools

This page is generated from the code by scripts/gen_wiki_tools.py — do not edit by hand.

7 tools · category token views · enable with DATAVERSE_TOOLS=views (unset enables every category)

Tool-Index · Home

Write tools additionally require DATAVERSE_ALLOW_WRITE=true; delete tools require DATAVERSE_ALLOW_DELETE=true.


dataverse_add_view_column

Write · non-idempotent · category views

Add a single column to a Dataverse view's FetchXml and LayoutXml.

Preserves all other columns, sort, and filters by construction. Returns a no-op result if the column is already present. Quick Find filter blocks are stripped before PATCH — quick_find_warning names any dropped fields. Publishes automatically — no separate publish needed. Returns fetchxml_backup and layoutxml_backup for rollback. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
view_id str yes GUID of the view to add a column to. (min_len=36, max_len=36)
column str yes Logical name of the column to add. (min_len=1)
width int | None no None Pixel width for the new cell (default 100). (ge=1)
position int | None no None Zero-based grid position to insert at. Omit to append. (ge=0)
solution_unique_name str | None no None

Returns JSON. Errors return {"error": true, "message": "..."}.


dataverse_create_view

Write · non-idempotent · category views

Create a new saved view (savedquery) for a Dataverse table.

Builds FetchXml and LayoutXml from the supplied column list automatically. Validates the generated XML before posting (16-rule check). Publishes automatically — no separate publish needed. Returns the new view's fetchxml and layoutxml for reference. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
table_logical_name str yes Logical name of the target table. (min_len=1, pattern=^[a-zA-Z_][a-zA-Z0-9_]*$)
name str yes View name shown in the view selector. (min_len=1, max_len=200)
columns list[str] yes Ordered column logical names to show as grid columns. (min_len=1)
sort list[ViewSort] | None no None Optional ordered sort clauses.
filter_fetchxml str | None no None Optional raw <filter></filter> FetchXml snippet to embed.
query_type int no 0 View querytype. Default 0 (main grid).
is_default bool no False Set this as the table's default view.
description str | None no None Optional description.
widths dict[str, int] | None no None Per-column pixel width override, e.g. {'cr123_name': 300}.
solution_unique_name str | None no None Add the new view to this solution. (pattern=^[a-zA-Z_][a-zA-Z0-9_]*$)

Returns {"created": ..., "view_id": ..., "name": ..., "table": ..., "columns": ..., "query_type": ..., "is_default": ..., "published": ..., "solution_unique_name": ..., "fetchxml": ..., "layoutxml": ...}. Errors return {"error": true, "message": "..."}.


dataverse_get_view

Read · idempotent · category views

Get a single Dataverse view's layout as structured JSON.

Parses FetchXml and LayoutXml into readable columns, sort, and filter lists. Returns fetchxml_backup and layoutxml_backup for reference. quick_find_fields is populated for Quick Find views (querytype=4). Use dataverse_list_views to discover view IDs.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
view_id str yes GUID of the view (savedquery) to retrieve. (min_len=36, max_len=36)

Returns {"view_id": ..., "name": ..., "table": ..., "query_type": ..., "query_type_name": ..., "is_default": ..., "is_quick_find": ..., "statecode": ..., "description": ..., "fetch": ..., "layout": ..., "fetchxml_backup": ..., "layoutxml_backup": ...}. Errors return {"error": true, "message": "..."}.


dataverse_list_views

Read · idempotent · category views

List saved views (savedqueries) registered in the Dataverse environment.

Returns metadata: id, name, querytype, isdefault, statecode. Filter by table_logical_name and/or query_type (0=Main Grid, 1=Advanced Find, 2=Associated, 4=Quick Find, 64=Lookup). Use dataverse_get_view for layout.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
table_logical_name str | None no None Logical name of the table to list views for (e.g. 'account'). Omit to list views for all tables. (pattern=^[a-zA-Z_][a-zA-Z0-9_]*$)
query_type int | None no None Filter by querytype. 0 = main grid, 1 = advanced find, 2 = associated, 4 = quick find, 64 = lookup. Omit for all.
top int no 50 Maximum number of records to return. (ge=1, le=5000)

Returns {"views": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.


dataverse_remove_view_column

Write · idempotent · category views

Remove a single column from a Dataverse view's FetchXml and LayoutXml.

Preserves all other columns, sort, and filters by construction. Returns an error if the column is not present — no change is made. Quick Find filter blocks are stripped before PATCH — quick_find_warning names any dropped fields. Publishes automatically — no separate publish needed. Returns fetchxml_backup and layoutxml_backup for rollback. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
view_id str yes GUID of the view to remove a column from. (min_len=36, max_len=36)
column str yes Logical name of the column to remove. (min_len=1)
solution_unique_name str | None no None

Returns JSON. Errors return {"error": true, "message": "..."}.


dataverse_update_view

Write · non-idempotent · category views

Update an existing Dataverse view's columns, sort, filters, or name.

Existing non-quickfind filters are preserved unless filter_fetchxml is given. Quick Find filter blocks are stripped before PATCH (Dataverse rejects them) — quick_find_warning names any dropped fields for restoration via the maker portal. Publishes automatically — no separate publish needed. Returns fetchxml_backup and layoutxml_backup for rollback. Requires DATAVERSE_ALLOW_WRITE=true.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
view_id str yes GUID of the view to update. (min_len=36, max_len=36)
name str | None no None New view name (optional).
columns list[str] | None no None If given, replaces the grid columns (rebuilds fetch+layout) while preserving existing filters.
sort list[ViewSort] | None no None If given, replaces the sort order.
filter_fetchxml str | None no None If given, replaces the non-quickfind <filter> block.
widths dict[str, int] | None no None Per-column pixel width override.
solution_unique_name str | None no None Add the view to this solution. (pattern=^[a-zA-Z_][a-zA-Z0-9_]*$)

Returns JSON. Errors return {"error": true, "message": "..."}.


dataverse_validate_view

Read · idempotent · category views

Validate a Dataverse view's FetchXml and LayoutXml against 16 structural rules.

Fetches the live XML and checks FetchXml structure (rules 1-8), LayoutXml structure (rules 9-15), and column cross-reference (rule 16). Layout rules are skipped when layoutxml is null. Write tools run this automatically before every PATCH — use this for a standalone pre-check.

Param Type Req Default Notes
dataverse_url str yes Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com').
view_id str yes GUID of the view to validate. (min_len=36, max_len=36)

Returns {"valid": ..., "view_id": ..., "view_name": ..., "table": ..., "column_count": ..., "columns": ..., "sort": ...} or {"valid": ..., "view_id": ..., "view_name": ..., "table": ..., "error_count": ..., "errors": ...}. Errors return {"error": true, "message": "..."}.


Clone this wiki locally