Managing Change History on Specifications created from Template

When a new specification is created using a template to copy parameter rows, the original Change History behavior was to capture an entry for each populated column of each parameter row. Some customers’ templates are very large, and this behavior created excess, and typically unnecessary, extra data stored in the Change History tables. In comparison, objects that have lab-assigned parameters, Formula, Item, and Project, do not write parameter rows to change history at initial object creation.

With new behavior, Specification Parameter rows will not be written to Change History at initial creation, unless a copy method specifically writes data to those rows. However, a new profile attribute can specify columns to evaluate for entries that you may wish to capture in initial object creation change history.

You must specify the parameter columns in the Change.Hist.Spec.Add.TpFields profile attribute to force definition and inclusion of non-blank TP rows in the new object's Change History. See Change.Hist.Spec.Add.TpFields.

The list of columns in this profile must not contain required columns. A required column must have a value, even on the first save of the Specification Parameter row. This new logic, which scans for non-null values, always finds a value for this required column resulting in the entire row being audited, defeating the purpose of this feature.

The attribute value is a list of Specification Parameter columns that constitute a non-blank row, i.e. a value in any or all of those columns will be perceived as non-blank by the new behavior. With this profile in place, upon creation of a new spec, TP rows that are blank will not be captured in the initial Change History for the spec.

The new attribute has to be added to the Details tab in order to take advantage of this option.

Note: When using a template to create a new spec, even if there are values in the Min, Target, or Max columns, they do not copy into the new spec automatically. If the attribute value is Min/Target/Max, these will be perceived as blank.

If you have a copy method that sets values, along with template, that is treated the same as a user manually entering values and will be picked up by the Change Log regardless of the profile behavior.

Copying a non-template spec to a new code or version, with values in Min/Target/Max, copies data to the new spec. The profile value will determine if the new spec's initial change log includes information about that data. For example, if attribute value is Min/Target/Max, and the copied spec had Min/Target/Max data, that will appear in the new spec's Change History.

Example 1 - Specifying MINVAL;TARGET;MAXVAL;COMMENTTXT as the value for the profile attribute

  • Create New Spec with template segment:
    • Template has Minval and Commenttxt for row 1: Row 1 is displayed in Change History because the Comment is copied in and is considered part of making the row non-blank.
    • Template has Test Code for row 2: Row 2 is not displayed in Change History because Test Code is not considered part of making the row non-blank.
    • Template has Max val for Row 3: Row 3 is not displayed in Change History because Max value doesn't copy from the template.
  • Enter Min Value for row 2 and copy this spec to a new code or version:
    • Change History is still displayed for Row 1 because of the Comment text.
    • Change History is now displayed for Row 2 because the Min Value is copied in.
    • Change History is still not displayed for Row 3.

Example 2 - Profile attribute is blank or not in the Details tab

  • Create New Spec with template, and multiple columns have data populated:
    • There are no TP rows in Change History upon creation.
  • Add TP values to Min/Target/Max columns and copy this spec to new code or version:
    • There are no TP rows in Change History upon creation.