4 User-Exits und BAdIs im Reporting

Größe: px
Ab Seite anzeigen:

Download "4 User-Exits und BAdIs im Reporting"

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

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

Mehr

ajanzen.com ALV-Grid-Anzeige mit eingabebereiten Zellen

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

Mehr

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

Mehr

Standardtext ins PDF-Format konvertieren

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

Mehr

Includes/ Programme generieren

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

Mehr

ajanzen.com CSV-Upload

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

Mehr

11 Klassenbasierte Eigenentwicklungen im Workflow

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

Mehr

A.4 Beispiel zum E-Mail-Versand über Smart Forms

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

Mehr

ajanzen.com Aufruf eines Pop-Up-Containers

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

Mehr

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

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

Mehr

10.6 Programmier-Exits für Workitems

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

Mehr

Datenbankablage für ArchiveLink einrichten

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

Mehr

1. Schritt: Anlegen des Musters

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

Mehr

ajanzen.com ALV-Anzeige im Selection-Mode mit angepassten Zellenfarben

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

Mehr

ajanzen.com ALV-Anzeige mit eigenen Spaltenüberschriften und aktiven Standardfunktionen

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

Mehr

ajanzen.com Excel-Upload

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

Mehr

Generischer Excel-Upload

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

Mehr

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: 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

Mehr

Kurzbeschreibung. Quelltext

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

Mehr

Der Beginn einer wunderbaren Freundschaft von Stefan Schnell

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

Mehr

SAP-Fachtagung Workshop SAPQuery an die Kette legen

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

Mehr

Datenmigration. Tipps und Tricks

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

Mehr

Die in diesem Fall als Template verwendete Excel-Datei muss mithilfe der Transaktion OAER in das Business Objects Repository geladen werden!

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-

Mehr

ajanzen.com Um eigene Toolbar-Funktionen erweiterte ALV-Grid-Anzeige

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

Mehr

Buchhaltung - Abschlüsse - Buchungssätze-Import

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

Mehr

2.16 Trusted-RFC-Verbindungen

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

Mehr

Erzeugung eines Dokuments

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

Mehr

ajanzen.com Vorgehen zum Erstellen eines Dynpro- Splitters

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,

Mehr

Programmieren für Fortgeschrittene Einführung in die Programmiersprache ABAP

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

Mehr

Praxishandbuch SAP BW 3-1

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

Mehr

FINISS Support Team Konfiguration des Datafeed Zugriffs auf Markt Daten via FINISS

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

Mehr

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

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

Mehr

TIPPS & TRICKS SAP CM Teil 1

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

Mehr

Partitionierungsstrategien für Data Vault

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

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

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

Mehr

Trainingsmanagement Gutschein Management. Beschreibung

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

Mehr

Implementieren von Klassen

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

Mehr

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

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

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

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

Mehr

TIPPS & TRICKS SAP CM Teil 2

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:

Mehr

ISACA After Hours Seminar vom 29.3.2009

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

Mehr

REPORT Z_NEBP_RAHMEN.

REPORT Z_NEBP_RAHMEN. *&---------------------------------------------------------------------* *& Report Z_NEBP_RAHMEN *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------*

Mehr

Oracle Forms Was validiere ich wo?

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

Mehr

Wiederkehrende Buchungen

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

Mehr

Jahresabschluss INTEGRA Finanzbuchhaltung

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

Mehr

ajanzen.com ALV-Grid-Anzeige mit eingabebereiten Spalten

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

Mehr

Funktionen in JavaScript

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.

Mehr

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

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

Mehr

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

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

Mehr

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

Mehr

Funktionen nur wenn dann

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

Mehr

Prüfplan SAP. März 2011 Uli Flake, Jochen Konrad-Klein,

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

Mehr

Die Outlook-Schnittstelle

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

Mehr

Übersicht der wichtigsten MySQL-Befehle

Ü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

Mehr

ajanzen.com Beispiele für den Umgang mit Feldsymbolen

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,

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

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

Mehr

Fachhochschule Deggendorf Platzziffer:...

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

Mehr

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

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

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

Mehr

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:

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

Mehr

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

= 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

Mehr

Institut für Informatik

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,

Mehr

Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle

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

Mehr

Funktionen in JavaScript

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

Mehr

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 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,

Mehr

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

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

Mehr

Dynamische Stichwortlisten

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

Mehr

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

Mehr

Schnelle Kurzgeschichten

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

Mehr

Demo zu Desktop Office Integration

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

Mehr

Business Software für KMU

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

Mehr

Datenbank und Tabelle mit SQL erstellen

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`

Mehr

In der Offenen Vorgänge Liste wird angezeigt, welche Vorgänge noch nicht vollständig ausgeglichen wurden.

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

Mehr

TRIAS-AMOS Handbuch Band 3 Benutzerverwaltung Seite: 1

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

Mehr

Kernfunktion: Definition und Konfiguration von individuellen Filter, Skripten und Auswertungen für die Info-Zentrale des combit Relationship Managers.

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

Mehr

BMD NTCS STAPEL FÜR AUTOMATISCHE WEBUPDATES

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

Mehr

SAP - EXCEL-Integration

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

Mehr

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

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

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,

Mehr

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

Mehr

Daten transformieren

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

Mehr

Benutzerdefinierte Housekeepinglisten in SAP BW //

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

Mehr

Stefan Schröder Hard- und Softwareentwicklungen. Anleitung TSImport. Zum Neetzekanal Brietlingen

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

Mehr

myfactory.go! - Dokumente

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

Mehr

Anleitung gpuntis Import

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.

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

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

Mehr

Dokumentation zur Anlage eines JDBC Senders

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

Mehr

Kurzanleitung. SEPA-Zahlungsverkehr Zahlungshistorie

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

Mehr

Schnellstartanleitung

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

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

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,

Mehr

aibrowser Ausgabe

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

Mehr

SMS Dienst einrichten pro Benutzer pflegen

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

Mehr