A transformation (complex data rule) added a float value 0.0 to an integer field. The error was not shown in the client or in the log. The result of a sequence of previously run rules was ignored without any explanation why it happened.
The error is silently caught by .net framework. Now it will be logged at least.
We should think about even better solution that would produce an error message when a data rule fails.
We should save the exceptions thrown in the RowChanged handler and throw them later if we cannot chnage the behavior of the DataTable. This should be added to master only. The logging is sufficient for 2021.1.
I am almost certain it worked before. @zcapkova can you please make a small test in the old version and see if it ends up with an error message? The test would be to create a complex data rule which would throw an error, like this:
<xsl:message terminate="yes"> Test error </xsl:message>
Complex data rule written like this threw no error, either in the client or in the log.
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:AS="http://schema.advantages.cz/AsapFunctions" xmlns:date="http://exslt.org/dates-and-times" exclude-result-prefixes="AS date"> <xsl:template match="ROOT"> <ROOT> <xsl:message terminate="yes">test error</xsl:message> </ROOT> </xsl:template> </xsl:stylesheet>
So it does nothing in .net 4 (Flash) backend?
That was a misunderstanding of what “old version” is - I tried it with the uncorrected rule in html, not in flash.
BTW - it showed the error message when I was saving the rule in Architect.
Also nothing in Flash. But that is only for the rule, in transformations xsl:message works fine.
@tvavrda we established that the problem with running rules when they are run as a side effect by another rule was present in flash as well. Can we call the solution implemented here sufficient and close this issue?
I would call it a “known issue” that should be fixed one day though.
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.