Ansicht
Dokumentation

CL_PRP_BSP_C_PROJECTRESOURCES - PLM Development Projects - BSP Controller Applikationskopf

CL_PRP_BSP_C_PROJECTRESOURCES - PLM Development Projects - BSP Controller Applikationskopf

BAL_S_LOG - Application Log: Log header data   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Diese Controller-Klasse bildet mit der BSP-View projectResources.bsp und projectResources_nchg eine UI-Komponente. Die Komponente dient als Verschalung der UI-Komponenten roleNavigator und roleDetail (Projektrollendefinition) oder staffDetail (Resourcensuche). Wird der Controller im Complete Mode aufgerufen, wird die BSP-View projectResources.bsp aufgerufen. Dort wird der komplette Inhalt gerendered und die untergeordneten Controller aufgerufen. Im Differential Mode wird die BSP-View projectResources_nchg.bsp aufgerufen, die nur die untergeordneten Controller aufruft. Ob sich der Seiteninhalt geändert hat wird über das Attribut mv_changed gesteuert (siehe Ende der Klassendokumentaion).

Methodenliste DO_INIT (Redefinition)

Diese Methode wird nur 1 mal beim ersten Aufruf der Klasse CL_PRP_BSP_C_PROJECTRESOURCES aufgerufen. Dort werden die Ereignisse STAFFING_VIEW_STARTED oder DEFINITION_VIEW_STARTED gefeuert, damit die untergeordneten Controller informiert sind, ob sich die Anwendung in der Rollendefinitions- oder in der Resourcensuchansicht befindet.

Damit beim ersten Klasendurchlauf alle anderen Controller ihre Daten initialisieren können, wird das Event ACTIVE_ROLE_CHANGED gefeuert. Ausserdem wird die Tabelle für das Umsortieren der Rollen gefüllt.

DO_REQUEST (Redefinition)

Diese Methode ist für den Aufbau der BSP-View verantwortlich. Es wird geprüft, ob die aktuelle Rolle gesetzt ist (Methode SET_ACTIVE_ROLE), die Überschrift für die für die Komponenten roleDetail und staffDetail gebildet (Methode BUILD_TITLE), der Projektname geholt (Methode GET_PROJECT_NAME) und die Tabelle für das Umsortieren der Rollen gefüllt (Methode FILL_ROLE_SORT_TABLE).

DO_FINISH_INPUT (Redefinition)

Hier wird dieser Controller vom Input - Processing abgemeldet, um nur dann die eingehenden Daten zu verarbeiten, wenn die korrespondierende BSP-View auch wirklich sichtbar ist. Würde man den Controller nicht abmelden, würden jedes mal die Methoden DO_HANDLE_DATA, DO_HANDLE_EVENT und DO_FINISH_INPUT aufgerufen. Es wird die Methode ACTUALIZE_ROLE_NAVIGATOR aufgerufen.

DO_HANDLE_DATA (Redifinition)

In dieser Methode werden die Formular-Felder der allgemeine Rolleninformatien aus der BSP-Seite ausgelesen. Hier wird nur die Position ausgelesen, an die die aktuelle Rolle umsortiert werden soll.

DO_HANDLE_EVENT (Redefinition)

Hier wird das Event-Handling für das Anlegen, Löschen und Umsortieren einer Rolle, das Wechseln in die Definitionsansicht und in die Ressourcensuche und das Prüfen des Tabreiters 'Ressourcen' gesteuert.

BUILD_TITLE

Diese Methode erzeugt die Überschrift für die Group der Projektrollendefinition und die Ressourcensuche und beeinhaltet die Rollenbezeichnung, die geplanten und die bereits zugewiesenen Aufwände.

ON_ENABLE_CHANGE_TO_STAFF (Behandlermethode)

Diese Methode ist an das Event ENABLE_INPUT aus der Klasse CL_PRP_BSP_C_ROLENAVIGATOR registriert und sorgt dafür, dass der Button zum Umschalten in die Resourcensuche aktualisiert wird. Der Button ist zum Beispiel deaktiviert, wenn noch keine Rollen angelegt sind.

SET_ACTIVE_ROLE

Wenn keine aktive Rolle gesetzt ist, wird die erste Rolle der Tabelle die aktive Rolle. Es ist keine aktive Rolle gesetzt, wenn die Anwendung das erste mal gestartet wird, und wenn eine Rolle gelöscht wird.

ON_ACTIVE_PROJECT_CHANGED (Behandlermethode)

