Main Content

getPreImportFcn

Class: slreq.Reference
Namespace: slreq

Get registered PreImportFcn callback script

Since R2022a

Syntax

callback = getPreImportFcn(topRef)

Description

callback = getPreImportFcn(topRef) returns the contents of the PreImportFcn callback for the Import node topRef.

Input Arguments

expand all

Import node, specified as an slreq.Reference object.

Output Arguments

expand all

Contents of the PreImportFcn callback for the Import node, returned as a character vector.

Examples

expand all

This example shows how to assign a script as the PreImportFcn callback for an Import node. You get the contents of the PreImportFcn callback for an Import node and register a different script as the PreImportFcn callback after you import the requirements.

Import the Requirements

Use slreq.import to import the ReqIF™ file mySpec.reqif into Requirements Toolbox™. Name the imported requirement set myReqSet and register the script myPreImportScript as the PreImportFcn callback to use during import. Return a handle to the requirement set.

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

The script myPreImportScript uses slreq.getCurrentImportOptions to get the import options, then specifies the attribute mapping file to use during import.

type myPreImportScript.m
importOptions = slreq.getCurrentImportOptions;
importOptions.MappingFile = "myMappingFile.xml";

The mapping file myMappingFile.xml uses a generic mapping.

Get the custom ID for the requirement with Index set to 1.

req1 = find(rs,Index="1");
cID = req1.CustomId
cID =

  0x0 empty char array

The generic mapping does not map the ReqIF attribute ID to the Requirement Toolbox attribute Custom ID. Instead, ID imports as a custom attribute. Get the value for the ID custom attribute for Requirement 1.

cID = getAttribute(req1,"ID")
cID = 
'A1'

Get and Set the PreImportFcn Callback Script

Get a handle to the Import node, then register the script myPreImportScrip2 as the PreImportFcn callback. Confirm that the registered callback was changed.

topRef = children(rs);
setPreImportFcn(topRef,"myPreImportScript2")
newCallback = getPreImportFcn(topRef)
newCallback = 
'myPreImportScript2'

The script myPreImportScript2 uses slreq.getCurrentImportOptions to get the import options, then specifies the attribute mapping file to use during import.

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

The mapping file myMappingFile2.xml maps these attributes from the ReqIF™ file to these properties in Requirements Toolbox™:

  • ReqSum to Summary

  • Desc to Description

  • ID to Custom ID

Update the requirement set. The PreImportFcn callback script also executes when you update the requirement set.

updateReferences(rs,topRef);

Get the custom ID for the requirement with Index set to 1.

req1 = find(rs,Index="1");
cID = req1.CustomId
cID = 
'A1'

Version History

Introduced in R2022a