Gebäudekachel-Erweiterungen

Ab Looker 24.0 können Erweiterungen entwickelt werden, die in einer Kachel in Dashboards ausgeführt werden. Erweiterungen, die die Ausführung als Kachel oder Visualisierung unterstützen, können hinzugefügt werden, während sich das Dashboard im Bearbeitungsmodus befindet, oder als Visualisierung aus einem Explore in einem Dashboard gespeichert. Erweiterungen können auch als Tiles in LookML-Dashboards konfiguriert werden.

Es sind Beispiele für Erweiterungen verfügbar, die als Dashboard-Kacheln verwendet werden können:

Looker-Erweiterungs-SDK mit Kachelerweiterungen verwenden

Für Kachelnerweiterungen muss der Parameter mount_points in der LookML-Manifestdatei des Projekts definiert sein, damit die Erweiterungen als Kacheln in ein Dashboard geladen werden können. Es gibt zwei Arten von mount_points im Zusammenhang mit Erweiterungen für Ansichten:

  mount_points: {
    dashboard_vis: yes
    dashboard_tile: yes
    standalone: yes
  }
  • dashboard_vis – Wenn diese Option aktiviert ist, wird die Erweiterung in den Visualisierungsoptionen eines Explore angezeigt. Dort kann sie als Visualisierung ausgewählt und als Dashboard-Kachel gespeichert werden. Wenn das Dashboard ausgeführt wird, führt das Dashboard die mit der Tile verknüpfte Abfrage aus und stellt die Daten der Erweiterung zur Verfügung. Das funktioniert ähnlich wie bei benutzerdefinierten Visualisierungen. Der Hauptunterschied zwischen einer benutzerdefinierten Visualisierung und einer Erweiterung, die in einer Dashboard-Kachel ausgeführt wird, für die dashboard_vis aktiviert ist, besteht darin, dass die Erweiterung Looker API-Aufrufe ausführen kann.
  • dashboard_tile – Wenn diese Option aktiviert ist, wird die Erweiterung im Bereich Erweiterungen angezeigt, der eingeblendet wird, wenn ein Nutzer ein Dashboard bearbeitet und die Option Erweiterungen auswählt, nachdem er auf die Schaltfläche Hinzufügen geklickt hat. Diese Art von Erweiterung ist für den Abruf ihrer eigenen Daten verantwortlich, anstatt die Kachelanfrage automatisch mit Daten zu versorgen.

Durch einen zusätzlichen Bereitstellungspunkt, standalone, wird die Erweiterung im Looker-Hauptmenü im Bereich Anwendungen angezeigt. Für eine Erweiterung können mehrere Bereitstellungspunkte definiert werden. Während der Laufzeit wird die Erweiterung darüber informiert, wie sie bereitgestellt wird, und sie kann ihr Verhalten entsprechend anpassen. So muss beispielsweise standalone-Erweiterungen im Gegensatz zu Kachelerweiterungen eine eigene Höhe festlegen.

Zusätzliche APIs der Tile-Erweiterung

Kachelerweiterungen werden zur Laufzeit mit zusätzlichen APIs und Daten bereitgestellt. Diese werden aus dem Erweiterungskontext abgerufen:

const {
  tileSDK,
  tileHostData,
  visualizationData,
  visualizationSDK,
} = useContext(ExtensionContext40)
  • tileSDK: Bietet kachelspezifische Funktionen, mit denen die Erweiterung mit dem Looker-Dashboard-Host interagieren kann. So können Sie beispielsweise festlegen, dass die Erweiterung Fehlermeldungen anzeigen und löschen darf.
  • tileHostData: Stellt der Erweiterung Kacheldaten zur Verfügung. Die Daten werden automatisch anhand von Interaktionen mit dem Hosting-Dashboard aktualisiert. Ein Beispiel ist der Indikator isDashboardEditing.
  • visualizationSDK: bietet visualisierungsspezifische Funktionen, die es der Erweiterung ermöglichen, mit dem Looker-Dashboardhost zu interagieren. Ein Beispiel ist die updateRowLimit-Funktion.
  • visualizationData: stellt der Erweiterung Visualisierungsdaten bereit. Die Daten werden automatisch anhand von Interaktionen mit dem Hosting-Dashboard aktualisiert. Die Daten ähneln denen, die für benutzerdefinierte Visualisierungen verwendet werden.

