diff --git a/docs/img/restore.png b/docs/img/restore.png new file mode 100644 index 0000000..79e1ef4 Binary files /dev/null and b/docs/img/restore.png differ diff --git a/docs/restore.md b/docs/restore.md index 9ca5d1f..2ef71ba 100644 --- a/docs/restore.md +++ b/docs/restore.md @@ -2,6 +2,7 @@ layout: article title: Data Restore description: How to restore a previous version of a Data Controller table +og_image: https://docs.datacontroller.io/img/restore.png --- # Data Restore @@ -10,6 +11,8 @@ For those tables which have [Audit Tracking](/dcc-tables/#audit_libds) enabled, Simply open the submit to be reverted, and click the red REVERT button. This will generate a NEW submission, containing the necessary reversal entries. This new submission **must then be approved** in the usual fashion. +![](/img/restore.png) + Note that there are some caveats to this feature: - It will only work for TXTEMPORAL and UPDATE Load Types @@ -19,3 +22,8 @@ Note that there are some caveats to this feature: - If the model has changed (new / deleted columns) the restore will abort - Only submissions that have actually been loaded, can be reverted (obviously) +## Technical Information + +The restore works by undoing all the changes listed in the [MPE_AUDIT](/tables/mpe_audit/) table. The keys from this table (since and including the version to be restored) are left joined to the base table (to get current values) to create a staging dataset, and then the changes applied in reverse chronological order using [this macro](https://core.sasjs.io/mp__stripdiffs_8sas.html). + +Source code for the restore process is available here: https://git.datacontroller.io/dc/dc/src/branch/main/sas/sasjs/services/editors/restore.sas \ No newline at end of file