Skip to main content

Das Tabellen-Widget

Das Tabellen-Widget dient der Anzeige individueller Objekttabellen. Tabellen-Widgets sind beispielsweise die Ticketlisten im Home Dashboard oder die Widgets Empfohlene FAQ, Tickets zu Assets, Zugeordnete Assets und Tickets zu Kontakt in der rechten Seitenleiste der Ticketdetailansicht.

table-widget_beispiel.png

Abb.: Das Widget "Tickets zu Kontakt" als Beispiel für ein Tabellen-Widget

Die Werte in einem Tabellen-Widget resultieren immer auf einer konfigurierten Suche. Das Ergebnis dieser Suche wird in der im Widget konfigurierten Tabelle angezeigt.

Die Konfiguration des Widgets ist wie folgt strukturiert:

  • Widget Configuration

    • TableWidget Configuration

      • Table Configuration

        • Optional: Loading Options

        • TableColumns Configuration

Die Widget Configuration definiert das Widget im Allgemeinen. Sie bildet quasi den äußeren Rahmen und enthält Informationen darüber, welche Komponente im Widget angezeigt werden soll (Tabelle oder Objekt-Informationen). Sie enthält zudem die Konfiguration des Tabellenwidgets (TableWidget Configuration)

{
  "id": "my-ticket-list-widget",
  "name": "My Ticket List Widget",
  "type": "Widget",
  "widgetId": "table-widget",
  "title": "My Ticket List",
  "actions": [
    "bulk-action",
    "csv-export-action"
  ],
  "subConfigurationDefinition": null,
  "configuration": { TableWidgetConfiguration },
  "minimized": false,
  "minimizable": true,
  "icon": "kix-icon-ticket",
  "contextDependent": false,
  "contextObjectDependent": false,
  "formDependent": false,
  "formDependencyProperties": [],
  "valid": true,
  "application": "agent-portal",
  "roleIds": []
}

Attribut (Auswahl)

Beschreibung

type

Definiert den Konfigurationstyp

Hier: Widget

widgetId

Definiert die UI-Komponente, welche im Widget angezeigt werden soll.

Hier: table-widget

configuration

Enthält die konkrete Konfiguration für das Widget.

Hier: die TableWidget Configuration, also die konkrete Konfiguration für ein Tabellen-Widget.

minimized

Legt fest, ob das Widget initial minimiert ist (true | false)

minimizable

Definiert, ob das Widget durch den Nutzer minimiert werden kann (true | false)

icon

Definiert ein Icon für das Widget

Zum Beispiel: kix-icon-ticket

roleIds

Optional: Liste der Berechtigungsrollen (IDs)

Wenn Berechtigungsrollen angegeben sind, muss der aufrufende Benutzer mindestens einer dieser Rollen zugewiesen sein, um das Widget sehen zu können.

s. auch: Berechtigungen für Konfigurationen festlegen

In der TableWidget Configuration ist die konkrete Konfiguration für das Tabellen-Widget definiert.

Die TableWidget Configuration kann optional im Parameter configuration eine TableConfiguration erhalten. Ist diese nicht angegeben, so wird der KIX Standard für den definierten Objekttyp verwendet.

In der TableWidgetConfiguration muss der type auf den Wert TableWidget gesetzt werden.

Mittels objectType wird festgelegt, welche Art von Objekte in der Tabelle geladen und angezeigt werden (Ticket, FAQ, ConfigItem, Contact, Organisation).

{
  "id": "my-ticket-list-table-widget",
  "name": "My Ticket List Table Widget",
  "type": "TableWidget",
  "objectType": "Ticket",
  "sort": null,
  "subConfigurationDefinition": null,
  "configuration": { Table Configuration },
  "headerComponents": null,
  "showFilter": true,
  "shortTable": false,
  "predefinedTableFilters": [],
  "cache": true,
  "resetFilterOnReload": true
}

Attribut (Auswahl)

Beschreibung

id

Eindeutige ID innerhalb der Konfiguration

name

Übersetzbarer Name des Widgets

Definiert den Titel im Tabellenkopf

Wird dem Titel das Präfix Translatable# vorangestellt, kann KIX den Titel übersetzen.

Beispiel: Translatable#My Ticket List Table Widget

type

Definiert den Konfigurationstyp

Muss für ein Tabellen-Widget auf TableWidget gesetzt sein.

objectType

Legt fest, welche Art von Objekten in der Tabelle geladen und angezeigt werden (Ticket, FAQ, ConfigItem, Contact, Organisation).

