Incomplete XML parsing of Page List properties
If the parse tree of an XML Parse rule contains a repeating element with a name X, and this element also contains a repeating element named X, the values of the elements on X (f.x. X.pyName) are only parsed for the first repeating element.
Other elements will show one of two behaviors, either an empty page is added to the page list (it only contains pxObjClass), or no element is added at all.
Steps to Reproduce
1. Create a Parse XML rule in the class Data-UIGallery-RepeatingLayouts-EmployeeDetails.
2. Create a tree with the root element pyEmployeePL. This element will have two children, a pyName element and a repeating element pyEmployeePL. This repeating element will have two children, a pyName element and a repeating element pyEmployeePL. This repeating element has one child, pyName.
3. Create a XML tree where the two repeating pyEmployeePL elements contain at least two repeats.
4. Run the Parse XML rule with the XML input from step 3 and observe that only the first child of pyEmployeePL is parsed correctly, that is, the pyName element is parsed. Other elements will contain only pxObjClass, or are not shown in the resulting tree at all.
A defect or configuration issue in the operating environment :
There were earlier known issues with the Pega 7 XML assembler and most of these were addressed natively in Pega 7.2.1, there are not any known issues or hotfixes affecting 7.2, see Resolved issue documentation on the PDN:
There is a DSS entry SwitchToOldAssembler which can be set to 'true' to revert to the PRPC 6.3 assembler, which may overcome unexpected behavioral issues with this functionality.
Owning Ruleset: Pega-IntegrationEngine
Setting Purpose: SwitchToOldAssembler
Switching to old assembler should work without any issues, however it is advised to test or verify accordingly.
There are plans to replace or re-code the new assembler model in future.
Use the below Dynamic System Setting entry to resolve the issue:
- Purpose : SwitchToOldAssembler
- Owning Ruleset : Pega-IntegrationEngine
- Value : true