Reaktive Erweiterungen erstellen

Die Größe der iFrames, in denen Erweiterungen ausgeführt werden, wird automatisch angepasst, wenn sich die Größe des übergeordneten Looker-Hostfensters ändert. Dies wird automatisch im iFrame-Inhaltsfenster angezeigt. Die Iframe-Komponente hat keinen Abstand oder Rand. Daher muss die Erweiterung eigene Abstände und Ränder festlegen, damit sie mit der Looker-Anwendung übereinstimmt. Bei eigenständigen Erweiterungen wird die Höhe von der Erweiterung selbst gesteuert. Bei Erweiterungen, die in Dashboard-Tiles oder Explore-Visualisierungen ausgeführt werden, wird das iFrame-Inhaltsfenster automatisch auf die Höhe gesetzt, die der iFrame zur Verfügung stellt.

Hinweise zum Rendern

Beachten Sie, dass Kachelerweiterungen beim Herunterladen eines Dashboards als PDF oder Bild gerendert werden. Der Renderer erwartet, dass die Kachel ihn benachrichtigt, wenn das Rendern abgeschlossen ist. Andernfalls reagiert der Renderer nicht mehr. Im Folgenden finden Sie ein Beispiel dafür, wie der Renderer darüber informiert wird, dass die Kachel gerendert wurde.

  const { extensionSDK } = useContext(ExtensionContext40)

  useEffect(() => {
    extensionSDK.rendered()
  }, [])

Animationen sollten auch beim Rendern deaktiviert werden. Im folgenden Beispiel werden die Animationskonfigurationen beim Rendern deaktiviert:

  const { lookerHostData} = useContext(ExtensionContext40)
  const isRendering = lookerHostData?.isRendering

  const config = isRendering
    ? {
        ...visConfig,
        valueCountUp: false,
        waveAnimateTime: 0,
        waveRiseTime: 0,
        waveAnimate: false,
        waveRise: false,
      }
    : visConfig

  if (mountPoint === MountPoint.dashboardVisualization) {
    return <VisualizationTile config={config} />
  }

Funktionen und Eigenschaften des Tile SDK

Das Kachel-SDK bietet Funktionen, mit denen eine Kachelerweiterung mit dem Hosting-Dashboard interagieren kann.

Die verfügbaren Funktionen und Eigenschaften sind in der folgenden Tabelle aufgeführt:

Funktion oder Property Beschreibung
tileHostData (Property) Hosten Sie Daten, die für die Kachelerweiterung spezifisch sind. Weitere Informationen finden Sie im Abschnitt Tile SDK-Daten.
addError Beim Aufrufen wird im Dashboard oder Explore unter der Visualisierung eine Fehlermeldung angezeigt.
clearError Wenn das Dashboard oder Explore aufgerufen wird, werden alle Fehlermeldungen unter der Visualisierung ausgeblendet.
openDrillMenu Bei Visualisierungserweiterungen wird durch diesen Aufruf ein Drilldown-Menü geöffnet. Dieser Aufruf wird ignoriert, wenn die Erweiterung keine Visualisierung der Kachelerweiterung ist.
runDashboard Führt das aktuelle Dashboard aus. Dieser Aufruf wird von einer Kachelvisualisierungserweiterung ignoriert, die in einem Explore ausgeführt wird.
stopDashboard Beendet ein laufendes Dashboard. Dieser Aufruf wird von einer Erweiterung für die Ansicht mit Kacheln ignoriert, die in einem Explore ausgeführt wird.
updateFilters Aktualisiert die Filter im aktuellen Dashboard oder Explore.
openScheduleDialog Öffnet das Dialogfeld für den Zeitplan. Dieser Aufruf wird bei der Ausführung in einem Explore ignoriert.
toggleCrossFilter Schaltet Kreuzfilter ein und aus. Dieser Aufruf wird ignoriert, wenn er in einem Explore ausgeführt wird.