Sie können Abhängigkeiten definieren, sodass die Konfiguration nur auf ausgewählte Objekte angewendet wird. Zum Beispiel, wenn die Konfiguration nur für die Assetklasse Computer gilt. Fügen Sie dazu dem Objekttyp die ID des abhängigen Objekts an (z. B.: ConfigItem.4). Ist keine ID angegeben, gilt die Konfiguration für alle Objekte der gewählten Objektart.

sort

Initiale Sortierung der Tabelle

Beispiel (aufsteigend nach Alter): Age,Up

subConfigurationDefinition

Optionale Sub-Konfiguration

configuration

Enthält die spezifische Konfiguration der Tabelle im Widget (Table Configuration)

headerComponents

Zusätzliche Komponenten für den Widget Header

showFilter

Legt fest, ob im Header des Widgets der Filter (Trichter-Icon) angezeigt werden soll (true | false)

predefinedTableFilters

Optional: Vordefinierte Filter, die im Dropdown des Headers zur Auswahl stehen.

vordefinierte-objekte.png

Abb.: Vordefinierte Filter im Ticket Dashboard

roleIds

Optional: Liste der Berechtigungsrollen (IDs)

Wenn Berechtigungsrollen angegeben sind, muss der aufrufende Benutzer mindestens einer dieser Rollen zugewiesen sein, um die Tabelle sehen zu können.

Die Table Configuration enthält die spezifische Konfiguration der Tabelle im Widget. Die Konfiguration definiert das zu referenzierende Objekt, die Tabelleneigenschaften und das Verhalten der Tabelle.

Sie enthält zudem einen Konfigurationsblock, in dem der Tabelleninhalt (anzuzeigende Tabellenspalten nebst Eigenschaften, Filter und Ladeoptionen) festgelegt werden (Codeblock tableConfiguration{...}).

Sollte die Konfiguration entfernt werden, wird vom Backend eine Standardtabelle für den angegebenen objectType verwendet.

{
  "id": "home-dashboard-ticket-table-new",
  "name": "Translatable#New Tickets Table",
  "type": "Table",
  "objectType": "Ticket",
  "loadingOptions": {
    "filter": [
      {
        "property": "StateID",
        "operator": "EQ",
        "type": "NUMERIC",
        "filterType": "AND",
        "value": 1
      }
    ],
    "sortOrder": "Ticket.-CreateTime:datetime",
    "limit": 10,
    "includes": [],
    "expands": [],
    "query": [],
    "searchLimit": 100
  },
  "displayLimit": 10,
  "tableColumns": [   
    {
      "id": null,
      "name": null,
      "type": null,
      "property": "PriorityID",
      "showText": false,
      "showIcon": true,
      "showColumnTitle": true,
      "showColumnIcon": false,
      "size": 65,
      "sortable": true,
      "filterable": true,
      "hasListFilter": true,
      "dataType": "STRING",
      "resizable": true,
      "componentId": null,
      "defaultText": null,
      "translatable": true,
      "titleTranslatable": true,
      "useObjectServiceForFilter": false,
      "valid": true,
      "rtl": false,
      "application": "agent-portal",
      "roleIds": []
    },
    {
      "id": null,
      "name": null,
      "type": null,
      "property": "TicketNumber",
      "showText": true,
      "showIcon": false,
      "showColumnTitle": true,
      "showColumnIcon": true,
      "size": 135,
      "sortable": true,
      "filterable": true,
      "hasListFilter": false,
      "dataType": "STRING",
      "resizable": true,
      "componentId": null,
      "defaultText": null,
      "translatable": true,
      "titleTranslatable": true,
      "useObjectServiceForFilter": false,
      "valid": true,
      "rtl": false,
      "application": "agent-portal",
      "roleIds": []
    },
    {
      "id": null,
      "name": null,
      "type": null,
      "property": "Title",
      "showText": true,
      "showIcon": false,
      "showColumnTitle": true,
      "showColumnIcon": true,
      "size": 463,
      "sortable": true,
      "filterable": true,
      "hasListFilter": false,
      "dataType": "STRING",
      "resizable": true,
      "componentId": null,
      "defaultText": null,
      "translatable": false,
      "titleTranslatable": true,
      "useObjectServiceForFilter": false,
      "valid": true,
      "rtl": false,
      "application": "agent-portal",
      "roleIds": []
    }
  ],
  "tableColumnConfigurations": null,
  "enableSelection": true,
  "toggle": false,
  "toggleOptions": null,
  "headerHeight": 2.25,
  "rowHeight": 1.75,
  "emptyResultHint": "0 data sets found.",
  "fixedFirstColumn": false,
  "additionalTableObjectsHandler": [],
  "intersection": true,
  "searchId": null
}

