With the user's approval: item blocking and string length, alarm raise / acknowledge / delay / repeat and INFO event, report generate / print / item trigger / rptstp / SPOOL, class change and reset and attribute change. All results match R1.03 (ISS-028 still holds). Everything was removed again; before/after snapshot identical. ISS-129 and ISS-158 closed. Test package saved in examples/CI-Eng-Sample/shared/write_test; snapshot.ps1 now removes the dss_*.tmp files its own exports leave. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 KiB
2 KiB
task: String items: length limit and truncation
version: R1.05 (first written for R1.03)
source: IM 36K10C10-01EN 5th ed. (Feb. 2026) §3.3.4; IM 36K10G10-01EN 5th ed. (Feb. 2026) §3.2.2; data dictionary (dssqld -f); practiced on CI-Eng-Sample 2026-09-30 (R1.03)
status: verified on R1.03 (2026-09-30); on R1.05 the limit 1–200 / default 80 was checked in the data dictionary and ITEM_DF is identical (2026-10-08, read-only); string writes and truncation not re-tested on the shared R1.05 test server, re-test awaits a decision (ISS-129) Re-tested on R1.05 2026-10-09 on the shared test server with the user's approval (temporary sample records, everything removed, before/after snapshot identical): a 120-character write to a length-100 item stored 99 characters with status 12 (V9).
String items
A string item has a maximum length set when it is created (ITEM_DF.STRING_LENGTH).
| Rule | Value (verified R1.03) |
|---|---|
Allowed STRING_LENGTH |
1–200 (default 80); 201 is rejected with DSS-E-VAL_RANGE |
Audit trailing (AUDIT_INFO) |
no effect on the limit (200 loads with audit on) |
| Characters the item holds | length − 1 (length 100 holds 99) |
| Value that fits | stored, status 9 NORMAL |
| Value too long | cut to length − 1, status 12 OVERRANGED, no error from itmval |
The R1.03 manuals disagreed (Engineering Module: max 100; Tutorial: 168; ISS-019). The R1.05 manuals (changed in R1.04, not listed in the revision tables) give default 80 and maximum 200 bytes, matching the software (ISS-124). Multi-byte characters take more than one byte. That a value holds only length − 1 characters is not in any manual.
Quick load (the section must exist):
@FIELDS
NAME,DESCRIPTION,ITEM_REP,STRING_LENGTH,AUDIT_INFO
@ITEM_DF
"<Section>.<Tag>","Status text","String",120,0
Write and read: itmval -p -n <Section>.<Tag> -v "text", itmval -g -n <Section>.<Tag>.
After a write, check the status: 12 means the text was cut.
The representation (type) and length cannot be changed on an existing item: remove and load it again.