The OPC UA Complex Data extension does not require you to perform OPC operations any differently when complex data is involved. You use the same objects and methods as with the regular data. The only difference is in the data that is being passed to or from the component. When the OPC UA Complex Data extension is enabled (which is by default), complex data returned to you by the methods on the EasyUAClient Class is represented by instances of the UAGenericObject Class, and conversely, if you want to pass complex data to some method on the EasyUAClient Class, you need to prepare an instance of UAGenericObject Class.
If the node being read, written or subscribed to represents an array (one- or multi-dimensional), the value passed to or from the component is then an array of UAGenericObject-s. Note that this is different from having a scalar node, and a UAGenericObject with generic data in that itself is an array (a sequence data). Both these options are possible (and sometimes a bit confusing).
The UAGenericObject Class is used to represent complex data on its way from the server or to the server. It has two basic pieces of information:
Here is what you need to do in order to work with OPC UA complex data.
With the OPC UA Complex Data extension, it is also possible to call OPC UA methods that have complex data in their input arguments, or that return complex data in their output arguments. You will use a usual call to one of the Call methods on the EasyUAClient Class again.