Attribut (Auswahl)

Beschreibung

type

Typ der Konfiguration

Hier: Table

objectType

Objekttyp, welcher in der Tabelle geladen und angezeigt werden soll (Ticket, FAQ, ConfigItem, Contact, Organisation).

Sie können Abhängigkeiten definieren, sodass die Konfiguration nur auf ausgewählte Objekte angewendet wird. Zum Beispiel, wenn die Konfiguration nur für die Assetklasse Computer gilt. Fügen Sie dazu dem Objekttyp die ID des abhängigen Objekts an (z. B.: ConfigItem.4). Ist keine ID angegeben, gilt die Konfiguration für alle Objekte der gewählten Objektart.

loadingOptions

Spezifische Ladeoptionen für die zu ladenden Objekte (API Filter).

Siehe auch: Attribute der LoadingOptions

displayLimit

Limit für die Anzahl der Tabellenzeilen und bestimmt somit die maximale Höhe des Widgets. Weitere Zeilen werden durch Scrollen und dynamisches Nachladen angezeigt.

Die Angabe definiert den Standardwert, welcher für alle Agenten gilt. Jeder Agent kann das Anzeigelimit in der Personalisierung des Dashboards für sich selbst festlegen. Beim Zurücksetzen dieser persönlichen Einstellungen gilt wieder der hier definierte Standard.

Tbl-widget_DisplayLimit.png

tableColumns

Enthält die spezifische Konfiguration der Tabellenspalten.

Definiert, welche Spalten angezeigt werden sollen.

Pro Spalte wird ein Konfigurationsblock angegeben. Ist nichts angegeben, wird eine Standardkonfiguration für dieses Objekt verwendet.

Siehe auch: TableColumns Configuration

tableColumnsConfigurations

Optional: Konfiguration individueller Spalten.

Wenn nichts angegeben, werden Standardspalten verwendet.

enableSelection

Selektion in der Tabelle de-/aktivieren.

toggle

Definiert, ob Zeilen aufgeklappt werden können (z. B. um den Artikelinhalt anzuzeigen).

toggleOptions

Definiert, was angezeigt werden soll, wenn eine Zeile aufgeklappt wird (individuelle UI Komponente).

sortOrder

Definiert die Sortierung des Tabelleninhalts, wenn die Tabelle geladen wird.

Keine Sortierung: "sortOrder": null

headerHeight

Höhe des Tabellen-Headers in Pixel (Dezimalstellen mit Punkt trennen: 2.75)

rowHeight

Höhe der Tabellenzeilen in Pixel (Dezimalstellen mit Punkt trennen: 2.75)

emptyResultHint

Definiert den anzuzeigenden Text, wenn keine Zeilen verfügbar sind.

Zum Beispiel: "Keine Daten gefunden"

fixedFirstColumn

Wenn true, dann ist die erste Spalte fixiert und scrollt nicht horizontal mit.

Wenn false, scrollt die erste Spalte mit.

additionalTableObjectsHandler

Optional: Liste der Handller-Konfigurationen, die weitere Objekte für die Tabelle ermitteln.

Die Ermittlung ist vom Handler abhängig.

Mögliche Attribute:

  • id: Eindeutiger Identifikator für die interne Verarbeitung.

  • name: Name (Beschreibung)

  • handlerConfiguration: spezifische Optionen des Handlers.

    Vom SuggesteFAQHandler werden derzeit unterstützt:

    • minLenght: Gibt an, wie lang die Wörter im Titel/Betreff mindestens sein müssen (mit Leezeichen getrennt), damit sie für die Suche verwendet werden

      Standard: 3

    • onlyValid:  Gibt an, ob nur gültige Objekte ermittelt werden

      Standard: false

  • dependencyPropertys: Liste von Objekteigenschaften (Attributen), welche für die Suche berücksichtigt werden.

    Die Angaben sind für den Handler relevant. Bspw. ermittelt der SuggestedFAQHandler damit, in welchen Eigenschaften die Wörter stehen könnten.

    Die Liste legt zudem fest, ob diese Konfiguration bei Änderungen im Dialog/Formular das Neu-Laden der Tabelle erforderlich macht. Sie dient der Vermeidung unnötiger Suchen der beteiligten Handler. 

    Ist die diese Liste nicht gegeben, wird die Tabelle bei jeder Änderung neu geladen. 

