Adding more than one external link to DOORS Web Access via OSLC
I'm integrating my ASP.NET web app with a DOORS Web Access (9.5.2.0) instance. I'm using the half-finished OSLC4NET project as the basis of my work. My current task is just to add an external link to a given requirement. The code that I've got so far is working fine for adding an external link to a requirement that doesn't already have one. And it works great for replacing a previous external link with a new one.
But, I haven't been able to add more than one. Here's my working mental model:
External Links are stored in the Extended Properties of a Requirement. Adding the first external link just involves my adding a key/value pair to the ExtendedProperties with the dcterms information as the key, and the actual URL as the value.
The external reference looks something like this in the rdf/xml representation:
<dcterms:references rdf:resource="http://www.fugeddaboutit.com/"/>
After inspecting the rdf/xml of a requirement that already has an external reference, I see that instead of having a key/value pair of <dcterm information, url> it has <dcterm information, List<url>>.
So, I can pull the list of urls and add mine to it, but when the code takes the resulting Requirement and tries to shove it into DOORS, I get a .NET exception (Enumerator GetEnumerator() is not a GenericMethodDefinition. MakeGenericMethod may only be called on a method for which MethodBase.IsGenericMethodDefinition is true.).
Now, I realize that the exception is in the OSLC4NET code, so I don't really expect you all to troubleshoot that (although if someone has experience with it, I wouldn't mind the help), but I'm wondering if my working hypothesis is faulty somewhere. And, if it is, what's a better mental model of the process? And am I going about adding multiple external links in the wrong way?
A side issue is how to set a title for the link--all I get now is a clickable URL, whereas I know that both a Name and a Description are possible.
Another side issue is that when I add that first Elaborated By link, I also get two more links, both pointing to http://localhost/. Rather intriguing...
But, I haven't been able to add more than one. Here's my working mental model:
External Links are stored in the Extended Properties of a Requirement. Adding the first external link just involves my adding a key/value pair to the ExtendedProperties with the dcterms information as the key, and the actual URL as the value.
The external reference looks something like this in the rdf/xml representation:
<dcterms:references rdf:resource="http://www.fugeddaboutit.com/"/>
After inspecting the rdf/xml of a requirement that already has an external reference, I see that instead of having a key/value pair of <dcterm information, url> it has <dcterm information, List<url>>.
So, I can pull the list of urls and add mine to it, but when the code takes the resulting Requirement and tries to shove it into DOORS, I get a .NET exception (Enumerator GetEnumerator() is not a GenericMethodDefinition. MakeGenericMethod may only be called on a method for which MethodBase.IsGenericMethodDefinition is true.).
Now, I realize that the exception is in the OSLC4NET code, so I don't really expect you all to troubleshoot that (although if someone has experience with it, I wouldn't mind the help), but I'm wondering if my working hypothesis is faulty somewhere. And, if it is, what's a better mental model of the process? And am I going about adding multiple external links in the wrong way?
A side issue is how to set a title for the link--all I get now is a clickable URL, whereas I know that both a Name and a Description are possible.
Another side issue is that when I add that first Elaborated By link, I also get two more links, both pointing to http://localhost/. Rather intriguing...
One answer
{LINK uri=https://xxxx.xxxx.xxx/xxxx}
Apparently there is no way to import both a URI and the Name/Description. If you look at the URI specification has no provision for a name or description, and IBM hasn't seen fit to add this functionality to DOORS.