Ansicht
Dokumentation

RHP6_PROFILE_SUBSCREEN_SET - SUBSCREEN-Einbindung des Profils

RHP6_PROFILE_SUBSCREEN_SET - SUBSCREEN-Einbindung des Profils

Fill RESBD Structure from EBP Component Structure   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

Mit Hilfe dieses Funktionsbaustein läßt sich das Profil für ein Objekt anzeigen.

Die Profilsicht kann für jeden Objekttyp über die Transaktion OOPF definiert werden. Dahinter hängt das Viewcluster VC_T77PP_PROFILE mit den zugehörigen Tabellen.

Es können verschiedene Sichten (z.B Personalentwicklung oder Vergütungsmanagement) definiert werden. Pro Profilsicht sind die erlaubten Objekttypen mit den erlaubten Teilprofilen definiert.

Ein Profil besteht aus einem Header-Subscreen und im Moment bis zu 15 Teilprofilen (Subscreens). Alle Subscreens werden dynamisch aufgerufen und müssen deswegen bestimmten Konventionen unterliegen.

In den Programmen des Views, der aktuellen Header- oder Teilprofil-Subscreens sollten folgende FORMs vorhanden sein:

VIEW-Definition

Wenn für eine View kein Programm angegeben wurde, wird das Standardmenü + Titel aus der Funktionsgruppe RHP6 gesetzt.

- Der aktuelle Status sollte immer im Teilprofil gesetzt werden,
um spezifische Absprünge und Funktionen zu ermöglichen:
form profile_cb_form_status using p_part_name
p_view
p_part_repid
p_part_dynnr
p_if_found.
Der erste Eintrag im Menü sollte immer P_PART_NAME heißen.
Falls diese Form fehlt P_IF_FOUND =' ', so wird der Standardstatus
6000DYNP oder 6000POPU aus SAPLRHP6 gesetzt.

Bitte rufen Sie zu Beginn Ihrer Form-Routine die STANDARD-Fcodes des aktuellen SUBSCREENS wie folgt ab:
form profile_cb_form_status_fcodes TABLES p_exclude_tab
p_view
p_part_dynnr
p_if_found
IF FOUND.

Der dynamische Menütext für Schlüssel ein/aus kann über die Form
form USER_MENU_TEXT_KEY(SAPLRHP0) USING G_MENU_TEXT_KEY.
gelesen werden.
G_MENU_TEXT_KEY ist im INCLUDE RHPEINI0 definiert und muß im
Status als dynamischer Menüeintrag bekannt sein.

Das mit 'profile_cb_form_status' aufgerufene Menü ist für die entsprechende Sicht gültig. Benötigte Absprünge (FCODES) können in folgender Form abgearbeitet werden:

- falls Sie einen eigenen Status verwenden, dessen OK_CODE Sie nicht im
Subscreen abarbeiten wollen oder können, so haben Sie mittels
form profile_cb_form_user_command
using p_ok_code.
die Möglichkeit Ihre Funktionscodes zu bearbeiten. Dies kann
besonders für Header-Subscreens wichtig sein.

Ein Beispiel hierzu:
Sie wollen im Header-Subscreen Ihre Funktionscodes aus dem Menü
abarbeiten, wissen zu diesem Zeitpunkt aber noch nicht, ob auf dem
Teilprofil-Subscreen eine Änderung vorgenommen wurde. Da Sie diese
Änderung aber mitbekommen möchten, müssen Sie im PAI-Modul des
Header-Subscreens einen Pseudo-OK_CODE setzen, um die Sicherheits-
abfragen gewähren zu können. Den eigentlichen OK_CODE müssen Sie
dann in der FORM profile_cb_form_user_command abhandeln.
Als Pseudo-OK_CODES stehen 'XSAV', 'XASB' und 'XASE' zur Auswahl.

Bitte vergessen Sie dabei nicht den OK_CODE nach dem Abarbeiten zu
initialisieren, da ansonsten doppelte Funktionsauführungen möglich
sind!

HEADER-Subscreen

- um den Header eines Objektes drucken zu können, muß folgende Form
existieren:
form data_print_header using p_plvar
p_otype
p_objid
p_begda
p_endda
p_with_key
p_if_found.

TEILPROFIL-Subscreen

- um die Standardfunktionen zu deaktivieren, müssen sie folgende Form in ihrem Subscreen-Programm haben:
form profile_cb_form_status_fcodes TABLES p_exclude_tab
p_view
p_part_dynnr
p_if_found.
Die Tabelle muß folgende Struktur haben:
DATA: BEGIN OF exclud_tab OCCURS 0,
fcode LIKE rsmpe-func,
END OF exclud_tab.
In sie werden die momentan nicht benötigten Funktionscodes (FCODES)
aufgenommen.

- soll vor dem Teilprofilname ein ICON erscheinen, so kann dieses über
folgende Form gesetzt werden:
form profile_get_icon using p_dynnr
p_icon
p_form_found.

