Preventing escaping (", &) in business rules
Hey InterSystems Community,
I noticed something interesting in regards to business rule editing. Whenever you use the Management Portal or Studio to edit a business rule, the " characters gets escaped to a ".
Which results in the following code:
As long as you are not mixing development styles - as in, sticking to only the UI or only the code, it is not a problem. But as soon as you mix both, the escaping starts to hinder readability of the rules a bit. I noticed that this is not the case with other interoperability features, like data transformations. They work perfectly fine without escaping the " characters:
And in fact, you can change the business rule to use single quotes ('), too, while preserving functionality. Just, as soon as you edit it in the UI, it gets reverted:
I've spent a bit of time working myself through the ZEN classes of the rule editor (EnsPortal.RuleEditor) to find the reason for that to maybe create a workaround for my development team, but I couldn't find anything, but I did some experiments:
- Using a source control hook (%Studio.Extension.Base, OnBeforeSave) is apparently too late. The "-characters are already escaped
- The only bit of source code that looked "suspicious" was the %CSP.TokenStream class, more precisely the QuoteHTML method?
Does anyone have an idea where the bit of code is that makes it behave this way, why it works like this and how I could potentially work around this? Any ideas would be greatly appreciated!