Ansicht
Dokumentation

CL_PRP_BSP_C_ROLEPERSONSASSIGN - PLM Development Projects - BSP Controller Applikationskopf

CL_PRP_BSP_C_ROLEPERSONSASSIGN - PLM Development Projects - BSP Controller Applikationskopf

Addresses (Business Address Services)   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Diese Controller-Klasse bildet mit den BSP-Views rolePersonsAssign.bsp und rolePersonsAssigListn.bsp eine UI-Komponente. Der Kontroller zeigt in der Detailansicht (mv_layout = 'DETAIL') im Tray 'Projektrollenbesetzung' alle Personen und Organisationen an, die der aktuellen Rolle zugeordnet sind. In der Listenansicht (mv:layout = 'BUPALINKLIST') werden alle Ressourcenzuordnungen zu den Rollen des aktuellen Projektes dargestellt.

Es ist möglich, die zugeordneten Geschäftspartner zu löschen und zu duplizieren.

Über den E-Mail Client kann der Geschäftspartner über die Projektzuordnung informiert werden. Falls die Groupware angeschlossen ist, kann die ausgewählte Person über eine Aufgabe von der Projektzuordnung benachrichtigt werden.

Der Kontroller besitzt 2 weitere Modi (Attribut mv_mode):

APPO: Der Controller wird für die Termine verwendet (nur in Detailansicht).

STANDARD oder initial: Der Controller wird für die Ressourcenzuordnung verwendet (in Detail und Listenansicht möglich).

Methodenliste DO_REQUEST (Redefinition)

Diese Methode ist für den Aufbau der BSP-View verantwortlich. Anhand der Instanz-Variablen mv_mode, wird die Seite entweder für die Termine oder für die Ressourcenzuordnung verwendet.

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.

Bei Änderungen in der Projektrollenbesetzung (MV_ROLE_ASSIGN_CHANGED = 'X') werden 2 Events ausgelöst.

An das Event ACTUALIZE_ROLE_NAVIGATOR ist die Methode ON_ACTUALIZE_ROLE_NAVI der Klasse CL_PRP_BSP_C_ROLENAVIGATOR registriert. Dadurch wird die Tabelle mit den Rollen des aktuellen Projektes aktualisiert.

An das Event RAISE_ROLE_CHANGED der Klasse CL_PRP_BSP_APPLICATION ist die Methode ON_ROLE_CHANGED der Klasse CL_PRP_BSP_C_PROJECTRESOURCES registriert. Dort wird die Überschrift für die Group der Projektrollendefinition und die Ressourcensuche und beeinhaltet die Rollenbezeichnung, die geplanten und die bereits zugewiesenen Aufwände erzeugt .

DO_HANDLE_DATA (Redefinition)

In dieser Methode werden die Daten aller zur aktuellen Rolle gehörenden Geschäftspartner, die auf der Oberfläche geändert wurden, in der Business-Logik abgespeichert.

Die eignentliche Verarbeitung der Daten geschiet in der Untermethode DO_HANDLE_DATA_SUB. Diese wird im Falle der Detailansicht für die aktuelle Ressourcenzuordnung aufgerufen und im Falle der Listenansicht für jede Ressourcenzuordnung der Liste, welche gerade in der Ansicht dargestellt wird.

DO_HANDLE_EVENT (Redefinition)

Diese Methode steuert dads Event-Handling für das Löschen, das Kopieren und das Auswählen eines Geschäftspartners, für das Anzeigen der Detailinfos eines Geschäftspartners, für das Versenden einer Aufgabe, für das Öffnen und Schließen des Trays und für das Navigieren im Tableview.

Ein weiteres Ereignis ruft in der Listenansicht den Editor der Tabellenlayouteinstellungen auf. Die Einstellungen werden über den Kontroller CL_PRP_TABLE_SETTINGS verwaltet. Für weitere Details siehe in der dortigen Klassendokumentation.

COPY_BUPA

Diese Methode kopiert den aktuell ausgewählten Geschäftspartner.

SET_TRAY_PARAMETER

In dieser Methode wird der Zustand des Trays 'Ressourcenzuordnung' der BSP-View rolePersonsAssign.bsp (Collapsed/Expand) in der Klasse CL_DPR_USER_SPECIFIC_SETTINGS abgespeichert, wenn auf der Oberfläche der Tray Button gedrückt wurde.

GET_TRAY_PARAMETER

Diese Methode wird beim ersten Aufruf der Klasse aus der Methode DO_REQUEST aufgerufen, um den letzten Zustand des Trays 'Ressourcenzuordnung' der BSP-View rolePersonsAssign.bsp (Collapsed/Expand) aus der Klasse CL_DPR_USER_SPECIFIC_SETTINGS zu laden.

SEND_TASK_TO_RESOURCE

Diese Methode versendet eine Aufgabe an einen Geschäftspartner mittels des Events SEND_TASK. An dieses Event ist die Methode ON_TASK_SEND der Klasse CL_PRP_BSP_C_ROLEAPPSEND registriert, die das eigentliche Versenden erledigt.

ON_ROLE_ASSIGNED (Ereignisbehandler)

Diese Methode ist auf das Ereignis ASSIGNED_PERSONS_LIST_CHANGED aus der Klasse CL_PRP_BSP_APPLICATION registriert. Dieses Ereignis wird aufgerufen, wenn sich die Liste der zugeordneten Geschäftspartner geändert hat.

GET_DATA

Diese Methode wird aus der Methode DO_REQUEST aufgerufen, wenn der Controller für die Ressourcenzuordnung verwendet wird. Hier werden die Daten der zugeordneten Geschäftspartner geladen. Die Liste ist nach dem Startdatum der Zuordnung und dem Datum des Anlegens der Verknüpfung sortiert, damit die kopierte Zuordnung stets unterhalb der originalen Zuordnung erscheint.

