CL_PRP_BSP_C_ROLETASKSASSIGN - Controller-Klasse für PRP
Fill RESBD Structure from EBP Component Structure rdisp/max_wprun_time - Maximum work process run timeDiese Dokumentation steht unter dem Copyright der SAP AG.

Funktionalität
Erfassung, Ändern und Löschen von Aufgabenzuordnungen zur aktuellen Projektrolle.Dabei werden die Zuordnungen in der Attribut-Tabelle MT_ASSIGNED_TASKS gehalten (Beschreibung, Start-Datum, Ende-Datum, Aufwand, Verantwortlichkeit).
Über die Methode GET_ROLE_TASKS werden die Zuordnungen in der Methode DO_REQUEST ausgehend von der aktiven Projektrolle (zu lesen aus der Applikationsklasse) eingelesen.
Über DELETE_TASK_LINK werden ausgewählte Zuordnungen aus MT_ASSIGNED_TASK gelöscht. Dabei werden jeweils die Entity-Links an der Rolle verändert.
Diese Methoden werden in der Event-Verarbeitung (DO_HANDLE_EVENT) aufgerufen, wenn am Browser die zugehörigen Druckknöpfe betätigt worden sind. Außerdem wird das Blättern in der Tabelle über diese Methode angestoßen.
In DO_HANDLE_DATA werden die Form-Felder der angezeigten Tabelle aus der BSP-Seite ausgelesen und dann sowohl die Entity-Links zur Tasks als auch die Attribut-Tabelle MT_ASSIGNED_TASKS verändert.
Bei jeder Änderung der Daten wird das Flag MV_DATA_CHANGED gesetzt. Dieses führt dazu, daß beim nächsten Durchlauf der Methode DO_REQUEST die Methode GET_ROLE_TASKS nur dann angestoßen wird, wenn sich Daten durch Änderungen seitens des Benutzers über den Kartenreiter "Aufgabenzuordnung" verändert haben. Erfolgt die Veränderung "von außen" (z. B. in der Aufgabendefinition), so kommt es auch zur Aktualisierung der Daten, denn dies geschieht grundsätzlich mmer, wenn der Kartenreiters "Aufgabenzuordnung" vor dem DO_REQUEST-Durchlauf verlassen worden ist (DIFFERENTIAL = FALSE).
Die Methode ON_TASK_SELECTED reagiert auf das Ereignis TASK_SELECTED der Controller-Klasse CL_PRP_BSP_C_ROLETASKSSELECT. Das heißt, wenn der Benutzer im Browser im Aufgabenbaum eine Aufgabe ausgewählt hat, wird hierdurch eine neue Aufgabenzuordnung angelegt (Entity-Links und MT_TASK_ASSIGN werden angepaßt). Dazu wird die Methode ADD_NEW_TASK_LINK aufgerufen.
Nach dem Ändern von Aufgabenzuordnungen wird jeweils das Ereignis TASK_ASSIGNMENT_CHANGED
gefeuert,
daß in CL_PRP_BSP_C_ROLETASKSSELECT zum Aktualisieren des Tree-Controls führt. Es kommt
also nach der Auswahl einer Aufgabe im Baum zu zwei aufeinanderfolgenden Ereignissen: erst von CL_PRP_BSP_C_ROLETASKSSELECT
zu CL_PRP_BSP_C_ROLETASKSASSIGN (TASK_SELECTED - Aufgabe im Baum ausgewählt, muß in die
Zuordnungen eingefügt werden) und anschließend umgekehrt (TASK_ASSIGNMENT_CHANGED - Aufgabenzuordnung hat sich geändert, Baum muß aktualisiert werden).
Hinweise
Weiterführende Informationen
Austausch geänderter SeiteninhalteDer 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_APPLIC ATION 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ß.
General Data in Customer Master CL_GUI_FRONTEND_SERVICES - Frontend Services
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6051 Date: 20250512 Time: 140925 sap01-206 ( 127 ms )