Monitor Deeplink

Das BPC unterstützt die Verwendung von Deeplinks im Monitor-Modul, um einen bestimmten Monitor-Zustand wiederherzustellen. Der konfigurierte Zustand des Monitor-Moduls kann durch ein JSON-Objekt abgebildet werden und direkt an der URL angefügt werden.

Auf dieser Seite wird lediglich erläutert, wie das Zustand-JSON-Objekt aufgebaut und angefügt werden kann.
Wie der Deeplink aufgebaut wird, ist auf der Seite Routing/Deeplinks beschrieben.

Generierung des Zustand-Objekts

Es gibt zwei Möglichkeiten, ein Zustand-Objekt erzeugen zu lassen, um es nicht manuell konfigurieren zu müssen:

  • Monitor Einstellung "Navigation über Zustände" (gui_stateBrowsing) aktivieren. Dadurch kann das Zustand-Objekt direkt aus der URL heraus kopiert, ggf. modifiziert und Base64 kodiert werden, bevor der Deeplink weitergeleitet wird.

  • Teilen Plugin: Damit erhält man einen Deeplink, der den aktuellen Monitorzustand abbildet.

Aufbau der URL

Das Zustand-Objekt wird am Ende der URL hinzugefügt, nach der ID des Monitors und nach //.

Beispiel:
https://COMPANY.COM/?#&/module/monitor/my-monitor//{"state": {}}

Das Zustand-Objekt sollte Base64 kodiert werden, damit Encoding und Web-Browser Probleme vermieden werden.
https://COMPANY.COM/?#&/module/monitor/my-monitor//e3N0YXRlOiB7fX0=

Struktur des Zustand-Objekts

Das Zustand-Objekt enthält das root-Attribut state.
Das Attribut state enthält alle Informationen über den gewünschten Monitor-Zustand. Unter state sind folgende Attribute verfügbar:

  • searchQuery
    Der Wert in der Volltext-Suche.

  • activeView
    Initial anzuzeigende Ansicht.
    Wenn activeView konfiguriert wird, muss diese Ansicht auch eine Konfiguration unter views haben.

  • views
    Enthält die Zustände der Monitor-Ansichten.
    Der Zustand einer Monitor-Ansicht umfasst die Spaltenkonfiguration sowie Zustand des Stores (also Sorters und Filters).

Nachfolgend ist ein Beispiel, wie das gesamte Zustand-Objekt in der URL aussehen kann:

{
  "state": {
    "searchQuery": "foo",
    "activeView": "my-monitor_mainGrid",
    "views": {
      "my-monitor_mainGrid": {
        "columns": [
          { "id": "firstColumn", "hidden": false, "width": 200 },
          { "id": "secondColumn", "hidden": true, "width": 200 },
          { "id": "timestamp", "hidden": false, "width": 200 }
        ],
        "storeState": {
          "sorters": [
            {
              "root": null,
              "property": "timestamp",
              "direction": "DESC",
              "id": "timestamp"
            }
          ],
          "filters": [
            {
              "value": "foo",
              "property": "firstColumn",
              "columnId": "firstColumn",
              "source": "raw",
              "operator": "=*",
              "invert": false
            }
          ]
        }
      }
    }
  }
}
json

Eine minimale Konfiguration des Zustand-Objekts bildet der storeState, der auch alleine gesetzt werden kann und damit die Filter und Sorter für die aktuelle Ansicht setzt.

{
  "storeState": {
    "sorters": [
      {
        "root": null,
        "property": "timestamp",
        "direction": "DESC",
        "id": "timestamp"
      }
    ],
    "filters": [
      {
        "value": "foo",
        "property": "firstColumn",
        "columnId": "firstColumn",
        "source": "raw",
        "operator": "=*",
        "invert": false
      }
    ]
  }
}
json