Engineering Lifecycle Management Wiki - Deployment
Deployment Web
Planning and design
Installing and upgrading
Migrating and evolving
Integrating
Administering
Monitoring
Troubleshooting
Community information and contribution guidelines
Create new topic
Topic list
Search
Advanced search
Notify
RSS
Atom
Changes
Statistics
Web preferences
E
dit
A
ttach
P
rintable
TWiki
>
Deployment Web
>
DeploymentTroubleshooting
>
ReqIFTroubleshooting
>
DoorsDNGReqIFExchangeRoundTrip
Revision 3 - 2025-09-25 - 07:47:55 -
RomainBarth
<div id="header-title" style="padding: 10px 15px; border-width:1px; border-style:solid; border-color:#FFD28C; background-image: url(<nop>https://jazz.net/wiki/pub/Deployment/WebPreferences/TLASE.jpg); background-size: cover; font-size:120%"> ---+!! Best practices: !ReqIF round-trip between DOORS Next Generation and DOORS 9. %DKGRAY% Authors: Main.RomainBarth<br> Build basis: DNG V7.0.3 and V7.1. DOORS 9.7.2.x %ENDCOLOR%</div></sticky> <!-- Page contents top of page on right hand side in box --> <sticky><div style="float:right; border-width:1px; border-style:solid; border-color:#DFDFDF; background-color:#F6F6F6; margin:0 0 15px 15px; padding: 0 15px 0 15px;"> %TOC{title="Page contents"}% </div></sticky> ---++ Before you begin ---+++ About this document This document describes the best practices to exchange requirements from DOORS Next to DOORS 9 and from DOORS 9 to DOORS Next. The steps described in that document will help you to minimize issues when exchanging requirement between DOORS Next and DOORS 9 ---+++ DOORS Next and DOORS 9 are different DOORS Next and DOORS 9 are 2 different tools and exchange data between some 2 tools via !ReqIF can be challenging. The main differences are: * The Type System DOORS Next Type System is defined at the component/project area level while DOORS 9 Type System is defined at the module level. Also, in DOORS Next, it is possible to have multiple Artifact Type while in DOORS 9 only 2 are available (module and object). * The data merge in !ReqIF round-trip When importing a new !ReqIF package in DOORS Next, if you select all the attributes, then all the data will be over-written to match the data in the !ReqIF package. That means you need to know what attributes data you need to import. When importing and merging a new !ReqIF package in DOORS 9, only the [[https://www.ibm.com/docs/en/engineering-lifecycle-management-suite/doors/9.7.2?topic=databases-reqif-locks-local-data][locked data]] will be merged and updated. Data that is not locked will remain unchanged. DOORS Next only allows locks on attributes so that the option we will use. * System attributes System attributes are already mapped with a pre-defined URI in DOORS Next and DOORS 9. However, the scope of a few system attributes differs and so those system attributes MUST not be used in a !ReqIF package between DOORS Next and DOORS 9. For example, the System attribute Description have different scope in DOORS Next and DOORS 9. In DOORS 9, it is only a module level attribute while in DOORS Next it is not. To avoid this problem, we will only include only the necessary attributes in the !ReqIF package by using views. * Heading and Requirement In DOORS Next, an artifact can contain either heading, or requirement text. However, in DOORS 9, it possible to have heading and Requirement text in the same object (bad practice) by putting data in the attributes Object Heading and Object Text. That kind of data must be avoided for !ReqIF exchange. ---+++ Agreement on the Data structure and the Data to exchange You MUST agree with your supplier what set of attributes is needed so you only export what is really needed. This will have numerous benefits: * This will limit the size of the !ReqIF packages so it will improve performance when importing/exporting data * This will limit scope for type system distortion. * This will avoid the issue with the System Attribute Description: if you export the full module that attribute will be included and if you have data in it, this will result in data loss in DOORS 9 as the scope of this attribute is different (module only). Also, you MUST agree with your supplier what set of attributes they must edit. The other ones will be locked for editing in DOORS 9. ---+++ Overview of the steps * First, we need to pick a feature to limit duplication of attribute or types when importing a !ReqIF package. In DOORS 9, you can only use [[https://www.ibm.com/docs/en/engineering-lifecycle-management-suite/doors/9.7.2?topic=applications-mapping-attributes-uris][RDF URI mapping]]. In DOORS next, you can either use [[https://jazz.net/library/article/95747][RDF URI Mapping]] or [[https://www.ibm.com/docs/en/engineering-lifecycle-management-suite/doors-next/7.1.0?topic=projects-mapping-contexts][Mapping context]]. * Create views for the !ReqIF definition in the module(s) you want to export * Create the !ReqIF definition and lock the attributes your supplier should not be editing. * Export the !ReqIF definition * Import the !ReqIF package in the other RM tool. * Edit the data you can/ are supposed to. * Export the !ReqIF definition and import it back in the original RM tool. ---+++ Limitation When doing a !ReqIF round-trip from DOORS 9 to DOORS Next, be aware that Doors 9 pictures objects are not exported in !ReqIF packages so they wont be visible in DOORS Next after importing the !ReqIF packages. [[#Appendices][Use OLE object instead]].%BR% When working with in locks in DOORS 9, the data structure of enumerated attributes must not change. For example, if you have an enumerated attribute named Severity with 3 possible values (low, medium, high), then you cannot change its name nor add or remove a value. If you do so, the merge wont work (for the modified/new values), and the data wont be updated properly in DOORS 9. ---++ Round-trip from DOORS Next -> DOORS 9 -> DOORS Next ---+++ Step 1: create a Mapping Context Once the data structure is decided, create a Mapping context (optional). This feature will limit the proliferation/duplication of artifact and data types in the project areas and components in which the !ReqIF packages are imported.%BR% To do that, go the Manage Component Properties (or Manage Project Properties if your DOORS Next project is not CM-enabled) and select Mapping Context. Click on New context, give it a name and a description.%BR% <img src="%ATTACHURLPATH%/DNGD9_step01.png" alt="DNGD9_step01.png" width="1377" height="264" /> ---+++ Step 2: create a specific view for !ReqIF In the module(s) you want to export, create a view with only the needed discussed attributes: %BR% <img src="%ATTACHURLPATH%/DNGD9_step02.png" alt="DNGD9_step02.png" width="751" height="357" /> %BR% Important: If there are multiple Artifact Types in your module, make sure that all the artifact types have the attributes listed in the view because DOORS 9 does not have the concept of Artifact types, and once imported in DOORS 9, it will allow to set values in attributes that do not belong to the artifact type. Doing that might cause issues when importing it back to DOORS Next (missing data, modification of Artifact Types, etc..) ---+++ Step 3: create the !ReqIF definition To do that, go the Manage Component Properties and select !ReqIF. Click on New Definition.%BR% Give it a name and a description.%BR% Then add your modules by selecting the view created on step 2:%BR% <img src="%ATTACHURLPATH%/DNGD9_step03a.png" alt="DNGD9_step03a.png" width="706" height="620" /> %BR% Finally, use the DOORS 9 settings to lock all the attributes except the ones that will be edited by your supplier:%BR% In this example, the attributes listed in the view are the following: * Primary Text -> need to be locked * Priority -> need to be locked * Status -> need to be locked * Supplier_comment * Supplier_Status In !ReqIF package, the system attributes Artifact Format is always exported so this will have to be locked too.%BR% In this example, the module has a module attribute named Product owner so this will need to be locked too.%BR% In summary, the attributes that need to be locked are the following (see screenshot)%BR% <img src="%ATTACHURLPATH%/DNGD9_step03b.png" alt="DNGD9_step03b.png" width="735" height="553" /> ---+++ Step 4: export the !ReqIF package In the drop-down list, select Export with context (if you have created a mapping context).%BR% <img src="%ATTACHURLPATH%/DNGD9_step04a.png" alt="DNGD9_step04a.png" width="602" height="216" /> %BR% Then select your mapping context.%BR% <img src="%ATTACHURLPATH%/DNGD9_step04b.png" alt="DNGD9_step04b.png" width="447" height="502" /> %BR% The !ReqIF file will be created, once done, click download:%BR% <img src="%ATTACHURLPATH%/DNGD9_step04c.png" alt="DNGD9_step04c.png" width="399" height="231" /> ---+++ Step 5: Import in DOORS 9 In DOORS 9, select a project, then go to File-> Import !ReqIF Package %BR% <img src="%ATTACHURLPATH%/DNGD9_step05a.png" alt="DNGD9_step05a.png" width="604" height="516" /> %BR% Select the !ReqIF file you exported from DOORS Next, then in the dialog give a name to the !ReqIF definition that will be created in DOORS 9 and click Import%BR% <img src="%ATTACHURLPATH%/DNGD9_step05b.png" alt="DNGD9_step05b.png" width="602" height="327" /> %BR% At the end of the import, you might get an information message. It happened when they are multiple Artifact Types in a module but if you have followed the recommendation so far, there will be no issue.%BR% <img src="%ATTACHURLPATH%/DNGD9_step05c.png" alt="DNGD9_step05c.png" width="423" height="212" /> ---+++ Step 6: Editing data in DOORS 9 You can see that even by logging in DOORS 9 with the super-user Administrator, only the 2 attributes we set are available for editing. The rest is locked in read-only mode.%BR% <img src="%ATTACHURLPATH%/DNGD9_step06.png" alt="DNGD9_step06.png" width="1377" height="797" /> %BR% Lets edit the data, add some values in attributes Supplier_comment and Supplier_Status. ---+++ Step 7: exporting the data from DOORS 9 After editing the data in DOORS 9, you must export the !ReqIF definition to get a new !ReqIF package to import in DOORS Next.%BR% Go to the DOORS 9 project Properties and in the !ReqIF tab, select the !ReqIF definition and then click on export.%BR% Select a path for the !ReqIF file and click Ok%BR% <img src="%ATTACHURLPATH%/DNGD9_step07a.png" alt="DNGD9_step07a.png" width="752" height="375" /> %BR% When the export is completed, you will see that dialog box:%BR% <img src="%ATTACHURLPATH%/DNGD9_step07b.png" alt="DNGD9_step07b.png" width="277" height="211" /> ---+++ Step 8: Import the DOORS 9 !ReqIF package in DOORS Next Go to Artifacts, then click on Create and select Import Artifact %BR% <img src="%ATTACHURLPATH%/DNGD9_step08a.png" alt="DNGD9_step08a.png" width="266" height="215" /> %BR% Select Import requirements from a !ReqIF file%BR% <img src="%ATTACHURLPATH%/DNGD9_step08b.png" alt="DNGD9_step08b.png" width="507" height="520" /> %BR% In the next dialog, pick the DOORS 9 !ReqIF package and click Upload. If the upload is successful, you will see that screen. Click on Next.%BR% <img src="%ATTACHURLPATH%/DNGD9_step08c.png" alt="DNGD9_step08c.png" width="529" height="221" /> %BR% In the Import dialog, apply your Mapping Context (if you have defined one)%BR% <img src="%ATTACHURLPATH%/DNGD9_step08d.png" alt="DNGD9_step08d.png" width="602" height="546" /> %BR% After clicking Next, the import starts %BR% <img src="%ATTACHURLPATH%/DNGD9_step08e.png" alt="DNGD9_step08e.png" width="602" height="311" /> %BR% The module data in DOORS Next has been updated:%BR% <img src="%ATTACHURLPATH%/DNGD9_step08f.png" alt="DNGD9_step08f.png" width="752" height="501" /> %BR% Lets add a new requirement in DOORS Next and send a new !ReqIF package to the supplier. (Re-do Step 4 to export a new !ReqIF package) ---+++ Step 9: Merging data in DOORS 9 When importing a new !ReqIF package from the same !ReqIF definition, you will have to specify a temporary folder to store the new data:%BR% <img src="%ATTACHURLPATH%/DNGD9_step09a.png" alt="DNGD9_step09a.png" width="552" height="317" /> %BR% To merge, the new package with the existing one, go to the Project Properties, in the !ReqIF Definition Tab. Select the !ReqIF definition and click Imports:%BR% <img src="%ATTACHURLPATH%/DNGD9_step09b.png" alt="DNGD9_step09b.png" width="752" height="608" /> %BR% Click on Merge, if there is a required merge status.%BR% Once done, the dialog box shows that it is completed:%BR% <img src="%ATTACHURLPATH%/DNGD9_step09c.png" alt="DNGD9_step09c.png" width="394" height="320" /> %BR% Check the data in the main folder, the new requirement should be present.%BR% <img src="%ATTACHURLPATH%/DNGD9_step09d.png" alt="DNGD9_step09d.png" width="1377" height="533" /> ---++ Round-trip from DOORS 9 -> DOORS Next -> DOORS 9 ---+++ Step 1: mapping the attributes To avoid having duplicated attributes in DOORS Next, it is recommended to map the attributes with RDF URI. If attributes already exist in DOORS Next, map the attributes with the same RDF URI.%BR%[[https://www.ibm.com/docs/en/engineering-lifecycle-management-suite/doors/9.7.2?topic=applications-mapping-attributes-uris][DOORS 9 mapping feature documentation]]%BR% In your module, select the attributes you want to map with RDF URIs:%BR% <img src="%ATTACHURLPATH%/D9DNG_step01a.png" alt="D9DNG_step01a.png" width="602" height="444" /> %BR% Click the "Suggest" button to map all the attributes with RDF URIs then in the "General" tab click the "Publish" button.%BR% <img src="%ATTACHURLPATH%/D9DNG_step01b.png" alt="D9DNG_step01b.png" width="602" height="205" /> ---+++ Step 2: create the views for the export The best practice in DOORS 9 to export data to !ReqIF is to create a view with all the attributes you want to share with your supplier.%BR% Then you also need to create a view to lock the attributes you want your supplier to edit.%BR% View with all the attributes I want to export to my supplier:%BR% <img src="%ATTACHURLPATH%/D9DNG_step02a.png" alt="D9DNG_step02a.png" width="602" height="274" /> %BR% View to lock the attributes in DOORS 9. Those attributes will be edited by the supplier in DOORS Next:%BR% <img src="%ATTACHURLPATH%/D9DNG_step02b.png" alt="D9DNG_step02b.png" width="602" height="261" /> ---+++ Step 3: create the !ReqIF definition In the Project properties, go the !ReqIF Definitions tab and click New. Give it a Name and a Description, then click ok.%BR% <img src="%ATTACHURLPATH%/D9DNG_step03a.png" alt="D9DNG_step03a.png" width="242" height="128" /> %BR% In the next Dialog, select your module, then select lock attributes, select the 2 views you created and click Add or update module. Repeat the operation if you have other modules.%BR% <img src="%ATTACHURLPATH%/D9DNG_step03b.png" alt="D9DNG_step03b.png" width="1377" height="924" /> %BR% Once the !ReqIF definition is created, export the !ReqIF package:%BR% <img src="%ATTACHURLPATH%/D9DNG_step03c.png" alt="D9DNG_step03c.png" width="807" height="443" /> ---+++ Step 4: import the !ReqIF package in DOORS Next Go to Artifacts, then Create -> import artifacts %BR% <img src="%ATTACHURLPATH%/D9DNG_step04a.png" alt="D9DNG_step04a.png" width="508" height="567" /> %BR% Select Import requirements from a !ReqIF file%BR% <img src="%ATTACHURLPATH%/D9DNG_step04b.png" alt="D9DNG_step04b.png" width="602" height="336" /> %BR% Upload the !ReqIF file:%BR% <img src="%ATTACHURLPATH%/D9DNG_step04c.png" alt="D9DNG_step04c.png" width="602" height="243" /> %BR% Select a folder where to import the data. Then you can also select the attributes to import, by default, all the attributes will be imported.%BR% <img src="%ATTACHURLPATH%/D9DNG_step04d.png" alt="D9DNG_step04d.png" width="602" height="577" /> %BR% Click Finish to start importing the data.%BR% <img src="%ATTACHURLPATH%/D9DNG_step04e.png" alt="D9DNG_step04e.png" width="602" height="283" /> ---+++ Step 5: edit the data imported in DOORS Next Edit only the 2 attributes specified:%BR% <img src="%ATTACHURLPATH%/D9DNG_step05a.png" alt="D9DNG_step05a.png" width="602" height="247" /> %BR% It is possible to edit the other attributes BUT as there are !ReqIF locks in DOORS 9 only for the 2 attributes specified, the other ones wont be merged in DOORS 9.%BR% In DOORS 9, !ReqIF locks present only for the 2 attributes specified:%BR% <img src="%ATTACHURLPATH%/D9DNG_step05b.png" alt="D9DNG_step05b.png" width="602" height="265" /> ---+++ Step 6: export the !ReqIF package in DOORS Next Go the Manage Component Properties and select !ReqIF. Select the !ReqIF definition and export it:%BR% <img src="%ATTACHURLPATH%/D9DNG_step06a.png" alt="D9DNG_step06a.png" width="602" height="267" /> %BR% Click on Download:%BR% <img src="%ATTACHURLPATH%/D9DNG_step06b.png" alt="D9DNG_step06b.png" width="602" height="289" /> ---+++ Step 7: Import and merge the changes in DOORS 9 When importing a new !ReqIF package from the same !ReqIF definition, you will have to specify a temporary folder to store the new data:%BR% <img src="%ATTACHURLPATH%/D9DNG_step07a.png" alt="D9DNG_step07a.png" width="552" height="317" /> %BR% To merge, the new package with the existing one, go to the Project Properties, in the !ReqIF Definition Tab. Select the !ReqIF definition and click Imports:%BR% <img src="%ATTACHURLPATH%/D9DNG_step07b.png" alt="D9DNG_step07b.png" width="752" height="608" /> %BR% Click on Merge, if there is a required merge status.%BR% Once done, the dialog box shows that it is completed:%BR% <img src="%ATTACHURLPATH%/D9DNG_step07c.png" alt="D9DNG_step07c.png" width="394" height="320" /> %BR% Check the data in the main folder, the edited data in DOORS Next should have been merged:%BR% <img src="%ATTACHURLPATH%/D9DNG_step07d.png" alt="D9DNG_step07d.png" width="602" height="296" /> %BR% You can see that the !ReqIF locks have been removed.%BR% They will be in place again after exporting a new !ReqIF package. ---++ Appendices ---+++ DXL script to convert DOORS 9 Object Picture in OLE object Here is a sample script to do that: <verbatim> /*begin*/ Module m = current Object obj string nPath = "C:/temp/" for obj in m do { bool isPicture = obj."Picture" if(isPicture) { string ErrMess string nFile = nPath "picture_obj_" identifier(obj) ".png" ErrMess = exportPicture(obj,nFile ,formatPNG) if(ErrMess == "") { deletePicture obj oleInsert(obj,obj."Object Text",nFile ,false) } } } /*end*/ </verbatim>
E
dit
|
A
ttach
|
P
rintable
|
V
iew topic
|
Backlinks:
We
b
,
A
l
l Webs
|
H
istory
: r3
<
r2
<
r1
|
M
ore topic actions
Copyright © by IBM and non-IBM contributing authors. All material on this collaboration platform is the property of the contributing authors.
Contributions are governed by our
Terms of Use.
Please read the following
disclaimer
.
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more
here
.