The UBIK® WinX clients supports data replication mechanism so that users can create and maintain data more efficiently. For example, a user can quickly replicate a local branch and create multiple copies of it in other parts of the hierarchy.
Copy & paste
On way to replicate data is through the copy & paste mechanism. A typical use case is as the following.
- Navigates to the branch that should be replicated;
- Brings up the bottom app bar and press Copy;
- Navigates to the destination where the branch should be replicated;
- Brings up the bottom app bar and press Paste.
In principal, the usage is comparable to the copy & paste mechanisms in any other apps out there. However, there are some unique UBIK® details worthing mentioning.
Regarding copy
When copying, an entire branch is involved. This includes
- The branch root object and all its local children (direct or indirect);
- Queries, offline queries and all their children are ignored;
- Files of all (in)direct child documents. However, there are exceptions to this, namely
- if a file download fails;
- if the app is in offline mode.
- The data of the above mentioned objects: Display strings, user rights, etc.;
- The properties of the above mentioned objects: Their values, user rights, validations, etc.;
- All data users can interact with (e.g. values, validations) will only be copied if the MetaProperty allows.
The Copy action is only available when the app initialization is complete and there is something to copy in the specified branch.
Regarding paste
When pasting, an entirely independent copy of the specified branch is created and added as a child of the destination object. The Paste action is only available when
- The user has triggered a copy and it is still valid (see Hint|Validity of a copy);
- And the destination object allows modification. In other words, it is not locked due to user rights, MRO status or scan status;
- And the destination object allows the root of the copied branch as a child object. Namely the creation of the branch root's MetaClass should be allowed in the destination MetaClass. (See step 8).