Skip to Main Content
AVEVA Product Feedback


Status No Status
Created by Guest
Created on Aug 20, 2022

Add a string array function to extract all items into a string result

Our process is writing an array of strings into an AF attribute of the same type. This AF attribute may receive information of different size (index) in time. We need to extract all the information contained in the string array (all the items) and store it in a PI tag of type string so it can be viewed in PI Vision or any other client. Since there is no For-Loop function in ABA, we need a new array operation (for example GetStringContent()) to based on an event or periodically store this complete string in a PI tag.
  • Attach files
  • Guest
    Reply
    |
    Jun 9, 2023

    Currently, the String() function provides the requested functionality, but comes with a serious limitation. When the String() function is applied to an array, if the array has more than three items, the result of String(Array) is something like [Value1,...,ValueN], where ArrayLength(Array) = N. That is to say only the first and last values are shown in the function's output string, and the rest are replaced by an ellipsis.
    Why is this the behavior of the String() function, and can it be changed to make it much more useful? I could see that perhaps this is done to protect the Analysis Service from giant strings that could kill performance, but could there at least be an option to control the behavior, and raise the number of array items that get translated to the string to a more reasonable number than three?

    The only official documentation I can find on this limit is in the KB article: Is it possible to output an analysis to a PI Point Array or AF Attribute?