IBM Support

How to temporarily disable all triggers in a DOORS database

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:

  1. Stop DOORS.

  2. Find your DOORS shortcut, then right-click it and choose Properties.

  3. 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

  4. 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.

[{"Product":{"code":"SSKR2T","label":"IBM Engineering Requirements Management DOORS"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"General Information","Platform":[{"code":"PF033","label":"Windows"}],"Version":"8.3;9.0;9.1;9.1.0.2;9.2;9.2.0.1;9.2.0.2;9.2.0.3;9.2.0.4;9.2.0.5;9.3;9.3.0.1;9.3.0.2;9.3.0.3;9.3.0.4;9.3.0.5;9.3.0.6;9.3.0.7;9.4;9.4.0.1;9.5;9.5.0.1;9.5.1;9.5.1.1;9.5.1.2;9.5.2;9.5.2.1","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

KB6442

Document Information

Modified date:
01 May 2020

UID

swg21324518