Undo and Named Datasets


The data container generates a history for the datasets automatically. Once a distributed dataset has been replaced by another dataset it is entered in the history. A restriction to the history can be specified in the INIT method (default 1). There is also a list of named datasets. A dataset is entered in the list using the method DATASET_STORE in the interface IF_DC_MANAGEMENT. The data container can revert to a named dataset at any time.

Events cannot be split when the data container reverts to a named dataset; just as events cannot be split when datasets are released. The application is responsible for changing application data that is not part of the data in the data container. Note that a dataset in the data container can be marked as not reversible (method DISTRIBUTE_CHANGES).

You can delete a named dataset from the list using the method DATASET_DELETE in the interface IF_DC_MANAGEMENT.

You can use the method DATASET_RESTORE in the interface IF_DC_MANAGEMENT to revert to the last history dataset or to a named dataset. In the first case the current dataset is deleted and in the second case it is entered in the history list (if it has been distributed, otherwise it is deleted). The dataset to which the data container reverts becomes the current dataset. If the data container reverts to a named dataset the current dataset becomes a copy of the named dataset.


If the old dataset had already been distributed or if the data container reverted to a named dataset all the subscribed proxies are informed of the change (reverted dataset). The data container tells the proxies to fetch the new (=all) data (distribution) and then marks the dataset as distributed.

In the case of a history reversal if the old dataset had not been distributed then all the subscribed proxies are based on the dataset that is now current again. The change information (reverted) need not be distributed. Exception: If changes were made by a proxy then it will already have changed its data to the new state. To change it back to its former state the data provider marks the data relevant for the special proxy as changed and tells just this proxy to fetch the current data. In this way the dataset is again distributed and the markings are removed again from the data container.