Open vao-igel opened 2 years ago
It works like it is described in the documentation:
Otherwise, the platform determines how many elements with the provided path and name are contained in the parent descriptor. If there is only one element, it is overridden.
I think you can try adding different id
attributes to the <c>
tag in original and extended screens. If these elements have ids, they won't be overriden.
When I put 2 or 3 \<c> elements in extended screen they do not just override the initial single \<c> element, they all collapses into one in the result screen description. I don't think that this is a correct behavior.
they all collapses into one in the result screen description
Could you provide an example? I don't get what do you mean by all element collapses into one.
Platform version: 6.10.17
Steps to reproduce:
Filter must contain exactly one \<c> element. If it has two or more the bug does not occur.
When running and debugging the loading phase of the datasource of the overridden screen it is seen that only the last filter expression is present in filter. I found that this error originates in the class XmlInheritanceProcessor in method "private void process(Element resultElem, Element extElem)" at lines 153-158: if the element from base screen has only one child (not affected by any locator) then all the children of the same element from inherited screen will be merged into it by method "private void process(Element resultElem, Element extElem)". Using attribute "ext:index" does not help. The only way to avoid this behavior is create two filter expressions in base screen. Maybe it can be fixed by adding the element "list.get(0)" to "justAdded" collection after line 155.