Gebäudekachel-Erweiterungen

Ab Looker 24.0 können Erweiterungen so entwickelt werden, dass sie in einem Tile in Dashboards ausgeführt werden. Erweiterungen, die als Tile oder Visualisierung ausgeführt werden können, können hinzugefügt werden, während sich das Dashboard im Bearbeitungsmodus befindet. Sie können auch als Visualisierung aus einem Explore in einem Dashboard gespeichert werden. Erweiterungen können auch als Tiles in LookML-Dashboards konfiguriert werden.

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

  • Die Erweiterung für die Tile-Visualisierung zeigt, wie Sie mit dem Erweiterungs-Framework eine benutzerdefinierte Visualisierung erstellen.
  • Die Erweiterung für das Tile-SDK zeigt die verfügbaren API-Methoden, die speziell für Tile-Erweiterungen gelten.

Looker Extension SDK mit Tile-Erweiterungen verwenden

Für Tile-Erweiterungen muss der mount_points Parameter in der Manifestdatei des LookML-Projekts definiert sein, damit Erweiterungen als Tiles in ein Dashboard geladen werden können. Es gibt zwei Arten von mount_points für Tile-Erweiterungen:

  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-Tile gespeichert werden. Wenn das Dashboard ausgeführt wird, wird die mit dem Tile verknüpfte Abfrage ausgeführt und die Daten werden der Erweiterung zur Verfügung gestellt. Das funktioniert ähnlich wie bei benutzerdefinierten Visualisierungen. Der Hauptunterschied zwischen einer benutzerdefinierten Visualisierung und einer Erweiterung, die in einem Dashboard-Tile mit aktivierter Option dashboard_vis ausgeführt wird, besteht darin, dass die Erweiterung Looker API-Aufrufe ausführen kann.
  • dashboard_tile — Wenn diese Option aktiviert ist, wird die Erweiterung im Erweiterungen Bereich angezeigt, der eingeblendet wird, wenn ein Nutzer ein Dashboard bearbeitet und nach dem Klicken auf die Schaltbare Hinzufügen die Option Erweiterungen auswählt. Diese Art von Erweiterung ruft ihre eigenen Daten ab, anstatt dass die Tile-Abfrage die Erweiterung automatisch mit Daten versorgt.

Ein zusätzlicher Bereitstellungspunkt, standalone, bewirkt, dass die Erweiterung im Hauptmenü von Looker unter Anwendungen angezeigt wird. Für eine Erweiterung können mehrere Mount-Points definiert sein. Zur Laufzeit wird die Erweiterung darüber informiert, wie sie eingebunden ist, und sie kann ihr Verhalten entsprechend anpassen. Beispielsweise müssen standalone Erweiterungen ihre eigene Höhe festlegen, Tile-Erweiterungen jedoch nicht.

Zusätzliche APIs für Tile-Erweiterungen

Tile-Erweiterungen 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 Tile-spezifische Funktionen, mit denen die Erweiterung mit dem Looker-Dashboard-Host interagieren kann. Beispielsweise kann die Erweiterung so Fehlermeldungen anzeigen und löschen.
  • tileHostData: Stellt der Erweiterung Tile-Daten zur Verfügung. Die Daten werden automatisch basierend auf Interaktionen mit dem Hosting-Dashboard aktualisiert. Ein Beispiel ist der Indikator isDashboardEditing.
  • visualizationSDK: Bietet Visualisierungs-spezifische Funktionen, mit denen die Erweiterung mit dem Looker-Dashboard-Host interagieren kann. Ein Beispiel ist die Funktion updateRowLimit.
  • visualizationData: Stellt der Erweiterung Visualisierungsdaten zur Verfügung. Die Daten werden automatisch basierend auf Interaktionen mit dem Hosting-Dashboard aktualisiert. Die Daten ähneln den Daten, die für benutzerdefinierte Visualisierungen bereitgestellt werden.

Reaktive Erweiterungen erstellen

Die IFrames, in denen Erweiterungen ausgeführt werden, werden automatisch angepasst, wenn die Größe des übergeordneten Looker-Hostfensters geändert wird. Dies wird automatisch im Fenster mit den IFrame-Inhalten widergespiegelt. Die IFrame-Komponente hat keinen Innen- oder Außenabstand. Daher muss die Erweiterung ihren eigenen Innen- und Außenabstand bereitstellen, damit sie mit der Looker-Anwendung übereinstimmt. Bei eigenständigen Erweiterungen muss die Erweiterung die Höhe selbst steuern. Bei Erweiterungen, die in Dashboard-Tiles oder Explore-Visualisierungen ausgeführt werden, wird die Höhe des Fensters mit den IFrame-Inhalten automatisch auf die Höhe festgelegt, die vom IFrame zur Verfügung gestellt wird.