intersection

Definiert, wie die Suche erfolgt und wie die Ergebnisse in der Anzeige kombiniert werden

Mögliche Werte:

  • true = intersection = Schnittmenge

    Suche nach Schlagworten im Ticketbetreff/Titel UND nach den betroffenen Assets. Beides muss angegeben sein, sonst ist die Tabelle leer.

    Es werden nur FAQ-Artikel angezeigt, zu denen mindestens eins der betroffenes Assets und eins der im Betreff/Titel angegebenen Schlagwörter passt.

    Wichtig: Achten Sie darauf, dass die Suche mindestens 1 Ergebnis (1 FAQ) zurück liefert, wenn Sie die Suche konfigurieren. Anderenfalls kann keine Schnittmenge gebildet und angezeigt werden.

  • false (default) = combine

    Liefert alle Ergebnisse (ohne Dopplungen)

    Suche nach Schlagworten im Ticketbetreff/Titel ODER nach den betroffenen Assets. Eins von beiden muss angegeben sein.

    Es werden die FAQ-Artikel angezeigt, die mit mindestens einem der betroffenen Assets verknüpft sind oder die eins der im Ticketbetreff/Titel angegebenen Schlagworte enthalten.

Weiterführende Hinweise: Konfiguration Widget "Empfohlene FAQ"

roleIds

Optional: Liste der Berechtigungsrollen (IDs)

Wenn Berechtigungsrollen angegeben sind, muss der aufrufende Benutzer mindestens einer dieser Rollen zugewiesen sein, um die Tabelle sehen zu können.

Durch optionale Angabe von loadingOptions{...} können Sie definieren, welche Eigenschaften ein Objekt (Ticket/Asset/FAQ/...) besitzen muss, damit es geladen wird. Auf jede Eigenschaft (Attribut) des Objekts kann ein entsprechender Filter gesetzt werden.

Die loadingOptions unterstützen KIX Platzhalter. Dadurch ist es möglich, sich auf das aktuell angezeigte Objekt zu beziehen und somit die Anzeige in den Tabellen dynamisch zu gestalten. So können den Agenten z. B. folgende Informationen in einer Tabelle zur Verfügung gestellt werden:

  • die offenen Anfragen einer Organisation

  • alle geschlossenen oder offenen Kind-Tickets

  • offene Tickets des Teams, welche vom selben Typ sind

  • die Kontakte der aktuellen Organisation

  • neue Tickets einer Organisation, die vom selben Typ sind

  • Assets, die dem aktuellen Kontakt zugeordnet sind

  • usw.

Für jeden Kontext können Sie zu jedem Objekttyp gesonderte LoadingOptions konfigurieren.

Kontext

GUI Konfiguration

Ticket Dashboard

Ticket Dashboard Configuration

Ticket-List Kontext (die Toolbar-Icons oben)

User Ticket List

FAQ Dashboard

faq

Organisationen/Kunden Dashboard

organisations

Asset Dashboard.

cmdb

Somit können bspw. die Organisationen- und Kontakt-Tabelle im Organisationen Dashboard oder die die Tabelle im Ticket Dashboard vorsortiert und die maximal zu ladende Anzahl der Einträge bestimmt werden.

Die loadingOptions bestehen dann aus verschachtelten Arrays mit Angabe des Objektes und der für das Objekt relevanten loadingOptions.Der erste Wert ist der betreffende Objekttyp (z. B. Ticket) und der 2. Wert enthält die Definition der LoadingOptions (limit, searchLimit, sortOrder usw.).

"loadingOptions": [
   [
     "Ticket",
     {
       "searchLimit": 300,
       "limit": 5,
       "sortOrder": "Ticket.-Age:numeric"
     }
   ]
 ],

Anmerkung

Wenn Sie die loadingOptions eines Kontextes geändert haben (1), sollten Sie anschließend die Sortierung in den untergeordneten Widget Settings (2) entfernen (Zeile: "sort":["Age","Up"] ).

Anderenfalls findet die im Kontext gesetzte Konfiguration keine Anwendung. Die Widget Settings haben dann Vorrang.

LoadingOptions.png

Abb.: Sortierung der Tabelle in absteigender Reihenfolge nach dem Alter von Tickets (neueste zuerst)  mit limitierter Anzeigemenge

Hinweis

Führen Sie nach Änderung der loadingOptions eine Bereinigung des Caches durch. Führen Sie dazu im Menü System > Konsole den Befehl Console::Command::Maint::Cache::Delete aus.

Attribut (Auswahl)