- um ein bestimmtes Teilprofil drucken zu können, muß folgende Form
existieren:
form write_profiles tables p_profile
using p_dynnr
p_ok_code
p_plvar
p_otype
p_objid
p_begda
p_endda
p_with_key
p_with_header
p_if_found.
Innerhalb dieser Form sollte die allgemeine Print-Routine
für die Header aufgerufen werden, bevor das eigentliche Profil
ausgegeben wird -> (PAI-Handling für 'LIST' und '%PRI' enfällt, s.u.)
form 6000_profile_print_header(SAPLRHP6) using plvar
otype
objid
begda
endda
with_key.

- Berechtigungsprüfung auf das Teilprofil
Falls die Berechtigung für einen bestimmten Subscreen vorab geprüft
werden soll, KANN dies über folgende Form getan werden:
form profile_check_authority
using value(p_dynnr) like sy-dynnr
p_no_authority type any.
Innerhalb dieser Routine kann die Berechtigung für einen Subscreen
abgefragt werden. Dabei kann über den Funktionsbaustein
'RHP6_PROFILE_OBJECT_INFO_GET' Exportparameter MAINTAIN zwischen
Anzeige- und Pflege unterschieden werden. Falls keine Berechtigung
existiert, muß P_NO_AUTHORITY auf 'X' gesetzt werden.

SUBSCREEN-Ablauf:

PAI

- module read_data.

Daten lesen (GD_READ_NEW beachten)
(vorher Objektinfo über RHP6_PROFILE_OBJECT_INFO_GET lesen)
- module hide_key.
Schlüssel <-> Text - Userparameter beachten und entsprechend ein und
ausblenden
- module set_buttons_input_off.
Hier können die nicht aktiven Buttons des Subscreens
(z.B. Anzeigemodus) deaktiviert werden.

PBO

- module user_command.
Lese den aktuellen OK_CODE über RHP6_PROFILE_OK_CODE_GET
-> OK_CODE-Handling für den Subscreen
- beachten Sie unbedingt folgende OK_CODES:
'XASB' und 'XASE' -> Sicherheitsabfrage bei Datenänderung
'XSAV' -> Sichern ohne Abfrage
- wenn nötig Profil-OK_CODE setzen über RHP6_PROFILE_OK_CODE_SET
Das ist z.B. dann interessant, wenn einer der Pseudo-OK_CODES
(XASB - Abfrage bei Zurück, XASE - Abfrage bei Beenden) abgehandelt
wurde und ein Fehler auftrat. Dann sollte der aktuelle OK_CODE
gecleart werden und im Profil mittels RHP6_PROFILE_OK_CODE_SET
gesetzt. -> evtl. Änderungen werden dann nicht gesichert.
- GET/SET CURSOR-Module nicht vergessen

PVO (on value/help-request)

- SUPPRESS DIALOG funktioniert im Moment auf Subscreens noch nicht!!!
- F1-Hilfe auf Buttons bringt die technische Info zum Button!!!

Vergebene Funktionscodes:

STR1, STR2 ... STRn -> Teilprofil 1 .. n
XSAV -> Sichern
XAST -> Sicherheitsabfrage bei Teilprofilwechsel (STR1, STR2 ... STRn)
XASB -> Sicherheitsabfrage bei Datenänderung (BACK)
XASE -> Sicherheitsabfrage bei Datenänderung (EXIT)
NEXT -> anderes Objekt auswählen
KEY -> Schlüssel +/-
LIST, %PRI, PALL -> Liste, Liste direkt drucken, alles auflisten
SWMO -> Wechsel zwischen Anzeige- und Pflegemodus
BACK -> Zurück
EXIT -> Beenden

Beispiel

SAPLRHPP: 2000 - 2099 Header-Subscreens
2100 - 4000 Teilprofil-Subscreens

Hinweise

Die Funktionscodes für die Liste oder das Drucken ('LIST' und '%PRI') des Teilprofils müssen NICHT abgefragt werden, da sie im Programm SAPLRHP6 Form 6000_PROFILE_PRINT_PART_NAME aufgerufen werden (dazu notwendige FORM-Routinen - siehe oben).

Das COMMIT_FLG dient dazu, daß bei externen Calls keine Verbuchung ON COMMIT stattfindet, sondern lediglich eine Pufferverbuchung. Wenn COMMIT_FLG = ' ', dann wird der CHANGED_WITHOUT_COMMIT = 'X', falls das Profil in irgendeiner Art und Weise geändert wurde. Der Schalter ist daher vorallem für Sicherheitsabfragen nütlich.

Weiterführende Informationen

Falls Sie flexible Auswertungen über die Profile starten wollen, so können Sie das über den Funktionsbaustein RHP6_SHOW_LIST_PROFILES.





Parameter

E_DYNNR
E_REPID
I_BEGDA
I_CHANGED_WITHOUT_COMMIT
I_COMMIT_FLG
I_ENDDA
I_FIRST_DYNNR
I_FIRST_REPID
I_MAINTAIN
I_NO_PUBLISHING
I_OBJID
I_OTYPE
I_PLVAR
I_PROFILE_VIEW
I_WITHOUT_HEADER

Ausnahmen

CANCELLED
NOT_FOUND
NO_AUTHORITY

Funktionsgruppe

RHP6

TXBHW - Original Tax Base Amount in Local Currency   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 11551 Date: 20240523 Time: 054904     sap01-206 ( 93 ms )