When a string of special characters is set via the :PUT_READ_BUFFER > :READ mechanism, using an input check for the length, the Task containing the :READ can fail even if the string has the correct length.
For instance, using the following statement to write to the buffer:
:PUT_READ_BUFFER BUFFERED# = 'UÄK_Ä'
(5 characters)
And the following to read the input:
:READ &BUFFERED#,'06',
(check that the input is not longer than 6 characters)
This error is observed:
Task <Task_name> fails with FAULT_OTHER: U00020400 Maximum length of parameter: '06' characters.
Using the following works correctly:
:PUT_READ_BUFFER BUFFERED# = '123456'
(6 characters)
The length input validation was based on bytes which can fail using UTF-8 because a character can need multiple bytes.
Solution:
Update to a fix version listed below or a newer version if available.
Fix version:
Component(s): Automation Engine
Automation.Engine 24.4.2 HF1 - Available
The reference for this fix is DE176123