Ansicht
Dokumentation

CL_PRP_BSP_C_TABLESETTINGS - PLM Development Projects - BSP Controller Applikationskopf

CL_PRP_BSP_C_TABLESETTINGS - PLM Development Projects - BSP Controller Applikationskopf

CL_GUI_FRONTEND_SERVICES - Frontend Services   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Dieser Kontroller bildet zusammen mit der BSP-Seite tableSettings.bsp eine UI-Komponente.

Diese Komponente ist wie eine Funktion aufgebaut: über die Controller-Parameter wird ein String mit Layouteinstellungen einer Tabelle übergeben, welche mit der Methode CONVERT_STRING_TO_SETTINGS extrahiert werden. Nach der Modifikation der Einstellungen über die BSP-Seite, werden diese wieder mit der der Methode CONVERT_SETTINGS_TO_STRING zu einem String komprimiert und über das Ereignis TABLE_SETTINGS_CHANGED an den aufrufenden Controller übergeben, welcher auch das speichern der Einstellungen übernimmt.

Die Methoden CONVERT_STRING_TO_SETTINGS und CONVERT_SETTINGS_TO_STRING sind als statische Methoden definiert, um auch vom aufrufenden Controller verwendbar zu sein. Dieser benötigt die Methoden um Standardeinstellungen abspeichern zu können und um die gespeicherten Einstellungen auszuwerten, um sie auf die eigentliche Tabelle, für die sie schließlich definiert wurden, anzuwenden.

Die Layouteinstellungen werden hierbei, wie folgt in einen String konvertiert:

Die Tabelle mit den Spaltenschlüssel, Spaltennamen, Positionen und Sichtbarkeits- und Modifizierbarkeitsattributen werden über Zeilen- und Feldseparatoren miteinander konkateniert. Das Feld VISIBLE_DEFAULT setzt Voreinstellungen für das Feld VISIBLE in den Einstellungen, das Feld CHANGEABLE definiert, ob die Spalte der Tabelle, für die die Einstellungen getätigt werden, änderbar ist.

Zusätzlich wird eine virtuelle erste Zeile mit den übrigen Attributen (z.B. Version, Anzahl darstellbarer Zeilen, etc.) hinzugefügt.

Die Version kann ein beliebiger String sein. Wird die Struktur der Tabelle geändert, für die die Einstellung getätigt werden oder werden neue Felder in den Einstellungen definiert, so ändert sich auch der Einstellungsstring, die zugehörige Struktur, die Methoden CONVERT_STRING_TO_SETTINGS und CONVERT_SETTINGS_TO_STRING etc. Über die Version kann geprüft werden, ob der gespeicherte String mit der aktuellen Funktionalität der Einstellungen übereinstimmt. Dies leisten die Konvertierungsmethoden. Bei verschiedenen Version können dann z.B. Standardeinstellungen in der neuen Form geladen werden.

Methodendefinitionen DO_REQUEST (redefiniert)

Diese Methode ist für die Erzeugung und den Aufbau der BSP-View verantwortlich. Die Daten werden hier initial mittels der Methode GET_DATA aus den Controller-Parametern extrahiert.

DO_HANDLE_EVENT (redefiniert)

Hier werden die Events die auf der zugehörigen View ausgelöst werden verarbeitert, wie z.B. sichern, schließen etc.

DO_FINISH_INPUT (redefiniert)

Hier wird dieser Controller vom Input - Processing abgemeldet, um nur dann die eingehenden Daten der BSP-Seite zu verarbeiten, wenn die Seite auch wirklich sichtbar ist

DO_HANDLE_DATA (redefiniert)

Die Felder der zugehörigen View werden verarbeitet,. Einzige Ausnahme sind die Dropdownboxes der Positionen der Spalten, da diese über das Eventhandling abgearbeiter werden (DO_HANDLE_DATA).

SORT_TABLE_SETTINGS

Diese Methode sortiert die Spalten gemäß der Positionsangabe in der Tabelle der Spalten und wird bei jeder Änderung in einer Dropdownliste mit Positionen aufgerufen.