Diese Methode ist an das Event ACTIVE_PROJECT_CHANGED aus der Klasse CL_DPR_BSP_APPLICATION registriert und lädt die default time-unit und den Projektnamen. Diese Methode dürfte aber nie durchlaufen werden, da bei einem Projektwechsel die Session und damit auch die Klassen zerstört werden.

ON_ROLE_CHANGED (Behandlermethode)

Diese Methode ist an das Event ROLE_CHANGED aus der Klasse CL_PRP_BSP_APPLICATION registriert und erzeugt die Überschrift für die Group (siehe Methode BUILD_TITLE) neu. Das ist erforderlich, wenn sich innerhalb der Rolle z.B. der Aufwand oder die Rollenbezeichnung ändert.

ON_ROLE_LIST_CHANGED

Diese Methode wird aufgerufen, wenn eine Rolle angelegt, gelöscht oder kopiert wird. Dadurch wird in die Projektrollendefinitionssicht auf den 'Allgemin Tabreiter' gewechselt. Gegebenenfalls werden die Button 'Rolle Anlegen', 'Rolle Kopieren' und 'Rolle Löschen' aktiviert oder deaktiviert. Der Rollennavoigator wird aktualisiert.

GET_PROJECT_NAME

Diese Methode lädt den Projektnamen.

ON_ROLE_ADDED (Behandlermethode)

Diese Methode ist an das Event ROLE_ADDED aus der Klasse CL_DPR_BSP_APPLICATION registriert und sorgt für einen Wechsel in die Rollendefinitionsansicht und lädt den Titel für die Group (siehe Methode BUILD_TITLE) neu. Das Event wird gefeuert, wenn eine neue Rolle angelegt wird.

CHECK_WFM_RELEVANT_ROLE

Die Methode prüft, ob eine Projektrollenart WFM-relevant ist oder nicht. Ist sie es nicht, darf für diese Rolle nicht in die ANsicht der Ressourcensuche gewechselt werden. Der angebene Rückgabeparameter wird nicht interpretiert. Ist die Projektrollenart WFM-relevant ist der Rückgabeparameter true ('X'), sonst initial.

CHECK_PARTICIPANTS

Diese Methode überprüft alle Rollen des aktuellen Projektes mit allen verknüpften Geschäftspartnern, Aufgabe, Qualifikationen und führt einen Plausibilitätscheck durch.

FILL_ROLE_SORT_TABLE

Diese Methode füllt die Tabelle für das DropDownMenu zum Umsortieren der Rollen.

ON_ACTUALIZE_ROLE_NAVI (Behandlermethode)

Diese Behandlermethode ist an das Ereignis ACTUALIZE_ROLE_NAVI der Klasse CL_DPR_BSP_APPLICATION registriert und wird ausgelöst, wenn sich die Rollenbezeichnung, der Aufwand oder das Zeiteinheit verändert hat.

ON_PROJECT_LANGUAGE_CHANGED (Behandlermethode)

Diese Behandlermethode ist an das Ereignis TEXT_LANGUAGE_CHANGED der Klasse CL_DPR_APPL_OBJECT_MANAGER registriert und wird ausgelöst, wenn sich die Projektsprache geändert hat. Die Methode löst das Event TEXT_LANGUAGE_CHANGED aus, an das sich die Klasse CL_PRP_BSP_C_ROLENAVIGATOR angemeldet hat.

ON_PROJECT_CHANGED (Behandlermethode)

Diese Methode behandelt das Ereignis CHANGED des aktuellen Projektes. IM MOMENT WIRD SICH ABER NICHT AN DIESES EREIGNIS REGISTRIERT. Es war geplant, Änderungen des Projektnamens und der Projektdauer zu registrieren. Dieses Ereignis wird aber bei jeder Änderung des Projektes ausgelöst. Das Feststellen der Änderung des Namens und der Dauer ist aber zeitintensiver, als das Neuladen der Dauer und des Projektnamens. Der Projektname wird in der Methode GET_PROJECT_NAME geladen und das Zeitintervall der Rolle in der Klasse CL_PRP_BSP_ROLE_GENERAL.

START VIEW

Diese Methode organisiert das Wechseln zwischen der Projektrollendefinitionssicht und der Ressourcensuche.

Beziehungen

Beispiel

Hinweise

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ß.






Vendor Master (General Section)   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 11266 Date: 20240508 Time: 153652     sap01-206 ( 215 ms )