Customizing
Version 27 Version 26 39.5.25 39.5.23 39.5.22 39.5.21 39.5.20 39.5.19 39.5.18 39.5.17 German English
Version 27 Version 26 39.5.25 39.5.23 39.5.22 39.5.21 39.5.20 39.5.19 39.5.18 39.5.17 German English

Konfigurationsmatrix customizen

Allgemeines

Information

  • Die Konfigurationsmatrix ist eine neue DA-Klasse (Matrix, DA-Klasse 12), die das Anzeigen und Bearbeiten einer Checkbox-Matrix ermöglicht.

  • Dabei werden zwei Achsen (Zeilen und Spalten) sowie eine Zellen-Faktentabelle über eine JSON-Konfiguration im Host-Datenbereich verknüpft.

  • Ab PLANTA project 27 stehen zwei vorkonfigurierte Matrixmodule zur Verfügung:

    • 009E10 – Personenkreis/Modul konfigurieren (Modul × Personenkreis)

    • 009E3M – Personenkreis/Berechtigung konfigurieren (Berechtigung × Personenkreis)

Konfiguration

DA-Klasse

Details

  • Der Host-Datenbereich erhält die DA-Klasse 12 (Matrix).

  • Die drei Child-Datenbereiche (Zeilen, Spalten, Zellen) verwenden ihre jeweilige normale DA-Klasse.

Host-DA konfigurieren

Vorgehensweise

  • Im Host-DA die DA-Klasse auf 12 (Matrix) setzen.

  • Im Feld DF-Konfiguration (df_script_settings) die JSON-Konfiguration hinterlegen (siehe unten).

  • Die JSON-Konfiguration referenziert die Child-DAs über deren CU_Name (DA-Customizing-Name) und die Datenfelder über deren CU_Name (DF-Customizing-Name).

Child-DAs konfigurieren

Vorgehensweise

  • Drei Child-Datenbereiche anlegen: Zeilen-DA, Spalten-DA, Zellen-DA.

  • Allen in der JSON-Konfiguration referenzierten Datenfeldern einen DF-Customizing-Namen (df_customizing_name) vergeben.

  • Schlüsseldatenfelder (Key-DFs) auf Fenster 9 setzen (ausblenden).

  • Sichtbare DFs im Zeilen- und Spalten-DA zeigen die Achsenmitglieder an (z. B. Symbol und Name).

  • Das DF, dessen Überschrift als Achsenbezeichnung erscheinen soll, wird über Heading in der JSON-Konfiguration referenziert.

Hinweise

  • Die JSON-Konfiguration verwendet CU_Names, keine DI-Nummern.

  • Rechte für die Zellbearbeitung werden über die Rechteeinstellungen des Zellen-DA gesteuert.

  • Die Erstellung neuer Zeilen/Spalten wird über create_enabled am jeweiligen Achsen-DA gesteuert.

JSON-Konfiguration

Die Konfiguration wird im Parameter DF-Konfiguration des Host-DA hinterlegt:

JSON
{
  "Rows": {
    "Source": "Area",
    "Area": "<cu_name_des_zeilen_da>",
    "Key": "<cu_name_des_schlüssel_df>",
    "Heading": "<cu_name_des_überschrift_df>"
  },
  "Columns": {
    "Source": "Area",
    "Area": "<cu_name_des_spalten_da>",
    "Key": "<cu_name_des_schlüssel_df>"
  },
  "Cells": {
    "Area": "<cu_name_des_zellen_da>",
    "RowKey": "<cu_name_des_zeilen_fk_df>",
    "ColumnKey": "<cu_name_des_spalten_fk_df>",
    "Value": "<cu_name_des_flag_df>",
    "OnDefault": "Keep",
    "Orphans": "Ignore"
  }
}

Konfigurationsparameter

Parameter

Bereich

Pflicht

Beschreibung

Rows.Area

Zeilen

Ja

CU_Name des Zeilen-DA (Achse der Zeilen, z. B. Module)

Rows.Key

Zeilen

Ja

CU_Name des Schlüssel-DF im Zeilen-DA (wird ausgeblendet, Fenster 9)

Rows.Heading

Zeilen

Nein

CU_Name des DF, dessen Überschrift als Achsenbezeichnung der Zeilen erscheint

Columns.Area

Spalten

