Error generating requirements report

2 visualizzazioni (ultimi 30 giorni)
Chris Paredis
Chris Paredis il 4 Feb 2021
Commentato: Chris Paredis il 5 Feb 2021
I am generating a requirements report using the following code:
slreqFile = "someFile.slreqx";
rs = slreq.load(slreqFile);
slreq.generateReport(rs);
and get the following error:
Invalid link target "docs-internal-guid-2a040ff5-7fff-98db-b640-22e97bf2104a" as DOCX does not support more than 40 characters in the target name.
It looks like the name of the target is too long, but this name is internally generated and I cannot figure out how to control/change this name.

Risposta accettata

Leo
Leo il 4 Feb 2021
Hi Chris,
Was your requirement content directly copied from some external source, e.g. Google Docs. I know the copy/paste aciton from some external source will generate this kind of attributes (e.g. something like <a name="docs-internal-guid-bcf2aa5b-7fff-37c7-b87b-57dbc5637775"></a> ). This results in the failure of docx report generation. So far, this limitation is from Microsoft Word and we cannot control it yet. If this is not the case, maybe we need more information to identifier where the issue is from.
As a workaround, you can generate an html report first, then convert it to word document using Microsoft Word:
reqOpt = slreq.getReportOptions;
reqOpt.reportPath = 'c:\myreport.html';
slreqFile = "someFile.slreqx";
rs = slreq.load(slreqFile);
slreq.generateReport(rs, reqOpt);
As another workaround, you can try to see whether the exernal resource supports exporting to the html file. After export to html file, you can directly open the html in the browser, then copy the content from the browser to the requirement editor.
Hope this helps.
Thanks,
ZQ
  3 Commenti
Leo
Leo il 5 Feb 2021
If you want to modify the requirement description, you can use the public API. like:
allReqs = slreq.find('Type', 'Requirement');
for index = 1:length(allReqs)
req = allReqs(index);
if contains(req.Description, 'docs-internal-guid')
% here the req.Description is the raw html content.
% do some modification to get the here, e.g
% req.Description = strrep(req.Description, 'invalid-attributed-pattern', '');
end
end
Hope this helps.
Thanks,
ZQ
Chris Paredis
Chris Paredis il 5 Feb 2021
thanks for the suggestion. I was plan on using
req.Description = extractHTMLText(req.Description);

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su MATLAB Report Generator in Help Center e File Exchange

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by