When I created a view from a web service that had multiple arrays, I had to create a flatten operation for each array; you can find more information about creating flatten views in the [Creating Flatten Views](https://community.denodo.com/docs/html/browse/latest/vdp/administration/creating_derived_views/creating_flatten_views/creating_flatten_views#creating-flatten-views) section of the Virtual DataPort Administration Guide. In order to help with maintanence, I made an [Interface view](https://community.denodo.com/docs/html/browse/latest/vdp/administration/creating_derived_views/creating_interface_views/creating_interface_views#creating-interface-views) on top of my flatten views with the fields that I wanted from the data source. The interface view allows me to modify the intermediate flatten views without having to modify the report views that reference them.
In reference to your question about determining when fields are registers or arrays, you can look in the "Field Type" column of the "View Schema" tab of a view; arrays are marked by four squares in a horizontal line, while registers have one box above three others connected by lines.
I hope this helps!