Beschreibung

expands

Löst die mit includes empfangenen Objekt-IDs auf, um deren Objekte zu erhalten.

Geben Sie dazu den selben Begriff wie bei include an.

Weiterführende Informationen finden Sie im GitHub in der KIX API Dokumentation (Rechtsklick auf "Download" > im Kontextmenü "Link | Ziel speichern unter..." verwenden)

filter

Angabe von Filterbedingungen zum Spezifizieren der anzuzeigenden Objekte.

Die Filter beziehen sich auf die Eigenschaften in der API (analog zu Berechtigungen).

Weiterführende Informationen finden Sie im GitHub in der KIX API Dokumentation (Rechtsklick auf "Download" > im Kontextmenü "Link | Ziel speichern unter..." verwenden)

Beispiel: Anzeige aller offenen Tickets des Kontakts in der Tabelle 

"filter": [
   {
      "property": "StateType",
      "operator": "EQ",
      "type": "STRING",
      "filterType": "AND",
      "value": "Open"
   },
   {
      "property": "ContactID",
      "operator": "EQ",
      "type": "NUMERIC",
      "filterType": "AND",
      "value": "<KIX_TICKET_ContactID>"
   }
]

Hinweis

Im Backend wird bei einer Ticketsuche automatisch der Status Typ (StateType == Open) ergänzt!

Das betrifft sowohl die Komplexsuche als auch alle Konfigurationen, die im Filter keine Einschränkungen auf den Statustyp oder auf einen konkreten Status haben, z. B. Tickettabellen oder individuell erstellte/geänderte Widgets und Tabellen. 

includes

Empfang weiterer Informationen zu den angefragten Objekten, wie bspw. Links, Dynamische Felder oder vorhandene Sub-Ressourcen (z.B. Artikel oder die Historie von Tickets).

Bei einigen Includes werden nicht die Objekte geliefert sondern nur die jeweiligen IDs (z.B. bei "Links"). Diese IDs können mit "expands" aufgelöst werden, um deren Objekte zu erhalten.

Weiterführende Informationen finden Sie im GitHub in der KIX API Dokumentation (Rechtsklick auf "Download" > im Kontextmenü "Link | Ziel speichern unter..." verwenden)

limit

Anzahl der in der API-Antwort enthaltenen Objekte (siehe Hinweis unten).

Das angegebene Limit steuert die Größe der "Page" (Anzeigelimit der Tabelle) und wie viele Datensätze mittels der Schaltfläche weitere laden nachgeladen werden.

Standard: 20 (wenn kein Limit angegeben ist)

Hinweis

Das angegebene Limit wirkt sich auf die Systemleistung aus. Wählen Sie einen für Sie optimalen Wert, in Abhängigkeit von der Anzahl der Datensätze im System.

Eine bestehende Sortierung wird beim Nachladen nicht geändert, aber auf die nachgeladenen Daten angewandt.

Tbl-widget_Limit.png

Die Angabe definiert das Standard-Limit, welches für alle Agenten gilt. Jeder Agent kann die Tabelleneigenschaften in der Personalisierung des Dashboards für sich selbst festlegen. Beim Zurücksetzen dieser persönlichen Einstellungen gilt wieder der hier definierte Standard.

searchLimit

Limitiert die gesamte Suchanfrage auf Datenbankebene.

Definiert die maximale Anzahl an Datensätzen, die aus der Datenbank geholt werden. Es werden die ersten n Datensätze aus der Datenbank geladen.

Tbl-widget_SearchLimit.png

Abb.: Die Datenbank enthält nur 22 Datensätze. Es werden daher nur maximal 22 Tickets angezeigt, auch wenn für searchLimit ein höherer Wert eingestellt ist.

Hinweis

Das angegebene Limit wirkt sich auf die Systemleistung aus. Wählen Sie einen für Sie optimalen Wert, in Abhängigkeit von der Anzahl der Datensätze im System.

Die Angabe definiert das Standard-Limit, welches für alle Agenten gilt. Jeder Agent kann die Tabelleneigenschaften in der Personalisierung des Dashboards für sich selbst festlegen. Beim Zurücksetzen dieser persönlichen Einstellungen gilt wieder der hier definierte Standard.

sortOrder

Definiert die Sortierung des Tabelleninhalts, wenn die Tabelle geladen wird. 

Mögliche Werte:

  • null| "Age","Up" | "ID","Down"

  • Ticket.-Age:numeric 

    Das Objekt muss angegeben werden.

    Der Datentyp (z. B. numerisch) kann angegeben werden.

    Die Angabe des Minuszeichens (-) bewirkt, dass die Sortierung umgekehrt wird.

