Generating duplicate IDs when creating requirements tracking links

2 次查看(过去 30 天)
I created a tracking link for the SwRS ID and SwAD ID.
Then I created a tracking link with the same IDs again.
In my opinion, tracking links should not be created with the same ID.
However, the links are created.
Note: “ Warning: Link to DCBC_SWAD_ID_Req.slreqx:36 already exists”
Is there any way to prevent this?

采纳的回答

Kanishk
Kanishk 2024-12-18
The link created by 'slreq.createLink' is for a requirement having a description. Multiple requirements can be satisfied by a single destination file for a given source file, Hence 'slreq.createLink' creates a link but with a new SID.
You want to prevent multiple links between same source and destination files.
To prevent this behaviour you can check for if a link already exists between a source and destination file and create a link if it is not present. Here is a simple MATLAB function for the same.
function linkExist = checkIfLinkExists(src, dest)
inwardLinks = slreq.inLinks(dest);
linkExist = 0;
for i=1:size(inwardLinks,2)
if strcmp(source(inwardLinks(i)).artifact, which(src))
linkExist = 1;
return
end
end
end
Please go through this official MATLAB documentation of 'slreq.inLinks' to learn more.
doc slreq.inLinks
You can also access the workdlow of creating and link requirements from this documention.
web(fullfile(docroot, 'slrequirements/gs/author-requirements-for-a-matlab-function.html'))
  3 个评论
JinWook Park
JinWook Park 2024-12-20
Thanks, I solved it well with your help.
function linkExist = checkIfLinkExists(srcReq, dest, srcid, destid)
inwardLinks = slreq.inLinks(dest);
linkExist = 0;
for i=1:size(inwardLinks,2)
if strcmp(destination(inwardLinks(i)).id,destid)
GetSrcReq = find(srcReq,'Type','Requirement','SID',source(inwardLinks(i)).id)
if strcmp(GetSrcReq.Id,srcid)
linkExist = 1;
return
end
end
end
end

请先登录,再进行评论。

更多回答(0 个)

产品


版本

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by