Understanding Cloning and Copying

Cloning and copying are source control functions available for filter, dataset, and calc XML definitions. Cloning creates a new version of a definition; while copying creates a new definition (for example, a fork).

On this page:

Cloning

The cloning function is useful when you need to make significant changes to a definition that will replace the functionality available in the original. The original version can remain in use while the clone is edited and tested. Once the clone is ready for production, it is set to be the current version and the previous version is superseded in any procedure or task that references it.

Back to Top

Copying

Copying allows you to use an existing (base) definition as a starting point for a new definition. Copying is useful when a base definition has some features you need, but you want to develop other features or characteristics independently.

Back to Top

Process Example

The following is an example of how a definition is cloned and copied:

  1. A definition (ID = 123; SEQ ID 1) is cloned to get a new (second) version (ID = 123; SEQ ID 2). At this stage, the XML definition parameters are exactly the same.
  2. The clone (ID = 123; SEQ ID 2) is edited.
  3. The edited clone is cloned to create a third version (ID = 123; SEQ ID 3).
  4. The edited clone (ID = 123; SEQ ID 2) is copied to create a new definition's first version (ID = 678; SEQ ID 1).

Back to Top

Scenarios

  1. You believe a dataset could be more efficient if it used different methods to gather data, but the changes are complicated and you want to continuing using the dataset while you work on a more efficient solution. In this case, you need a clone because you are editing something that exists rather than creating something new.
    • You create a clone of the production (current) version and edit it to use new methods
    • You test and modify the new version until you are satisfied that it works more efficiently than the original.
    • Once complete, you put it in production (by setting its Current Version flag to Yes) and the initial version will no longer used in calcs that reference it.
  2. You need a filter to find a meter model that is experiencing register gaps. You have a filter for meters with register gaps. You copy the existing filter definition and add the new model criteria. You can continue using the original filter for all meters with register gaps, but now you have a definition that also filters based on the meter model.

Back to Top