4 User-Exits und BAdIs im Reporting
|
|
|
- August Rosenberg
- vor 8 Jahren
- Abrufe
Transkript
1 4 User-Exits und BAdIs im Reporting Die bisher behandelten Exits sind zweifellos sehr mächtig und bieten Ihnen die Möglichkeit, die Daten so aufzubereiten, dass viele typische Reporting- Anforderungen damit erfüllt werden können. Jedoch gibt es immer wieder Anforderungen, die Berichte durch die Eingabe von Variablen flexibler zu gestalten. So würde beispielsweise kein SAP NetWeaver BW-Berater empfehlen, pro Kostenstelle im Unternehmen einen eigenen Bericht zu definieren, sondern die Kostenstelle als einzugebende Variable zu bestimmen. Andererseits soll diese Flexibilität aber nicht auf den Anwender abgewälzt werden, sodass er mit einer Vielzahl von Variablen überfordert wird. Daher können Sie versuchen, dem Anwender möglichst die Kostenstelle(n) vorzuschlagen, die er abhängig von seiner Position und Verantwortung vermutlich in dem Bericht sehen möchte. Im Folgenden wird daher erklärt, wie Sie durch geschickte Programmierung Variablenwerte ableiten und Vorschlagswerte setzen. Danach werden Sie sich mit virtuellen Merkmalen und Kennzahlen sowie mit dem Thema VirtualProvider auseinandersetzen. Während die Variablen die Auswahl der Werte zum Zeitpunkt der Berichtsauswertung flexibilisieren, gehen diese beiden Techniken noch einen Schritt weiter und ermöglichen es, die Daten selbst zum Berichtszeitpunkt anzupassen. Dazu ist jedoch auch eine komplexere Form der Implementierung notwendig. Abschließend lernen Sie kurz alle weiteren Techniken kennen, die mittels ABAP eine Anpassung des Reportings erlauben. 4.1 Variablen-Exit RSR00001 Der User-Exit RSR00001 enthält im Kern den Funktionsbaustein EXIT_ SAPLRRS0_001, der mehrere verschiedene Funktionen rund um die Variableneingabe erfüllt. Dieser Exit hat dasselbe Problem wie der User-Exit zur Extraktorerweiterung in Abschnitt 2.3,»User-Exit RSAP0001«: In einem typischen BW-System wächst und wächst der User-Exit. Daher sollten Sie schon zu Beginn darauf achten, dass Sie die Implementierung nicht im Include ZXRSRU01 vornehmen, sondern die Implementierung vom Include 103
2 4 User-Exits und BAdIs im Reporting lösen. Das können Sie zum Beispiel tun, indem Sie aus dem Variablennamen den Namen eines Funktionsbausteins ableiten. In der Schnittstelle des User-Exits gibt es jedoch zwei zentrale Parameter: Neben dem Namen der Variablen I_VAR ist außerdem der Aufrufschritt I_STEP entscheidend. Dabei handelt es sich um einen Zähler, denn der User-Exit wird mehrmals an insgesamt bis zu vier verschiedenen Stellen aufgerufen. Zu diesen unterschiedlichen Zeitpunkten können Sie verschiedene Funktionen implementieren. Vor der eigentlichen Behandlung der Implementierung soll deshalb zunächst der Parameter I_STEP erklärt werden: I_STEP = 1 Der erste Aufruf des User-Exits dient dazu, Vorschlagswerte zu berechnen, das heißt die Werte, die in den eingabebereiten Variablen als Vorschlag für den Benutzer angezeigt werden. Dazu wird der Exit einmal pro Variable des Typs Customer-Exit aufgerufen. Dies ist zugleich eine große Schwäche des Exits. Möchten Sie einer bestehenden Eingabevariablen nachträglich einen Vorschlagswert geben, sind Sie gezwungen, eine neue Variable vom Typ Customer-Exit anzulegen und diese eingabebereit zu machen. Es wäre wünschenswert, wenn in diesem Schritt auch die anderen eingabebereiten Variablen versorgt werden könnten. Auch wenn in diesem Schritt normalerweise Vorschlagswerte bestimmt werden, können ebenso Variablen gefüllt werden, die nicht eingabebereit sind. Dies ist jedoch nur interessant, wenn Sie die Werte in Schritt 2 benötigen, um weitere Variablen abzuleiten. I_STEP = 2 Dieser Schritt wird nicht für alle Variablen vom Typ User-Exit aufgerufen, sondern nur für die Variablen vom Typ User-Exit, die nicht eingabebereit sind. In diesem Schritt werden die endgültigen Variablenwerte bestimmt. Dazu wird für jede nicht eingabebereite Variable der User-Exit einmal aufgerufen. Sie können daher in diesem Schritt keine Eingaben des Benutzers überschreiben. Dies ist generell nicht möglich, weil ein derartiges Verhalten meist zu einer starken Verunsicherung des Anwenders führt. Daher sollten Sie entweder gar keine Benutzereingabe zulassen oder die Benutzereingabe mit einer Fehlermeldung zurückweisen. I_STEP = 3 Der dritte Schritt wird im Gegensatz zu den ersten beiden Schritten nicht pro Variable aufgerufen, sondern nur einmal insgesamt. Dabei werden Ihnen sämtliche Variableninhalte übergeben, um diese zu validieren. Sie können demnach überprüfen, ob die»periode von«kleiner gleich der 104
3 Variablen-Exit RSR »Periode bis«ist, wenn sie nicht als Intervall, sondern in zwei verschiedenen Variablen eingegeben werden. Diese Technik ist für eine flexible Validierung unerlässlich, das heißt eine Überprüfung, ob die Eingabewerte zueinander passen, jedoch für eine saubere Trennung nach Querys oder wenigstens Projekten hinderlich, da Variablen möglichst projektübergreifend verwendet werden sollten, um ihre Anzahl zu reduzieren. Daher müssen Sie ein anderes Feld verwenden, um eine Trennung in der Implementierung zu erreichen. I_STEP = 0 Der Schritt 0 wird nur selten eingesetzt. Er wird bei allen Aufrufen verwendet, die nicht in Zusammenhang mit dem Variablenbild stehen. In SAP NetWeaver 7.x und in SAP BW 3.x gibt es dazu drei Anwendungen: Zum einen nutzen Sie diesen Schritt, wenn Variablen im InfoPackage für die Selektion verwendet werden. Zum anderen wird der Schritt für die Bestimmung der Filterwerte im Navigationsblock der Query angewendet. Zum dritten und vielleicht wichtigsten dient er dazu, Variablen zu füllen, die in Berechtigungen genutzt werden. Dies ist besonders dann nützlich, wenn Berechtigungen aus Tabellen gefüllt werden sollen, die in ein DataStore-Objekt geladen wurden, oder wenn die Berechtigungen aus Stammdaten abgeleitet werden sollen. In diesem Buch wird ausschließlich der letzte Fall behandelt, da die anderen Fälle in der Praxis zu selten vorkommen Interface des Funktionsbausteins EXIT_SAPLRSR0_001 Nachdem die Bedeutung des Parameters I_STEP geklärt ist, lernen Sie die komplette Schnittstelle kennen. Der Kopf des Funktionsbausteins sieht dabei wie in Listing 4.1 aus. FUNCTION EXIT_SAPLRRS0_001. *" *"*"Lokale Schnittstelle: *" IMPORTING *" VALUE(I_VNAM) LIKE RSZGLOBV-VNAM *" VALUE(I_VARTYP) LIKE RSZGLOBV-VARTYP *" VALUE(I_IOBJNM) LIKE RSZGLOBV-IOBJNM *" VALUE(I_S_COB_PRO) TYPE *" RSD_S_COB_PRO *" VALUE(I_S_RKB1D) TYPE *" RSR_S_RKB1D 105
4 4 User-Exits und BAdIs im Reporting *" VALUE(I_PERIV) TYPE *" RRO01_S_RKB1F-PERIV *" VALUE(I_T_VAR_RANGE) TYPE *" RRS0_T_VAR_RANGE *" VALUE(I_STEP) TYPE I DEFAULT 0 *" EXPORTING *" VALUE(E_T_RANGE) TYPE RSR_T_RANGESID *" VALUE(E_MEEHT) LIKE RSZGLOBV-MEEHT *" VALUE(E_MEFAC) LIKE RSZGLOBV-MEFAC *" VALUE(E_WAERS) LIKE RSZGLOBV-WAERS *" VALUE(E_WHFAC) LIKE RSZGLOBV-WHFAC *" CHANGING *" VALUE(C_S_CUSTOMER) TYPE *" RRO04_S_CUSTOMER OPTIONAL *" Listing 4.1 Schnittstelle des Funktionsbausteins EXIT_SAPLRSR0_001 Die einzelnen Parameter haben dabei folgende Bedeutung: I_VNAM Dieser Parameter enthält in Step 0, 1 und 2 den Variablennamen, der berechnet werden soll. I_VARTYP Dieser Parameter gibt in Step 1 und 2 an, um welchen Variablentyp es sich handelt, das heißt, ob als Rückgabe ein Merkmalswert, Text, Formelwert, Hierarchieknoten oder eine Hierarchie erwartet wird. I_IOBJNM Dieser Parameter gibt das InfoObjekt an, auf das sich die Variable bezieht. I_S_COB_PRO Dieser Parameter enthält verschiedene Informationen über das InfoObjekt, auf das sich die Variable bezieht. ATRNAVFL gibt beispielsweise an, ob es sich bei der Variablen um ein Navigationsattribut handelt, oder ATRTIMFL, ob das Navigationsattribut zeitabhängig ist. Des Weiteren gibt er ähnliche Informationen, die nur in speziellen Situationen benötigt werden, weil sie normalerweise zum Zeitpunkt der Programmierung feststehen und nicht verändert werden. Dieser Parameter wird deshalb nur selten benötigt. I_S_RKB1D Dieser Parameter enthält Informationen wie den Query-Namen, den Aufrufer etc. Er ist vor allem in Step 3 von Bedeutung, um zu bestimmen, welche Validierungen durchgeführt werden sollen. Wichtige Felder dafür sind INFOCUBE (der Name des InfoProviders, auf dem der Bericht ausgeführt wird) und COMPID (der Query-Name, der gerade ausgeführt wird). 106
5 Variablen-Exit RSR I_PERIV Dieser Parameter enthält die Geschäftsjahresvariante, sofern sie in der Query eindeutig bestimmt werden kann. Dies ist immer dann wichtig, wenn aus einem Datum eine Periode bestimmt, beispielsweise die aktuelle Buchungsperiode als Vorschlagswert gezeigt werden soll. Da aber nur selten mehrere unterschiedliche Geschäftsjahresvarianten in einem System vorhanden sind, wird der Parameter auch entsprechend selten benötigt. I_T_VAR_RANGE Dieser Parameter enthält eine Tabelle, die sämtliche weiteren Variablenwerte beinhaltet. Dies ist besonders in Step 2 und 3 sinnvoll. I_STEP Der Schritt für die Variablenbestimmung wurde bereits ausführlich erläutert. E_T_RANGE In dieser Tabelle müssen die Rückgabewerte in Step 0, 1 und 2 zurückgegeben werden. Sie ist im Prinzip wie eine Ranges-Tabelle aufgebaut, die weiteren Felder können ignoriert werden. Abhängig von der Art der Variablen, müssen dabei folgende Beschränkungen berücksichtigt werden: Das Feld LOW enthält bei Merkmalswertvariablen den Wert oder die Wertuntergrenze (bei Intervallen), bei Textvariablen den Text, bei Hierarchievariablen die Hierarchie, bei Knotenvariablen den Knotennamen und bei Formelvariablen den Rechenwert. Das Feld HIGH enthält bei Merkmalswertvariablen für Intervalle oder Selektionsoptionen die Obergrenze des Intervalls. Bei Hierarchieknotenvariablen beinhaltet dieses Feld das InfoObjekt des Hierarchieknotens. Dieses kann entfallen, wenn es sich bei dem Knoten um ein Blatt der Hierarchie handelt. Bei anderen Variablen ist es immer leer. Das Feld SIGN enthält in der Regel immer ein I (für include: einschließen). Einzige Ausnahme können Selektionsoptionen sein, bei denen auch ein E (für exclude: ausschließen) erlaubt ist. SAP NetWeaver Business Warehouse erlaubt ein E auch bei Intervallen. Da dies aber nicht der Logik von Intervallen entspricht, sollten Sie solche Variablen als Selektionsoptionen implementieren. Das Feld OPT wird in der Regel mit EQ (für equal: gleich) gefüllt. Bei Intervallen können Sie auch BT (für between: zwischen) oder NB (für not between: nicht zwischen) verwenden. Bei Selektionsoptionen sind sämtliche in Ranges-Tabellen zulässigen Operatoren möglich, die Sie zum Beispiel in der ABAP-Dokumentation zum Schlüsselwort IF finden können. 107
6 4 User-Exits und BAdIs im Reporting E_MEEHT, E_MEFAC, E_WAERS, E_WHFAC, C_S_CUSTOMER Diese Parameter sind in der Schnittstelle zwar angegeben, werden jedoch nicht abgefragt. Aufgrund der unterschiedlichen Bedeutungen der Schritte können Sie auch die Implementierung des Exits entsprechend vorgeben. Möchten Sie, wie bereits zu Listing 4.2 beschrieben, eine generische Vorgabe machen, die dann einzelne Funktionsbausteine aufruft, können Sie folgende Implementierung verwenden (siehe Listing 4.2): DATA: l_d_fname(30) TYPE c. CASE i_step. WHEN 1. CONCATENATE 'Z_VAR_PRE_POPUP_' i_vnam INTO l_d_fname. WHEN 2. CONCATENATE 'Z_VAR_POST_POPUP_' i_vnam INTO l_d_fname. WHEN 0. CONCATENATE 'Z_VAR_AUTHORITY_' i_vnam INTO l_d_fname. WHEN 3. l_d_fname = 'Z_VAR_CHECK_VALIDITY'. ENDCASE. TRY. CALL FUNCTION l_d_fname EXPORTING I_VNAM = i_vnam I_VARTYP = i_vartyp I_IOBJNM = i_iobjnm I_S_COB_PRO = i_s_cob_pro I_S_RKB1D = i_s_rkb1d I_PERIV = i_periv I_T_VAR_RANGE = i_t_var_range I_STEP = i_step IMPORTING E_T_RANGE = e_t_range E_MEEHT = e_meeht E_MEFAC = e_mefac E_WAERS = e_waers E_WHFAC = e_whfac CHANGING C_S_CUSTOMER = c_s_customer EXCEPTIONS OTHERS = 1. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY 108
7 Variablen-Exit RSR NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 RAISING ERROR_IN_VARIABLE. CATCH CX_SY_DYN_CALL_ILLEGAL_FUNCTION. * Nichts machen, weil kein Exit implementiert wurde, * zum Beispiel in Step 1, wenn nur Step 2 implementiert wurde. ENDTRY. Listing 4.2 Beispielimplementierung für den Variablen-Exit ZXRSRU01 Wenn Sie sich die Funktionsbausteine RSVAREXIT_* anschauen, werden Sie feststellen, dass Variablen mit einem SAP-Exit von der SAP-Entwicklung fast genauso implementiert werden, nur dass die Entwicklung nicht nach dem I_STEP unterscheidet. Sie sollten in diesem Schritt jedoch eine Unterscheidung vornehmen, da Sie auf diese Art und Weise bereits am Namen des Funktionsbausteins erkennen, wozu er gedacht ist. Haben Sie bereits in größeren BW-Systemen gearbeitet, werden Sie festgestellt haben, dass der Exit ZXRSRU01 einer der größten im System ist. Alle Änderungen an diesem Exit sind kritisch, da gegebenenfalls sämtliche Berichte davon betroffen sind. Nach Ihrem ersten Transport eines nicht syntaxfehlerfreien Exits in ein Produktivsystem werden Sie wissen, wovon hier die Rede ist. Sie sollten deshalb von Anfang an die Beispielimplementierung übernehmen, um damit ein lästiges Problem zu vermeiden, das sich meist erst zeigt, wenn mehrere Projekte in dem System bereits produktiv laufen: einen inhaltlich getrennten Transport, um verschiedene Variablenimplementierungen zu ermöglichen. Natürlich stellt sich dann noch die Frage, wer die Verantwortung für den Funktionsbaustein Z_VAR_CHECK_VALIDITY übernimmt. Aber im Zweifelsfall können Sie in diesem Baustein aus jedem Projekt heraus einen zentralen Funktionsbaustein aufrufen und die Prüfergebnisse sammeln Implementierung bei I_STEP = 1 Nun zur eigentlichen Implementierung der Variablenlogik. Da I_STEP = 1 die Vorschlagswerte setzen soll, können Sie nur Algorithmen implementieren, die keine Benutzereingaben erfordern. Daher gibt es hauptsächlich zwei Arten von Algorithmen: eine datumsabhängige Vorschlagswertbestimmung eine tabellengesteuerte Vorschlagswertbestimmung 109
8 4 User-Exits und BAdIs im Reporting Beispiel 1: Datumsabhängige Vorbelegung Eine Variable WEEK6F soll für das InfoObjekt 0CALWEEK implementiert werden. Diese Variable ist eine Merkmalswertvariable vom Typ Intervall und soll als Vorschlagswert das Intervall von der aktuellen Woche bis in sechs Wochen erhalten. Das Coding hierzu könnte wie in Listing 4.3 aussehen. DATA: l_d_datum TYPE d, l_d_woche TYPE /bi0/oicalweek. DATA: l_s_range TYPE rsr_s_rangesid. CASE i_vnam. WHEN 'WEEK6F'. IF i_step = 1. "Vor dem Pop-up * Aktuelle Woche bestimmen CALL FUNCTION 'DATE_GET_WEEK' EXPORTING date = sy-datum IMPORTING week = l_d_woche. * Woche in Rückgabe aufnehmen l_s_range-low = l_d_woche. l_s_range-sign = 'I'. l_s_range-option = 'EQ'. * Jetzt sechs Wochen später bestimmen l_d_datum = sy-datum "42 Tage = 6 Wochen CALL FUNCTION 'DATE_GET_WEEK' EXPORTING date = l_d_datum IMPORTING week = l_d_woche. * Ende des Rückgabeintervalls füllen l_s_range-high = l_d_woche. APPEND l_s_range TO l_t_range. Listing 4.3 Beispiel zur datumsabhängigen Variablenvorbelegung Beispiel 2: Tabellenabhängige Vorbelegung Im zweiten Beispiel soll eine Variable LASTCPER die letzte im Quellsystem abgeschlossene Periode enthalten. Damit nicht bei jedem Query-Aufruf das Quellsystem mittels Remote Function Call aufgerufen wird, wurde zu diesem Zweck eine Tabelle Z_BEX_VAR angelegt, die manuell während des Monatsabschlusses gepflegt wird und aus den Feldern KEY (CHAR 20) und VALUE (CHAR 60) besteht. KEY ist dabei das einzige Schlüsselfeld der Tabelle, VALUE das Datenfeld. 110
9 Variablen-Exit RSR In dem Eintrag mit KEY = 'LASTCPER' wird dabei manuell die letzte abgeschlossene Periode gepflegt. Das Coding zur Abfrage der Tabelle sieht wie in Listing 4.4 aus. DATA: l_s_bex_var TYPE z_bex_var, l_s_range TYPE rsr_s_rangesid. CASE i_vnam. WHEN 'LASTCPER'. IF i_step = 1. "Vor Variablen-Popup * Tabelleneintrag lesen SELECT SINGLE * FROM z_bex_var INTO l_s_bex_var WHERE key = 'LASTCPER'. IF SY-SUBRC = 0. * In Rückgabe übertragen l_s_range-low = l_s_bex_var-value. ELSE. * Hier könnte man auch einen Fehler ausgeben clear l_s_range-low. l_s_range-sign = 'I'. l_s_range-opt = 'EQ'. ENDCASE. Listing 4.4 Beispiel zur tabellenabhängigen Vorbelegung Aus der gewünschten Art der Vorbelegung ergibt sich, welche Art der Implementierung Sie nutzen. Häufig wird die tabellenabhängige Vorbelegung auch für eine Vorbelegung abhängig vom Benutzernamen oder gar von bestimmten Benutzerberechtigungen verwendet. Da das Handling von Reporting- Berechtigungen nicht ganz einfach ist, wird im Folgenden noch anhand eines etwas komplexeren Beispiels gezeigt, wie Sie Reporting-Berechtigungen der Klasse RSR oder die neuen Analyseberechtigungen lesen, ohne für jeden Stammdateneintrag einen AUTHORITY-CHECK durchzuführen. Beispiel 3: Vorbelegung aus Berechtigungen Für einen Kunden, der über gesellschaftsübergreifende Geschäftsbereiche verfügt, soll ein zweidimensionales Berechtigungsobjekt implementiert werden, das die externe Unternehmensstruktur (InfoObjekt 0COMPANY) und die interne Unternehmenssicht (InfoObjekt 0BUS_AREA) in einem Berechtigungsobjekt vereint. Auf diese Weise soll die externe und die interne Sicht besser unterschieden werden. Je nach Bericht sollen die Verantwortlichen entweder alle Kosten ihrer Gesellschaft oder alle Kosten in ihrem Geschäftsbereich sehen. 111
10 4 User-Exits und BAdIs im Reporting Zweidimensionales Berechtigungsobjekt Es ist sicherlich eher eine Ausnahme, dass zwei InfoObjekte in einer Reporting- Berechtigung Verwendung finden, und vielen ist bestimmt nicht bewusst, dass dies möglich ist. Aber sowohl Reporting als auch Planung laufen in dem System einwandfrei und verproben die Berechtigungen korrekt. Daher haben zahlreiche Mitarbeiter zwei Ausprägungen des Berechtigungsobjektes, beispielsweise: 0COMPANY = 100 und 0BUS_AREA = * 0COMPANY = * und 0BUS_AREA = 1000 Dieses Konzept bereitet eine große Schwierigkeit: Ruft ein Mitarbeiter einen Bericht in der externen Sicht auf, soll ihm automatisch seine Gesellschaft 100 als Vorschlagswert eingeblendet werden. Lassen Sie die Variable jedoch aus der Berechtigung füllen, wird dem Benutzer immer die erweiterte Ausprägung * vorgeschlagen; in diesem Fall eine leere Selektion. Die Implementierung in Listing 4.5 liest die Berechtigungen und füllt den Vorschlagswert entsprechend. Dabei werden im ersten Schritt die existierenden Berechtigungen zu dem InfoObjekt 0BUS_AREA gelesen. Anschließend werden diese überprüft. Handelt es sich um eine allgemeine Berechtigung (*-Berechtigung), wird diese ignoriert. Handelt es sich um einen konkreten Geschäftsbereich, wird dieser in die Vorbelegung der Variablen zurückgegeben. DATA: v_tsx_auth_values_user TYPE rssb_tsx_auth_values_user, w_sx_auth_values_user TYPE line of rssb_tsx_auth_values_user, w_sx_auth_values_auth TYPE rssb_sx_auth_values_user_auth, w_sx_auth_values_iobjnm TYPE rssb_sx_auth_values_user_iobj, w_sx_auth_values_range LIKE rrrange, v_ts_authnode TYPE rssbr_ts_authnode, w_s_authnode TYPE line of rssbr_ts_authnode, v_authhieruid TYPE rssauthhieruid. CONSTANTS: c_zcomp_bus TYPE rssb_sx_auth_values_user-object VALUE 'ZCOMP_BUS', c_attrinm_company TYPE rssb_sx_auth_values_user_iobj-iobjnm VALUE '0COMPANY', 112
11 Variablen-Exit RSR c_attrinm_busarea TYPE rssb_sx_auth_values_user_iobj-iobjnm VALUE '0BUS_AREA'. IF i_step = 1. * Lies alle Reporting-Berechtigungen für den Benutzer * (nur InfoObjekt 0BUS_AREA) CALL FUNCTION 'RSSB_AUTHORIZATIONS_OF_USER' EXPORTING I_IOBJNM = '0BUS_AREA' I_INFOPROV = 'DEMOCUBE' I_UNAME = sy-uname I_HIENM = 'DEMOHIER' I_DATETO = sy-datum I_VERSION = '000' IMPORTING * E_T_RANGESID = E_TSX_AUTH_VALUES_USER = v_tsx_auth_values_user * E_NIOBJNM = * E_NODE = * E_TS_NODE = * E_TS_AUTH_VALUES_HIERARCHY = * E_T_MSG = EXCEPTIONS NOT_AUTHORIZED = 1 INTERNAL_ERROR = 2 USER_DOESNT_EXIST = 3 X_MESSAGE = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 RAISING not_authorized. * LOOP über alle Reporting-Berechtigungen des Benutzers LOOP AT v_tsx_auth_values_user INTO w_sx_auth_values_user. * Welches Berechtigungsobjekt? CHECK w_sx_auth_values_user-object = c_zcomp_bus. * Doppelberechtigungsobjekt LOOP über alle Ausprägungen * zum Berechtigungsobjekt LOOP AT w_sx_auth_values_user-auth INTO w_sx_auth_values_auth. * Company-Ausprägung lesen READ TABLE w_sx_auth_values_auth-values_iobjnm 113
12 4 User-Exits und BAdIs im Reporting INTO w_sx_auth_values_iobjnm WITH KEY iobjnm = c_attrinm_company. IF sy-subrc = 0. * Gesellschaft gefunden LOOP AT w_sx_auth_values_iobjnm-ranges INTO w_sx_auth_values_range. IF ( w_sx_auth_values_range-sign = 'I' ) AND ( w_sx_auth_values_range-opt = 'CP' ) AND ( w_sx_auth_values_range-low = '*' ). * Existiert eine *-Berechtigung für 0COMPANY? * Geschäftsbereich bestimmen. READ TABLE w_sx_auth_values_auth-values_iobjnm INTO w_sx_auth_values_iobjnm WITH KEY iobjnm = c_attrinm_busarea. IF sy-subrc = 0. * Berechtigung zum Geschäftsbereich LOOP AT w_sx_auth_values_iobjnm-ranges INTO w_sx_auth_values_range. MOVE-CORRESPONDING w_sx_auth_values_range TO l_s_range. APPEND l_s_range TO e_t_range. ENDLOOP. "w_sx_auth_values_iobjnm_range "sy-subrc = 0 "*-Berechtigung für 0COMPANY ENDLOOP. " w_sx_auth_values_iobjnm-ranges "sy-subrc = 0 ENDLOOP. "w_sx_auth_values_user-auth ENDLOOP. "v_tsx_auth_values_user Listing 4.5 Ableitung der Berechtigungen aus speziellen Berechtigungsobjekten Implementierung bei I_STEP = 2 Im Prinzip unterscheidet sich die Implementierung von Schritt 2 nicht von der Implementierung von Schritt 1. Es gibt jedoch eine bedeutende Abweichung, die enorm wichtig ist: In Schritt 2 haben Sie die Möglichkeit, auf die Werte zurückzugreifen, die im Pop-up eingegeben wurden. Dies ist oft nötig, wenn der Benutzer einen Zeitpunkt eingibt und abhängig von dem Zeitpunkt Ableitungen getroffen werden. Dies wird im folgenden Beispiel erläutert. Beispiel 4: Zeitabhängige Versionen Der Benutzer soll in der Variablen REP_PER eine Berichtsperiode eingeben. Die Variable REP_VERS soll dann abhängig von dem Zeitpunkt der Variablen REP_PER die Werte in Tabelle 4.1 annehmen. 114
13 Variablen-Exit RSR Zeitpunkt REP_PER Periode ist abgeschlossen. Periode ist im aktuellen Jahr, aber nicht abgeschlossen. Periode ist in einem der Folgejahre. Wert REP_VERS ACT (Ist-Version) PRE (Vorschau) PLN (Planversion) Tabelle 4.1 Versionsumsetzung Die Implementierung dazu finden Sie in Listing 4.6. Dabei wird zuerst die Berichtsperiode REP_PER gelesen. Anschließend wird der letzte Tag der Berichtsperiode bestimmt. Nach den Vorgaben der Tabelle 4.1 wird dann der Rückgabewert bestimmt. DATA: l_s_range TYPE rsr_s_rangesid. DATA: l_s_var_range LIKE rrrangeexit, l_d_datum LIKE sy-datum, l_d_year TYPE /bi0/oifiscyear, l_d_per3 TYPE /bi0/oifiscper3. CASE i_vnam. WHEN 'CUMMONTH'. CLEAR l_s_range. IF i_step = 2. "Nach Pop-up * Eingabe der Variablen REP_PER lesen READ TABLE i_t_var_range INTO l_s_var_range WITH KEY vnam = 'REP_PER'. IF sy-subrc = 0. l_d_year = l_s_var_range-low(4). l_d_per3 = l_s_var_range-low+4(3). CALL_FUNCTION 'LAST_DAY_IN_PERIOD_GET' EXPORTING I_GJAHR = l_d_year I_PERIV = i_periv I_POPER = l_d_per3 IMPORTING E_DATUM = l_d_datum EXCEPTIONS OTHERS = 1. IF SY-SUBRC <> 0. * Nicht bestimmbar (fehlende * Geschäftsjahresvariante?) => Default setzen l_s_range-low = 'ACT'. ELSE. IF l_d_datum <= sy-datum. * Periode abgeschlossen l_s_range-low = 'ACT'. ELSE. CALL_FUNCTION 'FIRST_DAY_IN_YEAR_GET' 115
14 4 User-Exits und BAdIs im Reporting EXPORTING I_GJAHR = l_d_year I_PERIV = i_periv IMPORTING E_DATUM = l_d_datum EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. * Nicht bestimmbar (aber Periode war * bestimmbar?) => Default setzen l_s_range-low = 'ACT'. ELSE. IF l_d_datum > sy-datum. * Geschäftsjahr noch nicht begonnen l_s_range-low = 'PLN'. ELSE. l_s_range-low = 'PRE'. ELSE. * Variable wurde irrtümlich verwendet, sinnvollen * Default setzen (zum Beispiel ACT) l_s_range-low = 'ACT'. l_s_range-sign = 'I'. l_s_range-opt = 'EQ'. APPEND l_s_range TO e_t_range. Listing 4.6 Beispiel zur Variablenbestimmung abhängig von Eingabevariablen Typische Beispiele für die Variablenbestimmung abhängig von Eingabevariablen sind: Ableitung einer Formelvariablen aus einer eingegebenen Periode zur Hochrechnung von Jahresprognosen oder Verteilung von Jahreswerten Ableitung einer Vergleichsgruppe (zum Beispiel einer Hierarchieknotenvariablen) zu einem eingegebenen Merkmal, beispielsweise einem Profit- Center Ableitung der Unter- oder Obergrenze eines Zeitintervalls, das nicht durch eine feste Anzahl von Perioden, sondern durch andere Schranken definiert ist, zum Beispiel Quartalsanfang oder -ende Bestimmung einer berechtigungsabhängigen Formelvariablen zur Anzeige von noch nicht freigegebenen Perioden. Dabei wird abhängig von der ein- 116
15 Variablen-Exit RSR gegebenen Periode geprüft, ob die Periode schon freigegeben ist. Wenn nicht, wird eine Berechtigungsprüfung durchgeführt. Schlägt diese fehl, wird 0 zurückgeliefert, sonst 1. Die Query multipliziert daraufhin den tatsächlichen Wert mit dem Ergebnis der Formelvariablen. Ableitung von Variablen für MultiProvider. So können Sie zum Beispiel eine Variable für eine Kostenstelle abfragen und aus der Kostenstelle dann das zugeordnete Profit-Center ableiten, da in einem der beteiligten Info- Provider keine Kostenstelle, sondern nur das Profit-Center enthalten ist Implementierung bei I_STEP = 0 Step 0 ist unter anderem für die Ableitung von Variablen in Berechtigungen vorgesehen. Sie können in einer Reporting-Berechtigung einfach eine Variable verwenden, indem Sie einen Variablennamen eintragen, der mit einem Dollarzeichen ($) beginnt. Diese Variable muss vorher im Query Designer definiert worden sein. Bei der Ausführung eines Berichts wird der Exit aufgerufen, und Sie können die Bestimmung der Berechtigung in ABAP durchführen. Bei der Bestimmung der Berechtigungen wird die Rückgabetabelle wie eine Berechtigung aufgefasst, daher müssen auch hier die Einschränkungen wie bei Berechtigungen berücksichtigt werden. Dementsprechend muss SIGN immer den Wert I haben, OPT muss einen der Werte EQ oder BT annehmen. Ausschließende Berechtigungen, zum Beispiel»alle Gehälter außer den Vorstandsbezügen«, sind nicht erlaubt. Mögliche und typische Anwendungen dafür sind Ableitungen von Berechtigungen aus Tabellen oder aus Stammdaten. Auf diese Art und Weise ist es jedoch auch möglich, die Berechtigung abhängig vom aktuellen Datum zu vergeben. Eine typische Anwendung dafür zeigt das folgende Beispiel. Beispiel 5: Berechtigungen in der Quiet Period ändern In diesem Beispiel soll für eine Regionalhierarchie eine Berechtigung zeitabhängig gesteuert werden. Dabei haben alle Mitarbeiter immer die Berechtigung auf alle Regionen, nur in der sogenannten Quiet Period vom 25. eines Monats zum Quartalsende bis zum 15. des Folgemonats (im Januar bis zum 25. Januar) dürfen sie ausschließlich die Regionen sehen, die in einer Tabelle abgelegt sind. Dazu ist in ihrer Berechtigung die Variable $QREGION hinterlegt. Diese Variable wird in Listing 4.7 gefüllt. Dabei wird zuerst der aktuelle Tag bestimmt. Anschließend wird überprüft, ob der Tag in den definierten 117
16 4 User-Exits und BAdIs im Reporting Perioden liegt. Wenn ja, darf der Benutzer nur bestimmte Regionen sehen, im Übrigen darf er alles sehen. DATA: L_S_RANGE TYPE RSR_S_RANGESID. CASE i_vnam. WHEN 'QREGION'. * Datum in der Quiet Period? DATA: l_d_tag(4) TYPE n, l_s_region TYPE z_user_region. l_d_tag = sy-datum+4(4). IF ( l_d_tag <= '0125' ) OR ( ( l_d_tag >= '0325' ) AND ( l_d_tag <= '0415' ) ) OR ( ( l_d_tag >= '0625' ) AND ( l_d_tag <= '0715' ) ) OR ( ( l_d_tag >= '0925' ) AND ( l_d_tag <= '1015' ) ) OR ( l_d_tag >= '1225' ). l_s_range-sign = 'I'. l_s_range-opt = 'EQ'. SELECT * FROM z_user_region INTO l_s_region WHERE uname = sy-uname. l_s_range-low = l_s_region-region. APPEND l_s_range TO e_t_range. ENDSELECT. ELSE. l_s_range-sign = 'I'. l_s_range-opt = 'CP'. l_s_range-low = '*'. APPEND l_s_range TO e_t_range. Listing 4.7 Implementierung einer Berechtigungsvariablen Die IF-Abfrage in Listing 4.7 würde normalerweise nicht direkt in die Variable geschrieben, sondern in eine separate Check-Funktion ausgelagert, eventuell sogar in einer Customizing-Tabelle hinterlegt werden. In der Praxis würden diese Zeilen sonst regelmäßig geändert Implementierung bei I_STEP = 3 Die Implementierung bei I_STEP = 3 ist anders und etwas komplizierter als die Implementierung der anderen Schritte. Dies liegt vor allem an zwei Faktoren: Zum einen ist darauf zu achten, dass nicht in jeder Query dieselben 118
ABAP-Programmierung für SAP NetWeaver BW Kundeneigene Erweiterungen
SAP PRESS ABAP-Programmierung für SAP NetWeaver BW Kundeneigene Erweiterungen Bearbeitet von Dirk Herzog erweitert 2012. Buch. ca. 276 S. Hardcover ISBN 978 3 8362 1878 8 Format (B x L): 16 x 24 cm Wirtschaft
ajanzen.com ALV-Grid-Anzeige mit eingabebereiten Zellen
ajanzen.com ALV-Grid-Anzeige mit eingabebereiten Zellen ajanzen.com 1 Einleitung Der Fokus des vorliegenden Dokumentes liegt auf der Demonstration des Vorgehens zum Erstellen eines zellenweise eingabebereiten
ajanzen.com Schnell programmierte ALV-GRID-Anzeige mit geänderten Spaltenüberschriften
ajanzen.com Schnell programmierte ALV-GRID-Anzeige mit geänderten Spaltenüberschriften ajanzen.com 1 Einleitung In dem vorliegenden Dokument wird anhand eines Beispiels auf die Möglichkeit einer schnell
Standardtext ins PDF-Format konvertieren
Standardtext ins PDF-Format konvertieren Mithilfe eines Standardreports ist es möglich, einen SAP-Standardtext ins PDF-Format zu konvertieren und abzuspeichern. Der Report RSTXPDFT konvertiert einen Standardtext
Includes/ Programme generieren
Includes/ Programme generieren Es kommt nicht oft vor, aber wenn, ist es eine nervige Arbeit: Das Anlegen von mehreren Includes. Das Anlegen ist einfach: Per INSERT REPORT kann einfach ein Programm angelegt
ajanzen.com CSV-Upload
ajanzen.com CSV-Upload ajanzen.com 1 Einleitung Wie bereits dem Titel zu entnehmen ist, wird in dem vorliegenden Dokument auf den Upload einer CSV-Datei eingegangen. Dabei liegt der Fokus nicht auf dem
11 Klassenbasierte Eigenentwicklungen im Workflow
D3kjd3Di38lk323nnm 313 11 Klassenbasierte Eigenentwicklungen im Workflow 11.1 Utility-Klasse ZCL_DATE: Datumsberechnung auf Kalendern 11.1.1 Verwendung von Datumsberechnungen Datums- und Zeitberechnung
A.4 Beispiel zum E-Mail-Versand über Smart Forms
A.4 Beispiel zum E-Mail-Versand über Smart Forms A.4.1 Quelltext In Abschnitt 10.1 haben wir zur Erläuterung des E-Mail-Versands über Smart Forms ein Übungsbeispiel genannt. Hier finden Sie den Quelltext
ajanzen.com Aufruf eines Pop-Up-Containers
ajanzen.com Aufruf eines Pop-Up-Containers ajanzen.com 1 Einleitung Der Fokus des vorliegenden Dokumentes liegt auf dem Aufruf eines Pop-Up- Containers. Die Funktion ist klassenbasiert und erfordert keine
FIVE1 GmbH & Co. KG SAP Partner Port Altrottstraße 31 69190 Walldorf T: +49 6227 73 2840 www.five1.de 1 FIVE1 GmbH & Co. KG Essence of quality
28. August 2010 FIVE1 GmbH & Co. KG SAP Partner Port Altrottstraße 31 69190 Walldorf T: +49 6227 73 2840 www.five1.de 1 FIVE1 GmbH & Co. KG Essence of quality Dieses Dokument Stammdatenplanung mit SAP
10.6 Programmier-Exits für Workitems
10.6 Programmier-Exits für Workitems 279 10.6 Programmier-Exits für Workitems 10.6.1 Das Interface IF_SWF_IFS_WORKITEM_EXIT Am Schritt einer Workflow-Definition im Reiter»Programmier-Exits«können verschiedene
Datenbankablage für ArchiveLink einrichten
Datenbankablage für ArchiveLink einrichten Mit dem minisap wird eine komplette Basiskomponente, BC resp. SAP_BASIS, bereitgestellt. Wer im Umfeld dieser Komponente tätig ist, z.b. im Bereich des Records
1. Schritt: Anlegen des Musters
Eigener Muster-Dialog Im folgenden erklären wir Ihnen, wie Sie Ihren eigenen Muster-Dialog erstellen können. Sie müssen hierfür zwei Namenskonventionen beachten und dann können Sie loslegen. Im folgenden
ajanzen.com ALV-Anzeige im Selection-Mode mit angepassten Zellenfarben
ALV-Anzeige im Selection-Mode mit angepassten Zellenfarben 1 Einleitung In dem vorliegenden Dokument wird anhand eines Beispiels auf die Möglichkeit einer schnell programmierten Visualisierung von Informationen
ajanzen.com ALV-Anzeige mit eigenen Spaltenüberschriften und aktiven Standardfunktionen
ALV-Anzeige mit eigenen Spaltenüberschriften und aktiven Standardfunktionen 1 Einleitung In dem vorliegenden Dokument wird anhand eines Beispiels auf die Möglichkeit einer schnell programmierten Visualisierung
ajanzen.com Excel-Upload
ajanzen.com Excel-Upload ajanzen.com 1 Einleitung Wie bereits dem Titel zu entnehmen ist, wird in dem vorliegenden Dokument auf den Upload einer Excel-Datei eingegangen. Dabei liegt der Fokus neben dem
Generischer Excel-Upload
Generischer Excel-Upload Mit diesem Programm können Sie relativ einfach Daten, die in Excel-Tabellen gespeichert sind, in eine Tabelle geladen werden. Es wird dafür ein Excel-Objekt erzeugt und die Exceltabelle
BW305H. Query-Design und -Analysen mit SAP Business Warehouse powered by SAP HANA GLIEDERUNG DES KURSES. Version der Schulung: 15 Dauer der Schulung:
BW305H Query-Design und -Analysen mit SAP Business Warehouse powered by SAP HANA. GLIEDERUNG DES KURSES Version der Schulung: 15 Dauer der Schulung: SAP-Copyright und Markenzeichen 2017 SAP SE oder ein
Kurzbeschreibung. Quelltext
Transaktionshistorie manipulieren Das folgende Programm demonstriert die Manipulation der OK-Code-Historie mittels ABAP. Hierfür werden Registry-Einträge auf dem Frontend manipuliert. Kurzbeschreibung
Der Beginn einer wunderbaren Freundschaft von Stefan Schnell
Der Beginn einer wunderbaren Freundschaft von Stefan Schnell Polyglottes programmieren, also programmieren in mehreren Sprachen, ist ein eher ungewöhnliches Szenario. Programmiersprachen bieten im Regelfall
SAP-Fachtagung Workshop SAPQuery an die Kette legen
SAP-Fachtagung 2012 Workshop SAPQuery an die Kette legen Berlin, September 2012 Thomas Michler TBS ggmbh Rheinland-Pfalz 1 Definitionen Wenn man eine TA ausführt, wird ein Programm aufgerufen. Dieses Programm
Datenmigration. Tipps und Tricks
Dokument-Historie Version Datum Author Änderungsgrund 1.0 März 2013 Erhard Horak Ersterstellung B.O.A. Unternehmensberatung GmbH Phone +49 (0)7735 938645 Internet www.boa-soft.de Inhaltsverzeichnis 1 STRUKTUREN
Die in diesem Fall als Template verwendete Excel-Datei muss mithilfe der Transaktion OAER in das Business Objects Repository geladen werden!
BOR-Integration In diesem Beispiel laden wir eine im BOR (Business Object Repository) gespeicherte Excel-Datei, verändern diese und Speichern sie als neues Dokument wieder im BOR ab. Dabei wird die Excel-
ajanzen.com Um eigene Toolbar-Funktionen erweiterte ALV-Grid-Anzeige
ajanzen.com Um eigene Toolbar-Funktionen erweiterte ALV-Grid-Anzeige ajanzen.com 1 Einleitung Der Fokus des vorliegenden Dokumentes liegt auf dem Vorgehen zum Einbinden einer eigenen Toolbarfunktion bei
Buchhaltung - Abschlüsse - Buchungssätze-Import
Buchhaltung - Abschlüsse - Buchungssätze-Import Inhalt Allgemeines Aufbau der Import Datei Aufruf und Prüfung der Import Datei Validierung Verbuchung Allgemeines Der Buchungssätze-Import dient dazu, dass
2.16 Trusted-RFC-Verbindungen
2 Die Systemsicherheit 2.16 Trusted-RFC-Verbindungen 2.16.1 Einsatzmöglichkeiten einer Trusted-Verbindung Für einige Anwendungen ist es erforderlich, Kommunikationsverbindungen über RFC (Remote Function
Erzeugung eines Dokuments
Erzeugung eines Dokuments Hier stellen wir Ihnen ein ABAP-Programm vor, mit dem ein Word-Dokument erzeugt und mit Daten gefüttert wird. Mit diesem Programm stellen wir Ihnen eine Möglichkeit vor, wie Sie
ajanzen.com Vorgehen zum Erstellen eines Dynpro- Splitters
Vorgehen zum Erstellen eines Dynpro- Splitters 1 Einleitung Dem vorliegenden Beispiel kann das Vorgehen zum Erstellen eines Dynpro-Splitters entnommen werden. Im Gegensatz zur Verwendung von Splitter-Containern,
Programmieren für Fortgeschrittene Einführung in die Programmiersprache ABAP
Funktionsanalyse für einen programmgesteuerten Zugriff auf 3D-Modelle Robin Raetze Waldemar Gorbunov Braunschweig, 26.01.2017 GESIS, MV, Folie 1, Braunschweig, 23. Juni 2016 Programmieren für Fortgeschrittene
Praxishandbuch SAP BW 3-1
Norbert Egger Praxishandbuch SAP BW 3-1 Technische Universität DarmsUdt FACHBEREICH INFORMATIK BIBLIOTHEK Inventar-Nr.: Ä/A< Sachgebiete: Standort- Co Galileo Press Inhalt Vorwort 13 Zu diesem Buch 17
FINISS Support Team Konfiguration des Datafeed Zugriffs auf Markt Daten via FINISS
FINISS Support Team [email protected] Konfiguration des Datafeed Zugriffs auf Markt Daten via FINISS 14. Februar 2014 Inhaltsverzeichnis: 1 InternetAnbindung... 3 2 Konfiguration... 3 2.1 Technische Konfiguration
APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst
APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst Basel Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien Voraussetzungen Alles hier gezeigte benötigt
TIPPS & TRICKS SAP CM Teil 1
TIPPS & TRICKS SAP CM Teil 1 Schwerpunkte dieses Dokuments: Benutzereinstellungen Berechtigungen Autor: Peter Nötzli Datum: 30.06.2014 Version: 2.0 Seite 1 Versionsverwaltung Vers.Nr Änd. Beschreibung
Partitionierungsstrategien für Data Vault
ierungsstrategien für Data Vault Dani Schnider Trivadis AG Zürich/Glattbrugg, Schweiz Einleitung Während das Laden von Tabellen in Data Vault in der Regel nicht zeitkritisch ist, stellt uns das effiziente
JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
Trainingsmanagement Gutschein Management. Beschreibung
Trainingsmanagement Beschreibung www.dastm.de [email protected] 1. Einführung... 2 2. Gutschein Funktionen... 3 2.1. Gutschein Menü... 3 2.2. Gutscheine anlegen... 4 Gutschein Kassenwirksam erfassen... 6 Gutschein
Implementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern
Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung
MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.
MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt
TIPPS & TRICKS SAP CM Teil 2
TIPPS & TRICKS SAP CM Teil 2 Selektionen Selektionsvarianten Suchhilfen Sichern mit Kennung Autor: Peter Nötzli Datum: 24.05.2006 Version: 1.0 Status: freigegeben Dateiname: TIPPS&TRICKS_TEIL2.doc Ablage:
ISACA After Hours Seminar vom 29.3.2009
SAP -Systeme und Unternehmensdaten wie sicher sind sie wirklich? Thomas Tiede IBS Schreiber GmbH Geschäftsführer 1 Agenda 1 Sensible Unternehmensdaten Wo und wie werden sie gespeichert? 2 Unterschätzte
REPORT Z_NEBP_RAHMEN.
*&---------------------------------------------------------------------* *& Report Z_NEBP_RAHMEN *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------*
Oracle Forms Was validiere ich wo?
Oracle Forms Was validiere ich wo? Autor: Torsten Pattberg, Opitz Consulting Gummersbach GmbH DOAGNews Q1_2004 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die
Wiederkehrende Buchungen
Wiederkehrende Buchungen Bereich: FIBU - Info für Anwender Nr. 1133 Inhaltsverzeichnis 1. Ziel 2. Vorgehensweise 2.1. Wiederkehrende Buchungen erstellen 2.2. Wiederkehrende Buchungen einlesen 3. Details
Jahresabschluss INTEGRA Finanzbuchhaltung
INTEGRA Finanzbuchhaltung Inhaltsverzeichnis 1. Allgemeine Vorbereitungen (einmalig)... 3 1.1 Saldovortragskonten anlegen... 3 1.2 Buchungsschlüssel Saldovortrag anlegen... 4 2. Allgemeine Vorbereitungen
ajanzen.com ALV-Grid-Anzeige mit eingabebereiten Spalten
ajanzen.com ALV-Grid-Anzeige mit eingabebereiten Spalten ajanzen.com 1 Einleitung Der Fokus des vorliegenden Dokumentes liegt auf dem Erstellen eines ALV mit eingabebereiten Spalten unter Verwendung von
Funktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.
Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss
Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei
JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.
JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten
Checkliste: Konfiguration eines Datenraums nach einem Upgrade von Brainloop Secure Dataroom von Version 8.10 auf 8.20
Checkliste: Konfiguration eines Datenraums nach einem Upgrade von Brainloop Secure Dataroom von Version 8.10 auf 8.20 Diese Checkliste hilft Ihnen bei der Überprüfung Ihrer individuellen Datenraum-Konfiguration
Funktionen nur wenn dann
Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative
Prüfplan SAP. März 2011 Uli Flake, Jochen Konrad-Klein,
Prüfplan SAP März 2011 Uli Flake, [email protected] Jochen Konrad-Klein, [email protected] Prüfplan SAP März 2011 Seite 2 Inhalt Prüfplan SAP... 1 1. Einleitung... 3 Bedienung des
Die Outlook-Schnittstelle
Die Outlook-Schnittstelle Merlin 19 Version: 19.0 Stand: 29.02.2016 Angerland-Data Gesellschaft für Baudatentechnik mbh Am Gierath 28, 40885 Ratingen DEUTSCHLAND Internet: www.angerland-data.de Inhalt
Übersicht der wichtigsten MySQL-Befehle
Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit
ajanzen.com Beispiele für den Umgang mit Feldsymbolen
ajanzen.com Beispiele für den Umgang mit Feldsymbolen ajanzen.com 1 Einleitung In dem vorliegenden Dokument möchte ich auf den Umgang mit Feldsymbolen näher eingehen. Dabei geht es nicht um komplexe Erklärungen,
C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services
C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften
Fachhochschule Deggendorf Platzziffer:...
Sommersemester 2008 Zahl der Blätter: 9 Fachbereich: Betriebswirtschaft WI Bachelor Hilfsmittel: alles ohne Computer Zeit: 90 Minuten 1 Betrachten Sie die drei markierten Zeilen. 1. Angenommen Sie hätten
Kassenonlineportal. Nachfolgend wird die Benutzung des Kassen-Online-Portals Schritt für Schritt beschrieben.
Kassenonlineportal Nachfolgend wird die Benutzung des Kassen-Online-Portals Schritt für Schritt beschrieben. Die Anmeldung zum Kassen-Online-Portal erfolgt über die Internetseite https://dmp-kassenportal.spsprien.de
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:
JavaScript - Inhalt 1. Objekte 2. Arrays 3. Callbacks 1)JavaScript Objekte Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf: Eine Methode wird immer mit dem Namen des Objekts, einem Punkt
= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)
Musterlösung Übung 2 Aufgabe 1: Große Zahlen Das Ergebnis ist nicht immer richtig. Die Maschine erzeugt bei Zahlen, die zu groß sind um sie darstellen zu können einen Über- bzw. einen Unterlauf. Beispiele
Institut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Aufgabenblatt 4 Prof. R. Westermann, A. Lehmann,
Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle
Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle Version 1.3.11 vom 22.11.2016 Haftungsausschluss Die Firma PA-Konzepte GbR übernimmt keinerlei Support, Garantie und keine Verantwortung
Funktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben
Anwender- Dokumentation. REP Datenbank Wartungsprogramme. Version 320-23.00 Version 280-23.00
Anwender- Dokumentation REP Datenbank Wartungsprogramme Version 320-23.00 Version 280-23.00 Allgemein Die Abkürzung REP steht in der Renault Informatik für den Begriff Référentiel Entretiens Programmés,
4. Objektrelationales Typsystem Kollektionstypen. Nested Table
Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen
Dynamische Stichwortlisten
Dynamische Stichwortlisten [Stand: 21.07.2014 Programmversion: 9.00.000] In diesem Dokument wird die client-übergreifende Handhabung und das Scripting für dynamische Stichwortlisten erklärt. Hinweis: Die
S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"
S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert
Schnelle Kurzgeschichten
Schnelle Kurzgeschichten Dr. Andrea Kennel InfoPunkt Kennel GmbH CH-8600 Dübendorf Schlüsselworte: Data Warehousing, Dimensionen, Performance, Slowly Changing Dimensions. Einleitung Unsere Kundin ist im
Demo zu Desktop Office Integration
Demo zu Desktop Office Integration Demoprogramme zur Desktop Office Integration. Entwicklungsklasse: SOFFICEINTEGRATION SAPRDEMO_PIVOTINTERFACE SAPRDEMO_SPREADSHEET_INTERFACE SAPRDEMO_TABLES_IN_EXCEL SAPRDEMOEXCELINTEGRATION2
Business Software für KMU
Business Software für KMU Tutorial Berechtigungen vergeben Version 5.2 / 24.05.2016 Inhaltsverzeichnis 1 Grundeinstellung... 1 2 Benutzergruppen... 3 2.1 Gruppen und Mitglieder... 5 3 Berechtigungsassistent...
Datenbank und Tabelle mit SQL erstellen
Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`
In der Offenen Vorgänge Liste wird angezeigt, welche Vorgänge noch nicht vollständig ausgeglichen wurden.
Verwaltung - Listen Inhalt Offene Vorgänge Terminliste Rechnungsliste Transferliste Inboxleistungen Rechnungsabweichung Rückvergütungen Leistungsliste Dokumentenliste Offene Vorgänge In der Offenen Vorgänge
TRIAS-AMOS Handbuch Band 3 Benutzerverwaltung Seite: 1
TRIAS-AMOS Handbuch Band 3 Benutzerverwaltung Seite: 1 Inhaltsverzeichnis 1. Benutzerverwaltung... 3 a. Zugeordnetes Profil... 5 b. Werke... 5 c. Kostenstellen... 6 d. Persönliche Einstellungen löschen...
Kernfunktion: Definition und Konfiguration von individuellen Filter, Skripten und Auswertungen für die Info-Zentrale des combit Relationship Managers.
1 1 Kernfunktion: Definition und Konfiguration von individuellen Filter, Skripten und Auswertungen für die Info-Zentrale des combit Relationship Managers. cosmolink business - 1 2 Beschreibung: In der
BMD NTCS STAPEL FÜR AUTOMATISCHE WEBUPDATES
BMD NTCS STAPEL FÜR AUTOMATISCHE WEBUPDATES, Steyr INHALTSVERZEICHNIS 1. ALLGEMEIN... 3 1.1. Was bedeutet die Versionsnummer überhaupt?... 3 1.2. Was passiert bei einem WebUpdate?... 3 2. NTCS PATCH AUTOMATISCH
SAP - EXCEL-Integration
1 Custom IS Solutions Custom IS GmbH & Co. KG Querstraße 8/10, 31224 Peine fon: +49 (0)5171 79 02 030 fax: +49 (0)5171 79 02 029 www.custom-is.de E-Mail: [email protected] 2 Inhalt I Allgemeine Ausgangssituation
Massengenehmigung mit der UWL(Universal- Worklist) 18 December 2009 - B. Sc. Alexander Graf
Massengenehmigung mit der UWL(Universal- Worklist) 18 December 2009 - B. Sc. Alexander Graf Applies to: SAP ECC 6.0 Level 2 Backendsystem and SAP NetWeaver Portal 7.0. Patchlevel 19 with EHP 3 package
1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
1. Im Hauptmenü wechseln Sie in den Punkt Liste. 2. Im Seitenbaum klicken Sie in den Menüpunkt, wo das Formular eingefügt werden soll.
1. Im Hauptmenü wechseln Sie in den Punkt Liste. 2. Im Seitenbaum klicken Sie in den Menüpunkt, wo das Formular eingefügt werden soll. (ich habe hier als Beispiel den Punkt Angestellte benutzt) 3. In der
Daten transformieren
Daten transformieren Inhaltsverzeichnis DATEN TRANSFORMIEREN... 1 Variablen berechnen... 1 Variablen umcodieren... 3 Daten transformieren Variablen berechnen Mit MAXQDA Stats können Sie Berechnungen mit
Benutzerdefinierte Housekeepinglisten in SAP BW //
Was wir vorhersagen, soll auch eintreffen! Benutzerdefinierte Housekeepinglisten in SAP BW // Stefan Rutte 1. Housekeepingliste anlegen Zum Anlegen der Housekeepingliste muss der Aufgaben-Manager mit der
Stefan Schröder Hard- und Softwareentwicklungen. Anleitung TSImport. Zum Neetzekanal Brietlingen
Stefan Schröder Hard- und Softwareentwicklungen Anleitung TSImport Stefan Schröder Hard- und Softwareentwicklungen Zum Neetzekanal 19 21382 Brietlingen e-mail: [email protected] Internet: http://www.sshus.de
myfactory.go! - Dokumente
Tutorial: Wie arbeite ich mit der Dokumentenverwaltung? Immer und überall auf Firmen-Unterlagen zugreifen zu können, kann in manchen Situationen einen Wettbewerbsvorteil darstellen. Dieses Tutorial zeigt
Anleitung gpuntis Import
Anleitung gpuntis Import Wir erklären Ihnen hier Schritt-für-Schritt, wie Sie Ihre Daten aus gpuntis in den Sokrates importieren können. Teil I Parameter pflegen Zuerst müssen Sie die Parameter pflegen.
Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
Dokumentation zur Anlage eines JDBC Senders
Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise
Kurzanleitung. SEPA-Zahlungsverkehr Zahlungshistorie
Kurzanleitung SEPA-Zahlungsverkehr Zahlungshistorie TOPIX:8 Version 8.9.3v2 Stand 08/2014 Die neuen Funktionen Mit der Version 8.9.3v2 stellt TOPIX:8 neue unterstützende Funktionen für den SEPA-Zahlungsverkehr
Schnellstartanleitung
Schnellstartanleitung Inhalt: Ein Projekt erstellen Ein Projekt verwalten und bearbeiten Projekt/Assessment-Ergebnisse anzeigen Dieses Dokument soll Ihnen dabei helfen, Assessments auf der Plattform CEB
12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
aibrowser Ausgabe
aibrowser Ausgabe 17.01.2018 Inhalt 1 Start und Menü-Balken...2 Einstellungen...3 General...3 Autologin...4 Info...5 Übergabe der Scan-Daten an den aibrowser...6 Methode 1: JavaScript Function Call...6
SMS Dienst einrichten pro Benutzer pflegen
SMS Dienst einrichten pro Benutzer pflegen Bei der Anlage des Benutzers können die Einstellungen für das kostenpflichtige SMS- Modul vorgenommen werden. Schritt 1 Schritt 2 Aufruf des Benutzers in der