Wenn nichts angegeben erfolgt die initiale Sortierung jeweils absteigend nach: 

  • bei Tickets: Erstellzeitpunkt 

  • bei Assets: Assetname, Assetnummer  

  • bei Organisation: Name der Organisation, Kundennummer

  • bei Kontakt: nach Nachname, Vorname

  • Dynamische Felder

    • Text, Textarea, Date, Date/Time: nach Wert (Value) 

    • Selection: nach Schlüssel (Key)

    • Array-Werte: Sortierung der Schlüssel (Keys) innerhalb des Arrays und Verwendung des ersten Keys für die Sortierung des Tickets

    • Andere Typen Dynamischer Felder sind nicht sortierbar.

Es wird die gesamte angeforderte Liste (SearchLimit) sortiert. 

Anmerkung

limit und searchLimit haben Auswirkung auf die Performance. Je höher die Werte, desto länger sind u. U. die Ladezeiten. 

Beispiel 

Gegeben sind:

  • Anzahl Datensätze in der Datenbank: 200

  • limit: 10

  • searchLimit: 100

Es werden die ersten 100 Datensätze aus der Datenbank geholt. Davon werden 10 in der Tabelle angezeigt.

Klickt der Agent auf die Schaltfläche weitere laden , werden die nächsten 10 von 100 Datensätzen in der Tabelle nachgeladen.

Das heißt, der Agent kann 10 Mal auf weitere laden klicken, um maximal alle 100 Datensätze in der Tabelle anzeigen zu lassen.

Befindet sich der gesuchte Datensatz nicht unter diesen 100 Datensätzen, kann der Agent die Suchmöglichkeiten der Volltextsuche und der Komplexsuche nutzen.

Im Codeabschnitt tableColumns{..} werden die Tabellenspalten definiert. Jede Spalte beginnt und endet mit einer geschweiften Klammer: {...}. Innerhalb dieser Klammern werden die Attribute der Tabellenspalte einschließlich ihrer Werte angegeben.

Sie können weitere Spalten hinzufügen oder die Tabelle komplett neu aufbauen. Damit verändern Sie die Standard-Konfiguration des Widgets.

Pro Spalte wird ein Konfigurationsblock angegeben. Ist nichts angegeben, wird eine Standardkonfiguration für dieses Objekt verwendet.

Tipp

Für die Dashboard-Tabellen können Agenten selbst Spalten hinzufügen oder entfernen. Dies erfolgt über die Personalisierung von Dashboards.

Diese Änderung an den Dashboard-Tabellen verändert den im Widget definierten Standard nicht.

Grundlage der Werte in den Tabellenspalten ist das jeweils referenzierte Objekt (Ticket / Asset / FAQ / ...) und seine Attribute (Eigenschaften wie ID, Name, Titel/Betreff, Priorität, Status, etc.)

Attribut (Auswahl)

Beschreibung

id

Angabe der Spalten-ID

Wenn nicht definiert: null

name

Angabe des Spalten-Namens (zur ID gehörend)

Wenn nicht definiert: null

type

Angabe des Spalten-Typs

Wenn nicht definiert: null

property

Attribut (Eigenschaft)  des Objekts; Definiert, welches Attribut in der Spalte angezeigt wird.

Sie können Abhängigkeiten definieren und so die anzuzeigende Eigenschaft auf bestimmte Objekte einschränken (z.B. nur die Hersteller der Anlagenklasse Computer). Dazu stellen Sie dem Attribut die ID des Objekts/der Klasse voran (4.Vendor).

Sie können den Wert [Objekt]Fullname angeben. Der angezeigte Name enthält dann auch die übergeordnete Struktur des Objekts. Dies ist dann sinnvoll, wenn mehrere Objekte mit demselben Namen existieren, z.B. in Teams:

Tbl-widget_ObjectFullname.png

Mögliche Werte:

  • Title | TicketNumber |  OwnerID | QueueID | CurInciStateID | DynamicFields.myDynamicFieldName

  • 4.Vendor | 5.Type

  • QueueFullname | ServiceFullname

showText

Definiert, ob ein Text für den Wert des Attributs angezeigt wird.

Mögliche Werte: true | false

Z. B.: neu | offen | geschlossen | ...

showIcon

Definiert, ob ein Icon für den Wert des Attributs angezeigt wird.

Z. B.: Icon des Status

Mögliche Werte: true | false

