Main Content

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

getPostImportFcn

类: slreq.Reference
命名空间: slreq

获取PostImportFcn回调的内容

自 R2022a 起

语法

callback = getPostImportFcn(topRef)

说明

callback = getPostImportFcn(topRef) 返回导入节点 topRefPostImportFcn 回调的内容。

输入参数

全部展开

导入节点,指定为 slreq.Reference 对象。

输出参量

全部展开

导入节点的 PostImportFcn 回调的内容,以字符向量形式返回。

示例

全部展开

此示例显示如何将脚本指定为导入节点的 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 中推出