DXL Repository

Upload File

Para Compare Versions

Posted May 25, 2011 by ReinholdLauer in Attributes, Baselines, Exporters.Downloaded 1959 times.

Para Compare Versions compares two versions in the same module or in different modules and produces a rich text file with the result. The output contains information about the versions and the attributes in the module(s), so that is can be seen what actually has been compared. The changes are shown as untangled markup to increase the readability. The differences can be shown in different colors and styles, like underlined/stroke through or not. A short summary is added at the end of the comparison.

The comparison is based on the absolute numbers, but the objects are compared in the order they are contained in the newer module. Deleted objects are inserted behind the previous predecessor. Deleted and inserted objects are shown completely and not only referenced by their absolute number.

All attributes of both modules or only selected ones can be compared. The attributes to compare can be selected according to regular expressions. Unchanged attributes or all main attributes can be included in the output to get a better picture of the context, in which a change has been made.

To compare the versions launch Para Compare Versions from a module. A brief help is included in the script. By the way, Para is just the abbreviation for the team I am working in – Product Adaptation Requirements and Architecture.

Expand Word OLEs

Posted September 18, 2009 by Kevin in VBA - Macros.Downloaded 2365 times.

This macro will take each OLE object that is a Word Document and make it inline.

To use this file, start Microsoft Word, press Alt + F11, choose the Normal project in the Project listing and then choose File>Import. Close the Visual Basic Editor and from Word, go to Tools>Macro>Macros... and you should see the expandWordOLEs macro available.

Import from Excel

Posted July 28, 2008 by David.Pechacek in Importers.Downloaded 9363 times.

***You will need my Excel Functions files also available on this site!***
If you are getting an error from missing CommonFunctions.inc or other missing functions, redownload the Excel functions library. I removed the need for it and changed some other things. I apologize for the mistake.

****************Updated 12/04/08 for bug fix*****************

This tool is designed to be used to import data directly from an Excel spreadsheet, into a DOORS module. It offers many of the same features and feel of the DOORS spreadsheet import tool. In addition, it also features the ability to import Rich Text, create DOORS Object Level, and auto-update the key that is selected to uniquely identify each row/object in Excel/DOORs.

Selecting to import Rich Text will pop up a dialog box asking what the user wishes to do in the event of a truncation involving rich text. This can occur when a cell has over 1024 characters in it. Be aware that even when not importing rich text, cells with over 1024 characters will truncate. The options are to maintain the rich text formatting despite the truncation, copy the non-RTF value of the cell, or to cause the import to fail at the first truncation. The option to log truncation errors to a file is also present.

In order to import Object Level during the import, the user must select to create new objects. When they do this and select to import the level, they are given a warning message. Once they confirm the selection, the Auto-Update Key option is automatically selected. This is because the script must ensure that the proper identifier for the object is in the Excel file when the level is created (this mainly applies when the Object Identifier is the key).

The user also has three choices on how to tell the import tool the number of rows and columns in the Excel file. They can use the Print Area recorded in Excel if it is set. Or they can have the tool count down and to the right from the upper left cell in the sheet. It stops once a blank cell is reached so the user must ensure there are no blanks in the first column and row until there should be. The final option is to manually enter the number of rows and columns in the file, including the column header.

Finally, the user is able to specify which Sheet of the Excel file data is to be imported from. The tool can either use the Active Sheet when the file is opened, or it can use the sheet that is specified by the name the user enters. The import does not work across multiple sheets.

Any questions, issues, or improvements can be emailed to me at dpechacek@sc-aaicorp.com. I also appreciate feedback so please leave comments.

Granting/Removing Access for Multiple Items and Multiple Users/Groups

Posted May 20, 2008 by Scott in Administration.Downloaded 2160 times.

On occassion I've had the need to apply the same permissions to multiple "Items" in the DOORS database. Going through one by one can be time consuming, so I started on this a while a back and I've finally had a few minutes to finish it up today.

Basically the script will allows you to select multiple users/groups and apply the same permissions for all selected users/groups to multiple items (modules, folders, etc) at the same time.

By default the the script will automatically load the items that are currently selected in the DOORS Explorer as items to have permissions set in the Selected Items list. If an item is locked it will appear with the deleted icon for the appropriate item type and will not be processed.

Once the dialog opens there are buttons to add and remove items. To remove an item select it in the Selected Items list and click the "Remove Item(s)" button. The "Add Items(s)" button will bring up another dialog (Add Items) with the database tree, double click on the items you wish to add and they will be placed in the list view on the right. Click the "Add Items" button and they will be added to the "Selected Items" list on the main DB.

The list on the top left contains the user names in the database, the list on the top right contains the group names in the database. Use shift + click to select multiple users or groups. Both lists can be sorted by clicking on the column header. Not sure why but I could never get the user list to sort by the User (i.e. their real name) it will only sort by the first column.