Ja

CU_Name des Spalten-DA (Achse der Spalten, z. B. Personenkreise)

Columns.Key

Spalten

Ja

CU_Name des Schlüssel-DF im Spalten-DA (wird ausgeblendet, Fenster 9)

Columns.Heading

Spalten

Nein

CU_Name des DF, dessen Überschrift als Achsenbezeichnung der Spalten erscheint

Cells.Area

Zellen

Ja

CU_Name des Zellen-DA (Faktentabelle, z. B. DT572)

Cells.RowKey

Zellen

Ja

CU_Name des FK-DF im Zellen-DA, das auf den Zeilenschlüssel verweist

Cells.ColumnKey

Zellen

Ja

CU_Name des FK-DF im Zellen-DA, das auf den Spaltenschlüssel verweist

Cells.Value

Zellen

Nein

CU_Name des booleschen Flag-DF (Checkbox-Wert). Wird weggelassen, wenn das Vorhandensein des Datensatzes den Zellwert bestimmt.

Cells.OnDefault

Zellen

Nein

Keep: Deaktivieren schreibt default_value und behält den Datensatz (Audit-Spalten bleiben erhalten). Delete: Deaktivieren löscht den Datensatz. Standard: Keep

Cells.Orphans

Zellen

Nein

Ignore: Verwaiste Zellen (Datensatz ohne passenden Zeilen-/Spaltentreffer) werden ignoriert.

Beispiel: Personenkreis/Modul-Matrix (009E10)

Das Standardmodul 009E10 verwendet folgende Konfiguration:

DA

DT

Datenfelder (DI → CU_Name) → Rolle

Zeilen-DA (matrix_rows)

DT405

DI000123 → mod_id (Schlüssel, Fenster 9); sichtbar: Symbol, DI001588 → mod_name (Überschrift „Modul")

Spalten-DA (matrix_columns)

DT570

DI067356 → group_uuid (Schlüssel, Fenster 9); sichtbar: Symbol, DI067358 → group_name

Zellen-DA (matrix_cells)

DT572

DI067390 → cell_module (RowKey), DI067389 → cell_group (ColumnKey), DI067401 → cell_can_access (Value)

JSON-Konfiguration des Host-DA:

JSON
{
  "Rows": {
    "Source": "Area",
    "Area": "matrix_rows",
    "Key": "mod_id",
    "Heading": "mod_name"
  },
  "Columns": {
    "Source": "Area",
    "Area": "matrix_columns",
    "Key": "group_uuid"
  },
  "Cells": {
    "Area": "matrix_cells",
    "RowKey": "cell_module",
    "ColumnKey": "cell_group",
    "Value": "cell_can_access",
    "OnDefault": "Keep",
    "Orphans": "Ignore"
  }
}

Verhalten der Zellen

  • Aktivieren einer leeren Zelle: legt einen neuen Datensatz in DT572 an und befüllt die FK-Felder aus den Achsenmitgliedern.

  • Deaktivieren (OnDefault: Keep): schreibt den default_value in CAN_ACCESS und behält den Datensatz mitsamt Audit-Spalten.

  • Zeilen mit Wert 0 in CAN_ACCESS erscheinen als deaktivierte Checkbox.

Ereignismethoden (optional)

Information

  • Das Standardverhalten der Matrix kann durch Ereignismethoden in der Modulunterklasse überschrieben werden.

  • Ohne konfigurierte Methode greift das Worker-Standardverhalten.

  • Mehrere Matrizen in einem Modul leiten ihre Ereignisse an separate Methoden weiter.

Ereignismethode

Auslöser

Standardverhalten

on_matrix_cell_create(cell)

Zelle aktiviert, kein Datensatz vorhanden

Fügt Datensatz in Zellen-DA ein, befüllt FK-Felder, setzt Value

on_matrix_cell_changed(cell)

Wert geändert auf vorhandenem Datensatz (z. B. Deaktivieren mit OnDefault: Keep)

Schreibt default_value in das Value-DF

on_matrix_cell_delete(cell)

Deaktivieren mit OnDefault: Delete

Markiert Datensatz zur Löschung

on_matrix_axis_create(host, axis)

Neue Zeile/Spalte anlegen (falls create_enabled aktiv)

Mitglied erscheint sofort als leere Zeile/Spalte