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
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
name | String | Ja | Anzeigename der Query |
queryCkTypeId | String | Ja | Der abzufragende Entitätstyp (z. B. Industry.Energy/EnergyMeter) |
columns | [String] | Nein | Liste von Attributpfaden, die als Spalten aufgenommen werden sollen |
sorting | [SortInput] | Nein | Standard-Sortierkonfiguration |
fieldFilter | [FieldFilterInput] | Nein | Standardmäßige attributbasierte Filter |
attributeSearchFilter | AttributeSearchFilterInput | Nein | Wildcard-Suchkonfiguration |
textSearchFilter | TextSearchFilterInput | Nein | Volltextsuchkonfiguration |
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
| Feld | Typ | Beschreibung |
|---|---|---|
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.