Main Content

本页采用了机器翻译。点击此处可查看英文原文。

setParent

类: slreq.Reference
命名空间: slreq

PostImportFcn 回调中设置引用需求的父级

自 R2022a 起

语法

setParent(ref,parentID)

说明

setParent(ref,parentID) 将引用需求 ref 移至 parentID 指定的父引用需求之下。您只能在 PostImportFcn 回调中使用此方法。

输入参数

全部展开

引用的需求,指定为 slreq.Reference 对象。

父引用需求的 SID,指定为 int32double

示例

全部展开

此示例显示如何将脚本指定为导入节点的 PostImportFcn 回调。您将获得导入节点的 PostImportFcn 回调的内容,并在导入需求后注册不同的脚本。

导入需求

使用slreq.import将 ReqIF 文件mySpec.reqif导入 Requirements Toolbox™。将导入的需求集myReqSet,将脚本myPreImportScript2注册为PreImportFcn回调,将脚本myPostImportScript注册为PostImportFcn回调。返回需求集的句柄。

[~,~,rs] = slreq.import("mySpec.reqif",ReqSet="myReqSet",preImportFcn="myPreImportScript2",postImportFcn="myPostImportScript");

脚本myPreImportScript2使用slreq.getCurrentImportOptions来获取导入选项,然后指定导入期间要使用的属性映射文件。

type myPreImportScript2.m
importOptions = slreq.getCurrentImportOptions;
importOptions.MappingFile = "myMappingFile2.xml";

映射文件 myMappingFile2.xml 将 ReqIF™ 文件中的这些属性映射到 Requirements Toolbox™ 中的这些属性:

  • ReqSumSummary

  • DescDescription

  • IDCustom ID

脚本 myPostImportScript 使用 slreq.getCurrentObject 获取导入节点的句柄,获取导入节点所属的需求集,然后找到具有摘要 Requirement 1Requirement 2 的需求。然后,脚本将 Requirement 2 移至 Requirement 1 下方。

type myPostImportScript.m
topRef = slreq.getCurrentObject;
rsScratch = reqSet(topRef);
ref = find(rsScratch,Type="Reference",Summary="Requirement 2");
parentRef = find(rsScratch,Type="Reference",Summary="Requirement 1");
parentID = parentRef.SID;
setParent(ref,parentID);

确认 Requirement 2Requirement 1 的子项。

req1 = find(rs,Summary="Requirement 1");
req2 = children(req1);
reqSummary = req2.Summary
reqSummary = 
'Requirement 2'

获取并设置 PostImportFcn 回调

获取导入节点的句柄,然后将脚本myPostImportScrip2注册为PostImportFcn回调。确认回调内容已经改变。

topRef = children(rs);
setPostImportFcn(topRef,"myPostImportScript2")
newCallback = getPostImportFcn(topRef)
newCallback = 
'myPostImportScript2'

myPostImportScript2 脚本将 Requirement 2 移至 Requirement 3 下方。

type myPostImportScript2.m
topRef = slreq.getCurrentObject;
rsSc = reqSet(topRef);
ref = find(rsSc,Type="Reference",Summary="Requirement 2");
parentRef = find(rsSc,Type="Reference",Summary="Requirement 3");
parentID = parentRef.SID;
setParent(ref,parentID);

更新需求集。更新需求集后,PostImportFcn回调将执行。

updateReferences(rs,topRef);

确认 Requirement 2Requirement 3 的子项。

req3 = find(rs,Summary="Requirement 3");
req2 = children(req3);
reqSummary = req2.Summary
reqSummary = 
'Requirement 2'

版本历史记录

在 R2022a 中推出