ReqIF mapping file structure and contents
A YAML-based mapping file is required for ReqIF imports to Perforce ALM. A mapping file associates ReqIF and ALM types.
The best way to create a mapping file for the ReqIF file you are importing is to generate one from the ReqIF Import dialog box in ALM. See Generating and editing ReqIF import mapping files. After you upload the ReqIF file, ALM can generate a mapping file that automatically maps ReqIF types to the equivalent Perforce ALM item or field. See Default mappings in ReqIF mapping files.
A property named HALMMapping is added to each ReqIF type in the mapping file. This property is used to associate ReqIF data types with ALM types. Use the field code or label from the Import Mapping Values page in the HALMMapping properties to indicate which ALM field to map to the corresponding ReqIF data.
Mapping files have the following structure and contents.
On this page:
Conventions
propertyName: [ objectType ]
Indicates an array of objectType objects that get assigned to propertyName.
propertyName: { objectType }
Indicates a single objectType is assigned to propertyName.
[ propertyName:... ]
Indicates that propertyName is an optional property that is only included in the mapping file if it has a value. For example, if the ReqIF file does not use the LONG-NAME attribute, the reqifName property is not included in the YAML file.
Top-level mapping file sections
The mapping file contains the following top-level sections.
mappingConfiguration: { mappingConfiguration }
documentInfo: { documentInfo }
objectTypes: [ ObjectType ]
linkTypes: [ LinkType ]
mappingConfiguration
Represents an object that contains information and options specific to the import, such as a description of the import.
mappingConfiguration:
description {string}
Properties
| Property | Type | Description |
|---|---|---|
| description | string | Description of the import that the mapping file is used for. When the mapping file is generated from ALM, description is automatically set to one of the following values based on the value found first in the ReqIF file: ReqIF header TITLE, ReqIF header COMMENT, ReqIF(z) filename. When a ReqIF file is imported, description from the mapping file is saved and displayed when subsequent imports with the same ReqIF types are performed. If the description is not available in the mapping file, ALM saves the mapping file name for subsequent imports. |
Example
mappingConfiguration:
description: Latest & Greatest
documentInfo
Represents information about the types of requirement documents and how the types should be imported.
documentInfo:
HALMMapping
documentTypeField:
createOrMapUnmappedMenuItems: false
menuItemMapping: [ array of dropdownFieldValues ]
reqifDocumentType: <ReqIF specification type name or description >
menuItemName: string
reqifID: string
documentTypes: [ DocumentTypes ]
Properties
| Property | Type | Description |
|---|---|---|
| HALMMapping.documentTypeField | string | ALM requirement document field to map to the ReqIF type to. Each ReqIF Specification Type is always mapped to the ALM document item type because ALM only supports one document type. If you want to preserve Specification Type values from the ReqIF file during import, you can map Specification Type to an ALM string or dropdown custom field added for documents. See How specific ReqIF data is mapped and imported. You can leave Specification Type unmapped if you do not need to preserve the values. |
| HALMMapping.createOrMapUnmappedMenuItems | boolean | Indicates if values for a dropdown field that match between the ReqIF file and ALM are automatically mapped and if any missing field values are automatically added during import. Only used for the reqifType property for dropdown types. true automatically maps the values and adds any missing ones. false does not automatically map values or add missing ones. Default is false. |
| HALMMapping.menuItemMapping | array of dropdownFieldValues | Dropdown field values for the ALM document field. |
| documentTypes | array of DocumentTypes | DocumentType objects. ReqIF Specification Type objects always map to Document in ALM. |
Example
documentInfo:
HALMMapping:
documentTypeField: 'Z_DOCUMENT_TYPE'
createOrMapUnmappedMenuItems: true
menuItemMapping:
reqifName: Software Requirement Specification
HALMMapping:
menuItemName: 'SRS'
reqifID: _220d344c-b4bb-46ae-b709-40f9c1ff950bAsEnumValue
reqifName: Stakeholder requirements Module
HALMMapping:
menuItemName: ''
reqifID: _bd934ed6-817b-4703-b7e1-9ad351ad70f3AsEnumValue
documentTypes:
reqifName: Stakeholder requirements Module
fieldTypes:
reqifName: ReqIF.Description
reqifType: XHTML
HALMMapping:
fieldCode: Description
reqifID: _bd934ed6-817b-4703-b7e1-9ad351ad70f3_DESCRIPTION-DOORS-MODULE
...
reqifID: _bd934ed6-817b-4703-b7e1-9ad351ad70f3
reqifName: Software Requirement Specification
reqifDescription: Describes the set of requirements for a sprint, iteration, milestone, release etc.
fieldTypes:
reqifName: ReqIF.Name
reqifType: XHTML
HALMMapping:
fieldCode: RDNAM
reqifID: _092452d0-d1a3-48ce-8d7a-819ae050c4e5
...
reqifID: _220d344c-b4bb-46ae-b709-40f9c1ff950b
objectTypes
Represents requirement types in the ReqIF file to map to ALM requirement types.
objectTypes:
[ reqifName: { string } ]
[ reqifDescription: { string } ]
HALMMapping:
itemType: { string }
fieldTypes: [ fieldType ]
reqifID: { string }
Properties
| Property | Type | Description |
|---|---|---|
| reqifName | string | ReqIF type name from the ReqIF file selected to import. Only in the mapping file if in the ReqIF file and not empty. |
| reqifDescription | string | ReqIF type description from the ReqIF file selected to import. Only in the mapping file if in the ReqIF file and not empty. |
| HALMMapping.itemType | string | Display name (label) for the ALM requirement type. If no value is specified, the ReqIF SpecObjectType is considered unmapped and no SpecObjects of this type will be imported. |
| fieldTypes | array of fieldTypes | Array of data types in the ReqIF file that can be mapped to an ALM field, or the property of an ALM object. |
| reqifID | string | Unique identifier that associates changes to the HALMMapping property to the ReqIF type. Do not edit or delete this value. If you do, you may see errors in the validation or import results reports. |
Example
objectTypes:
reqifName: Stakeholder requirements
HALMMapping:
itemType: 'Stakeholder Requirement'
fieldTypes:
reqifName: ReqIF.ChapterName
reqifType: XHTML
HALMMapping:
fieldCode: Summary
reqifID: _38813ff8-582b-4e83-a082-86e0f9bfd2ef
linkTypes
Represents a link definition. You can map a ReqIF relation to a ALM link definition and map specific attributes to the link properties.
linkType:
[ reqifName: { string } ]
[ reqifDescription: { string } ]
reqifID: { string }
HALMMapping:
linkDefinition: { string }
fieldTypes: [ fieldType ]
Properties
| Property | Type | Description |
|---|---|---|
| reqifName | string | ReqIF type name from the ReqIF file selected to import. Only in the mapping file if in the ReqIF file and not empty. |
| reqifDescription | string | ReqIF type description from the ReqIF file selected to import. Only in the mapping file if in the ReqIF file and not empty. |
| reqifID | string | Unique identifier that associates changes to the HALMMapping property to the ReqIF type. Do not edit or delete this value. If you do, you may see errors in the validation or import results reports. |
| HALMMapping.linkDefinition | string | Display name for the ALM link definition. If no value is specified, the ReqIF SpecRelationType is considered unmapped and no SpecRelations of this type will be imported. |
| fieldTypes | array of fieldType | Array of data types in the ReqIF file that can be mapped to an ALM field, or the property of an ALM object. |
Example
linkTypes:
reqifName: Constrains
reqifDescription: Link type indicating that a requirement constrains another. For example, a non-functional requirement constrains a system requirement.
HALMMapping:
itemType: 'Constrains'
fieldTypes: []
reqifID: _41aef835-8d3b-45f8-8967-7df6c4300f3b
Subsections in the mapping file
The following subsections in the mapping file provide additional properties in the top-level sections.
fieldTypes
Represents the type of data in the ReqIF file that can be mapped to an ALM field, or the property of a ALM object.
[ reqifName: { string } ]
[ reqifDescription: { string } ]
reqifID: { string }
HALMMapping:
fieldCode: { string }
[ createOrMapUnmappedMenuItems: { boolean: false } ]
reqifType: { string }
[ menuItemMapping: [ dropdownFieldValue ] ]
Properties
| Property | Type | Description |
|---|---|---|
| reqifName | string | ReqIF type name from the ReqIF file selected to import. Only in the mapping file if in the ReqIF file and not empty. |
| reqifDescription | string | ReqIF type description from the ReqIF file selected to import. Only in the mapping file if in the ReqIF file and not empty. |
| reqifID | string | Unique identifier that associates changes to the HALMMapping property to the ReqIF type. Do not edit or delete this value. If you do, you may see errors in the validation or import results reports. |
| HALMMapping.fieldCode | string | ALM field code or field display name to make the ReqIF data to. If no value is specified, the ReqIF AttributeDefinition is considered unmapped and no AttributeValues of this type will be imported. |
| HALMMapping.createOrMapUnmappedMenuItems | boolean |
Indicates if values for a dropdown field that match between the ReqIF file and ALM are automatically mapped and if any missing field values are automatically added during import. Only used for the reqifType property for dropdown types. |
|
reqifType |
string | ReqIF attribute types as defined in the ReqIF specification. For example, String, Boolean, Enumeration. See Valid field data type mappings and String conversions |
| dropdownFieldValue | enum | A single item in a dropdown field. Only used for the reqifType property for Dropdown types. |
Valid field data type mappings
| ReqIF data type | Can map to Perforce ALM field type: |
|---|---|
| Boolean | Check box, String |
| Integer | Integer, Decimal number, String |
| Real | Decimal number, String |
| Date | Date, DateTime, String |
| String | String, Multi-line string, Hyperlink |
| Dropdown | Dropdown, String |
| XHTML | Multi-line string, String |
String conversions
All ReqIF data types can be converted to a string if you want to import a value for display purposes only. Some data types are converted during import.
| ReqIF data type | Converts to: |
|---|---|
| Boolean | true or false |
| Integer | Exact value |
| Real | Exact value |
| Date | Date/time in the format <date> <time> with the date in importing user's locale. For example, 7/13/2020 10:37 AM |
| String | Exact value |
| Dropdown | Exact value |
| XHTML | Plain text |
Example - dropdown field value
reqifName: Artifact Format
reqifType: Dropdown
HALMMapping:
fieldCode: 'Z_ARTIFACT_SET_TYPE'
createOrMapUnmappedMenuItems: true
menuItemMapping:
reqifName: Collection
HALMMapping:
menuItemName: ''
reqifID: _b7aaa30d-fb19-49c5-93f1-2873c323f0c9
reqifName: Document
HALMMapping:
menuItemName: 'Document'
reqifID: _af1a03e8-aba6-441a-86d9-cbbdaa60af92
reqifID: _6c8e6222-6990-40b8-9f13-4bc8f20c7ea2
Example - XHTML field
reqifName: ReqIF.Description
reqifType: XHTML
HALMMapping:
fieldCode: RDDSC
reqifID: _bd934ed6-817b-4703-b7e1-9ad351ad70f3_DESCRIPTION-DOORS-MODULE
documentTypes
Represents an array of documentType objects. ReqIF Specification Type objects always map to ALM Document.
[ reqifName: { string } ]
[ reqifDescription: { string } ]
fieldTypes: [ fieldType ]
reqifID: { string }
Properties
| Property | Type | Description |
|---|---|---|
| reqifName | string | ReqIF type name from the ReqIF file selected to import. Only in the mapping file if in the ReqIF file and not empty. |
| reqifDescription | string | ReqIF type description from the ReqIF file selected to import. Only in the mapping file if in the ReqIF file and not empty. |
| fieldTypes | array | Type of data in the ReqIF file that can be mapped to an ALM field, or the property of an ALM object. |
| reqifID | string | Unique identifier that associates changes to the HALMMapping property to the ReqIF type. Do not edit or delete this value. If you do, you may see errors in the validation or import results reports. |
Example
reqifName: Stakeholder requirements Module
fieldTypes:
reqifName: ReqIF.Name
reqifType: XHTML
HALMMapping:
fieldCode: RDNAM
reqifID: _09d0d94f-3a8f-4748-881e-8200ce80c525
reqifID: _bd934ed6-817b-4703-b7e1-9ad351ad70f3
dropdownFieldValue
Represents a single item in a dropdown field.
[ reqifName: { string } ]
[ reqifDescription: { string } ]
reqifID: { string }
HALMMapping:
menuItemName: { string }
Properties
| Property | Type | Description |
|---|---|---|
| reqifName | string | ReqIF type name from the ReqIF file selected to import. Only in the mapping file if in the ReqIF file and not empty. |
| reqifDescription | string | ReqIF type description from the ReqIF file selected to import. Only in the mapping file if in the ReqIF file and not empty. |
| reqifID | string | Unique identifier that associates changes to the HALMMapping property to the ReqIF type. Do not edit or delete this value. If you do, you may see errors in the validation or import results reports. |
| HALMMapping.menuItemName | string | If no value is specified and the containing AttributeDefinition has createOrMapUnmappedMenuItems:false, the ReqIF AttributeDefinition is considered unmapped and no AttributeDefinitionEnumValues for this value will be imported. |
Example
reqifName: Artifact Format
reqifType: Dropdown
HALMMapping:
fieldCode: 'Z_ARTIFACT_SET_TYPE'
createOrMapUnmappedMenuItems: true
menuItemMapping:
reqifName: Collection
HALMMapping:
menuItemName: ''
reqifID: _b7aaa30d-fb19-49c5-93f1-2873c323f0c9
reqifName: Document
HALMMapping:
menuItemName: 'Document'
reqifID: _af1a03e8-aba6-441a-86d9-cbbdaa60af92
reqifID: _6c8e6222-6990-40b8-9f13-4bc8f20c7ea2