RDNG5 | .CSV import - Duplicate artifacts created
Product - Rational DOORS Next Gen 5
with one minor edit - since the primary texts "Power Consumption", "Resolution" and "Heat Dissipation" are exactly the same, I do not want separate artifacts to be created for them, instead I want the same artifact to be linked to both modules Smart Phone and Tablet. So I edited the artifact ids to be the same in the sample smartPhoneTablet.csv and then uploaded the .csv - however, system still created separate artifacts for all 3 of them under the modules folders. Now (in reference to one of the projects we're working on) I see this as a major concern due to 2 reasons:
Reason 1: Our base requirement is creating (approximately) 1000 modules with 2000 artifacts - all variations within these 1000 modules will be module specific artifacts (which, understandably, will be separate artifacts).
Know that these 2000 artifacts are meant to be shared ones - each artifact is meant to be linked to a subset of the 1000 modules. So if RDNG5 does not create separate artifacts we are talking total artifact counts in the range of just 2000.
Now if, there is no way to prevent dupes, we're talking total artifact count to be ~ 1000 modules * 2000 artifacts (multiple physical versions of the very same logical artifact) - that translates to ~ 2 million physical artifacts (should have been 2000 instead)
Reason 2: Since I am saying artifact is a shared one and meant to be linked to multiple modules, the dupes problem also means if I have to update the artifact (with say some minor edits), I have to edit all the duplicated copies as well (in my case, several hundred duplicated artifacts) - this defeats "reusability" for shared artifacts.
Question: During .csv uploads, is there any way (settings or otherwise) that I can link an artifact meant to be shared to multiple modules without creating dupes.
An early response with any workaround (either .csv upload or programmatic (OSLC or client extensions) that prevents the duplicates will be highly appreciated.
One answer
The .CSV import is working as defined in the reference you gave. The identifier column is only used to define parent-child relationships.
The way to achieve what you want would be to create a module with the common requirements and reuse those requirements into the appropriate modules. I realise that this will be quite tedious, as you will need to identify all the common requirements from your existing data and remove them from the current module-specific information, then reuse them into the modules once imported. It may be possible to do this programmatically, for example by comparing a module with the "common" requirements and replacing the matching artifacts with reused copies.
The way to achieve what you want would be to create a module with the common requirements and reuse those requirements into the appropriate modules. I realise that this will be quite tedious, as you will need to identify all the common requirements from your existing data and remove them from the current module-specific information, then reuse them into the modules once imported. It may be possible to do this programmatically, for example by comparing a module with the "common" requirements and replacing the matching artifacts with reused copies.
Comments
Thanks Keith.
I went over your inputs, however, that would be just too tedious for our use case. In the example I have given (simplified to - 1000 modules with 2000 artifacts), we will not have the case wherein ALL 1000 modules need to include ALL 2000 artifacts. In fact, it would go something along the lines of "Shared artifact 1 should be linked to 546 modules", "Shared artifact 2 linked to 897 modules" and so on based on the identified artifacts - as you can see that is non trivial.
We have defined a process for identification of the modules that should be associated with an artifact (e.g. we will have that mapping ready before we load the artifact - post artifact is loaded to Doors NG, now comes the difficult part to insert this artifact to the 546 identified modules (in my example) - repeat this process a few thousand times and you can gauge the complexity.
Comments
Rohit M
Jan 18 '16, 6:34 p.m.