Question & Answer
Question
How do you temporarily disable all the triggers in the IBM Rational DOORS database?
Cause
The -T
switch is mentioned in the latest IBM Rational DOORS Information Center, but the public documentation does not provide all the details presented here.
Answer
You may need to temporarily disable an IBM Rational DOORS database's triggers while troubleshooting a problem that may be caused by triggers. For example, if you have a problem that occurs whenever a specific event happens (like opening a module), the problem may be related to a trigger, and temporarily disabling all triggers will help you determine whether triggers could be causing the problem. If the problem goes away simply from disabling all triggers, you now know that one or more triggers is causing the problem.
To temporarily disable all triggers:
- Stop DOORS.
- Find your DOORS shortcut, then right-click it and choose Properties.
- Add the
-T
switch at the end of the Target line. For example:
"C:\Program Files (x86)\IBM\Rational\DOORS\9.5\bin\doors.exe" -T
- Save the changes, then start DOORS from this shortcut.
To re-enable triggers once again, remove the
-T
switch from your DOORS shortcut.Note
You must be either a Database Manager or a Custom user who has the power to manage the database when you log on to DOORS for the
-T
switch to work. If Standard users log on to the DOORS database, triggers will still fire. If you find that a trigger is causing your problem and you need to look at your DOORS database's triggers, run the following script:
Trigger t
for t in database do
{
print "Name: " name t "\n"
print "DXL Code:\n" dxl t
print "\n"
}
If you find a problem trigger in your DOORS database and wish to delete it, run the following script after configuring it with the name of the trigger you wish to delete (obtained from running the script above):
string triggerToDelete = "put_problem_trigger_name_here"
Trigger t
for t in database do
{
string triggerName = name t
print "Name: " triggerName "\n"
if ( triggerName == triggerToDelete )
{
print "Deleting " triggerName " ...\n"
//delete t
}
print "\n"
}
Note
The above DXL script has the
delete
line commented out. Run it as is first to make sure the logic works the way you want. Once you are happy with it, uncomment the delete
line and it will delete the trigger whose name is specified in the string triggerToDelete
line.
Historical Number
KB6442
Was this topic helpful?
Document Information
Modified date:
01 May 2020
UID
swg21324518