Transferring and Importing Metadata
Metadata can be transferred from one repository to another. There are some restrictions governing the types of metadata that can be transferred and metadata dependencies. There are dependencies between object types that impact transferring or importing metadata. These dependencies are classified into critical and non-critical dependencies:
Critical dependencies. Dependencies that are critical to the data integrity or for the application to perform. For example, a data object may include workflow rules, data relationships, and deployment jobs.
To transfer a data object that is assigned workflow rules, transfer both the data object and the workflow rules or ensure that they exist in the target repository.
If OneData encounters a critical dependency violation during metadata transfer, it terminates the process and rolls back the changes.
Non-critical dependencies. Dependencies that are not critical for the application. These include object folders and roles. These errors occur, for example, if the folder in which the object resides in the source repository does not exist in the destination repository.
If OneData encounters a non-critical dependency violation during metadata transfer, it will log an exception that the dependency could not be transferred, and continues transferring the object metadata.
When an object is transferred to destination repository, OneData stores it in the same folder in the destination repository as it is stored in the source repository. However, if the folder does not exist in the destination repository, OneData stores the object in the Catalog folder.
The following table describes the critical and non-critical dependencies for each object type. A dependency exists when there is a relationship between the metadata types being transferred, such as between an object and a user, system, or property.
Object Type | Associated Critical Dependency | Associated Non-critical dependency |
Conceptual Object | ![*](bullet.gif) Top level object of the conceptual object ![*](bullet.gif) Workflow rule | ![*](bullet.gif) Roles ![*](bullet.gif) Notification users ![*](bullet.gif) Command hook ![*](bullet.gif) Folders ![*](bullet.gif) Messaging configuration (messaging objects across projects is considered). |
Complex View | ![*](bullet.gif) Multi-select table associated to any of the columns in the object. ![*](bullet.gif) Source object with a foreign key constraint, but the object which it is referencing in foreign key constraint is not in destination. | ![*](bullet.gif) Object owner ![*](bullet.gif) Column owner ![*](bullet.gif) Logical object ![*](bullet.gif) Destination systems ![*](bullet.gif) Custodian systems ![*](bullet.gif) Notification users ![*](bullet.gif) Command hook ![*](bullet.gif) Folders |
Connection | None | None |
Data Entry Group | None | None |
Data Object | ![*](bullet.gif) User groups ![*](bullet.gif) Multi-select table for associated columns. ![*](bullet.gif) Source object with a foreign key constraint, but the object which it is referencing in foreign key constraint is not there in destination. ![*](bullet.gif) Workflow Rule ![*](bullet.gif) Hook Note: | If a row filter exists for the object, the primary key values used for defining row filter must be same across repositories. |
| Messaging objects. See Complex View for other non-critical dependencies. |
Data Quality Cleansing Job | ![*](bullet.gif) Associated data quality project and its dependencies. | None |
Data Quality Matching Job | ![*](bullet.gif) Associated data quality project and its dependencies. | None |
Data Quality Project | ![*](bullet.gif) Associated data objects and their dependencies. ![*](bullet.gif) Associated interchange mapping profile. ![*](bullet.gif) Associated data quality rules. (For the data quality server wM OneData is the data quality rule.) | None |
Data Quality Rules | None | None |
Deployment Job | ![*](bullet.gif) User who created the job ![*](bullet.gif) FTP destination The following job type properties are also critical dependencies: Hook execution: associated hook. File generation by timestamp: assigned queue. Database update: associated remote connection. | ![*](bullet.gif) Notification user ![*](bullet.gif) Messaging configuration. Only the messaging objects in the destination project are considered. |
Deployment Job Step | ![*](bullet.gif) Distribution job ![*](bullet.gif) Data or conceptual object | None |
FTP/SFTP Destination System | None | None |
Folder | None | Roles associated with the folder. |
Global Report | ![*](bullet.gif) Folder ![*](bullet.gif) Associated object(s) ![*](bullet.gif) User who created the report | Roles with manage or execute privilege |
Hook | ![*](bullet.gif) Connection selected in source hook object (for stored procedures and IS hooks). ![*](bullet.gif) Process flow in source hook object | None |
Hook Command Object | ![*](bullet.gif) Object ![*](bullet.gif) Hook ![*](bullet.gif) Roles | None |
Import Job | ![*](bullet.gif) Associated user ![*](bullet.gif) Remote database job connection. ![*](bullet.gif) FTP connection to data dictionary import. | Notification user selected in import job. |
Import Job Step | ![*](bullet.gif) Import job ![*](bullet.gif) Data or conceptual object | None |
Integration Server Connection | None | None |
Interchange Mapping | ![*](bullet.gif) Data or conceptual object ![*](bullet.gif) Remote database connection. Note: | If the interchange mapping profile has a decode column mapping, the name of the object to which the foreign key points must be identical in the destination and source repositories. |
| None |
LDAP Profile | None | None |
Messaging Queue | None | None |
Metadata Only Object | ![*](bullet.gif) User groups ![*](bullet.gif) Multi-select tables associated to columns in the object ![*](bullet.gif) Source object with a foreign key constraint to an object that does not exist | ![*](bullet.gif) Object Owner ![*](bullet.gif) Column Owner ![*](bullet.gif) Logical object ![*](bullet.gif) Destination systems ![*](bullet.gif) Custodian systems ![*](bullet.gif) Folders |
ProcessFlow | ![*](bullet.gif) Data and conceptual objects used in the hook configurations. ![*](bullet.gif) Conceptual objects used in the hook configurations. | None |
Remote Object | Connection used to create remote object. See the data object row in this table for other dependencies. | None |
Remote Snapshot | See the data object row in this table for dependencies. | None |
Reports Folder | Parent folder, if any. | None |
Role | None | None |
Rules Engine | None | None |
Subscribing System | None | None |
Survivorship Attribute Groups | ![*](bullet.gif) Related object(s) ![*](bullet.gif) Destination systems | None |
Template | None | None |
User | Backup users | Roles associated to the User |
User Group | Users | None |
Workflow Hook Mapping | ![*](bullet.gif) Workflow rule ![*](bullet.gif) Data or conceptual object ![*](bullet.gif) Interactive hook | None |
Workflow Rule | Users | None |
The following additional rules apply to the items in the previous table.
![*](bullet.gif)
For critical dependencies, if any of the item(s) associated with the object being transferred or imported do not exist in the destination repository,
OneData throws an exception and rolls back the entire transaction.
![*](bullet.gif)
For non-critical dependencies, if any of the item(s) associated with the object being transferred or imported do not exist in the destination repository,
OneData logs an error message in the exception log, but continues processing.