No edit summary |
(Automatically adding template at the end of the page.) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 12: | Line 12: | ||
So, almost always use "xxxx.DisableEditing" or "not xxxx.DisableEditing" (there are exceptions, but not many). | So, almost always use "xxxx.DisableEditing" or "not xxxx.DisableEditing" (there are exceptions, but not many). | ||
For example: | '''For example:''' | ||
self.ValidTo.notNull and | self.ValidTo.notNull and | ||
self.AddedTo.isNull and | self.AddedTo.isNull and | ||
(self.Agreement.Facilitator.DisableEditing = false) | (self.Agreement.Facilitator.DisableEditing = false) | ||
If DisableEditing is Null, then "(self.Agreement.Facilitator.DisableEditing = false)" is actually '''True'''. (the above false/null problem) | If DisableEditing is Null, then "(self.Agreement.Facilitator.DisableEditing = false)" is actually '''True'''. (the above false/null problem): | ||
self.ValidTo.notNull and | self.ValidTo.notNull and | ||
self.AddedToJournalSearch.isNull and | self.AddedToJournalSearch.isNull and | ||
not self.Agreement.Facilitator.DisableEditing | not self.Agreement.Facilitator.DisableEditing | ||
[[Category: | |||
[[Category:OCL Boolean Operators]] | |||
{{Edited|July|12|2024}} |
Latest revision as of 15:39, 10 February 2024
"Not" is the usual Not operator found in most languages.
However, there are a few things to point out when writing expressions using True, False, nullable booleans, and Not.
Avoid the Risk With Nullable Booleans
Consider xxxx.DisableEditing = false
When you think you want to use "a boolean" with = true/false, don't - it's almost never correct.
The reason is that a nullable boolean is tri-state. False, True, and Null. If an expression is xxxx.DisableEditing - that is false for BOTH False and Null.
So, almost always use "xxxx.DisableEditing" or "not xxxx.DisableEditing" (there are exceptions, but not many).
For example:
self.ValidTo.notNull and self.AddedTo.isNull and (self.Agreement.Facilitator.DisableEditing = false)
If DisableEditing is Null, then "(self.Agreement.Facilitator.DisableEditing = false)" is actually True. (the above false/null problem):
self.ValidTo.notNull and self.AddedToJournalSearch.isNull and not self.Agreement.Facilitator.DisableEditing