Überlegungen zum Rendering

Tile-Erweiterungen werden gerendert, wenn ein Dashboard als PDF oder Bild heruntergeladen wird. Der Renderer erwartet, dass das Tile ihn benachrichtigt, wenn das Rendering abgeschlossen ist. Wenn dies nicht geschieht, reagiert der Renderer nicht mehr. Im Folgenden sehen Sie ein Beispiel dafür, wie Sie den Renderer benachrichtigen, dass das Tile gerendert wurde.

  const { extensionSDK } = useContext(ExtensionContext40)

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

Animationen sollten beim Rendering ebenfalls deaktiviert werden. Im folgenden Beispiel werden die Animationskonfigurationen beim Rendering 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 Attribute des Tile-SDK

Das Tile-SDK bietet Funktionen, mit denen eine Tile-Erweiterung mit dem Hosting-Dashboard interagieren kann.

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

Funktion oder Attribut Beschreibung
tileHostData (Attribut) Hostdaten, die spezifisch für die Tile-Erweiterung sind. Weitere Informationen finden Sie im Abschnitt Tile-SDK-Daten.
addError Wenn diese Funktion aufgerufen wird, wird im Dashboard oder Explore unter der Visualisierung eine Fehlermeldung angezeigt.
clearError Wenn diese Funktion aufgerufen wird, werden im Dashboard oder Explore alle Fehlermeldungen unter der Visualisierung ausgeblendet.
openDrillMenu Bei Visualisierungserweiterungen wird mit diesem Aufruf ein Drill-Menü geöffnet. Dieser Aufruf wird ignoriert, wenn die Erweiterung keine Tile-Erweiterungsvisualisierung ist.
runDashboard Führt das aktuelle Dashboard aus. Dieser Aufruf wird von einer Tile-Visualisierungserweiterung, die in einem Explore ausgeführt wird, ignoriert.
stopDashboard Beendet ein laufendes Dashboard. Dieser Aufruf wird von einer Tile-Visualisierungserweiterung, die in einem Explore ausgeführt wird, ignoriert.
updateFilters Aktualisiert Filter im aktuellen Dashboard oder Explore.
openScheduleDialog Öffnet das Dialogfeld „Zeitplan“. Dieser Aufruf wird ignoriert, wenn er in einem Explore ausgeführt wird.
toggleCrossFilter Schaltet Kreuzfilter ein oder aus. Dieser Aufruf wird ignoriert, wenn er in einem Explore ausgeführt wird.

Tile-SDK-Daten

Die verfügbaren Attribute für Tile-SDK-Daten sind in der folgenden Tabelle aufgeführt:

Attribut Beschreibung
isExploring Wenn „true“, gibt an, dass das Tile als Visualisierung in einem Explore konfiguriert wird.
dashboardId Die Dashboard-ID des Tiles, das gerendert wird. Wenn das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt.
elementId Die Element-ID des Tiles, das gerendert wird. Wenn das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt.
queryId Die Abfrage-ID des Tiles, das gerendert wird, wenn es mit einer Visualisierung verknüpft ist. Wenn das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt.

queryId ist die ID der Abfrage, die erstellt wird, wenn die Visualisierung in Looker Explore erstellt wird. Sie enthält keine Filter oder Kreuzfilter, die auf das Dashboard angewendet werden sollen. Damit die in der 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 queryId. Unter filteredQuery finden Sie ein Abfrageobjekt mit angewendeten Filtern.
querySlug Der Abfrage-Slug des Tiles, das gerendert wird, wenn es mit einer Visualisierung verknüpft ist. Wenn das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt.

querySlug ist ein Slug der Abfrage, die erstellt wird, wenn die Visualisierung in Looker Explore erstellt wird. Sie enthält keine Filter oder Kreuzfilter, die auf das Dashboard angewendet werden. Damit die in der 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 das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt.
dashboardRunState Gibt an, ob das Dashboard ausgeführt wird. Wenn das Tile als Explore konfiguriert wird, ist der Status UNKNOWN.

