What is the best/accepted way for an external program to access DOORS?

I'm pretty new to DOORS, and while I'm somewhat familiar with the UI now, I'm still not sure what the best way to access DOORS data from another program is. From reading the documentation for the recent releases (which is somewhat confusing), it looks like the only ways are as follows:

  • OSLC Interface
  • C API to make DXL calls into the DOORS client

Are these the only two methods of interfacing with DOORS? Or are there libraries I can use to directly access DOORS from other languages? (e.g. .NET, Native C/C++, Java, etc.)


AlexanderMiles - Tue Apr 23 17:00:11 EDT 2013

Re: What is the best/accepted way for an external program to access a DOORS server?
OurGuest - Wed Apr 24 08:57:06 EDT 2013

IBM problably would say there is no acceptable way to access the DOORS Server, but there are at least way to interface to the client:  1. OLE automation, 1. TCP/IP Client Server access.  There is a 3rd way ie., thru windows API but for most people that is off the charts.

Re: What is the best/accepted way for an external program to access a DOORS server?
AlexanderMiles - Wed Apr 24 09:12:31 EDT 2013

OurGuest - Wed Apr 24 08:57:06 EDT 2013

IBM problably would say there is no acceptable way to access the DOORS Server, but there are at least way to interface to the client:  1. OLE automation, 1. TCP/IP Client Server access.  There is a 3rd way ie., thru windows API but for most people that is off the charts.

I updated my question title, I need to know what the best way to access the data in DOORS through the client is.

I didn't see anything about OLE Automation or going through the Windows API in the DOORS documentation, but I assume that the TCP/IP method is what I read about using OSLC?

Re: What is the best/accepted way for an external program to access DOORS?
llandale - Wed Apr 24 13:42:05 EDT 2013

I don't think anybody has ever written a program to reasonably access DOORS data directly from the service; although a couple seem to have proved the concept.  Other programs would control the DOORS client, sending it DXL commands and reading results.

A big problem is that you must either already have DOORS running on the PC, or the program has to login, knowing a user name and PASSWORD.

Lookup "runStr" and "runFile" in the DXL manual.  I don't recall how the DXL you run send info back to your other program.  It was posted lately but I'm sure someone will remind us here.

-Louie

Re: What is the best/accepted way for an external program to access DOORS?
AlexanderMiles - Wed Apr 24 16:05:54 EDT 2013

llandale - Wed Apr 24 13:42:05 EDT 2013

I don't think anybody has ever written a program to reasonably access DOORS data directly from the service; although a couple seem to have proved the concept.  Other programs would control the DOORS client, sending it DXL commands and reading results.

A big problem is that you must either already have DOORS running on the PC, or the program has to login, knowing a user name and PASSWORD.

Lookup "runStr" and "runFile" in the DXL manual.  I don't recall how the DXL you run send info back to your other program.  It was posted lately but I'm sure someone will remind us here.

-Louie

After going through more of the documentation, I think I'll just wrap the C API so I can make the DXL calls from .NET. Seems like the easiest route plus "having to learn a new language" could buy me a few extra weeks on this project :P (we're probably going to need some custom scripts for what we ultimately plan)

Re: What is the best/accepted way for an external program to access DOORS?
Wolfgang Uhr - Thu Apr 25 10:21:41 EDT 2013

AlexanderMiles - Wed Apr 24 16:05:54 EDT 2013

After going through more of the documentation, I think I'll just wrap the C API so I can make the DXL calls from .NET. Seems like the easiest route plus "having to learn a new language" could buy me a few extra weeks on this project :P (we're probably going to need some custom scripts for what we ultimately plan)

If you use dxl and you are new, plan in months not in weeks.

Re: What is the best/accepted way for an external program to access DOORS?
AlexanderMiles - Thu Apr 25 10:41:39 EDT 2013

Wolfgang Uhr - Thu Apr 25 10:21:41 EDT 2013

If you use dxl and you are new, plan in months not in weeks.

The language seems pretty straightforward to me so far from the DXL docs, but I haven't actually written any code in it yet. Is there anything I need to watch out for as a beginner to the DXL world?

Re: What is the best/accepted way for an external program to access DOORS?
Wolfgang Uhr - Thu Apr 25 11:57:02 EDT 2013

AlexanderMiles - Thu Apr 25 10:41:39 EDT 2013

The language seems pretty straightforward to me so far from the DXL docs, but I haven't actually written any code in it yet. Is there anything I need to watch out for as a beginner to the DXL world?

The problem of dxl is that not all paths are ending in a goal. There are some errors and problems wich are relative hard to detect and to understand. One example is the memory leak problem.

https://www.ibm.com/developerworks/forums/thread.jspa?messageID=14672594&#14672594 

https://www.ibm.com/developerworks/forums/thread.jspa?threadID=471754&tstart=0

It is not the only surprise you can expect. But if you only need some small code snippets reduced to a fast data acces it may work.

 

Re: What is the best/accepted way for an external program to access DOORS?
AlexanderMiles - Thu Apr 25 12:01:41 EDT 2013

Wolfgang Uhr - Thu Apr 25 11:57:02 EDT 2013

The problem of dxl is that not all paths are ending in a goal. There are some errors and problems wich are relative hard to detect and to understand. One example is the memory leak problem.

https://www.ibm.com/developerworks/forums/thread.jspa?messageID=14672594&#14672594 

https://www.ibm.com/developerworks/forums/thread.jspa?threadID=471754&tstart=0

It is not the only surprise you can expect. But if you only need some small code snippets reduced to a fast data acces it may work.

 

The first link you posted is dead, the second one works though. I'll give it a readthrough when I get a chance.

I'm also not quite sure what you mean by "not all paths are ending in a goal". Can you clarify what this means?

Re: What is the best/accepted way for an external program to access DOORS?
Wolfgang Uhr - Thu Apr 25 12:41:36 EDT 2013

AlexanderMiles - Thu Apr 25 12:01:41 EDT 2013

The first link you posted is dead, the second one works though. I'll give it a readthrough when I get a chance.

I'm also not quite sure what you mean by "not all paths are ending in a goal". Can you clarify what this means?

Interesting: If I copy it in the url-bar of the browser it works and if I click, it does not:

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014672594#14672594

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014942467

> I'm also not quite sure what you mean by "not all paths are ending in a goal". Can you clarify what this means?

If you want to create a two checkboxes in one dialog and you write the code as you learned, you start with a set of parameter and call some subroutines the your program fails allways. You have to use two different lines of code createCheckbox() for two different checkboxes or your script crashes.

In dxl you can learn to work out a workaround.