Bereich | Transaktionscode | Beschreibung | Bemerkung |
---|---|---|---|
Auftrag | IW31 | Serviceauftrag anlegen | |
Auftrag | IW32 | Serviceauftrag ändern | |
Auftrag | IW33 | Serviceauftrag anzeigen | |
Auftrag | IW72 | Serviceaufträge ändern (Liste) | |
Auftrag | IW73 | Serviceaufträge anzeigen (Liste) | |
Stammdaten | OISD | Serviceprodukt anlegen | Serviceprodukte werden in der Tabelle T399A abgelegt |
Kategorie: SAP
Interessante Transaktionen
Bereich | Transaktion | Beschreibung |
---|---|---|
ABAP & Transportaufträge | SCC1 | Transportauftrag kopieren |
ABAP & Transportaufträge | SCI | ABAP Code Inspector |
ABAP & Transportaufträge | SE03 | Objekte in Transportaufträgen suchen |
ABAP & Transportaufträge | SE10 | Transportauftrag anzeigen |
ABAP & Transportaufträge | SE16N | Tabellen suchen und anzeigen |
ABAP & Transportaufträge | SE24 | Pflege von Klassen (Class Builder) |
ABAP & Transportaufträge | SE38 | Programme ausführen |
ABAP & Transportaufträge | SE84 | Data Dictionary-Objekte und Entwicklungsobjekte anzeigen (bspw. Programmbibliothek / Funktionsbausteine) |
ABAP & Transportaufträge | SE93 | Transaktionscodes suchen |
ABAP & Transportaufträge | SLIN | ABAP erweiterter Syntaxcheck |
Trace, Log & Monitoring | SLG0 / SLG1 | Anwendungslog auswerten |
Trace, Log & Monitoring | SM12 | Sperreinträge |
Trace, Log & Monitoring | SM13 | Verbuchungsaufträge |
Trace, Log & Monitoring | SM21 | System-Log |
Trace, Log & Monitoring | ST01 | Systemtrace |
Trace, Log & Monitoring | ST03N | Systemmonitor (bspw. Analyse, welche Transaktionen aufgerufen wurden) |
Trace, Log & Monitoring | ST05 | SQL-Trace |
Trace, Log & Monitoring | ST22 | Laufzeitfehler auswerten (DUMP) |
Trace, Log & Monitoring | STAUTHTRACE | Systemtrace für Berechtigungsprüfungen |
Benutzer, Rollen & Berechtigungen | AL08 | Liste der im SAP-Systemen angemeldeten User (alle APP-Server) |
Benutzer, Rollen & Berechtigungen | PFCG | Rollen und Berechtigungen |
Benutzer, Rollen & Berechtigungen | SM04 | Liste der im SAP-Systemen angemeldeten User (aktueller APP-Server) |
Benutzer, Rollen & Berechtigungen | SU01 | Benutzerkonten / User |
Benutzer, Rollen & Berechtigungen | SU10 | Massenpflege Benutzer / User |
Benutzer, Rollen & Berechtigungen | SU53 | Berechtigungsdaten prüfen (bspw. für Analyse, welche Berechtigungen dir fehlen) |
Benutzer, Rollen & Berechtigungen | SUIM | Benutzerinformationssystem |
Benutzer, Rollen & Berechtigungen | IDocs | |
Benutzer, Rollen & Berechtigungen | BD20 | IDoc manuell verbuchen |
Benutzer, Rollen & Berechtigungen | BD21 | IDoc aus Änderungszeigern erzeugen |
Benutzer, Rollen & Berechtigungen | BD79 | Umsetzungsregeln (IDoc) |
Benutzer, Rollen & Berechtigungen | BD87 | IDoc-Monitor |
Benutzer, Rollen & Berechtigungen | SWO1 | Business Object Builder (bspw. IDoc in XML anzeigen) |
Benutzer, Rollen & Berechtigungen | WE02 | IDoc-Monitor |
Benutzer, Rollen & Berechtigungen | WE05 | IDoc-Monitor |
Benutzer, Rollen & Berechtigungen | WE09 | IDoc-Suche nach betriebswirtschaftlichem Inhalt |
Benutzer, Rollen & Berechtigungen | WE11 | IDoc löschen |
Benutzer, Rollen & Berechtigungen | WE19 | IDoc-Testwerkzeug (Simulation, Test und Verbuchung) |
Benutzer, Rollen & Berechtigungen | WE20 | Partnervereinbarungen (IDoc) |
Benutzer, Rollen & Berechtigungen | WE21 | Ports (IDoc) |
Benutzer, Rollen & Berechtigungen | WE60 | IDoc-Dokumentation |
Benutzer, Rollen & Berechtigungen | WLF_IDOC | IDoc-Monitor |
Basis | AL11 | SAP-Verzeichnisse |
Basis | DBCO | Verbindung für externe Datenbanken einrichten |
Basis | FILE | Pfade (logisch / physisch) |
Basis | OAM1 | ArchiveLink Monitor (Dokumentenmanagement) |
Basis | SM49 / SM69 | Externe Betriebssystemkommandos (bspw. PING) |
Basis | SM59 | RFC-Verbindungen |
Basis | SNOTE | SAP-Hinweise |
Basis | SNRO | Nummernkreise |
Basis | SO10 | SAPscript- und Standard-Textbausteine |
Basis | SOST | Sendeaufträge (bspw. E-Mails) |
Basis | SPAM | SAP-Support-packages (Aktualisierungen und Verbesserungen) |
Basis | STRUST | Webservice / Zertifikate |
Sonstiges | GGB1 | Substitutionsregeln anzeigen (CO / Controlling) |
Sonstiges | LSMW | Werkzeug zur Datenmigration |
Sonstiges | LTMC | SAP S/4HANA Migration Cockpit (Nachfolger LSMW) |
Sonstiges | LTMOM | SAP S/4HANA Migration Object Modeler |
Sonstiges | MEAN | Adressverwaltung |
Sonstiges | MEIS | Intrastat |
Sonstiges | MMPV | Periodenverschieber (MM) |
Sonstiges | OB52 | Buchungsperiode öffnen (FI / Rechnungswesen) |
Sonstiges | OKP1 | Buchungsperiode öffnen (CO / Controlling) |
Sonstiges | PPOME | Organisationsstruktur |
Sonstiges | S000 | SAP-Standard Menü anzeigen |
Sonstiges | SM30 | Pflegeview für Tabellen |
Sonstiges | SM36 / SM37 | Hintergrund-Jobs Definition und Übersicht |
Sonstiges | SQVI | QuickView |
Sonstiges | SWF5 | Switch Framework |
Anzahl Datensätze in einer internen Tabelle zählen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
DATA: it_spfli TYPE STANDARD TABLE OF spfli. * Daten holen SELECT * FROM spfli INTO TABLE it_spfli. * Daten ausgeben LOOP AT it_spfli ASSIGNING FIELD-SYMBOL(<fs_spfli>). WRITE: / <fs_spfli>-carrid, <fs_spfli>-connid, <fs_spfli>-airpfrom, <fs_spfli>-airpto. ENDLOOP. * Datensätze für 'LH' zählen DATA(lv_cnt_lh) = REDUCE i( INIT x = 0 FOR <l> IN it_spfli WHERE ( carrid = 'LH' ) NEXT x = x + 1 ). * Anzahl 'LH'-Flüge ausgeben WRITE: / '--> Anzahl LH-Flüge:', lv_cnt_lh. |
String Expressions
1 |
lv_char = |Das ist eine Zeichenkette|. |
Eigenschaften von String Expressions
- eingebaute Funktionen
- Beschreibungsfunktionen
- Verarbeitungsfunktionen
- Verkettung von Strings mit && (statt CONCATENATE)
- verschiedene Formatoperatoren verfügbar, die es z.B. erlaube stellenweise auf CONVERSION_EXITS zu verzichten.
eingebaute Funktionen
Längenfunktionen – charlen, dbmaxlen, numofchar, strlen
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abendescriptive_functions.htm
Längenfunktion – char_off
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abenlength_functions_args.htm
Suchfunktionen – find, find_…
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abensearch_functions.htm
Suchfunktionen – count, count_…
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abencount_functions.htm
Ähnlichkeitsfunktion – distance
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abendistance_functions.htm
zeichenartige Extremwertfunktionen – cmax, cmin
Verdichtungsfunktion – condense
Verkettungsfunktion – concat_lines_of
Fluchtsymbolfunktion – escape
Einfügefunktion – insert
Abgleichfunktion -match
Wiederholfunktion – repeat
Ersetzungsfunktion – replace
Umdrehfunktion – reverse
Segmentfunktion – segment
Verschiebefunktionen – shift_left, shift_right
Teilfeldfunktionen – substring, substring_…
Groß-/Kleinschreibungsfunktionen – to_upper, to_lower, to_mixed, from_mixed
Umsetzfunktion – translate
Formatoptionen
internere Darstellung
1 2 |
DATA lv_matnr TYPE matnr. lv_matnr = |{ lv_matnr ALPHA = IN }|. |
1 2 3 4 5 6 7 |
DATA lv_matnr TYPE matnr. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = lv_matnr IMPORTING output = lv_matnr. |
Demoprogramm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
*&---------------------------------------------------------------------* *& Report Z_TEST_STRING_EXPR *& *&---------------------------------------------------------------------* *& *& Zeichenkettentemplates und Formatoptionen (ab ABAP 700) *&---------------------------------------------------------------------* REPORT z_test_string_expr. DATA: lv_matnr TYPE matnr, lv_text1 TYPE char10, lv_text2 TYPE char10, lv_text3 TYPE char30, lv_date TYPE d, lv_number_1 TYPE menge_d, lv_number_2 TYPE menge_d. " Zeichenketten lv_text1 = |Hallo|. lv_text2 = |Welt|. CONCATENATE lv_text1 lv_text2 INTO lv_text3 SEPARATED BY space. WRITE: /(30) |Verketten Standard|, 35 lv_text3. lv_text3 = lv_text1 && lv_text2. WRITE: /(30) |Verketten mit &&|, 35 lv_text3. SKIP 1. WRITE: /(30) |Komplexes Literal|, 35 |Characters \|, \{, and \} have to be escaped by \\ in literal text.|. lv_text3 = lv_text1 && | | && lv_text2. WRITE: /(30) |&& und \| \| |, 35 lv_text3. lv_text3 = |'| && lv_text1 && | | && lv_text2 && |'|. WRITE: /(30) |&& und \|'\| |, "' 35 lv_text3. SKIP 1. lv_matnr = '12345'. WRITE: /(30) |Zeichenkette Standard|, 35 lv_matnr. WRITE: /(30) |ALPHA IN|, 35 |{ lv_matnr ALPHA = IN }|. WRITE: /(30) |ALPHA OUT|, 35 |{ lv_matnr ALPHA = OUT }|. WRITE: /(30) |ALIGN LEFT|, 35 |{ lv_matnr ALIGN = LEFT WIDTH = 18 }|. WRITE: /(30) |ALIGN RIGHT|, 35 |{ lv_matnr ALIGN = RIGHT WIDTH = 18 }|. WRITE: /(30) |ALIGN CENTER|, 35 |{ lv_matnr ALIGN = CENTER WIDTH = 18 }|. WRITE: /(30) |PAD|, 35 |{ lv_matnr ALIGN = RIGHT WIDTH = 18 PAD = '9' }|. WRITE: /(30) |ALIGN CENTER PAD|, 35 |{ lv_matnr ALIGN = CENTER WIDTH = 18 PAD = '9' }|. SKIP 1. " Zahlen lv_number_1 = '1234.456'. lv_number_2 = '-1234.456'. WRITE: /(30) |Nummer Standard|, 35 lv_number_1, 70 lv_number_2. WRITE: /(30) |SIGN LEFT|, 35 |{ lv_number_1 SIGN = LEFT }|, 70 |{ lv_number_2 SIGN = LEFT }|. WRITE: /(30) |SIGN LEFTPLUS|, 35 |{ lv_number_1 SIGN = LEFTPLUS }|, 70 |{ lv_number_2 SIGN = LEFTPLUS }|. WRITE: /(30) |SIGN LEFTSPACE|, 35 |{ lv_number_1 SIGN = LEFTSPACE }|, 70 |{ lv_number_2 SIGN = LEFTSPACE }|. WRITE: /(30) |DECIMALS|, 35 |{ lv_number_1 DECIMALS = 2 }|, 70 |{ lv_number_2 DECIMALS = 2 }|. WRITE: /(30) |CURRENCY|, 35 |{ lv_number_1 CURRENCY = 'EUR' }|, 70 |{ lv_number_2 CURRENCY = 'EUR' }|. WRITE: /(30) |NUMBER RAW|, 35 |{ lv_number_1 NUMBER = RAW }|, 70 |{ lv_number_2 NUMBER = RAW }|. WRITE: /(30) |NUMBER USER|, 35 |{ lv_number_1 NUMBER = USER }|, 70 |{ lv_number_2 NUMBER = USER }|. WRITE: /(30) |NUMBER ENVIRONMENT|, 35 |{ lv_number_1 NUMBER = ENVIRONMENT }|, 70 |{ lv_number_2 NUMBER = ENVIRONMENT }|. SKIP 1. " Datum lv_date = '20150305'. WRITE: /(30) |Datum Standard|, 35 lv_date. WRITE: /(30) |DATE ISO|, 35 |{ lv_date DATE = ISO }|. WRITE: /(30) |DATE USER|, 35 |{ lv_date DATE = USER }|. |
externe Links
https://weberpatrick.de/abap-zeichenketten-templates-string-expressions/
http://www.cadaxo.com/high-class-development/abap-7-02-new-features-neue-stringfunktionen/
Table Expressions
READ TABLE … INDEX
alte Schreibweise
1 2 |
READ TABLE itab INDEX idx INTO wa. |
neue Schreibweise
1 |
wa = itab[ idx ]. |
READ TABLE … USING KEY
alte Schreibweise
1 2 3 |
READ TABLE itab INDEX idx USING KEY key INTO wa. |
neue Schreibweise
1 |
wa = itab[ KEY key INDEX idx ]. |
READ TABLE … WITH KEY
alte Schreibweise
1 2 3 4 |
READ TABLE itab WITH KEY col1 = … col2 = … INTO wa. |
neue Schreibweise
1 |
wa = itab[ col1 = … col2 = … ]. |
READ TABLE … WITH KEY COMPONENTS
alte Schreibweise
1 2 3 4 5 |
READ TABLE itab WITH TABLE KEY key COMPONENTS col1 = … col2 = … INTO wa. |
neue Schreibweise
1 2 |
wa = itab[ KEY key col1 = … col2 = … ]. |
Existiert der Datensatz?
alte Schreibweise
1 2 3 4 5 |
READ TABLE itab … TRANSPORTING NO FIELDS. IF sy-subrc = 0. … ENDIF. |
neue Schreibweise
1 2 3 |
IF line_exists( itab[ … ] ). … ENDIF. |
Index ermitteln
alte Schreibweise
1 2 3 4 |
DATA idx type sy-tabix. READ TABLE … TRANSPORTING NO FIELDS. idx = sy-tabix. |
neue Schreibweise
1 2 |
DATA(idx) = line_index( itab[ … ] ). |
Hinweis
Bei der Verwendung von Table Expressions gilt es zu beachten:
- Die Tabelle kann aus tiefen Strukturen und Untertabellen bestehen.
- Der Wertvergleich ist case sensitive, lt_data[ name = ‚NAME_2‘ ] ist anders als lt_data[ name = ‚Name_2‘ ]
- Wird die Zeile nicht gefunden, wird die Exception CX_SY_ITAB_LINE_NOT_FOUND ausgelöst
- SY-SUBRC bleibt unverändert, egal ob die Zeile gefunden wurde oder nicht.
- Werden mehrere Komponenten einer Zeile benötigt, so sollte die ganze Zeile in eine lokale Workarea übertragen werden. Andernfalls erfolgt der Datenzugriff für jede Komponente einzeln. Dies wirkt sich negativ auf die Laufzeit aus.
- Entsprechen mehrere Zeilen der Expression, so wird immer nur auf die erste zugegriffen.
- Wird das Ergebnis einer Table Expression einem Feldsymbol zugewiesen (ASSIGN itab[ feld = ‚1‘] to <fs> ), kann die Prüfung auf erfolgreiche Zuweisung entfallen, da eine Exception ausgelöst wird, falls die Zeile nicht existiert.
Links:
https://weberpatrick.de/abap-740-table-expressions/
https://blogs.sap.com/2015/10/25/abap-740-quick-reference/
1 |
lv_char = |Das ist eine Zeichenkette|. |
Inline Deklaration
DATA Statement
alte Schreibweise
1 2 |
DATA text TYPE string. text = ABC. |
neue Schreibweise
1 |
DATA(text) = `ABC`. |
LOOP AT … INTO work area
alte Schreibweise
1 2 3 4 5 6 7 |
DATA wa like LINE OF itab. LOOP AT itab INTO wa. ... ENDLOOP. |
neue Schreibweise
1 2 3 4 5 |
LOOP AT itab INTO DATA(wa). ... ENDLOOP. |
Deklaration von Hilfsvariablen
alte Schreibweise
1 2 3 |
DATA cnt TYPE i. FIND … IN … MATCH COUNT cnt. |
neue Schreibweise
1 |
FIND … IN … MATCH COUNT DATA(cnt). |
CALL METHOD
alte Schreibweise
1 2 3 4 5 |
DATA a1 TYPE … DATA a2 TYPE … oref->meth( IMPORTING p1 = a1 IMPORTING p2 = a2 ). |
neue Schreibweise
1 2 |
oref->meth( IMPORTING p1 = DATA(a1) IMPORTING p2 = DATA(a2) ). |
LOOP AT … ASSIGNING
alte Schreibweise
1 2 3 4 |
FIELD-SYMBOLS: <line> type … LOOP AT itab ASSIGNING <line>. … ENDLOOP. |
neue Schreibweise
1 2 3 |
LOOP AT itab ASSIGNING FIELD-SYMBOL(<line>). … ENDLOOP. |
READ … ASSIGNING
alte Schreibweise
1 2 3 |
LOOP AT itab ASSIGNING FIELD-SYMBOL(<line>). … ENDLOOP. |
neue Schreibweise
1 |
READ TABLE itab ASSIGNING FIELD-SYMBOL(<line>). |
SELECT INTO TABLE
alte Schreibweise
1 2 3 4 |
DATA itab TYPE TABLE OF dbtab. SELECT * FROM dbtab INTO TABLE itab WHERE fld1 = lv_fld1. |
neue Schreibweise
1 2 3 |
SELECT * FROM dbtab INTO TABLE DATA(itab) WHERE fld1 = @lv_fld1. |
SELECT SINGLE INTO
alte Schreibweise
1 2 3 |
SELECT * FROM dbtab INTO TABLE DATA(itab) WHERE fld1 = @lv_fld1. |
neue Schreibweise
1 2 3 4 5 6 7 |
SELECT SINGLE F1 AS my_f1, F2 AS abc FROM dbtab INTO DATA(ls_structure) WHERE … WRITE: / ls_structure-my_f1, ls_structure-abc. |