Modifying Types Without Altering the Version Number

You can use PropertyObject Attributes to add data to or update data in a custom data type without needing to increment the version number of the custom type.

Since object Attributes are an unstructured container, creating an Attribute within an instance of a custom type does not generate a type conflict. This allows you to use the type in other TestStand versions which run on the same engine version, making the types more version-agnostic. This also allows you to use sequence files that call custom types in multiple versions of TestStand without needing to save the sequence file for each version using Save As, as long as the TestStand versions run on the same engine version.
Note You can check the engine version of a version of TestStand by consulting the program information at Help » About TestStand.

If you need to use a custom type Attribute in a test sequence, you can create the Attribute in the unique instance of the custom type. If you use this method, you should write your test programs to ensure they function if the Attribute isn't created for a type instance.

If the runtime behavior of a step which calls your custom type changes when run on older versions of TestStand with the same engine version, you should add an attribute to the type which uses the TestStand Sequence Analyzer to report the behavior change or error. Add the following attributes to the type instance to report an error using an Analyzer message and the NI_NotSupportedFeature built-in Analyzer rule:
Figure 1. Type Instance Unsupported Feature Analyzer Message Structure
These attributes should contain the following information:
  • UnsupportedFeatures: Should be structured as an array where each element represents a feature and contains the following:
    • FeatureId (String): Unique identifier for the feature.
    • AnalyzerMessage (String): Message you want to pass to users when the feature is unsupported.
    • MaximumTestStandVersion (String): Maximum TestStand version that the feature can be used in. This value should follow the major.minor.revision.build format. Revision and build version values are optional.
    • MinimumTestStandVersion (String): Minimum TestStand version that the feature can be used in. This value should follow the major.minor.revision.build format. Revision and build version values are optional.
If a user tries to use a Type feature outside of the range of supported TestStand versions, the Sequence Analyzer will report an error message with the following structure:
Message: The instance of type <TypeName> has some features which are not supported in current TestStand version: <AnalyzerMessage>.