Aus Gründen der Dashboard-Leistung wird der Ausführungsstatus möglicherweise nie als „running“ angezeigt. Das ist in der Regel der Fall, wenn keine anderen Tiles mit einer Abfrage verknüpft sind, einschließlich des Tiles, mit dem die Erweiterung verknüpft ist. Wenn die Erweiterung sicher wissen muss, dass ein Dashboard ausgeführt wurde, ist das Erkennen von Unterschieden in lastRunStartTime die zuverlässige Methode.
isDashboardEditing Wenn „true“, wird das Dashboard bearbeitet. Wenn das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt.
isDashboardCrossFilteringEnabled Wenn „true“, ist die Kreuzfilterung im Dashboard aktiviert. Wenn das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt.
filteredQuery Ein Abfrageobjekt, das mit der Abfrage-ID übereinstimmt, die mit dem zugrunde liegenden Dashboard-Element verknüpft ist. Es wendet alle Dashboard-Filter und Zeitzonenänderungen an, die auf Dashboard-Ebene vorgenommen wurden.
lastRunSourceElementId Die ID des Tile-Erweiterungselements, das die letzte Dashboard-Ausführung ausgelöst hat. Die ID ist nicht definiert, wenn die Dashboard-Ausführung durch die Schaltfläche Ausführen oder die automatische Aktualisierung ausgelöst wurde oder wenn die Ausführung mit dem Embed SDK ausgelöst wurde. Wenn das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt.

Beachten Sie, dass lastRunSourceElementId mit der Element-ID der aktuellen Erweiterungsinstanz identisch sein kann. Wenn die Erweiterung beispielsweise eine Dashboard-Ausführung auslöst, wird sie benachrichtigt, wenn die Dashboard-Ausführung gestartet und beendet wird.
lastRunStartTime Gibt die Startzeit der letzten Dashboard-Ausführung an. Wenn das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt.

Die gemeldeten Start- und Endzeiten sollten nicht zum Erfassen von Leistungsmesswerten verwendet werden.
lastRunEndTime Gibt die Endzeit der letzten Dashboard-Ausführung an. Wenn das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt. Wenn das Tile ausgeführt wird, wird dieses Attribut nicht ausgefüllt.

Die gemeldeten Start- und Endzeiten sollten nicht zum Erfassen von Leistungsmesswerten verwendet werden.
lastRunSuccess Gibt an, ob die letzte Dashboard-Ausführung erfolgreich war. Wenn das Tile als Explore konfiguriert wird, wird dieses Attribut nicht ausgefüllt. Wenn das Tile ausgeführt wird, wird dieses Attribut nicht ausgefüllt.

Funktionen und Attribute des Visualisierungs-SDK

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

Funktion oder Attribut Beschreibung
visualizationData (Attribut) Visualisierung (Kombination aus visConfig\- und queryResponse-Daten).
visConfig (Attribut) Visualisierungskonfigurationsdaten:

  • Messwertkonfigurationen
  • Dimensionskonfigurationen
  • Tabellenkalkulationen
  • Pivot-Konfigurationen
  • Visualisierungskonfigurationen

Diese werden verwendet, um das Erscheinungsbild einer Visualisierung in einem Explore anzupassen.
queryResponse (Attribut) Antwortdaten aus der Abfrage
configureVisualization Legt die Standardkonfiguration für eine Erweiterungsvisualisierung fest. Die Konfiguration wird im Visualisierungseditor von Explore gerendert. Diese Funktion sollte nur einmal aufgerufen werden.
setVisConfig Aktualisiert die Visualisierungskonfiguration.
updateRowLimit Aktualisiert das Zeilenlimit der Abfrage.

Visualisierungs-SDK-Daten

Das Visualisierungs-SDK besteht aus folgenden Komponenten:

  • Visualisierungskonfigurationsdaten
  • Daten zur Abfrageantwort

Visualisierungskonfigurationsdaten

Attribut Beschreibung
queryFieldMeasures Messwertinformationen
queryFieldDimensions Dimensionsinformationen
queryFieldTableCalculations Informationen zu Tabellenkalkulationen
queryFieldPivots Pivot-Informationen
visConfig Daten zur visuellen Konfiguration. Diese sollten 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
}

Daten zur Abfrageantwort

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

Embed SDK verwenden

Die Verwendung des Embed SDK in einer Tile-Erweiterung wird aus folgenden Gründen nicht empfohlen:

  • Es ist möglich, dass die Erweiterung ein Dashboard rendert, in dem die Erweiterung ein Tile ist. Das Erweiterungs-Framework kann dies nicht erkennen und der Browser kann abstürzen.
  • Das PDF-Rendering von eingebetteten Inhalten in einer Tile-Erweiterung funktioniert nicht.