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
| Feld | Typ | Beschreibung |
|---|---|---|
ckEnumId | CkEnumId | Der Enum-Bezeichner |
useFlags | Boolean | Ob Werte als Bit-Flags kombiniert werden können |
isExtensible | Boolean | Ob zur Laufzeit zusätzliche Werte hinzugefügt werden können |
values | [CkEnumValue] | Die definierten Enum-Werte |
CkEnumValue
| Feld | Typ | Beschreibung |
|---|---|---|
key | Int | Numerischer Wert (in der Datenbank gespeichert) |
name | String | Anzeigename |
description | String | Beschreibung des Werts |
isExtension | Boolean | Ob es sich um eine Laufzeiterweiterung handelt |