Select the access rights you wish to assign, using the checkboxes in the bottom left. This works the same way as the DOORS access rights checkboxes with one exception. There is an added checkbox, "Remove". When selected the the "Remove" checkbox will remove the selected users/groups from the access list of the selected items.

Click the "Apply" button to apply access right for the seleted users/groups to the selected items.

The "Set Inherited" button will set the the selected items to inherit their permissions from their parent (i.e. select the "Inherit from parent" check box).

I think its pretty obvious, but I'll mention it anyway, you need to have permissions to grant/remove access to the items to use this script.

If you have any questions, please fee free to e-mail me.

Excel Functions

Posted May 12, 2008 by David.Pechacek in Uncategorized.Downloaded 7366 times.

******Updated 12/9/08 with some new functions*******

Here is my include file with the list of all the Excel interface functions I've come up with or found people using. Much of this is attributed to Michael Sutherland's work on the Enhanced Export to Excel. Others I've written as need has arisen. The ole.inc file is a copy of Telelogic's that I've added to over time.


Feel free to email me with any questions.

Create Link Sets for Module

Posted April 7, 2008 by Scott in Administration, Links.Downloaded 2688 times.

This script will allow you to create multiple link sets and mandatory link set pairings for a module to any module within the same project. The script could be modified to allow link sets to any module in the database, however I prefer to not allow linking outside of a project.

To note the script is designed to be run from the DOORS Explorer. For example you would select the source module in the DOORS Explorer and run the script. I have the script added to the right click menu and only visible to DOORS administrators. Obviously you will need to have edit access to the module, so if someone has the module opened in exclusive or shareable edit you will get a warning.

I use this when I have to create multiple linksets for one module as it can be time consuming and repetitive to do it in the module properties.

Basic instructions:

- Select your link module using the "Browse..." button. If there is a link module in the source module's folder it will automatically be selected.
- Select the target modules from the tree on the left, double clicking a module will add it to the "Selected Target Modules" list on the right. (Selecting a module that has all ready been selected will produce a warning box).
- Double clicking a module in the "Selected Target Modules" will remove it from the list.
- Click "OK" and your link sets will be created in the selected link module and mandatory link set pairings will be created in the selected module.

DOORS Command Database

Posted March 26, 2008 by Kevin in Uncategorized.Downloaded 9149 times.

Telelogic removed this file and resulting thread from their DOORS forums. Hence people should really post things they want to keep outside of the Telelogic forums on sites like this.

This file contains undocumented DXL functions. Use at your own risk!

Dynamic Dialog Box

Posted March 6, 2008 by David.Pechacek in Uncategorized.Downloaded 2238 times.

This tool creates a dialog box that drives the creation of another dialog box. A user is allowed to select attributes from a module to add to the secondary dialog box and then modify the data of the module through this secondary dialog. It will close when the module is closed and the secondary dialog closes whenever this parent dialog is closed.

A user is also able to pick a selection of attributes for the secondary dialog and then save this selection as a layout for future use. These layouts are stored locally on the users machine. Adding support for network layouts would be fairly simple as well.

The include paths will have to be changed to represent your setup.

Simple Constrained Placement

Posted February 1, 2008 by David.Pechacek in Uncategorized.Downloaded 1348 times.

This is an include file to use with your dialog box scripts which simplifies constrained placement for a dialog box element into a single line of code.

Instead of having this:

DBE textDBE = text(DB yourDB, string label, string initial, int width, int height, bool readOnly)
textDBE-> "left" -> "inside" -> frameDBE
textDBE-> "right" -> "unattached"
textDBE-> "top" -> "spaced -> otherDBE
textDBE-> "bottom" -> "form"

You can have this:
DBE textDBE = text(DB yourDB, string label, string initial, int width, int height, bool readOnly)
attach(textDBE, "l->i;r->u;t->s;b->f", frameDBE, otherDBE)

Please read the comments at the top of the file for more info. Feel free to email me with any questions. And let me know what you think with your comments.


Copy Views v3.1

Posted January 25, 2008 by David.Pechacek in Views.Downloaded 2681 times.

***Updated 9/2/09 to fix bug***

I received this tool from a member of Telelogic's DXL forum and was asked to make it simpler to use. It used to use a large list view to allow the user to pick modules which was a bit cumbersome. I have modified it to have a tree view of the database so you can select the modules you desire to copy the source modules views to.

Simply select each module you want to copy views to using the "Add Module" button. Also select the views you wish to copy. Use the "OK" button if you wish the tool to close after its done. Otherwise use the "Apply" button for the tool to stay open after its finished.