Tile SDK-Daten

Die verfügbaren Kachel-SDK-Dateneigenschaften sind in der folgenden Tabelle aufgeführt:

Attribut Beschreibung
isExploring Wenn „true“ festgelegt ist, wird die Kachel als Visualisierung in einem Explore konfiguriert.
dashboardId Die Dashboard-ID der Kachel, die gerendert wird. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt.
elementId Die Element-ID der gerenderten Kachel. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt.
queryId Die Abfrage-ID der gerenderten Kachel, sofern sie mit einer Visualisierung verknüpft ist. Wenn die Kachel als Explore konfiguriert wird, wird diese Eigenschaft nicht ausgefüllt.

Die queryId ist die ID der Abfrage, die erstellt wird, wenn die Visualisierung in das Looker-Explore eingebunden ist. Es enthält keine Filter oder Kreuzfilterung, die auf das Dashboard angewendet werden können. Damit die in der QueryResponse angezeigten Daten berücksichtigt werden, müssen Filter und Kreuzfilter angewendet und eine neue Abfrage generiert werden. Daher gibt es möglicherweise nützlichere Attribute als queryId. Unter filteredQuery finden Sie ein Abfrageobjekt mit angewendeten Filtern.
querySlug Der Slug der Abfrage der gerenderten Kachel, wenn sie mit einer Visualisierung verknüpft ist. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt.

querySlug ist ein Slug der Abfrage, der erstellt wird, wenn die Visualisierung in den Looker-Explore eingebettet wird. Es enthält keine Filter oder Kreuzfilterung, die auf das Dashboard angewendet werden. Damit die in QueryResponse angezeigten Daten widergespiegelt werden, müssen Filter und Kreuzfilter angewendet und eine neue Abfrage generiert werden. Daher gibt es möglicherweise nützlichere Attribute als querySlug. Unter filteredQuery finden Sie ein Abfrageobjekt mit angewendeten Filtern.
dashboardFilters Die Filter, die auf das Dashboard angewendet werden. Wenn die Kachel als Explore konfiguriert wird, wird diese Eigenschaft nicht ausgefüllt.
dashboardRunState Gibt an, ob das Dashboard ausgeführt wird. Wenn die Kachel als Explore konfiguriert wird, lautet der Status UNKNOWN.

Aus Gründen der Dashboard-Leistung wird der Laufstatus möglicherweise nie als „Aktiv“ angezeigt. Dies geschieht im Allgemeinen, wenn einer Abfrage keine anderen Tiles zugeordnet sind, einschließlich der Tiles, mit der die Erweiterung verknüpft ist. Wenn die Erweiterung sicher sein muss, dass ein Dashboard ausgeführt wurde, ist es zuverlässig, Unterschiede im lastRunStartTime zu erkennen.
isDashboardEditing Ist dieser Wert auf „true“ gesetzt, wird das Dashboard bearbeitet. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt.
isDashboardCrossFilteringEnabled Wenn „wahr“ festgelegt ist, ist die Kreuzfilterung im Dashboard aktiviert. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt.
filteredQuery Ein Abfrageobjekt, das mit der Abfrage-ID übereinstimmt, die dem zugrunde liegenden Dashboard-Element zugeordnet ist. Auf dieses Objekt werden alle Dashboardfilter und Zeitzonenänderungen angewendet, die auf Dashboardebene vorgenommen werden.
lastRunSourceElementId Die ID des Kachelerweiterungselements, das die letzte Dashboard-Ausführung ausgelöst hat. Die ID ist nicht definiert, wenn die Dashboardausführung über die Schaltfläche Ausführen oder die autorefresh des Dashboards ausgelöst wurde oder wenn die Ausführung mit dem eingebetteten SDK ausgelöst wurde. Wenn die Kachel als Explore konfiguriert wird, wird diese Eigenschaft nicht ausgefüllt.

