Zum Hauptinhalt springen

Enums

Enums definieren eine feste Menge erlaubter Werte für ein Attribut. Jeder Enum-Wert hat einen numerischen Schlüssel, einen Namen und eine optionale Beschreibung.

Enums auflisten​

Alle Enums abrufen:

query getCkEnums($after: String, $first: Int, $ckModelIds: [String]) {
constructionKit {
enums(after: $after, first: $first, ckModelIds: $ckModelIds) {
totalCount
items {
ckEnumId {
fullName
semanticVersionedFullName
}
useFlags
}
}
}
}

Antwort​

{
"data": {
"constructionKit": {
"enums": {
"totalCount": 8,
"items": [
{
"ckEnumId": {
"fullName": "Industry.Energy-1.0.0/EnergyMeterState-1",
"semanticVersionedFullName": "Industry.Energy/EnergyMeterState"
},
"useFlags": false
},
{
"ckEnumId": {
"fullName": "EnergyCommunity-1.0.0/CustomerState-1",
"semanticVersionedFullName": "EnergyCommunity/CustomerState"
},
"useFlags": false
}
]
}
}
}
}

Nach Modell filtern​

Enums aus bestimmten Modellen abrufen:

query {
constructionKit {
enums(ckModelIds: ["Industry.Energy-1"]) {
totalCount
items {
ckEnumId {
fullName
}
useFlags
}
}
}
}

Enum-Details​

Detaillierte Informationen über ein bestimmtes Enum einschließlich seiner Werte abrufen:

query getCkEnumDetails($ckId: String) {
constructionKit {
enums(ckId: $ckId) {
items {
ckEnumId {
fullName
semanticVersionedFullName
}
useFlags
isExtensible
values {
key
name
description
isExtension
}
}
}
}
}

Variablen:

{
"ckId": "Industry.Energy-1.0.0/EnergyMeterState-1"
}

Antwort​

{
"data": {
"constructionKit": {
"enums": {
"items": [
{
"ckEnumId": {
"fullName": "Industry.Energy-1.0.0/EnergyMeterState-1",
"semanticVersionedFullName": "Industry.Energy/EnergyMeterState"
},
"useFlags": false,
"isExtensible": false,
"values": [
{
"key": 0,
"name": "OFF",
"description": "Meter is turned off",
"isExtension": false
},
{
"key": 1,
"name": "ON",
"description": "Meter is operational",
"isExtension": false
},
{
"key": 2,
"name": "STANDBY",
"description": "Meter is in standby mode",
"isExtension": false
},
{
"key": 3,
"name": "ERROR",
"description": "Meter has an error",
"isExtension": false
}
]
}
]
}
}
}
}

Flag-Enums​

Wenn useFlags true ist, können die Enum-Werte als Bit-Flags kombiniert werden:

query {
constructionKit {
enums(ckId: "System-1.0.3/Permissions-1") {
items {
ckEnumId {
fullName
}
useFlags
values {
key
name
description
}
}
}
}
}

Antwort​

{
"data": {
"constructionKit": {
"enums": {
"items": [
{
"ckEnumId": {
"fullName": "System-1.0.3/Permissions-1"
},
"useFlags": true,
"values": [
{ "key": 1, "name": "READ", "description": "Read permission" },
{ "key": 2, "name": "WRITE", "description": "Write permission" },
{ "key": 4, "name": "DELETE", "description": "Delete permission" },
{ "key": 8, "name": "ADMIN", "description": "Admin permission" }
]
}
]
}
}
}
}

Bei Flag-Enums repräsentiert ein Wert von 3 READ | WRITE (1 + 2).

Erweiterbare Enums​

Wenn isExtensible true ist, können zur Laufzeit zusätzliche Werte hinzugefügt werden. Erweiterte Werte haben isExtension: true:

{
"values": [
{ "key": 0, "name": "STANDARD", "description": "Standard value", "isExtension": false },
{ "key": 100, "name": "CUSTOM", "description": "Custom extension", "isExtension": true }
]
}

Enum-Felder​

CkEnum​

FeldTypBeschreibung
ckEnumIdCkEnumIdDer Enum-Bezeichner
useFlagsBooleanOb Werte als Bit-Flags kombiniert werden können
isExtensibleBooleanOb zur Laufzeit zusätzliche Werte hinzugefügt werden können
values[CkEnumValue]Die definierten Enum-Werte

CkEnumValue​

FeldTypBeschreibung
keyIntNumerischer Wert (in der Datenbank gespeichert)
nameStringAnzeigename
descriptionStringBeschreibung des Werts
isExtensionBooleanOb es sich um eine Laufzeiterweiterung handelt