🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
Enumerations
(Updated Edited template to July 12, 2025.)
No edit summary
 
(One intermediate revision by the same user not shown)
Line 6: Line 6:
The defined enumeration is a class in the model's type system.
The defined enumeration is a class in the model's type system.


For example, you can return a list of the values. This returns a collection of ImportColumn [[Tuple]]<nowiki/>s.
For example, you can return a list of the values. This returns a collection of ImportColumn [[Documentation:Tuple|Tuple]]<nowiki/>s.
  ImportColumn.allInstances
  ImportColumn.allInstances
Convert this to a list of strings for each Enum value (for example to be used in a list on screen):
Convert this to a list of strings for each Enum value (for example to be used in a list on screen):
Line 14: Line 14:
  ImportColumn.allInstances->select(ic|ic = #JournalName).asString
  ImportColumn.allInstances->select(ic|ic = #JournalName).asString


===== Get the value of an Enum [[tuple]]: =====
===== Get the value of an Enum [[Documentation:Tuple|tuple]]: =====
  (#JournalName).toString
  (#JournalName).toString
('''note: asString''' does not work on Enum tuples)
('''note: asString''' does not work on Enum tuples)


===== Checking if a collection includes a value =====
===== Checking if a collection includes a value =====
You can't use the [[OCLOperators includes|includes]] operator on collections of Enum. You have to select the value and check if you get a "hit".
You can't use the [[Documentation:OCLOperators includes|includes]] operator on collections of Enum. You have to select the value and check if you get a "hit".


This works:
This works:

Latest revision as of 05:50, 11 February 2025

This page was created by Lars.olofsson on 2020-03-23. Last edited by Stephanie on 2025-02-11.

You can edit enumerations by right-clicking on any model element in the "model content" window.

Edit enumerations menu.png

The enumeration editing window:

Defining enumerations.png

The defined enumeration is a class in the model's type system.

For example, you can return a list of the values. This returns a collection of ImportColumn Tuples.

ImportColumn.allInstances

Convert this to a list of strings for each Enum value (for example to be used in a list on screen):

ImportColumn.allInstances.asString
Select an Enum value from the list, then get the string value from that:
ImportColumn.allInstances->select(ic|ic = #JournalName).asString
Get the value of an Enum tuple:
(#JournalName).toString

(note: asString does not work on Enum tuples)

Checking if a collection includes a value

You can't use the includes operator on collections of Enum. You have to select the value and check if you get a "hit".

This works:

SysSingleton.SO.ActiveUser.UserModes->select(x|x = #Consultant)->notEmpty

This does not work: SysSingleton.SO.ActiveUser.UserModes->includes(#Consultant)

Checking the ordinal number of a enum value

MyEnum.allinstances.Indexof(someObject.SomeEnumProp)

MDriven Chat

How would you like to chat today?

Setting up your conversation


This may take a few moments