showColumnTitle

Definiert, ob im Spaltenkopf der Name des Attributs angezeigt wird (z. B.: Status).

Mögliche Werte: true | false

showColumnIcon

Definiert, ob im Spaltenkopf das Icon des Attributs angezeigt wird (true | false).

Z. B.: Icon des Status

Mögliche Werte: true | false

size

Größe der Spalte in Pixel

Z. B.: 320

sortable

Definiert, ob die Spalte sortierbar ist.

Mögliche Werte: true | false

filterable

Definiert, ob die Spalte gefiltert werden kann (Filter-Symbol im Spaltenkopf).

Hinweise: 

  • Filter wirken auf den vollen Datenbestand. Auch auf nicht geladene/nicht angezeigte Listeneinträge.

  • Werden mehrere Filter angegeben, wirken diese wie UND-verknüpfte Suchattribute.

  • Parameter können sich ausschließen, wodurch leere Listen entstehen, z. B.:

    Z. B.: Im Ticket-Dashboard werden alle Tickets des Teams "Service Desk" angezeigt. Der Filter in der Tabellenspalte "Teams" wird auf "Junk" gesetzt. Im Ergebnis werden keine Tickets angezeigt, da ein Ticket nicht gleichzeitig in 2 Teams sein kann.

  • Im Core ist festgelegt, welche Attribute filterbar sein können.

    Nicht filterbare Attribute bieten keine Filtermöglichkeiten in der Tabelle an, auch wenn aktiviert.

    Nicht filterbare Attribute sind:

    • Dynamische Felder der Typen: Tabelle, Checkliste, Date-/Time, DataSource

    • Ziel- und Erfüllungszeit

    • Erstellt am / Erstellt von

    • Geändert am / Geändert von

    • Zeit buchen

    • alle spezifischen Attribute von Assetklassen

  • Filter berücksichtigen die Rechte des angemeldeten Nutzers. Die Vergabe von Basisberechtigungen ist zwingend erforderlich.

hasListFilter

Definiert, ob zum Filtern eine Auswahlliste aller in der Spalte zur Verfügung stehenden Werte angeboten wird (ansonsten Freitext).

Nicht anwendbar auf Objekte (Ticket, Organisation, Contact, FAQ und Asset).

dataType

Datentyp des Attributs (der Eigenschaft).

resiziable

Definiert, ob der Nutzer die Spaltengröße verändern kann.

componentID

Definiert, ob im Inhalt der Zelle eine individuelle UI-Komponente verwendet wird, um den Wert darzustellen.

Hinweis: Die ComponentID kann auch im erweiterten Konfigurationsmodus der Dashboard-Personalisierung gesetzt werden (gehe zu: Home Dashboard > Dashboard anpassen > Schaltfläche "Erweitert" > Spalte "Komponenten-ID").

Mögliche Werte (Auswahl der wichtigsten):

  • Wert eines Dynamischen Feldes: dynamic-field-value

  • Fortschrittsbalken einer Checkliste: dynamic-field-checklist-cell

  • Label eines SLA-Kriteriums: sla-criteria-cell

Wenn Sie in den Programmoberflächen (GUI) Dynamische Felder einbinden, müssen Sie eine Komponente (ComponentID) angeben. Jede Komponente hat individuelle Parameter, die unter ComponentData angegeben werden. Welche Parameter erwartet werden, finden Sie in den Beschreibungen der einzelnen Feldtypen.

defaultText

Text, welcher als Spaltenüberschrift verwendet wird, wenn in der Spalte keine konkrete Eigenschaft des Objektes repräsentiert wird.

translatable

Definiert, ob die Attributwerte in den Zellen automatisch übersetzt werden sollen.

Ggf. müssen die entsprechenden Pattern unter Internationalisierung > Übersetzungen hinterlegt werden.

titleTranslatable

Definiert, ob der Spaltentitel übersetzt automatisch werden soll.

Ggf. müssen die entsprechenden Pattern unter Internationalisierung > Übersetzungen hinterlegt werden.

useObjectServiceForFilter

Nur zur internen Verwendung.

(Definiert, ob die Tabelle einen Object Service nutzt oder nicht.)

rtl

Richtet den Spalteninhalt rechtsbündig aus.

Mögliche Werte: true | false

Setzen Sie den Parameter auf true, wenn Sie [Object]Fullname unter property angegeben haben. Dadurch wird das Ende des Spalteninhalts angezeigt, wenn der Spalteninhalt länger als die Spaltenbreite ist.

Konfigurationsschlüssel 