Diese Methode wird auch von den Ereignisbehandlern ON_TABSTRIP_APPOS_SELECTED (wenn auf den Tabreiter Termine gewechselt wurde) und ON_ACTIVE_ROLE_CHANGED (wenn die aktuelle Rolle gewechselt wurde) aufgerufen.

GET_BUPA_LINK_LIST_DATA

Hier werden die Daten aller Ressourcenzuordnungen einer Rolle (Zeitraum, Projektrolle, Bezeichnung, Aufwand, Beschreibung etc.) geladen. Diese Daten sind nur in der Listenansicht der View nötig.

DELETE_BUPA

Diese Methode löscht die Verknüpfung zu einem Geschäftspartner.

ACTUALIZE_ROLE_NAVIGATOR

Diese Methode wird aus der Methode DO_FINISH_INPUT ausgrufen, wenn sich das etwas an der Geschäftspartnerliste geändert hat. Es wird das Ereignis ACTUALIZE_ROLE_NAVI der Klasse CL_PRP_BSP_APPLICATION, an das die Klasse CL_PRP_BSP_C_ROLEGENERAL angemeldet ist, ausgelöst, um die Liste der Projektrollen zu aktualisieren.

SELECT_BUPA

Diese Methode wird aus der Methode DO_HANDLE_EVENTaufgerufen, wenn ein Geschäftspartner gelöscht wurde, wenn ein anderer Geschäftspartner ausgewählt (Radio Button) wurde oder wenn auf den Link des Geschäftspartner geklickt wird, um Detailinformationen anzuzeigen

Diese Methode wird auch von den Ereignisbehandlern ON_TABSTRIP_APPOS_SELECTED (wenn auf den Tabreiter Termine gewechselt wurde) und ON_ACTIVE_ROLE_CHANGED (wenn die aktuelle Rolle gewechselt wurde) aufgerufen.

Es wird der aktuelle Geschäftspartner ausgewählt.

ON_TABSTRIP_APPOS_SELECTED (Ereignisbehandler)

Diese Methode ist auf das Ereignis TAPSTRIP_APPOINTMENTS_SELECTED aus der Klasse CL_PRP_BSP_C_ROLEDETAIL registriert. Diese Ereignis wird ausgelöst, wenn der Tabreiter Termine des Tabstrips Projektrollendefinition ausgewählt wurde.

Es wird der Zeilen-Index der aktuell ausgewählten Rolle bestimmt.

SEND_MAIL_TO_BUPA

Falls die Groupware angeschlossen ist, wird eine E-Mail an die ausgewählte Person versandt. Die Verfügbarkeit des Groupware-Adapters kann mit Hilfe der statischen Methode IS_GROUPWARE_AVAILABLE der Klasse CL_PRP_SETTINGS ermittel werden. Ist die Groupware nicht verfügbar, wird der entsprechende Link auf der BSP-View rolePersonsAssign.bsp nicht dargestellt.

ON_ACTIVE_ROLE_CHANGED (Ereignisbehandler)

Diese Methode ist auf das Ereignis ACTIVE_ROLE_CHANGED aus der Klasse CL_PRP_BSP_C_ROLENAVIGATOR registriert. Es wird gefeuert, wenn eine Rolle hinzugefügt, gelöscht oder gewechselt wird.

Die aktuell ausgewählte Ressource wird initialisiert.

LAUNCH_MESSAGE

Diese Methode legt Fehlermeldungen aus der Nachrichtenklasse PRP_UI in der Klasse CL_CGPL_APPLICATION_LOG ab, wenn das eingegebene Datum oder der Aufwand nicht im korrekten Format sind.

GET_DATE

Dies Methode wird aus der Methode DO_HANDLE_DATA aufgerufen und überprüft das Datum auf sein korrektes Format und wandelt es in das interne Format um (z.B. 21.07.2002 -> 20020721).

GET_TABLE_SETTINGS

Die Tabellendarstellung der Listenansicht wird den lokalen benutzerabhängigen Daten entnommen. Ist die Version der abgelegten Daten älter als die des Kontrollers oder weisen die Daten Fehler auf, so werden Standardeistellungen gesetzt.

ON_TABLE_SETTINGS_CHANGED

Die Tabellendarstellung der Listenansicht wurde im Unterkontroller tableSettings modifiziert. Die resultierende Darstellung wird im Stringformat über ein Ereignis and Kontroller mitgeteilt und in den lokalen benutzerabhängigen Daten abgespeichert.

SORT_DATA

Ist in der Listenansicht für die Sortierung der Tabelle/Liste nach einzelnen Feldern zuständig.

DO_HANDLE_DATA_SUB

Subroutine der Methode DO_HANDLE_DATA. Speichert die eingegebenen Daten für eine Ressourcenzuordnung ab. Im Falle der Listenansicht wird diese Methode für jede Zeile/Ressourcenzuordnung der Liste ausgeführt.

ON_BUPA_DATA_CHANGED

Diese Methode ist auf das Ändern der Geschäftspartnerdaten registriert. Das Ereignis wird nur ausgelöst, wenn die Daten aus der BSP-Applikation selbst gewechselt werden. Wenn die Geschäftspartnerdaten mittels BP-Transaktion geändert werden, wird das Ereignis nicht ausgelöst. Der Name des geänderten Geschäftspartners wird aktualisiert.

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






BAL_S_LOG - Application Log: Log header data   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 14116 Date: 20240424 Time: 095904     sap01-206 ( 236 ms )