OCLOperators Not
(Created page with ""Not" is the usual Not operator found in most languages. But there are a few things to point out when writing expressions using True, False, nullable booleans and Not. =====...")
 
No edit summary
Line 20: Line 20:
  self.AddedToJournalSearch.isNull and
  self.AddedToJournalSearch.isNull and
  not self.Agreement.Facilitator.DisableEditing
  not self.Agreement.Facilitator.DisableEditing
[[Category:OCLOperators]]

Revision as of 13:27, 6 December 2022

"Not" is the usual Not operator found in most languages.

But 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 an 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
This page was edited 47 days ago on 02/10/2024. What links here