ticket-new-assigned-assets

Das Tabellen-Widget zeigt die Assets an, welche dem ausgewählten Kontakt zugeordnet sind. Dazu verwendet der Filter in den loadingOptions das Suchattribut AssignedContact, welches eine ContactID erwartet. Diese wird initial per Platzhalter (<KIX_TICKET_ContactID>) ermittelt.

Die 1. Spalte der Widget-Tabelle lässt eine Interaktion mit dem Dynamischen Feld Betroffenes Asset zu, welches in den Dialogen Neues Ticket und Ticket bearbeiten enthalten ist. Wird im Widget ein Asset per Häkchen ausgewählt, wird dieses Asset automatisch am Ticket als Betroffenes Asset gesetzt. Diese Interaktion wird durch den Wert add-to-affected-assets-cell im Attribut componentID gesteuert. Ist dieses Verhalten auch an anderen Asset-Tabellen gewünscht, können Sie die Spalte an den betreffenden Tabellen implementieren. Beachten Sie jedoch, dass das Asset nur ins Feld Betroffenes Asset gesetzt werden kann und nicht in andere Dynamische Felder.

Als Konfigurationsbeispiel ist die Konfiguration des Tabellen-Widgets Ticket zu Kontakt angegeben:

{
   "id": "ticket-details-contact-tickets",
   "name": "Tickets for Contact",
   "type": "Widget",
   "widgetId": "table-widget",
   "title": "Translatable#Tickets for Contact",
   "actions": [],
   "subConfigurationDefinition": null,
   "configuration": {
      "id": "ticket-details-contact-ticket-widget",
      "name": "Contact Tickets",
      "type": "TableWidget",
      "objectType": "Ticket",
      "sort": null,
      "subConfigurationDefinition": null,
      "tableConfiguration": {
         "id": "ticket-details-contact-tickets-table-config",
         "name": "Contact Tickets",
         "type": "Table",
         "objectType": "Ticket",
         "loadingOptions": {
            "filter": [
               {
                  "property": "StateType",
                  "operator": "EQ",
                  "type": "STRING",
                  "filterType": "AND",
                  "value": "Open"
               },
               {
                  "property": "ContactID",
                  "operator": "EQ",
                  "type": "NUMERIC",
                  "filterType": "AND",
                  "value": "<KIX_TICKET_ContactID>"
               },
               {
                  "property": "TicketID",
                  "operator": "NE",
                  "type": "NUMERIC",
                  "filterType": "AND",
                  "value": "<KIX_TICKET_TicketID>"
               }
            ],
            "sortOrder": null,
            "limit": 100
         },
         "displayLimit": 10,
         "tableColumns": [
            {
               "id": null,
               "name": null,
               "type": null,
               "property": "Title",
               "showText": true,
               "showIcon": false,
               "showColumnTitle": true,
               "showColumnIcon": false,
               "size": 320,
               "sortable": true,
               "filterable": true,
               "hasListFilter": false,
               "dataType": "STRING",
               "resizable": true,
               "componentId": null,
               "defaultText": null,
               "translatable": true,
               "titleTranslatable": true,
               "useObjectServiceForFilter": false
            },
            {
               "id": null,
               "name": null,
               "type": null,
               "property": "TypeID",
               "showText": false,
               "showIcon": true,
               "showColumnTitle": true,
               "showColumnIcon": false,
               "size": 50,
               "sortable": true,
               "filterable": true,
               "hasListFilter": true,
               "dataType": "STRING",
               "resizable": true,
               "componentId": null,
               "defaultText": null,
               "translatable": true,
               "titleTranslatable": true,
               "useObjectServiceForFilter": false
            }
         ],
         "tableColumnConfigurations": null,
         "enableSelection": false,
         "toggle": false,
         "toggleOptions": null,
         "sortOrder": null,
         "headerHeight": 1.75,
         "rowHeight": 1.75,
         "emptyResultHint": "Translatable#0 data sets found.",
         "fixedFirstColumn": false,
         "additionalTableObjectsHandler": [],
         "intersection": true,
         "searchId": null
      },
      "headerComponents": null,
      "showFilter": false,
      "shortTable": false,
      "predefinedTableFilters": null,
      "cache": false,
      "resetFilterOnReload": true
   },
   "minimized": false,
   "minimizable": true,
   "icon": "kix-icon-ticket",
   "contextDependent": false,
   "contextObjectDependent": true,
   "formDependent": false,
   "formDependencyProperties": [
        "DynamicFields.myDynamicFieldName"
    ]
}