Change history

History is a semantic model's record of what changed, who changed it and when. Open it to trace an edit, to check what the AI changed, and to undo an AI change, an import or a table replacement. The change list itself is read-only, and the tab needs a saved model and edit access to it.

Open the change history

  1. Open the semantic model and click History. Without edit access the tab is not offered, and the Ungrouped placeholder never offers it; if you reach the panel without edit access, it reads Viewing the change history requires semantic model edit access.
  2. The list opens newest first under the heading Change history, with a count of the listed changes beside it and the line Who changed what in this semantic model under it.
  3. Click Refresh change history to reload the list.

While the list loads it reads Loading change history. If it cannot load, it reads Could not load change history with the reason. When the model has no recorded changes yet, it reads No changes yet: "Changes to tables, measures, relationships and row-level security will appear here."

Above the list, the tab adds three sections when they have something to show: AI changes, then Imports, then Table replacements. They are described below.

What the list records

Each entry is one recorded change: an author, a sentence, and the change's type on a second line. The recorded types are:

A row whose type is not recognised reads Change. Sentences name what moved, for example "renamed the model "X" to "Y"", "added table "X"", "created measure "X"", "replaced the source of "X"", "enabled row-level security", "disabled row-level security" and "moved measure "X" to folder "Y"". A relationship entry joins the two sides with an arrow.

Two details ride the entry:

Not every edit is recorded: descriptions, documentation, column curation, value formats, diagram positions and other metadata-only edits do not appear. The list keeps the newest 200 changes for the model, and entries are shown as they were recorded. An old entry is never rewritten to match today's rules.

Open a change's details

  1. Click a change. A read-only panel opens beside the list, titled with the change's type and dated with the full date and time; a record without a usable date reads Unknown date.
  2. Read Changed by, and the object the change concerns. A security change labels it Semantic model; every other change shows it under Entity.
  3. Read the values before and after. The value before is struck through, then an arrow, then the value after it; a dash stands for an empty side.

What the panel holds depends on the change:

When the change rewrote other measures, Dependent measures rewritten lists their names. When the record holds nothing beyond its header, the panel says No further detail was recorded for this change.

Undo an AI change

The AI changes section lists what Model AI changed in the model, grouped by turn. It appears when the model is saved and you can use DataPrism AI: edit access to the model plus the Use DataPrism AI permission.

  1. Find the turn. It shows its time and how many changes it made, and lists each change with the objects it touched, up to five names and then a count of the rest. A change a person approved adds "Approved by {name}".
  2. Click Revert this turn to undo everything in the turn, or Revert on one change to undo only that change. Both ask you to confirm first, and warn that changes are undone in reverse order, with objects someone changed since skipped and listed. While it runs, the control reads Reverting....
  3. Read the result. The section adds a line that names who reverted and counts the steps: reverted, skipped and failed. Expand it to see each object with its outcome and any reason.

A revert that fails shows Revert failed with the reason. When the section cannot load, it reads AI changes could not be loaded. For the chat itself, see Model AI.

Read imports

The Imports section lists updates the model received from a file. Each row names the file, or Imported file, and shows who applied it, when, a summary that counts the added, updated, deleted and not applied objects, and its state: Running, Interrupted, Applied, Reverting, Revert interrupted or Reverted. A reverted row reads Reverted by {name} with the time. When the file carried row-level security, a chip names the outcome, for example RLS applied.

The result reads Import reverted or Revert did not complete, with counts for reverted, skipped, failed and irreversible steps, and the steps that were not reverted. A model keeps its newest 20 imports. For the import flow itself, see Model files and replacing a table.

Read table replacements

The Table replacements section lists sources swapped behind a BI table. Each row reads "{name} replaced the source of "{BI table}"", shows the old table and the new one with its layer, when it happened, chips for what changed ("3 columns removed", "1 added", "2 retyped", "1 relationship removed") and a "N measures turned red" chip when measures stopped working. The status reads Applied, or Reverted by {name} with the time.

Revert restores the old table, after the confirmation Revert the replacement of "{name}"?: "It reads {from} again: columns the replacement removed come back with their settings, relationships it removed are recreated, columns it added are removed. Settings changed since stay. Measures are never deleted." A Revert that cannot run stays disabled and explains why on hover. The result reads Reverted: "{name}" reads {from} again., lists anything kept or not restored with its reason, and counts measures that are still red. A model keeps its newest 20 replacements.

Who can see it

For the permissions involved, see Who can do what in DataPrism. The tab row is described in The semantic model workspace; a short summary of the trace sits in Check, document and trace a model.

Questions, answered

Which changes appear in the history?

Recorded changes are model renames and fact table changes; tables added, removed, renamed, replaced and replacements reverted; measures created, updated, deleted, restored and moved between folders; relationships created, updated and deleted; and row-level security changes. Each entry names the author and what changed.

Why is a change missing from the list?

Two common reasons. The edit is not one of the recorded kinds: descriptions, documentation, column curation, value formats, diagram positions and other metadata-only edits are never recorded. Or it is older than the newest 200 changes a model keeps.

Is the change history read-only?

Yes. Clicking a change only opens its details; the list cannot be edited and there is no restore from it. Undo lives with each feature: Revert this turn and Revert in AI changes, Revert in Imports and Table replacements, and Restore in a measure's history (Measures).

What does "dependent measures rewritten" mean?

A measure update can rewrite measures that use it. The count sits under the change's type on the list, and the details list the rewritten measures by name under Dependent measures rewritten.

Why does a change show "Unknown user"?

The record names its author, but the account behind it could not be resolved, so the entry reads Unknown user. The change itself is still recorded.

Why does a change have no further detail?

Some records carry nothing beyond the header: who, when and what kind. The panel says No further detail was recorded for this change. instead of inventing detail; the sentence on the list often already names the before and after.

Why is there no AI changes section?

It appears when the model is saved and you can use DataPrism AI: edit access to the model plus the Use DataPrism AI permission. It also stays away while the model has no AI changes to show. If it cannot load, it shows a line instead.

Why is a Revert button missing or disabled?

A change that was already reverted has no Revert. On a table replacement that cannot be undone, the disabled button explains why on hover. Revert on an import stays disabled while another revert is running.

After a revert, what do the counts mean?

Reverted steps were undone. Skipped steps were left alone because someone changed that object since. Failed steps could not be undone and carry the reason; an import also counts irreversible steps, such as deleted BI tables, which cannot come back.