In general, database Number fields do not store or display trailing zeros when entered after a decimal. This is standard database behavior. When a calibration technician sees a Device Reading of 105.120 during a calibration and they enter this value into our system, EAM stores this value as 105.12 and the manually entered trailing zero is simply ignored. This is standard database behavior as well. Traditionally, EAM has used device precision to remedy this somewhat. If the precision of the device is specified in EAM as “3”, the system will display a trailing zero at the end of the non-zero entered decimals, so the value appears as 105.120. The system has always added the necessary trailing zeros to the displayed value such that the number of decimals displayed equals the specified precision.
Beginning with EAM v12.0, customers now have a choice as to the behavior of precision-controlled fields in their calibration processes. These changes specifically deal with how trailing zeros are handled with respect to precision.
Customers can continue to use the pre-12.0 behavior, if desired, or choose between 2 additional options.
In summary, there are now 3 distinct behaviors available for precision-controlled fields and trailing zeros as described below:
#1 (pre-v12.0 behavior):
Installation Parameter CALTZERO = A
-
EAM automatically adds trailing zeros to match precision (calibration specific functionality) defined on the device or test point. This occurs even if the user does not enter trailing zeros. Trailing zeros are for display only i.e., they are not stored in the database. Trailing zeros are added to specific calibration fields on the equipment and work order screens if the user enters a value and the number of digits after a decimal do not match the precision defined i.e., Precision = 2 and user enters 25.1, the system will automatically add a trailing zero to match the precision i.e., value displayed as 25.10.
-
Any trailing zeros entered by the user are discarded and the necessary number of trailing zeros are added by the system, to the displayed value only, as described above.
-
User is not allowed to enter more decimals than the defined precision.
-
If precision is not specified, then trailing zeros are not displayed.
#2 (new v12.0 behavior option):
Installation Parameter CALTZERO = B
-
Trailing zeros will not be automatically added to precision-controlled field values to match the defined precision.
-
The user is allowed to enter less decimals than the defined precision AND the system does not add trailing zeros automatically to match precision.
-
If trailing zeros are manually entered by the user, these trailing zeros will be maintained and displayed. Therefore, only trailing zeros that are entered by the user will be displayed.
-
User is not allowed to enter more decimals than the defined precision.
#3 (new v12.0 behavior option):
Installation Parameter CALTZERO = C AND CALRPREC = <0, 1, 2, 3, 4, or 5>
-
Trailing zeros will not be automatically added to precision-controlled field values to match the defined precision.
-
The user MUST enter the EXACT number of decimals specified by the defined precision i.e., the user cannot enter less, or more, decimals than precision. The entered value considers manually entered trailing zeros.
-
The only exception to this rule is for the Device Reading field on the Calibration tab for Work Order. See details below for the CALRPREC installation parameter.
-
-
If trailing zeros are manually entered by the user, these trailing zeros will be maintained and displayed. Therefore, only trailing zeros that are entered by the user will be displayed.
-
User is not allowed to enter more decimals than the defined precision, except for the work order Device Reading field as stated elsewhere in this option.
-
Installation parameter CALRPREC. This parameter is only used when CALTZERO = C and specifies the number of decimals, above the precision, that the user is required to enter for the work order Device Reading field. The user MUST enter the number of decimals that is equal to <test point precision value + CALRPREC install parameter value>. For example, if test point Precision = 3 and CALRPREC = 1, the user MUST enter a Device Reading with 4 decimal places, including any manually entered trailing zeros. The system will copy the entered Device Reading, as entered (i.e., 4 decimal places in this case), to a new work order test point field called Full Device Reading and round the entered Device Reading to the test point precision. In other words, if Device Reading = 105.2678, the system will set Full Device Reading = 105.2678 and Device Reading = 105.268. Deviation and test point status and calibration status will be based on Device Reading (i.e., the rounded value) as has been the case in previous versions.
-
CALRPREC is ignored if CALTZERO <> C (i.e., it is A or B).
-
Valid values for CALRPREC = 0, 1, 2, 3, 5, or 5. If this value is <null> or invalid the system will assume the default value, which is 0.
-
If CALRPREC = 0, the user will not be able to enter more decimals than precision. In fact, they must enter exactly the number of decimals that equal precision, and no rounding will be performed.
-
If precision is the maximum value of 6 AND CALRPREC is its maximum value of 5, then the user will be required to enter 11 decimals for Device Reading. This value will all be copied to the Full Device Reading field, then the system will round the entered reading to 6 decimals.
-
Full Device Reading is a protected field and is used to maintain the Device Reading that was entered by the user, including trailing zeros. This is necessary because the entered value is then rounded and stored in Device Reading.
-
Although this field was added specifically to be used when CALTZERO = C and CALRPREC <> 0, the system will always copy the entered Device Reading into this field. Therefore, when (CALTZERO = C and CALRPREC = 0) OR CALTZERO = A or B, the Full Device Reading = Device Reading.
-
FULL Device Reading has not been added to any of the calibration specific reports; however, it is captured as part of the Work Order Electronic Record.
-
-
The system will display an error if the number of decimals that is equal to <test point precision value + CALRPREC install parameter value> is not entered into the Device Reading field when CALTZERO = C.
-
Examples of how CALRPREC is used when CALTZERO = C:
Example 1:
IF Precision = 3, CALRPREC = 1, entered Device Reading = 100.2156, the system WILL round the reading to the Precision (i.e., saved Device Reading = 100.216 & Full Device Reading = 100.2156) because the number of decimals entered is greater than precision by a number (i.e., 1) = CALRPREC value.
Example 2:
IF Precision = 3, CALRPREC = 3, entered Device Reading = 100.215248, the system WILL round the reading to the Precision (i.e., saved Device Reading = 100.215 & Full Device Reading = 100.215248) because the number of decimals entered is greater than precision by a number (i.e., 3) = CALRPREC value.
Example 3:
IF Precision = 3, CALRPREC = 0, entered Device Reading = 100.215, the system will not round the reading to the Precision (i.e., saved Device Reading = 100.215 & Full Device Reading = 100.215) because CALRPREC = 0.
-
TECHNICAL IMPLEMENTATION TO KEEP MANUALLY ENTERED TRAILING ZEROS WHEN CALTZERO = B OR C:
-
A new, database-only field has been added for each field currently controlled by precision. The database field name will follow this convention: <db field name_DECIMALS>. So, the database-only field associated to the Test Point field on the Test Points tab for Equipment is called OTP_TESTPOINT_DECIMALS.
-
When a value is entered into a precision-controlled field and saved, the system will write the number of decimal places entered by the user into the associated DECIMALS field. For example, if the user enters Test Point = 100.10, the system stores Test Point = 100.1 (because databases do not store trailing zeros) and sets OTP_TESTPOINT_DECIMALS = 2 (because 2 decimal places were entered by the user).
-
When precision-controlled field value is viewed on the front end, the system uses the 2 relevant fields, Test Point and OTP_TESTPOINT_DECIMALS in this case, to display the value the user entered. For this example, the user will see Test Point = 100.10 because the database-only field tells us they entered 2 decimals place, but Test Point = 100.1 only contains 1 decimal; therefore, we know the user entered 1 trailing zero when typing the value.
-
The DECIMALS fields are indeed database-only; however, the Audit Trail functionality can be used to audit changes to the primary precision-controlled field we are interested in auditing, and it can also audit the associated DECIMALS field changes. Therefore, an audit of the 2 fields together tells a complete story about changes made to precision-controlled fields, even when trailing zeros are added or removed.
-
eRecords Report – The DECIMALS field, for all precision-controlled fields, has been added to the eRecords table. The precision-controlled field value will not have any trailing zeros stored there. However, the related Decimals field will show the number of decimals entered for the related field. These fields can be used for eRecords in the same way as described above for the Audit Trail to see how manually entered trailing zeros were entered/updated.
-
The DECIMALS fields are only populated when CALTZERO = B or C as manually entered trailing zeros are not maintained when CALTZERO = A.
-
Manually entered trailing zeros will be maintained for precision-controlled fields when CALTZERO = B or C, even if no Precision is specified. The field is still considered precision-controlled.
-
-
When upgrading to EAM v12.0, CALTZERO is set to ‘A’. Therefore, precision and trailing zero behavior will remain as in previous versions.
-
If existing calibration data exists for equipment and/or work orders AND CALTZERO is changed from A to B, the system will no longer display any trailing zeros that were displayed prior to changing the installation parameter value. This is because ONLY manually entered trailing zeros are displayed when set to B. If you wish for trailing zeros to be displayed in precision-controlled fields, then they will need to be manually added after changing to B.
-
If existing calibration data exists for equipment and/or work orders AND CALTZERO is changed from A to C, the system will no longer display any trailing zeros that were displayed prior to changing the installation parameter value. This is because ONLY manually entered trailing zeros are displayed when set to C. However, when set to C, all precision-controlled fields MUST contain the number of decimals equal to any specified precision. Obviously, many existing precision-controlled field values may not meet this condition. The system will not automatically ‘fix’ this by adding trailing zeros when changing CALTZERO to C. This will need to be manually accomplished. No errors will be displayed unless the user attempts to update a record in this state. At that point, the user will be directed to change the precision to match the requirements. If you wish for trailing zeros to be displayed in precision-controlled fields, then they will need to be manually added after changing to C.
Installation parameter CALPREC:
This installation parameter can be used to turn OFF the precision constraint in the calibration module for some fields. See Equipment (A/S/P): Calibration tab, specifically the Precision field section for further details.