Zum Hauptinhalt springen

System Queries

Dieses Kapitel beschreibt, wie System Queries erstellt werden. Einen Überblick über System Queries und ihre Anwendungsfälle finden Sie unter System Queries.

Eine System Query erstellen​

Verwenden Sie die Mutation systemQuerys.create, um eine neue System Query zu erstellen:

mutation createQuery($entities: [SystemQueryInput]!) {
runtime {
systemQuerys {
create(entities: $entities) {
rtId
ckTypeId
name
queryCkTypeId
columns
sorting {
attributePath
sortOrder
}
fieldFilter {
attributePath
operator
comparisonValue
}
attributeSearchFilter {
attributePaths
searchValue
}
textSearchFilter {
searchValue
}
}
}
}
}

Grundlegendes Beispiel​

Erstellen Sie eine einfache Query, die Energiezähler nach Name sortiert auflistet:

{
"entities": [
{
"name": "All Energy Meters",
"queryCkTypeId": "Industry.Energy/EnergyMeter",
"columns": ["name", "voltage", "state"],
"sorting": [
{ "attributePath": "name", "sortOrder": "ASCENDING" }
]
}
]
}

Mit Feldfiltern​

Erstellen Sie eine Query, die nur aktive Energiezähler zurückgibt:

{
"entities": [
{
"name": "Active Energy Meters",
"queryCkTypeId": "Industry.Energy/EnergyMeter",
"columns": ["name", "voltage", "ampere", "power", "state"],
"sorting": [
{ "attributePath": "name", "sortOrder": "ASCENDING" }
],
"fieldFilter": [
{ "attributePath": "state", "operator": "EQUALS", "comparisonValue": "ON" }
]
}
]
}

Mit Suchfilter​

Erstellen Sie eine Query mit einer vordefinierten Attributsuche:

{
"entities": [
{
"name": "Energy Meters Search",
"queryCkTypeId": "Industry.Energy/EnergyMeter",
"columns": ["name", "description", "voltage", "state"],
"attributeSearchFilter": {
"attributePaths": ["name", "description"],
"searchValue": ""
}
}
]
}

Eingabefelder​

FeldTypErforderlichBeschreibung
nameStringJaAnzeigename der Query
queryCkTypeIdStringJaDer abzufragende Entitätstyp (z. B. Industry.Energy/EnergyMeter)
columns[String]NeinListe von Attributpfaden, die als Spalten aufgenommen werden sollen
sorting[SortInput]NeinStandard-Sortierkonfiguration
fieldFilter[FieldFilterInput]NeinStandardmäßige attributbasierte Filter
attributeSearchFilterAttributeSearchFilterInputNeinWildcard-Suchkonfiguration
textSearchFilterTextSearchFilterInputNeinVolltextsuchkonfiguration

Antwort​

Die Mutation gibt die erstellte System Query mit ihrer zugewiesenen rtId zurück:

{
"data": {
"runtime": {
"systemQuerys": {
"create": [
{
"rtId": "693c66ce464d7d9e1396cf1f",
"ckTypeId": "System/Query",
"name": "Active Energy Meters",
"queryCkTypeId": "Industry.Energy/EnergyMeter",
"columns": ["name", "voltage", "ampere", "power", "state"],
"sorting": [
{ "attributePath": "name", "sortOrder": "ASCENDING" }
],
"fieldFilter": [
{ "attributePath": "state", "operator": "EQUALS", "comparisonValue": "ON" }
]
}
]
}
}
}
}

Verwenden Sie die zurückgegebene rtId, um die Query über runtimeQuery(rtId: "...") auszuführen.


Daten über eine System Query erstellen​

System Queries können auch verwendet werden, um neue Entitäten zu erstellen. Dies ist nützlich, wenn Sie Daten in einem tabellarischen Format hinzufügen möchten (z. B. aus Excel oder einem Datenraster).

mutation createQueryData($queryRtId: OctoObjectId!, $entities: [RtQueryRowInput!]!) {
runtime {
runtimeQuery(rtId: $queryRtId) {
create(entities: $entities) {
rtId
ckTypeId
rtWellKnownName
rtVersion
cells {
items {
attributePath
value
}
}
}
}
}
}

Variablen:

{
"queryRtId": "693c66ce464d7d9e1396cf1f",
"entities": [
{
"cells": [
{ "attributePath": "contact.firstName", "value": "John" },
{ "attributePath": "contact.lastName", "value": "Doe" },
{ "attributePath": "contact.address.street", "value": "Main Street 1" },
{ "attributePath": "contact.address.cityTown", "value": "Berlin" }
]
}
]
}

Struktur von RtQueryRowInput​

FeldTypBeschreibung
cells[RtQueryCellInput!]Liste der zu setzenden Zellen (Attributpfad und Wert)

Antwort​

Die Mutation gibt die erstellten Zeilen mit ihrer zugewiesenen rtId und ihren Zellwerten zurück:

{
"data": {
"runtime": {
"runtimeQuery": {
"create": [
{
"rtId": "693c51af464d7d9e1396cf20",
"ckTypeId": "EnergyCommunity/Customer",
"rtWellKnownName": null,
"rtVersion": 1,
"cells": {
"items": [
{ "attributePath": "contact.firstName", "value": "John" },
{ "attributePath": "contact.lastName", "value": "Doe" },
{ "attributePath": "contact.address.street", "value": "Main Street 1" },
{ "attributePath": "contact.address.cityTown", "value": "Berlin" }
]
}
}
]
}
}
}
}

Dieser Ansatz erlaubt es Werkzeugen wie Office-Add-ins, neue Entitäten mit derselben tabellarischen Struktur zu erstellen wie beim Lesen von Daten über die System Query.