CONVERT_SETTINGS_TO_STRING

Konvertiert die Tabelleneinstellungen in einen String (siehe einführende Beschreibung).

CONVERT_STRING_TO_SETTINGS

Konvertiert Tabelleneinstellungen, die in einen String zusammengefasst wurden, in Tabellen und Datenelemente (siehe einführende Beschreibung).

GET_DATA

Die Daten werden hier initial aus den Controller-Parametern extrahiert. Hierzu wird die Methode CONVERT_STRING_TO_SETTINGS verwendet.

LAUNCH_MESSAGE

Fehlermeldungen werden ausgegeben

Beziehungen

Beispiel

Hinweise

Das HTMLB Element tableview mit dem die Tabelle der Einstellungen dargestellt wird, wird über einen tableview -Iterator gesteuert (siehe die Dokumentation des tableView Elements). Dieser liefert die Möglichkeit in den Aufbau jeder Zelle der Tabelle zur Laufzeit zuzugreigfen. Die Klasse CL_PRP_BEE_HIVE, welche das Iteratorinterface implementiert wird bei den Klassenlokalen Typen definiert und in der Methode DO_REQUEST erzeugt.

Weiterführende Informationen

Austausch geänderter Seiteninhalte

Der Mechanismus zum Austausch geänderter Seiteninhalte (im Dokument "Technical UI-Design" als "Differential rendering" bezeichnet) ist im Framework der Basis enthalten. Der Mechanismus wird in der Anwendung "Development Projects" als Erweiterung des Komponenten-Framework durch Anwendung folgender Regeln realisiert:

  • Das Layout jeder Komponente wird in ein div-Tag mit der ID der Komponente eingeschlossen (-> BSP View)
  • Der Controller der Komponente erhält ein Attribut "differential", das den Aufruf-Modus steuert
  • Der Controller muß über Änderungen seines eigenen Inhalts informiert sein
  • Der Controller macht Ausgaben vom Änderungs-Zustand und vom Aufruf-Modus abhängig:
  • Wurde der Controller im "complete"-Modus aufgerufen (differential ist initial), gibt der Controller seinen kompletten Inhalt aus und ruft eingebettete Komponenten ebenfalls im "complete"-Modus auf

  • Wurde der Controller im "differential"-Modus aufgerufen (differential = "X") und sein eigener Inhalt wurde seit dem letzten Request verändert, gibt der Controller seinen kompletten Inhalt aus und ruft eingebettete Komponenten im "complete"-Modus auf

  • Wurde der Controller im "differential"-Modus aufgerufen (differential = "X") und sein eigener Inhalt wurde seit dem letzten Request nicht verändert, gibt der Controller seinen eigenen Inhalt nicht aus und ruft eingebettete Komponenten im "differential"-Modus auf. Zusätzlich gibt der Controller außerhalb des die Komponente einschießenden div-Tag"s einen JavaScript-Block zum Ersetzen des Inhalts aus (CL_DPR_BSP_APPLICATION stellt dazu die Methode WRITE_REPLACE_SCRIPT zur Verfügung).

Eine Komponente, die den Austausch geänderter Seiteninhalte unterstützt kann jederzeit von einer anderen Komponente, die den Mechanismus nicht unterstützt, im "complete"-Mode (ist Default, wenn der Parameter "differential" nicht übergeben wird) aufgerufen werden.

Umgekehrt kann auch eine Komponente, die den Austausch geänderter Seiteninhalte nicht unterstützt, von einer Komponente, die den Mechanismus unterstützt, aufgerufen werden. Sofern die aufrufende Komponente über Änderungen der aufgerufenen Komponente nicht informiert ist, muß sie davon ausgehen, dass die aufgerufene Komponente geändert wurde. Letztendlich bedeutet das, dass sich die aufrufende Komponente dann immer so verhalten muß, als ob ihr eigener Inhalt verändert wurde und den kompletten Inhalt (ggf. mit Replace Script) ausgeben muß.






CPI1466 during Backup   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8174 Date: 20240419 Time: 214953     sap01-206 ( 136 ms )