# Copy Data Model URI

> Takes the URIs of a reference data model and writes them, by name, into the projects, components, streams and change sets you pick, many in one run.

Source: https://widgets.doorsnext.com/widgets/copy-data-model-uri/

- Discipline: Configuration and governance
- Works in: IBM DOORS Next module
- Supported products: RM (IBM Engineering Requirements Management DOORS Next (Requirements Management))
- Changes data
- Keywords: copy URIs, assigned URI, type system URIs, data model URIs, owl:sameAs, artifact type URI, attribute URI, link type URI, change set, stream, component, global configuration, reporting
- Version: 1.7 (Released 2026-10-27)
- Vendor: SmarterProcess (https://doorsnext.com, info@smarterprocess.pl)
- Workflow: 1. Open a change set in every target project → 2. Pick From and the targets → 3. Previews what every target gets (If needed: Conflicts or missing names: check the target model) → 4. Copy URIs: saved target after target → 5. Change report in Excel

## What it is and why it exists
When a company runs many DOORS Next projects that share a data model, the same attribute or artifact type should carry the same URI everywhere. Reports, publishing templates, OSLC integrations and global configurations rely on these URIs to recognize "the same" definition across projects, components and streams, even where the internal identifiers differ.

Data Model URIs sets the URIs of one project from a pattern. Copy Data Model URI takes them from a reference project, component and stream, and writes them by name into the projects, components, streams and change sets you pick, many of them in one run.

## Problems it solves
- URIs set once in a reference project but missing or different in every other project.
- Hours spent opening the project properties of each project and stream to type the same URIs again.
- New components and streams that never get the URIs of the reference model.
- Duplicate URIs in a target that confuse reporting and integrations.

## Benefits
- **Many targets at once:** pick projects, components, streams and change sets in one tree, with All components and All streams as rules.
- **Rules that pick up new streams:** All components and All streams are read again on every preview, so a component or stream added later is included in the next run.
- **See before you change:** a preview of every target, with what is new, already set, missing in the target or in conflict.
- **Safe by design:** you decide whether existing URIs are replaced, and conflicts or ambiguous names are never written.
- **Excel exports** of the preview and a change report of every URI written, per target.

## How to use
1. Open a change set in every project you copy to (recommended).
2. Check **From**: the reference project, component and stream or baseline. It starts with what is open in DOORS Next; **Change** picks another one.
3. At **Targets**, click **Add**, tick projects, components, streams and change sets in the tree, or the rules **All components** and **All streams**, and click **Add targets**.
4. Click **Preview** if you want to review what every target gets first, and export it to Excel if others should check it.
5. Click **Copy URIs** and confirm. Without a current preview it reads every target first. Progress is shown per target and you can stop at any time.
6. Download the change report with **Log** in the result block and deliver the change sets when you are satisfied. A save DOORS Next refuses is listed there with the reason, and **Retry all** tries again.

## Good to know
- We recommend copying URIs only into change sets opened in the projects you copy to, so a wrong run can be discarded before delivery. URIs saved straight into a stream are hard to undo, and some changes can be undone only by restoring a backup.
- Definitions are matched by name within their group: artifact types, attributes, data types, enumeration values and link types. You choose which groups are copied.
- An attribute gets the URI only when its data type has the same name in both models, unless you allow otherwise.
- You need permission to change the type system of every target project.
- In **Settings**, **Replace URIs that are already set** is on by default: a definition that has another URI in the target gets the URI of the source. Turn it off to keep the URIs a target already has.
- A baseline can be the source, never a target.
