Incomplete XML parsing of Page List properties
SummaryIf 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.
Error MessagesNot Applicable
Steps to Reproduce1. 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.
Root CauseA 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: https://pdn.pega.com/resolved-issues?field_product_version_tid=All&field_sr_value=&field_issue_value=176925&title=&body_value=XML&field_product_topic_category_tid=AlThere 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-IntegrationEngineSetting 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
Published June 6, 2017 - Updated July 18, 2017