Hinweis: lastRunSourceElementId kann mit der Element-ID der aktuellen Erweiterungs-Instanz übereinstimmen. Wenn die Erweiterung beispielsweise eine Dashboard-Ausführung auslöst, wird sie benachrichtigt, wenn die Ausführung des Dashboards beginnt und endet.
lastRunStartTime Gibt den Beginn der letzten Dashboardausführung an. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt.

Die angegebenen Start- und Endzeiten sollten nicht für die Erfassung von Leistungsmesswerten verwendet werden.
lastRunEndTime Gibt die Endzeit der letzten Dashboard-Ausführung an. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt. Wenn die Kachel ausgeführt wird, wird diese Eigenschaft nicht ausgefüllt.

Der Beginn und das Ende im Bericht sollten nicht zur Erfassung von Leistungsmesswerten verwendet werden.
lastRunSuccess Gibt an, ob die letzte Ausführung des Dashboards erfolgreich war. Wenn die Kachel als Explore konfiguriert wird, wird diese Eigenschaft nicht ausgefüllt. Wenn die Kachel ausgeführt wird, wird diese Property nicht ausgefüllt.

Funktionen und Eigenschaften des Visualisierungs-SDK

Die verfügbaren Funktionen und Eigenschaften des Visualisierungs-SDKs sind in der folgenden Tabelle aufgeführt:

Funktion oder Eigenschaft Beschreibung
visualizationData (Property) Visualisierung (Kombination aus visConfig- und queryResponse-Daten).
visConfig (Property) Daten zur Visualisierungskonfiguration:

  • Konfigurationen messen
  • Dimensionskonfigurationen
  • Tabellenkalkulationen
  • Pivot-Konfigurationen
  • Visualisierungskonfigurationen

Mit diesen Einstellungen können Sie das Erscheinungsbild einer Visualisierung in einem Explore anpassen.
queryResponse (property) Antwortdaten aus der Abfrage
configureVisualization Legt die Standardkonfiguration für eine Erweiterungsvisualisierung fest. Die Konfiguration wird im Visualisierungseditor des Explores gerendert. Dies sollte nur einmal aufgerufen werden.
setVisConfig Aktualisiert die Visualisierungskonfiguration.
updateRowLimit Aktualisiert das Zeilenlimit der Abfrage.

Daten des Visualisierungs-SDK

Das Visualisierungs-SDK besteht aus folgenden Elementen:

  • Konfigurationsdaten für Visualisierungen
  • Abfrageantwortdaten

Konfigurationsdaten für Visualisierungen

Attribut Beschreibung
queryFieldMeasures Informationen zur Messung
queryFieldDimensions Dimensionsinformationen
queryFieldTableCalculations Informationen zu Tabellenkalkulationen
queryFieldPivots Pivot-Informationen
visConfig Daten zur visuellen Konfiguration Diese sollte mit der Standardkonfiguration zusammengeführt und auf die von der Erweiterung gerenderte Visualisierung angewendet werden.
export interface VisualizationConfig {
  queryFieldMeasures: Measure[]
  queryFieldDimensions: Dimension[]
  queryFieldTableCalculations: TableCalculation[]
  queryFieldPivots: PivotConfig[]
  visConfig: RawVisConfig
}

Antwortdaten abfragen

Attribut Beschreibung
data Array mit Zeilendaten
fieldMeasures Informationen zu Feldmesswerten.
fieldDimensions Informationen zur Felddimension.
fieldTableCalculations Informationen zu Tabellenkalkulationen für Felder.
fieldPivots Pivot-Informationen für Felder.
fieldMeasureLike Ein verkettetes Array von Feldmesswertinformationen und Tabellenkalkulationen, die sich wie Messwerte verhalten.
fieldDimensionLike Ein verkettetes Array mit Informationen zu Felddimensionen und Tabellenkalkulationen, die sich wie Dimensionen verhalten.