It's all about the answers!

Ask a question

Lost requirement - looked in database - issoftdeleted = 1


Joseph van Blokland (823813) | asked Aug 16 '12, 10:42 a.m.
ENV: Jazz 3.0.1.2, RHEL, Oracle DB, WAS, IHS reverse-proxy

We have a requirements collection that is missing one of its requirements.
If I look in the db
  • it is in the RIODS.requirements table, but issoftdeleted = 1
  • it is in riods.requicol_requirment_lookup table, still belonging to the old collection.

I have a few questions:

  • what causes a requirement to be soft deleted - there are a bunch that are?
  • if I set issoftdeleted to 0, will everything come back, or do I have to fix other tables?
  • why is it that when I create a requirement is doesn't always turn up in riods.requirement?
    • What  are the conditions/trigger?
  • is there a log table I can check to see the event that caused it to be deleted?
    • The collection history simply shows it being added (note as the url, not the title like the other ones)

Thanks!

Joseph


Accepted answer


permanent link
Benjamin Silverman (4.1k610) | answered Aug 16 '12, 2:58 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Hi Joseph,

Requirements are marked as soft deleted in the Data Warehouse when the application API returns TRUE that the artifact has been deleted.  In the case of Requirements Composer, the publishing/reporting API uses a flag called "IsDeleted", which returns true for requirements that have been deleted.  To answer your questions:

1)  See above
2)  Setting issoftdeleted=0 in the data warehouse will not make data re-appear in RRC.  RRC does not rely on data in the data warehouse for application data
3)  When you create a requirement in RRC, you must execute the Requirements ETL in order for it to be loaded in to the data warehouse
4)  You can tell who deleted the resource by getting the latest revision of the artifact and looking at the most recent change.  It should say something like "Bob changed: "Resource removed".  Here's how you can do that...

a)  Get the URI of the artifact.  If you've already found the record in the operational data store -> Requirement table, it's the "External Key 2" field (ie - https://clmweb.ibm.com:9443/resources/_lQbhMOfSEeGL5YOIvjHU3g)

b)  In your browser, enter a query to get the revisions of the artifact:

https://clmweb.ibm.com:9443/rm/revisions?private=true&accept=*&url=https://clmweb.ibm.com:9443/rm/resources/_lQbhMOfSEeGL5YOIvjHU3g

c)  The query should return a feed showing all the revisions, from most recent to the initial creation.

d)  Click on the link for the most recent revision.  It should be the first one listed at the top of the page.  This will bring you in to the artifact history viewer where you can hover over the blue box to the far left (most recent revision) and click "Show More" to see who deleted the artifact.

Hope it helps,
Joseph van Blokland selected this answer as the correct answer

Comments
Joseph van Blokland commented Aug 16 '12, 4:12 p.m.

Great answer - helped me understand the Jazz and the db a bit more. Found out who removed the requirement :) Can I revert to the previous version of the requirement? You did not indicate the tables that host the revisions and the actual requirement. Thanks for all your help!

2 other answers



permanent link
Benjamin Silverman (4.1k610) | answered Aug 16 '12, 6:21 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
The tables are much more complicated for the application, so it's not as simple as flipping a bit in the back end like you saw for the data warehouse.  Is it not possible to re-create the artifact based on the latest revision you're able to see from the steps above?  You should have access to all the content/attributes/links etc through the steps above.  You could even create a snapshot and specify the exact date/time you want to visualize if you wanted to see other deleted artifacts without going through the exercise above.  Hope it helps,

Comments
1
Joseph van Blokland commented Aug 17 '12, 1:02 p.m. | edited Aug 17 '12, 1:03 p.m.

Thanks again for your answer. Yes we did recover the information in the above fashion. I was just hoping for a Ctrl-Z solution :) BTW creating a snapshot of the past blows away my understanding of time and space.


permanent link
Robin Bater (3.4k47) | answered Aug 16 '12, 6:07 p.m.
JAZZ DEVELOPER
edited Aug 17 '12, 2:18 p.m.
Hi Joseph,

The only way I have found to restore a deleted artifact is if you have a snapshot or baseline that contains that artifact, is to open the artifact from the snapshot and then from the artifact history restore the latest found version, by copying and pasting to a new artifact.

Now if you want to control which role can delete artifacts.  In V3.0.1.1 this feature was added

https://jazz.net/downloads/rational-requirements-composer/releases/3.0.1.1?p=news#artifactdeletions

This determines which users can delete artifacts based on defined roles. This can be used as added process to ensure that only authorized users can delete artifacts.

Comments
Joseph van Blokland commented Aug 29 '12, 3:42 p.m. | edited Aug 29 '12, 3:43 p.m.

Robin, Just discovered that users can still delete uploaded images.

They can also delete folders as long as there are no artifacts in them.
Note that they can delete folders with non-artifacts in them, e.g. other folders or uploaded images.

Anyway to batten down the hatches a bit more?

Thanks!


Robin Bater commented Aug 29 '12, 5:05 p.m.
JAZZ DEVELOPER

This surprises me. It sounds like a defect as my expectation is that it should not be able to delete folders, but I am not sure how it was designed.


Your answer


Register or to post your answer.


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.