* I was told the code I modified came from Ian Zimmerman. Where he got it, I don't know.



  1. Thank you for the kind words.

    I just wanted to comment to let everyone know that I edited the above post today. I added an extra paragraph to item 5.

    It is dawning on me that outsiders to DOORS may think that a post like this is all over the place and not really “tight” and “focused”. But once you’ve been administering the tool for a few years you do realize everything to watch out for, and as the above post shows, that is quite a bit.

    To any DOORS newbies out there, don’t be discouraged or intimidated by the above. There’s just a lot of different things to look out for and I’m trying to be as clear as possible.

  2. In looking at a SQL type structure, naming follows object oriented or hierarchy rules: EMPLOYEE (table), DEPARTMENT (table), WORKS-IN (table expressing relationship), WORKS-FOR (another relationship).

    Is there a similar “rule” in DOORS? As in: SYSTEM-REQ(folder) contains SUB-A-REQ (module), SUB-B-REQ (module), and SOFTWARE-REQ (folder) contains SUB-A-SW-REQ (module), SUB-B-SW-REQ (module). Bi directional links are attributes from SYSTEM folder’s modules to/from SOFTWARE-REQ folder’s module.

    The above structure (and naming) can carry a project from SYSTEM level stuff all the way through TEST stuff, with necessary linking all the way, so it looks good to me.

    Also, in DOORS, I see the primary goal of linking is to establish the relationships: “is-satisfied-by” and “satisfies” – traceability.

    What say you, Kevin?


    PS. Your website is terrific.

  3. Here are my questions:
    (1) What namespace does the script run in? Reason for the question has to do with filter off, and setting it to something else. What if it was on and set to something important in a shared namespace. You would have to do this:
    save filter in foo
    setup a new filter
    run with new filter
    …. do something with the results ….
    restore filter from foo

    (2) Are spaces after parens for readability?

    (3) What is the scope of * in
    Filter f = hasLinks( linkFilterIncoming, “*” )
    This module, all modules, all folders, etc.

    (3) The & symbol in front of a var in a function call appears to mean “pass by reference”, but in your example the & is missing in the call. Passing by reference is the only way passed vars can be updated by a function (in other languages that I know). In a pass by value, the function gets what you sent and can’t change it because there is no reference.

    (4) You wrote: “You can turn filtering on if you want to do a quick check, as every object should have at least one incoming link.” Why should every object have an incoming link?

    (5) Explain “object” in the DOORS context. I know from prior use that it is whatever is saved in an attribute, but I want to hear it from you. And “whatever” is not very precise.

    I have a couple of suggestions:
    (1) That you number your paragraphs so that a reference can be made without quoting to create the context.

    (2) Make a distinction between “has to be” and “happens to be” – like the capitilization for Filter. Convention or required?

    Thanks for starting this tutorial. You can count on me reading every word.


  4. Mike,

    Thank you so much for the kind words.

    This kind of question is EXACTLY the kind of question that someone who understands databases would ask, and then find out the differences in DOORS. This is exactly what I mean by “DOORS Is Not Access!”

    In your example, there is a list of employees in a table. And then there’s another list of departments in a table. An employee is assigned to a department. And then you could, in either table, create a relationship via a field that points to another. So EMPLOYEE Paul works in DEPARTMENT Accounting.

    We’re with each other so far I take it.

    DOORS can work this way. Sure. I could create a module called “DEPARTMENTS” and another called “EMPLOYEES” and create links between the tables, er, modules.

    The thing is, if you set DOORS up like this, you are killing your database.

    DOORS is Object-Oriented and not relational. All the links do is make a relationship between objects, but really one object doesn’t truly “know” about the other.

    In DOORS, the best way to approach putting a list of employees and departments in the database would be to put them into ONE Module, that had attributes for both employees and departments.

    Sounds like horrible database design? It’s not in the realm of DOORS. DOORS modules are not database tables, and thinking of them in that way is going to make for one very inefficient database.

    The reason for this is that if you just have a DOORS module containing employees, you can’t get any department information for those employees unless you also open the department module. This is inefficient for the user, who just wants to look at employees and departments.

    So it is a DOORS administrator’s job to ensure that in any module containing an employee, there is an up-to-date enumerated list of departments. This is efficient for the user, but inefficient for the DOORS Administrator. That’s ok. That is our burden, and it’s really why DOORS Admins should learn all the DXL they can.

    The answer to your question about links is essentially yes as far as the structure is concerned. You’ve made a comment in another thread and given me a great idea for a blog entry about links and link modules. I’ll discuss this more in-depth sometime soon.

  5. Mike,

    1. The term “namespace” isn’t really used in the DOORS DXL world, but if you want an answer, I’d say the namespace is the current module.

    The script can be modified to have a variable contain the current filter, then be run, then set that filter back. Something like:

    Filter fOriginal = current

    at the beggining of the script, then

    filtering off
    set ( m, fOriginal )
    filtering on

    at the end of the script, would accomplish what you want.

    Most of the time, filters are saved with views, so it is not a big deal that the filter goes away. And filters can be recreated.

    The other thing that this tutorial assumed is that the end user only wants to find out if there are links to the module. In this type of scenario, chances are the user opens the module, runs the script, then closes it.

    The tutorial isn’t focused on the end user quite yet. It’s more for the DXL coder.

    2. I have trained myself to put spaces after parenthesis for readability. That is certainly optional!

    3a. I think I said pass by value when I meant pass by reference! Good catch! I will fix that above.

    In the DXL manual, the function shows that it is declared like this:

    void set(Module m, Filter f [,int &accepted, int &rejected])

    But when called in DXL, you do not put the “&” symbol in front of the variables. You probably can, but there is no point.

    3b. I thought I explained this well, but apparently I did not.

    The “*” means “all link modules.” You may also put choose to not use “*” and only look at a specific link module by replacing “*” with “/path/to/Link Module”.

    Does that explain it better?

    4. Once we set the filter, if any objects are returned, they should all have an incoming link, because that is what the filter is set for. I did not mean that all objects in the module should have an incoming link; rather I meant all filtered objects should have at least one incoming link.

    5. Actually, your definition is not correct. So let me get in-depth.

    DOORS is a database. The database contains modules. Modules are comprised of attributes and objects. An object in DOORS is located in a module and consists of values of defined attributes. If you want to go down further, you could argue that objects also contain links, as links cannot exist without objects.

    To “get” an object in DXL, you must first have a module open. You can create an Object variable in DXL, but you cannot use that Object without a module in which it can reside. By default, DXL assumes that the Object you’re working with is within the “current” module.

    Regarding your suggestions…
    1. I am new to blogging and hopefully will be able to update my style sheet to automatically number lines in included code.

    2. In all fairness, above I said, “The filter type is not found in C, so Filter must be capitalized, as must other DXL types, such as Module, Link, Object, and so forth.”

    This is a “has to be.” If you type this in the DXL window:

    module m = current

    and click run, you will get an error.

    if you type this:

    Module m = current

    and click run, you will not.

    Keep the comments/questions and suggestions coming!

  6. I assume that you are referring to the gradient. I think that it looks cool. If the bright green is too bright for legible reading, let me know and I’ll tone it down a bit. Also, I intend on tweaking things here and there so please
    comment on anything you think can be improved.

  7. I finally was able to view the site in Internet Explorer 6. I was able to reproduce TNT’s problem.

    This means I will have to remove the cool-looking gradient. I will get around to that soon.

    If you want to see what the site is SUPPOSED to look like, visit it with Safari, Firefox, or Opera.

  8. Pingback: Database Management » Blog Archive » Opinion: DOORS 9

  9. From what I’ve seen of DOORSNet, the new web access seems to be a good step up from it in visual terms. I know it’d be a wonderful addition to our usage since the read only licenses are cheaper than a DOORS license and we have a group of people who do no editing in DOORS which could be migrated to this tool.

    I was a bit disappointed as well that only a new look, discussions, and the single user feature were the big announcements. Personally I think the current look of 8.3 is fine and this new look seems very Myspace-ish/Macish. I like the simplicity of the current DOORS explorer. I also think this new interface might confuse our users more than the current one.

    Discussions might be useful for more direct and immediate feedback but we’ll see. I think the inability to stop someone from creating/posting discussions is a major flaw that they should implement before release even if that pushes it back.

    I agree that the lack of multi-threading in DOORS and garbage collection in DXL is the biggest gripes I have. It’s hard to write effective tools that slow down over time as the string table builds into a monster. And I should be able to at least view one module while a DXL script executes on another. Last, I really wish they’d improve the smooth scrolling. Currently it only really works if you click on the scroll bar or arrows and scroll that way. It needs to work properly when using the scroll wheel on your mouse. Maybe 9.0 does improve this and they didn’t mention it.

  10. Hey Kevin,

    First of all, nice ideia to log you experience and share it on the web, you´re helping a lot of people!!

    I´m beginner on DXL, and I need help, maybe you can gimme some ideas!

    When I execute my DXL script on its server, sometimes I receive a message like “an unexpected error has occurred, unexpected token. Failed to load index: xxx/xxx/views”

    It seems to be like a failure when reading any content that is loaded under a pre-set view.

    How can I run the DXL leaving views when opening contents?
    If I use “filtering off”, will DXL read the module as a “raw” thing, without those views?
    Will “filtering off” disable views for end-users that are used to load Doors and its windows and menus? I mean, will this command kill all views, so the users will need to reconstruct them?

    Does DXL accept recursive functions?
    BTW, is recursion more economic than loop, when talking about memory?

    And the last question: can you provide an email address from which I can message you?


  11. Trigger–Not sure if you are just flaming or what, but I’ll bite for now.

    I disagree with hearing lots of Enterprise people are moving away from DOORS. What you see may be true. Can you give examples? Not companies, but what are they moving to?

    Development wise, DOORS isn’t dead, but it sure seems that way. The new features are nothing great and everything they introduced, including web access and single sign-on should have been introduced years ago.

    Like I said–in this day and age, new product announcements are exciting. Look at Steve Jobs and the MacWorld or WWDC. E3 is going on right now and Microsoft, Sony, and Nintendo had nice launches. DOORS gets a webinar with a slide show, no live demo, and ho-hum features.

    I want Telelogic to improve this tool, because after working with some of the others, I know it’s the best one that is widely used. Still, saying that you are the prettiest person in a family of ugly people isn’t a great compliment.

  12. Mauro,

    You can write me at kevin.murphy at this domain name.

    I am not entirely sure why you are getting that view error–I don’t know if it is trigger-based or if it’s an error in the view or server corruption. Go to the doors forums at telelogic’s site and do some searches on trigger listing functions.

    You should get these same errors when switching views.

    Filtering off does not read the module “raw”…but it helps. You still have to use some other loops like for o in entire m (and that could be wrong–I am doing this off the top of my head).

    You can write recursive functions in DXL. Regarding memory–I am not sure if recursion is better for memory, but if you’re dealing with strings that all goes into DOORS’ leaky string table, so that won’t matter. It depends on what you are trying to do.

  13. Thank you for the opportunity to elaborate my previous comment. First, I’m not ant-Telelogic nor IBM here. My comment was based on personal feelings and observations I’ve made over the last few years. I agree that DOORS development is still active but to some companies it’s a “dead” product. Parts of NASA that were heavily invested in DOORS have moved onto greener pastures, for example. Siemens and Boeing are other examples that made similar decisions.

    DOORS is a great product for smaller companies, but is no longer an ideal solution for some other companies. Off the top of my head, here are some examples why.

    – The ancient DOORS architecture; if only DOORS XT was released back in the late 90s when is was scheduled to.
    – The total cost of ownership.
    – Lack of Telelogic being active listeners to their customers.
    – Lack of built in features that should be standard. I sometimes think that Telelogic doesn’t use their own application or even understand how their customers use it.

    Kevin, you have asked for some applications that companies have decided to migrate to. Here are some vendors providing solutions that offer a Swiss-army knife of demanded features: Accept Software, MKS, and Siemens PLM group. There is even one company where they built their own in-house solution.

    Hopefully, with the IBM acquisition, DOORS can once again be a competitive application. I am afraid it is too late for some though.

  14. Thank you for elaborating Trigger.

    I totally agree with you about Telelogic not using their own application or understanding how their customers use it. You are 100% right about that.

    When they announced DOORS 8.3’s “send help requests with screenshots/video directly to Telelogic” the very first demand I had was, “they better have a way to disable that.” Someone asked if it could be disabled before I could and Telelogic’s representatives were very confused. Like, “Why on earth would you want to disable that? This is a very cool feature.”

    Ummmm…what about classified requirements? I don’t even want users to accidentally be able to send screenshots to Telelogic. There are security and privacy concerns.

    The thing is, it was unveiled like it was something that everybody in the room would love. It’s obvious that the real reason Telelogic developed it was due to sales/marketing. It’s another way that you can be dependent upon them.

    As an admin, I want my users logging every problem with me. If I can’t solve it, then I’ll ask Telelogic for their support. But nothing should ever leave my company without going through me with regards to DOORS.

    I actually said to myself, “Do they even USE their own software?”

    Still–DOORS people are hard to find, good ones are even harder to find and I still see job postings for DOORS. That being said, I can’t argue with you. It’s priced for really big companies, so it’s not really a great solution for small companies, yet it’s also not the enterprise app that it should be.

  15. I echo you feelings.

    Companies had “reamed” Telelogic about the DOORS 8.3 support request feature. It is a useful feature but totally implemented incorrectly. I even asked the “helpful” Telelogic help-desk how to disable it. A solution was provided that caused me to have to reinstall DOORS. The support desk person it would work without any hitches.

    About every two months, I do go to dice.com, monster.com and other job related job sites and search for the amount of DOORS work out there. The demand is still strong. One feeling I have for the demand reasons is the lack of good documentation that comes with the product. Another reason is the lack of good DXL skills. I always find the best way to mung data (in certain cases) is to export the DOORS data, manipulate it and then (in certain cases) import it back in. DXL is limited, arggh!

  16. When it comes to recursion it all depends on the algorithm and what you want to accomplish.

    For example, if you want to compute “n” factorial or the fibonacci sequence of “n” it is more efficient to develop an iterative function over a recursive one.

  17. I hate to sit on the fence, but I can simpathise with both Kevin and trigger here.

    It’s only today that I have seen the new DOORS9 presentation, and my heart fell once again. To my mind, DOORS is the only serious requirement management tool out there, and as a long time user I find it incredibly simple and intuative. But then I would after 7 years I guess.

    Recently, my company has had a large expansion and recruited many new engineers, many fresh out of university. I find much of my time is spent training users these days, and frequently get looks of disbelief when I expose my cherished DOORS to these guys. They have grown up using Eclipse, or similar applications, vibrant, useable, attractive GIU. If you need a new plug in, just google and download it. (OK, I know Eclipse is a code tool, not requirements, but you get my drift)

    OK, so here is my basic wish list, of course by now I have implemented many of the features with DXL, and had good fun doing it too, but you would think that by now……:

    * Cascading attributes for folder/project
    * Cascading view definitions for folder/project
    * Linkset definitions that point to a folder rather than a particular module (wildcard in the definition?)
    * Link relationship diagram/explorer
    * Multi threading
    * SEARCH !!!! I mean like ‘google’ for DOORS type search.
    * Ability to disable ‘standard’ users messing with view definitions
    * Ability to disable ‘standard’ users creating baselines (eg, assign baseline rights to a certain group definition)

    I shouldn’t complain too much, DOORS has kept my work life interesting for a long time, just because I have to be so creative just to implement the obvious.

    Oh and one more gripe: How many times have you searched a job site for DOORS, to be met with postings for the following:

    * Aluminum doors and windows installation….
    * Get your foot in the door of this great company…

    Kevin, the site is developing nicely, thanks for your work.

  18. “Oh and one more gripe: How many times have you searched a job site for DOORS, to be met with postings for the following:

    * Aluminum doors and windows installation….
    * Get your foot in the door of this great company…

    LMAO!!!… I’ve been searching for some new opportunities and I come across that every day.

    I will say though that not all companies are moving away from DOORS, I’ve had at least 3 companies inquire about exporting Requisite Pro requirements into a new DOORS database within the last couple months…..

    I was fairly disappointed with the absence of garbage cleanup and multi-threading as well.

  19. Not to mention when doing a new rollout people who’ve never used DOORS think they are the first to ever come up with the jokes…

    “So you’re the DOORS man!”

    “I already know how to use a door. You just turn the knob…”

    The job thing can SOMETIMES be remedied by searching DXL. But not all companies will even put Telelogic DOORS. Frustrating indeed!

  20. Agree pretty much with of all of the above. Have been working with RequisitePro for the last few months – for all of DOORS sins, all is forgiven, ReqPro is a glossy toy compared to DOORS, the requirements management philosophy, or lack of it, behind ReqPro just amazes me. BTW, Reqpro has only had one major release since 2003 and that was more underwhelming than DOORS 9.0. Hope IBM puts the development resources into DOORS and not ReqPro.

    I agree with Andrew Tagg, the DOORS GUI desperately needs to be brought into the 21st century. Telelogic\IBM need to make it as close to a MSWord and MSExcel experience as possible – that’s what a lot of users are used to and tend to benchmark many other tools on that experience – unfortunate but true. DOORS also desperately needs an interactive logical view of a projects module and link relationships, rather than just the folder\file explorer type view that we’ve had since version 5.

  21. Paul said:

    “DOORS also desperately needs an interactive logical view of a projects module and link relationships, rather than just the folder\file explorer type view that we’ve had since version 5.”

    Careful what you wish for.

    I’ve used RTM on a rather large project and it doesn’t have DOORS’ folder\file explorer view. There were two views–one with just high level projects with a list of documents in them (no folder structure, just a project structure, if that makes sense–in other words, no nested folders) and a “Visio” type view that showed relationships between documents.

    Once you get over 10 documents, that Visio view becomes useless fast. I can’t imagine such a beast on a complex project with hundreds of documents.

    I think there could be a middle ground–folders for navigation with a filterable relationship diagram for viewing relationships.

    Sadly, after seeing DOORS 9, I don’t think any of this is even on the horizon. Telelogic had almost 200 people attend–so the excitement for DOORS is there. And that’s 200 people in the webinar. That doesn’t include people who set up conference rooms like I did. It’s possible that 400-1000 people saw this webinar. And judging by the response here, likely all of them were disappointed.

  22. This is great…

    You guys (Galatic Solution, SmartDXL, DXLScripts.com and of course Baselines inc) provide a wonderful service to the DOORS users!

    I have a search the web and collected my own respository of DXLs. How can I contribute to your site? Especially since Telelogics is choosing to “erase” very useful DXLs from their site….

    Thanks again!

  23. Welcome!

    Feel free to upload any DXL to our DXL repository. I think that’s the single biggest thing you can contribute. It doesn’t matter if it’s just a snippet that shows someone how to do something simple or complex.

    Thank you for the kind words.

  24. Kevin Said

    “Once you get over 10 documents, that Visio view becomes useless fast. I can’t imagine such a beast on a complex project with hundreds of documents.”

    This is true – but I’m still green with envy – HW engineers that use Printed Circuit Board (PCB) design SW have enjoyed the ability to convert a rats nest of interlinked components into an ordered PCB layout. Some clever algorthims have been developed to help automate the clean up and keep it cleaned up. Zoom features similiar to those used for on-line maps are used to cater for large layouts. DOORS would only need a fraction of the graphics layout featues that a PCB design tool provides. What I’m trying to say here, is that the graphics technology and algorithms are available now and could be adapted to keep the logical view of a large DOORS project in some sort of order.

  25. Some information on Web Access:

    “Named” user license – $1000 + $200 yearly maintenance fee.
    Global floating license – $10,000 (not given info on maintenance fee)

    The issue is whether a “named” user license can only legally be used by one person or if you can give it a generic user name and have any 1 person use it. If the former is the case, I see Web Access doomed from the get go since asking $10,000 just for a floating license anyone can use is absurd. I was hoping to cut down on license costs for read only users by pushing for some Web Access users. Now I don’t know if that’s possible. Still waiting for information.

  26. Confirmed. “Named” user licenses are supposed to be used only by one person. Apparently this is not written into the license agreement yet but that will be changed soon.

    Sorry Telelogic. Web Access was a great idea, but one you doomed to failure from the start. Hopefully they’ll allow some Q&A on the topic at UGC in Austin this year and take feedback to heart. Because I’m sure I’m not the only one upset about this.

  27. David,

    If you’re right, and I have no reason to doubt you, it sounds as if Telelogic is going to be dragged kicking and screaming for DOORS to transition to a Web application. They can’t have the Web version eat into their sales, but they also have a client that is increasingly being seen as clunky and long-in-the-tooth (though it’s the best RM Tool that I have personally used). Add revenue from DOORSNet into the mix, and the problem for the sales/marketing team gets even more complex.

    This saddens me. I want to work with cool, cutting-edge tools. I actually was naive enough to believe that Web Access was going to be included free, as so many other apps do. Even RTM had a basic Web client a few years ago if you bothered to install it.

    Telelogic may be on top now, and I think they’ve been comfortable in that position for a while. I think the stage is being set for more browser-based tools and Telelogic themselves are helping to set that stage.

  28. Greetings – Thanks for posting all these useful dxl files.

    I have the Word macro for converting tables to OLE and it worked well on Word 2003. Our company recently upgraded to Word 2007 and the script doesn’t work as well. Have you had a chance to examine this problem? If I find the answer first I will fowrd it along, but right now I am stumped.

    Thanks again

    Rob Kohl

  29. This isn’t a Word 2007 issue. I should maybe change this but I always hesitated. You need to turn off track changes and then accept all changes in the document before running the macro.

    Give it a shot and I’m sure you will find it works like a charm!

  30. Kevin,
    This is such a great idea, and well done for sharing with people of various levels of expertise. You explained a number of topics that I had been making guesses about as a casual DXL user. I belive that the approach of starting a simple program and using it to introduce new concepts is very sound.

    I am disappointed not to find Parts 2-n. Am I not looking in the right place, or have you given up on this?



  31. I have to agree I noticed the same thing over the last few months while looking for a new position. I actually busted out laughing at one offer because it was so low. Anyway I feel your pain, I’m getting ready to go into negotiations on a short-term contract for a former employer and knowing how they work I’m thinking it’s going to be a battle.

  32. The rate I charge depends on several factors. Is the client in a location that I would like? If not, will the client let me work remotely if they are comfortable with me? Is there a lot of travel involved?

    I will tell you what I consider low. I saw a job posted recently for a DOORS Admin who also is familiar with Synergy for $45/hr. And they *really* wanted someone who knew Perl, I assume to customize certain aspects of Synergy. The site was located about an hour from a major metropolitan area.

    I wrote the headhunter and told him that his rate was really low and he wouldn’t find anyone who was good for that rate, especially if he can’t find someone locally. His response was, yes, the rate was low. But they currently had someone working in the position at that wage and the client wasn’t happy with him.

    My response: “Basically what you’re saying is that your client is getting someone dirt cheap. Your client isn’t happy with this person, but doesn’t want to pay more for someone competent. I don’t know what planet your client is from, but on my planet, quality costs money.”

    This position is also in a sector that is hurting financially right now. I dislike being told that I’m expected to come down because this industry isn’t doing well. Well, when I was in college only making $8/hr, I paid the same for my car that someone making three times what I made would have paid. So I don’t buy that argument either–the cost of a product is set by what the value of that product is worth, not the income of the buyer. If you can afford to use DOORS, you can afford a competent administrator, otherwise you need to be using Word and Excel for Requirements Management.

    To hammer that point, using my car analogy above, I factored in the cost of premium gas when I purchased my Audi. It doesn’t take regular unleaded. I have to get premium. Well, I can still put regular gas in it, but there may be consequences to that. Having a DOORS administrator who is not an expert for complex project or projects is the same way.

    Finally, I wish to say that I know to some people $45/hr is a lot of money. Well, that’s great, but when you factor in having to move and it being a contract position, or worse having to maintain two households and then travel expenses, etc., at the end of the day, $45/hr isn’t worth the time and hassle of changing my life.

  33. Salas,

    You need to give me the error message in order to help you out.

    My immediate guess is that you are using DOORS 7 or something. This will not work in versions of DOORS that do not use URLs.

    My second guess is that you didn’t run this from an open module. The code above needs to be run in an open module with an object selected.

    Good luck.

  34. I saw the position you are talking about Kevin. And I applied for it. $45/hr is far more than I make now as a full time employee. I realize though that contractors generally make more. But $45/hr would be more than enough for me to pay my bills and save a decent amount.

    Maybe you guys who’ve been in the industry for 10+ years can command $65/hr but for me with 3 years under my belt, $45/hr is pretty good.

    But I never heard back from the guy doing the recruiting for the job after the initial response I got.

  35. David – with your skillset you could make much more than $45/hr, even in the location in which that job was advertised. Also, $45/hr for DOORS and Synergy is VERY LOW unless you are a full time employee with benefits. My guess is that this gig would not have paid for benefits, 401k, etc.

    I just started a gig in California and believe me, there are much worse places to live.

  36. I completely agree, DOORS is not cheap. I recently posted for a position in Central Florida for a company that was looking for a Requirement Engineer that had knowledge of DOORS and its workings. Once I replied to the recruiter with my base salary, I never heard back from them. I also believe they re-posted the position as an entry level job. I had asked below the $45/hr you guys are talking about here. I have been working with DOORS for the past 8 years managing for both a systems and software group.

  37. Hey George and all—I’m still here and alive. It’s just that life has really gotten in the way of me maintaining this site as much as I like. I still have tons of opinions on DOORS and Requirements Management, but unfortunately have to focus on some personal items at the present time.

    I hope to expand and offer more tutorials soon.

  38. Hello Kevin,

    Its good that i have found this website. I am strugling with a some problem in dxl.

    My script portion is
    Module mod = read(fullName(anItem), false);

    It is failing every time it encounters the missing file view.ixc and giving run time error. Is there any method to avoid this problem such as if read fails continue with next iteration.

    please help me.


  39. Ravi,

    I don’t know why you’re getting the error on view.ixc, but I have some ideas for you.

    Are you sure that anItem is a module? anItem can be a Project or a Folder. You probably need an if statement, something like

    if (type(anItem) == “Formal”)

    Please note that I just made that if statement up. The function may not be type(), but you get the idea.

    Good luck.

  40. hi kevin ,
    i am new to this dxl script.
    can u help me out to write script.
    string s =” i shall go to movie , shall no, shall yes shall ,,shall”
    stiring sub= “shall”

    i need a program , how many shall are present in string.
    like above one it shd give 5 .
    irrespective of case.
    please help me out

  41. Hi Kevin,

    I have been investigating ways of showing link details (with the source/target content) between modules in a more efficient way than the graphical options available for a Link Module.

    Do you have any suggestions on how to edit the DXL to do show these relationships? Or are you aware of any addin scripts that already do this?

    Any assistance would be GREATLY appreciated! 🙂

    Thanks in advance,


  42. Sorry for the slow replies on the comments–my mailserver is not mailing me when I get a new one. Frustrating.

    skarthik: You need to use a regular expression, and there are limitations in the default implementation, but you should be able to get at least a few shalls. Still, you should only have one “shall” per object in DOORS.

    Dee: I need to know more details. I think you are talking about editing a link module to see details–does the analysis wizard view in a module not work for you?

  43. Pingback: Baselines, Inc. » The gridFrame updated, on sale

  44. Looks like we jumped the gun a bit–we released an updated version and the app store is processing it. Still, the price is .99 cents and we’ll get it that way until the next version comes out. Rest assured that if you buy this now you’ll get the update free and shortly.

    1. Yes, eventually. The problem as always is spare time. The good news is a client of mine wants me to develop some DXL training and has told me that I can use anything I develop for them for Baselines. So there will be something, and hopefully sooner rather than later.

  45. Pingback: Baselines, Inc. » IBM Technote on Imported Word Table Captions

  46. Pingback: RPE 1.3 iFix 001 | Rational® Publishing Engine™ Actual

  47. Pingback: Automating DOORS 9 Document Generation with RPE | Rational® Publishing Engine™ Actual

Leave a Reply