ABAP Erste Schritte
Short Description
Download ABAP Erste Schritte...
Description
ABAP erste Schritte Contents Begriffe .................................................................................................................................................... 4 Test- und Entwicklungssystem ............................................................................................................ 4 Konsolidierungs- Qualitätssysicherungssystem .................................................................................. 4 Produktivsystem .................................................................................................................................. 4 Transportauftrag ................................................................................................................................. 4 lokale Objekte...................................................................................................................................... 4 Report .................................................................................................................................................. 4 Dynpro ................................................................................................................................................. 4 Workprozess ........................................................................................................................................ 4 Dispatcher ........................................................................................................................................... 4 Dynpro-Prozessor ................................................................................................................................ 5 ABAP-Prozessor ................................................................................................................................... 5 betriebswirtschaftliche Kernbereiche eines SAP-Systems .................................................................. 6 SAP-Module ......................................................................................................................................... 6 Wichtige Transaktionen .......................................................................................................................... 7 Wichtige Systemtabellen ......................................................................................................................... 7 Anmelden ................................................................................................................................................ 8 Abmelden (/NEX) ..................................................................................................................................... 8 Version des Abap Application Server anzeigen ....................................................................................... 8 Abap-Dictionary (SE11)............................................................................................................................ 9 Tabellenarten ...................................................................................................................................... 9 transparente Tabelle ....................................................................................................................... 9 Pool-Tabelle ..................................................................................................................................... 9 Cluster-Tabelle................................................................................................................................. 9 Namespaces .................................................................................................................................... 9 Auslieferungsklassen ....................................................................................................................... 9 Datenelement...................................................................................................................................... 9 Dokumentation................................................................................................................................ 9 Domäne ............................................................................................................................................. 10 Wertebereiche............................................................................................................................... 10 Ablauf ............................................................................................................................................ 10 technische Einstellungen für Tabelle ................................................................................................ 11 1/30
ABAP erste Schritte.docx
Pflege von Tabelleninhalten im Abap-Dictionary (SE11)................................................................... 11 Anzeigen von Tabelleninhalten im Abap-Dictionary (SE11) .............................................................. 11 Datentypen anlegen .......................................................................................................................... 11 Vergleich ............................................................................................................................................ 11 Datentypen ........................................................................................................................................ 11 Boolean-Datentyp in ABAP ................................................................................................................ 12 Abap-Editor (SE38) ................................................................................................................................ 12 Ablauf ................................................................................................................................................ 13 Report als Anwender starten ............................................................................................................ 13 Datenbanktabelle ausgeben.............................................................................................................. 13 Workarea deklarieren.................................................................................................................... 13 Report kopieren................................................................................................................................. 14 Editor-Kommandos............................................................................................................................ 14 Quellcode auskommentieren ........................................................................................................ 14 Datentypen ........................................................................................................................................ 14 Funktionen auf Zeichenketten .......................................................................................................... 14 Abap-Debugger ................................................................................................................................. 14 Debugger starten........................................................................................................................... 14 wichtige Debugger-Befehle ........................................................................................................... 14 Debugger beenden ........................................................................................................................ 15 Debug-Layer konfigurieren............................................................................................................ 15 Versionieren von Abap-Programmen................................................................................................ 15 Version erzeugen ........................................................................................................................... 15 Versionen anzeigen ....................................................................................................................... 15 ABAP-030 Infos ...................................................................................................................................... 15 Technische Einstellungen .................................................................................................................. 15 Datenelement.................................................................................................................................... 15 Domäne ............................................................................................................................................. 15 Erweiterungskategorie ...................................................................................................................... 15 Eingabehilfen ..................................................................................................................................... 16 Fremdschlüsselbeziehung ................................................................................................................. 16 Pflegen von Tabellen ......................................................................................................................... 16 Append-Struktur ................................................................................................................................ 17 Views ................................................................................................................................................. 17 Eingabehilfe (F4-Hilfe) ........................................................................................................................... 17 2/30
ABAP erste Schritte.docx
Suchhilfe ............................................................................................................................................ 17 Sammelsuchhilfe ............................................................................................................................... 17 Nachrichtenklassen ............................................................................................................................... 17 ABAP-100 Notizen ................................................................................................................................. 18 Ablauf Erstellung eines Dynpros........................................................................................................ 18 Bildelemente ..................................................................................................................................... 18 Auswahlknopf .................................................................................................................................... 18 Tabstrip.............................................................................................................................................. 18 ALV-Grid ............................................................................................................................................ 19 Table-Control ..................................................................................................................................... 19 Web-Dynpro .......................................................................................................................................... 20 Fehlermeldung ...................................................................................................................................... 22 Ursache .......................................................................................................................................... 22 Lösung............................................................................................................................................ 22 Fehlermeldung .............................................................................................................................. 22 Fehler bei der Verarbeitung Ihrer Anfrage ............................................................................................ 22 Was ist passiert ? ............................................................................................................................... 22 Was können Sie tun ? ........................................................................................................................ 23 Ursache .......................................................................................................................................... 23 Lösung............................................................................................................................................ 23 SAP-Link ................................................................................................................................................. 23 JSON....................................................................................................................................................... 23 Nummernkreisobjekte ...................................................................................................................... 24 Customizing ........................................................................................................................................... 24 Auslieferungsklassen der Customizing-Tabellen ............................................................................... 25 Überblick ........................................................................................................................................... 25 Auslieferungsklasse C ........................................................................................................................ 25 Auslieferungsklasse G ........................................................................................................................ 25 Auslieferungsklasse E ........................................................................................................................ 25 Auslieferungsklasse S ........................................................................................................................ 25 Berechtigungen ..................................................................................................................................... 26 Authority-Check..................................................................................................................................... 26 Rolle ................................................................................................................................................... 27 Berechtigung Objektklasse anlegen .................................................................................................. 28 Berechtigungsobjekt anlegen ............................................................................................................ 28 3/30
ABAP erste Schritte.docx
Währungen 2 Dezimalstellen ........................................................................................................... 29 Beim Speichern.................................................................................................................................. 29 Beim Laden ........................................................................................................................................ 29
Begriffe wichtige Begriffe rund um SAP
Test- und Entwicklungssystem System mit Übungs- und Schulungsdaten
Konsolidierungs- Qualitätssysicherungssystem Testsystem mit Kopien der Echtdaten
Produktivsystem das Livesystem
Transportauftrag Menge von Objekten, die auf ein anderes System übertragen werden mit Transport-Auftrasnummer
lokale Objekte Objekte auf dem Entwicklungssystem, die niemals transportiert werden.
Report Batchprogramme ohne Steuermöglichkeit durch den Anwenderung durch Eingabemasken
Dynpro dynamisches Programm mit Dialogbildschirmen
Workprozess Ein ABAP-Workprozess führt eine Anwendung aus. Er wird auf dem Dispatcher ausgeführt.
Dispatcher Scheduler für Workprozesse.
4/30
ABAP erste Schritte.docx
Dynpro-Prozessor Runtime für die Ablauflogik eines ABAP-Programms, reagiert auf Benutzeraktionen in Bildschrimmasken, kann nicht rechnen.
ABAP-Prozessor Runtime für die Verarbeitungslogik eines ABAP-Programms, erhält Bildschirmeingaben vom DynproProzessor, erzeugt Bildschirmausgaben.
5/30
ABAP erste Schritte.docx
betriebswirtschaftliche Kernbereiche eines SAP-Systems Bereich Logisitk Rechnungswesen Personal
Abkürzung
Bemerkung Materialwirtschaft, Produktion, Vertrieb Finanzen, Controlling Personaladministration, Lohnabrechnung
SAP-Module Abkürzung 6/30
Bedeutung ABAP erste Schritte.docx
FI CO HR Logistik: MM PP PM SD
Finanzwesen (Finanzbuchhaltung, Rechnungswesen) Controlling Human Resource Materialwirtschaft (Materials Management) Produktionsplanung und Steuerung (Production Planning and Control) Instandhaltung (Plant Maintenance) Vertrieb (Sales and Distribution)
Wichtige Transaktionen SE80 SE84 SE11
Object Navigator (wichtigste Transaktion) Repository Infosystem Abap Dictionary (Anzeigen, Ändern, Anlegen, Löschen) Werkzeuge ABAP Workbench Entwicklung SE11 SE14 Abap Datenbank Utility (Tabellen umsetzen nach destruktiven Änderungen) (oder Hilfsmittel Datenbankobjekt Datenbank-Utility SE38 Abap-Editor (Programme Starten) SE24 Class Builder (Klasseneditor) SE41 Menu Painter SE37 Function Builder SE54 Generierung Tabellen-Pflegedialog (oder Werkzeuge weitere Werkzeuge Gen.Tab-Pflegedialog SHI3 Strukturpflege (Customizing) SPRO Customizing: Projektbearbeitung SU01 Benutzerverwaltung SM30 Pflegedialog zu Tabelle suchen SNRO Nummernkreis-Objekte pflegen /n laufende Transaktion beenden und neue Transaktion starten /nex alle Transaktionen schließen und alle Sessions beenden /o neue Transaktion in neuem Modus (Fenster) starten /h Debugger in der laufenden Transaktion starten /hx Debugger von der laufenden Transaktion trennen AbapDocu Abap-Hilfe starten SE91 Nachrichtenpflege (Nachrichtenklassen pflegen) SE09 Transport Organizer (Transporte verwalten) SCWB Korrekturworkbench (Hinweise von anderen SAP-Systemen herunterladen) SM36 Scheduling Manager Z_ABAP_UNIT_TESTER Abap Unit-Test Runner SM93 Transaktionspflege (Transaktionen verwalten, alle Transaktionen auflisten) SM01 Transaktionen sperren ST01 Systemtrace SU21 Berechtigungsobjekte verwalten
Wichtige Systemtabellen Anschauen mit SE16 (Data Browser) oder SE11 und dann "Inhalt anzeigen" Tabelle 7/30
Beschreibung ABAP erste Schritte.docx
TSTC
Transaktionen (TCODE = Transaktionscode)
Anmelden Zur Programmentwicklung einloggen mit SAPGui als User BCUSER und Passwort DemoTest1
Abmelden (/NEX) Fenster schließen System Abmelden
Version des Abap Application Server anzeigen System Status
SAP-Systemdaten Komponentenversion zeigt die Abap-Version des Systems an. 8/30
ABAP erste Schritte.docx
Beispiel: SAP EHP 2 for SAP NetWeaver 7.0
Abap-Dictionary (SE11) Anlegen von Tabellen, Datenelement und Domänen Menüpfad: Werkzeuge Enwicklung SE11 - Dictionary
Tabellenarten transparente Tabelle Datenbanktabelle für eine Entität Pool-Tabelle eine einzige physikaltische DB-Tabelle für alle Tabellen mit gleicher Struktur z.B. für Settings PK: Pool-Tabellenname + Schlüsselfelder Cluster-Tabelle verteilt einen Datensatz auf mehrere Tabellen. Die Teildatensätze haben denselben PK. Namespaces kundenspezifisches Präfix: Z oder Y alternativ: Namespace z.B. /PRIVATENAMESPACE/ Auslieferungsklassen Verhalten der Tabelle bei Mandantenkopie, Neuinstallation oder Upgrade. Übersicht in Feld Auslieferungsklasse mit "F1" A: Anwendungtabelle (Stamm- und Bewegungsdaten)
Datenelement die betriebswirtschaftlichen Attribute eines Felds
Feldhilfe Caption in Eingabemasken
Namespace beachten, Lasche "Datentyp" verknüpft die Domäne Dokumentation mit dem Button "Dokumentation" wird Word gestartet und es kann ein Hilfetext für das Datenelement erfasst werden (vorher hineinzoomen).
9/30
ABAP erste Schritte.docx
Domäne die technischen Attribute eines Felds
Datentyp Länge Dezimalstellen Wertebereiche
Alle möglichen Datentypen anzeigen mit F4.
Wertebereiche Einzelwerte, Intervalle, Wertetabellen Ablauf speichern (Ctrl-S) prüfen (Ctrl-F2) Menüpfad: Domäne prüfen prüfen aktivieren (Ctrl-F3) Button: "Aktivieren" Zurück (F3) Domäne verlassen und zu Datenelement zurückkehren
10/30
ABAP erste Schritte.docx
technische Einstellungen für Tabelle Button "technische Eistellungen" drücken. Datenart (Stammdaten) und geschätzte Größe der Tabelle angeben, Pufferungsverhalten der Tabelle festlegen (Caching, z.B. alle DS vorladen)
Pflege von Tabelleninhalten im Abap-Dictionary (SE11) Menüpfad: Hilfsmittel Tabelleninhalt Einträge erfassen
Anzeigen von Tabelleninhalten im Abap-Dictionary (SE11) Menüpfad: Hilfsmittel Tabelleninhalt Anzeigen
Datentypen anlegen Mit dem Feld Datentyp können Datenselemente, Strukturen und Tabellentypen (für interne Tabellen angelegt werden).
Vergleich Tabellentyp, Struktur, transparente Tabelle ???
Datentypen Dictionary type DEC INT1 INT2 INT4 CURR CUKY QUAN UNIT PREC FLTP NUMC
11/30
Meaning Calculation/amount field Single-byte integer Two-byte integer Four-byte integer Currency field Currency key Amount Unit Accuracy Floating point number Numeric text
Maximum length n 1-31, 1-17 in tables 3 5 10 Jan 17 5 Jan 17 02. Mrz 16 16 1-255
ABAP type P((n+1)/2) Internal only Internal only I P((n+1)/2) C(5) P((n+1)/2) C(n) Internal only F(8) N(n)
ABAP erste Schritte.docx
CHAR LCHR STRING. RAWSTRING DATS ACCP TIMS RAW LRAW CLNT LANG
Character Long character String of variable length Byte sequence of variable length Date Accounting period YYYYMM Time HHMMSS Byte sequence Long byte sequence Client Language
1-255 256-max 1-max
C(n) C(n) STRING.
1-max
XSTRING 8 6
D N(6)
6
T X(n) X(n) C(3) C(1)
1-255 256-max 3 internal 1, external 2
Boolean-Datentyp in ABAP Datentyp abap_bool
Konstante
Wirklichkeit c(1) abap_true 'X' abap_false '' abap_undefined '-' siehe http://help.sap.com/abapdocu_731/en/abendataobjects_true_value_guidl.htm Beispiel: DATA is_found TYPE abap_bool. ... is_found = abap_true. ... IF is_found = abap_true. ... ENDIF.
Abap-Editor (SE38) Menüpfad: Werkzeuge Entwicklung SE38 - Abap Editor Programmname: max. 40 Zeichen, Namespace beachten, Nur Unterstrich (_) als Sonderzeichen erlaubt. Variablen: max. 30 Zeichen, keine reservierten ABAP-Schlüsselwörter, Nur Unterstrich (_) als Sonderzeichen erlaubt. Pretty-Printer Einstellungen: Hilfsmittel Einstellungen Abap-Editor Pretty Printer Groß/Kleinkonvertierung durchführen Schlüsselwort groß Editor Einstellungen: Hilfsmittel Einstellungen Abap-Editor Editor alle Syntaxfehler anzeigen. Hilfe zu Abap-Schlüsselwörtern: Cursor in Schüsselwort setzen, dann F1
12/30
ABAP erste Schritte.docx
Ablauf
speichern (Ctrl-S) prüfen (Ctrl-F2) Programm prüfen Syntax aktivieren (Ctrl-F3) Button: "Aktivieren" ausführen (F8) Programm testen direkt zurück zum Editor (F3)
Report als Anwender starten
zweites Fenster öffnen (Ctrl-n) (Button "neuen Modus erzeugen") System Erzeugen Modus System Dienste Reporting Programmname eingeben , F8
Datenbanktabelle ausgeben Workarea deklarieren DATA wa_zteilnehmer TYPE zteilnehmer. Die Felder in der Workarea-Struktur entsprechen den Feldnamen in der Tabelle mit Bindestrich vom WA-Namen getrennt. 13/30
ABAP erste Schritte.docx
Beispiel: wa_zteilnehmer-tname
Report kopieren
SE38 Programm-Name eingeben Programm kopieren, Button "kopieren, Ctrl-F5 neuen Programm-Namen eingeben
Editor-Kommandos Quellcode auskommentieren Block im Quellcode markieren Hilfsmittel Block/Ablage Kommentar-* einfügen
Datentypen Name i p c n
string
Bedeutung integer decimal string mit fixer Länge numerischer string mit fixer Länge (nur Ziffern), rechtsbündig mit führenden Nullen string mit variabler Länge
Beispiel DATA zahl01 TYPE i. DATA zahl01 TYPE p DECIMALS 2. VALUE '-5.67' DATA geschlecht TYPE c LENGTH 1 VALUE 'W'. DATA telefon TYPE n LENGTH 8 VALUE '887766'.
Funktionen auf Zeichenketten SHIFT telefon LEFT DELETING LEADING '0'. SHIFT telefon BY 2 PLACES RIGHT. * Stringliterale mit Hochkommas verwerfen trailing whitespaces * Stringliterale mit Backticks behalten trailing whitespaces REPLACE ` ` IN telefon_international WITH national_vorwahl. * mehrfache Leerzeichen verdichten CONDENSE telefon_international. * alle Leerzeichen entfernen CONDENSE telefon_internation NO-GAPS. CONCATENATE international_vorwahl national_vorwahl telefon INTO telefon_lang. CONCATENATE international_vorwahl national_vorwahl telefon INTO telefon_lang SEPARATED BY '-'. telefon_internation = internation_vorwahl && '-' && national_vorwahl && '-' && telefon.
Abap-Debugger Debugger starten Aufruf aus dem Abap-Editor durch Setzen eines Breakpoints in die aktuelle Editorzeile mit Button "Session-Breakpoint setzen/löschen" Ctrl+Shift-F12 oder auf dem linken Rand rechte Maustaste Session Breakpoint setzen . Vor dem Debuggen muß ein Programm aktiviert werden. Programmstart mit F8. wichtige Debugger-Befehle F5 F6 14/30
Step-In Step-Over ABAP erste Schritte.docx
F7 F8 Ctrl+Shift+F3
Return bis zum nächsten Funktionsende Weiter (bis zum nächsten Breakpoint) Breakpoints sichern für spätere Sessions
Debugger beenden Debugger Debugger beenden Debug-Layer konfigurieren Komponenten, die man nicht debuggen will, werden mit dem Button "Debug-Layer konfigurieren" Ctrl+Shift-F4 ausgeblendet.
Versionieren von Abap-Programmen Im Abap-Editor (SE38) können Versionen von Abap-Programmen angelegt werden. Version erzeugen Hilfmittel Versionen Version ziehen Versionen anzeigen Hilfsmittel Versionen Versionsverwaltung Mit dem Button "Zurückholen" wird eine alte Version des Programms wiederhergestellt. Die zurückgeholte Version ist noch inaktiv.
ABAP-030 Infos Technische Einstellungen Datenart (APPL0 = Stammdaten, APPL1 = Bewegungsdaten) Größenkategorie (0-4) Pufferung Tabellen puffern, ein/aus, Einzelsätze gepuffert, generischer Bereich gepuffert, vollständig gepuffert Tabellenänderungen protokollieren Auslieferungsklassen (A = Stamm- Bewegungsdaten, C = Customizingtabellen) bestimmen ob Tabelleninhalt transportiert wird.
Datenelement (Namensraum beachten ZS_GEHALT) Feldbezeichner, Dokumentation, F1-Hilfe
Domäne (Namensraum beachten ZS_PERSNR)
Erweiterungskategorie Zusätze Erweiterungskategorie (beliebig erweiterbar) auch für Strukturen angeben. 15/30
ABAP erste Schritte.docx
.INCLUDE Unterstruktur Index anlegen, zusammengesetzte Indices
Eingabehilfen
Suchhilfe (in SE11 Lasche Eingabehilfe/-prüfung Spalte Suchhilfe) Festwerte für Suchhilfe in Domäne angeben (Lasche Wertebereich) Prüftabelle (durch Fremdschlüsselbeziehung, Button "Fremdschlüssel") Festwerte (in Domäne angeben)
Fremdschlüsselbeziehung Zuordnung der Vorschläge für Fremdschlüsselbeziehungen über dieselbe Domäne (Domänengleichheit). Art der Fremdschlüsselfelder:
nicht spezifiziert keine Schlüsselfelder/-kandidaten Schlüsselfelder/-kandidaten Schlüsselfelder einer Texttabelle (Für mehrsprachige Texte)
Kardinalität: 1 (Eintrag im Prüffeld muß vorhanden sein) C (Eintrag im Prüffeld kann vorhanden sein)
:
CN (Jeder Satz der Prüftabelle hat beliebig viele abhängige Sätze) C (Jeder Satz der Prüftabelle hat höchstens einen abhängigen Satz) N (Jeder Satz der Prüftabelle hat mindestens einen abhängigen Satz) 1 (Jeder Satz der Prüftabelle hat genau einen abhängigen Satz)
Tipp: "C" = kann = "can" Meistens ist es 1: CN Bemerkung: Fremdschlüssel sind nur auf Dynpros wirksam. Mittels eines ABAP-Programms können Datesätze ohne Verprobung in die Tabelle geshrieben werden.
Pflegen von Tabellen Hilfsmittel Tabelleninhalt Einträge erfassen
16/30
ABAP erste Schritte.docx
Append-Struktur Views
Datenbankview Inner Join, Pflegestatus definiert lesen/schreiben Pflegeview Outer Join mit Eventmodell, Join nur über hinterlegte Fremdschlüsselbeziehungen möglich, Button „Beziehungen“ , wichtig: Button „Tabellenfelder“ Grundelement des Customizing Help-View ist ein Selektionsview der einen Outer-Join definiert, wird für Suchhilfe verwendet Projektionsview blendet Felder aus, wird selten verwendet, für Schnittstellen gedacht
Join, Selektion, Projektion, Performance. Alle Key-Felder an den Anfang des Views stellen, ViewCluster sind Verschachtelungen von Views in Baumstruktur. Daten pflegen mit System Dienste Tabellenpflege erweiterte Tabellenpflege Pflegeview generieren: SE11 View auswählen Hilfsmittel Tabellenpflegegenerator ausfüllen wichtig: Menü generierte Objekte Anlegen (oder F6)
Eingabehilfe (F4-Hilfe) Einheitlicher Mechanismus zur Unterstützung des Anwenders bei der Datenerfassung. Ähnlich Prüftabelle, aber detaillierter, mit Einbeziehung der bisher gemachten Eingaben (Context). Bei vielen Treffern kann innerhalb der Suchhilfe weiter eingeschränkt werden.
Suchhilfe Definiert durch Tabelle oder View, LPos (= Liste der Treffer), SPos (= Suchmaske für weitere Einschränkung der Trefferliste) Import-/Export-Parameter definieren (IMP/EXP)
Sammelsuchhilfe Kombination mehrerer Suchhilfen zu einer Suchhilfe mit Tab-Reitern.
Nachrichtenklassen siehe http://www.saphub.com/abap-tutorial/messages-in-abap/ 1. MESSAGE xnnn WITH p1 p2 p3. 2. MESSAGE ID id TYPE mtype NUMBER n WITH p1 p2 p3. 3. MESSAGE xnnn(mid) WITH p1 p2 p3.
Message-TYPE A
Bedeutung Abandon
E
Error
I S W X
Information Status message Warning Exit
17/30
Ausgabe Pop mit Fehlermeldung und Programmende Fehlermeldung in Statusleiste und Programmende PopUp mit Messagetext Messagetext in Statusleiste PopUp mit Messagetext Programmende mit Kurzdump ABAP erste Schritte.docx
ABAP-100 Notizen Ablauf Erstellung eines Dynpros 1. 2. 3. 4.
Ok_code_save sy-ucomm TABLES Dynpro anlegen PBO bauen a. Titel => b. Status => i. Funktionstastenleise ii. Symbolleiste iii. Drucktastenleiste iv. Menüleiste 5. Layout malen 6. PAI bauen a. Module exit at exit-command b. Feldvalidierung bauen FIELD feld MODULE check_feld on input/request CHAIN FIELD feld1. FIELD feld2 MODULE check_felder on chain-input/chain-request c. Ok_code_save, dann CASE ok_code_save ENDCASE 7. Transaktion anlegen SAP-Gui für Windows
Bildelemente Drucktaste, Ankreuzfeld, Ein-/Ausgabefeld, Auswahlknopf, Auswahlknopfgruppe
Auswahlknopf begin of rb1, feld1 type c value ‚X‘, feld2 type c end of rb1.
Tabstrip CONTROLS: tabstrip1 TYPE tabstrip wie Drucktaste, Referenzfeld = Subscreenbereich SUBSCREEN1. Tabstrip-Name = tabstrip1 dynnr TYPE sy-dynnr.
PROCESS BEFORE OUTPUT. MODULE STATUS_0100. module initSubscreen_0100. "" Subscreenbereich einbinden im PBO Call subscreen subscreen1 INCLUDING sy-cprog dynnr. * PROCESS AFTER INPUT. module exit at exit-command.
18/30
ABAP erste Schritte.docx
"" PAI des Subscreens aufrufen call subscreen subscreen1. MODULE USER_COMMAND_0100.
Im PAI: Tabstrip1-activetab = ok_code_save setzen. im Subscreen-Dynpro kein Status, kein ok_code
ALV-Grid Repository-Infosystem cl_gui* cl_gui_custom_container, constructor-Methode anschauen => Parameter container_name cl_gui_alv_grid, constructor-Methode anschauen => Parameter parent, my_alv_grid->set_table_for_first_display( exporting i_structure_name = 'SPFLI' changing it_outtab = itab_spfli ). cl_gui_cwf
Feldkatalog: data fcat type LVC_T_FCAT (Tipp: In cl_gui_alv_grid nach fcat suchen) Tabelle mit Spalteneigenschaften (fcat-fieldname = ‚Spaltenname‘ ) Vor set_table_for_first_display sollte der Feldkatalog geholt warden. * Feldkatalog holen CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'SPFLI' CHANGING ct_fieldcat = gs_fcat.
Spalten ausblenden: wa_fcat-TECH wa_fcat-NO_OUT my_alv_grid->refresh_table_display( ).
Event Toolbar: e_object->mt_toolbar (im Repository nachschauen Icon @44@, einen Tabelleneintrag ergänzen, append) Event User_Command: e_ucomm (mit dem ok_code) clc_gui_cfw->set_new_ok_code( e_ucomm ) aufrufen.
Table-Control Control TableView, TABLES, interne Tabelle, Arbeitsbereich auf interne Tabelle. Layoutbereich-Name wie TableView-Control. PROCESS BEFORE OUTPUT. MODULE STATUS_0100. module init_tablecontrol. loop at itab_zauto into wa_zauto WITH CONTROL my_tableview. module to_tableview. endloop. *
19/30
ABAP erste Schritte.docx
PROCESS AFTER INPUT. module exit1 at exit-command. loop at itab_zauto. chain. field ZAUTOSCHUL2-KENNZEICHEN. field ZAUTOSCHUL2-HERSTELLER. field ZAUTOSCHUL2-TYP. field ZAUTOSCHUL2-PREIS. module from_tableview on chain-request. endchain. endloop.
PBO: module TO_TABLEVIEW output. move-CORRESPONDING wa_zauto to zautoschul2. endmodule.
PAI: module FROM_TABLEVIEW input. move-CORRESPONDING zautoschul2 to wa_zauto. modify itab_zauto from wa_zauto index my_tableview-current_line. endmodule.
Im PBO wird mit dem LOOP über die interne Tabelle iteriert und in jeder Iteration jeweils eine Zeile in die TABLES-Struktur gefüllt. Über Namensgleichheit der Felder der Tables-Struktur und der Dynpro-Elemente des Tablecontrols werden die Felder in das Dynpro, und damit in die TableView transportiert. Im PBO wird über die gesamte interne Tabelle iteriert, im PAI nur über die angezeigten Zeilen des TableControls.
Web-Dynpro 1. Web-Dynpro-Komponente anlegen 2. Component-Controller bauen Mit Context beginnen! Context Knoten anlegen über Wizard Namen vergeben (AUTOS bzw. AUTO) Attribute aus Struktur hinzufügen transparente Tabelle auswählen gewünschte Attribute auswählen 3. Kardinalität festlegen (1:n für Liste) 4. View bauen Wieder mit Context beginnen! Context gewünschten Knoten mit D&D herüberziehen falls es die Liste ist, Kardinalität 1:n Context für Detailview Knoten anlegen, Kardinalität 1:1 Anlegen über Wizard Attribute aus Komponenten einer Struktur Struktur des Details angeben 20/30
ABAP erste Schritte.docx
5. Kardinaltität festlegen Wichtiger Trick zu Context: Alle Contexte, die man für die Bearbeitungen im View braucht bindet man sich in diesen View ein. z.B. im Detailview die Struktur UND die Liste, weil man hier die Struktur in die Liste einfügen will. 6. Layout des View erstellen mit Zauberstab Unter dem Button Context sieht man jetzt die Struktur, wenn man den Schritt 4 richtig gemacht hat. Häkchen "Form in neuem Container erzeugen. 7. WebDynpro Application anlegen 8. Component: Name der Komponente, Interface-View: Name des Windows Plug-Name: Default 9. Button einfügen onAction Abkürzung "Aktion anlegen" + Outbound-Plug anlegen 10. Window editieren Wichtig: alle neu gebauten Views mit D&D zu WINDOWS hinzufügen und Outbound-Plug mit Inbound-Plug per D&D verbinden. Erst wenn diese Verbindung gemacht wurde, funktioniert die Navigation. Der View, der als Default angezeigt werden soll: rechte Maustaste 'Als Default setzen' 11. Codieren der Listenoperationen im Outbound-Plug der Detailansicht, Zauberstab benutzen (MOVE-CORRESPONDING ls_todo to ls_todos). ls_todos ist eine Struktur und keine interne Tabelle!
21/30
ABAP erste Schritte.docx
Fehlermeldung ACC: Label für MeltingGroup-artigen Container "FORM_CONTAINER" nicht gesetzt. Ursache Barrierefreiheit Lösung Für einen Form-Container muss daneben ein zusätzliches Label eingefügt werden wg. (Attribut Label_For: FORM_CONTAINER setzen)
Fehlermeldung Die URL enthält keine vollständige Domainangabe (sapvhd statt sapvhd..).
Fehler bei der Verarbeitung Ihrer Anfrage Was ist passiert ? Der Aufruf der URL http://sapvhd:8000/sap/bc/webdynpro/sap/ztodolist wurde aufgrund eines Fehlers abgebrochen. Hinweis
Folgender Fehlertext wurde im System NSP prozessiert: Die URL enthält keine vollständige Domainangabe (sapvhd statt sapvhd..).
Der Fehler trat auf dem Applikationsserver sapvhd_NSP_00 und im Workprozess 4 auf.
Die Abbruchart war: RABAX_STATE
Die ABAP-Aufrufhierarchie war: Method: CHECK of program CX_FQDN=======================CP Method: STARTUP_CHECKS of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP Method: HANDLE_REQUEST of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP Method: IF_HTTP_EXTENSION~HANDLE_REQUEST of program CL_WDR_MAIN_TASK==============CP Method: EXECUTE_REQUEST of program CL_HTTP_SERVER================CP Function: HTTP_DISPATCH_REQUEST of program SAPLHTTP_RUNTIME Module: %_HTTP_START of program SAPMHTTP
22/30
ABAP erste Schritte.docx
Was können Sie tun ?
Im Falle der Abbruchart RABAX_STATE finden Sie im System NSP in der Transaktion ST22 weitere Informationen bzgl. der Abbruchursache.
Im Falle der Abbruchart ABORT_MESSAGE_STATE finden Sie auf dem Applikationsserver sapvhd_NSP_00 in der Transaktion SM21 weitere Informationen bzgl. der Abbruchursache.
Im Falle der Abbruchart ERROR_MESSAGE_STATE können Sie nach weiteren Informationen in der Tracedatei zum Workprozess 4 in der Transaktion ST11 auf dem Applikationsserver sapvhd_NSP_00 suchen. Unter Umständen ist die Analyse von Tracedateien zu anderen Workprozessen notwendig.
Fall Sie noch über keine Benutzerkennung verfügen, so wenden Sie sich an Ihren Systemadministrator.
Fehlercode: ICF-IE-http-c:001-u:BCSERVICE-l:D-s:NSP-i:sapvhd_NSP_00-w:4-d:20121007-t:165800-v:RABAX_STATEe:UNCAUGHT_EXCEPTION-X:080027D9EDFF1ED28491EBBC1532F7A2_080027D9EDFF1ED28491EBCD11F237A2_1x:5D8F10E2A9E0F19D97A2080027D9EDFF
HTTP 500 - Internal Server Error Ihr SAP Internet Communication Framework Team
Ursache Falsche URL angegeben Lösung Statt der in der WebDynpro angegebenen Url http://sapvhd:8000/sap/bc/webdynpro/sap/ztodolist die Url http://sapvhd.local:8000/sap/bc/webdynpro/sap/ztodolist einfach in den Browser eintippen und verwenden (mit dem User BCService).
SAP-Link Nuget für SAP How-To: http://sdnabaper.blogspot.de/2010/11/how-to-install-saplink.html Nach Installation von SAP-Link das Paket NUGG_SAPLINE_DDIC-0.1.nugg installieren (SE38 ZSAPLINK, F8 Nugget importieren, ...) Alle importieren Klassen müssen wieder mit SE24 aktiviert werden.
JSON Nugg-Paket zum Verarbeiten von JSON-Daten: NUGG_ZJSON.nugg. Voraussetzung ist, dass das DDICPaket und das FunctionGroup-Paket (FUGR) NUGG_FUNCTIONGROUP_PLUGIN-0.1.2.nugg installiert wurde und die Klassen mit SE24 aktiviert wurden. Sonst bekommt man die Fehlermeldung: There There There There There
is is is is is
no no no no no
installed installed installed installed installed
SAPlink SAPlink SAPlink SAPlink SAPlink
plugin plugin plugin plugin plugin
for for for for for
object object object object object
type type type type type
DTEL TABL TTYP TABL VIEW
bzw. für das Funktionsgruppen-Paket: 23/30
ABAP erste Schritte.docx
Start import of nugget C:/Projects/NUGG_ZJSON.nugg There is no installed SAPlink plugin for object type FUGR Ausgabe nach erfolgreicher Installation: Start import of nugget C:/Projects/NUGG_ZJSON.nugg Installed: DTEL - ZSTRING Installed: TABL - ZGS_0004 Installed: TTYP - ZGY_0004 Installed: FUGR - ZJSON
Die importierten Datenelemente müssen mit SE11 aktiviert werden (ZSTRING, ZGS_0004 ZGY_0004) alle Funktionsbausteine der Funktionsgruppe ZJSON mit SE80 (Funktionsgruppen anklicken rechte Maustaste "Aktivieren"). In der Funktionsgruppe ZJSON müssen noch die ENDFUNCTION. Befehle hochgezogen werden, sonst compilieren die Funktionsbausteine nicht.
Nummernkreisobjekte http://help.sap.com/saphelp_46c/helpdata/de/2a/fa02e3493111d182b70000e829fbfe/frameset.ht m Nummernkreise anlegen: Werkzeuge ABAP/4 Workbench Entwicklung Weitere Werkzeuge Nummernkreise wichtigste Funktionsgruppe: SNR3
Customizing spro shi3 sm30 sm31
Einführungsleitfaden starten Strukturpflege (structure hierarchy) Pflegeviews starten (structure maintenance)
Einführungsleitfaden engl. Implementation Guide (IMG). SAP-Referenz-IMG: alle Customizing-Aktivitäten, die im SAP-System möglich sind, hierarchisch gegliedert nach Anwendungsbereichen. Customizing-Aktivitäten:
muss (keine SAP-Voreinstellung möglich) kann (die SAP-Voreinstellung ist zu prüfen) nicht erforderlich
Bemerkung: Wir (als msg) sind hier die SAP! 24/30
ABAP erste Schritte.docx
Auslieferungsklassen der Customizing-Tabellen Beschreibung der Auslieferungsklassen, dem Verhalten bei Mandatenkopie, Verhalten bei Upgrade. http://help.sap.com/saphelp_nwpi71/helpdata/de/43/45860774b711d2959700a0c929b3c3/content .htm
Überblick Auslieferungsklasse C Typ: Kundentabelle Pflege nur durch den Kunden, kein SAP-Import, d.h. keine Vorschlagswerte werden ausgeliefert. Beispiel: Unternehmensstruktur des Kunden (= Stammdaten)
Auslieferungsklasse G Typ: Kundentabelle SAP darf neue Datensätze einfügen, aber keine vorhanden überschreiben oder löschen. Pflege durch Kunden und SAP in getrennten Namensräumen, d.h. SAP liefert Vorschläge aus. Der Kundenamensraum muß mit dem Report RDDKOR54 in der Tabelle TRESC definiert werden. Bei der Pflege des Customizing mit SM30 wird der Namensraum überprüft. In neuen Versionen kann sich Vorschlagsliste ändern. Sinnvoll ist in neuen Versionen nur Vorschagswerte zu ergänzen, weil der Kunden die Vorschlagswerte aus vorherigen Versionen benutzt hat. Kunde kann eigene Werte eintragen (in eigenem Namensraum!). Nur bei Verwendung getrennter Namensräume werden die Kundeneinträge nicht von SAP-Vorschlagswerten überschrieben. Namensräume pflegen! Fachliche Unterfälle: 1. Die kundenspezifische Ergänzung ist die Ausnahme z.B. Währungseinheiten, Länderschlüssel. Maßeinheiten. Ergänzung von kundenspezifischen Maßeinheiten. 2. Die kundenspezifische Ergänzung ist die Regel Hier liefert SAP die Vorschlagswerte, sie können auch übernommen werden. Kundenspezifische Ergänzungen sind jedoch häufig. Oftmals basieren sie auf den Vorschlagswerten von SAP, die kopiert werden und an einigen Stellen abgeändert werden.
Auslieferungsklasse E Typ: Systemtabelle (SAP-Tabelle) Kunde darf neue Datensätze einfügen. Analog zur Auslieferungsklasse G nur anders herum (Kunde SAP). Der Kundenamensraum muß mit dem Report RDDKOR54 in der Tabelle TRESC definiert werden.
Auslieferungsklasse S Typ: Systemtabelle Analsyse der Auslieferungsklasse von Tabellen mit Report RDDKOR56 (starten mit SE38) 25/30
ABAP erste Schritte.docx
Berechtigungen su01 pfcg su02 su03 su21 su24 su53 su56 st01
Benutzer verwalten Rollen verwalten Berechtigungsprofile verwalten Objektklasse für Berechtigunsobjekte verwalten Berechtigungsobjekte verwalten Berechtigungsobjekte den Transaktionen zuordnen Historie der Berechtigungsprüfungen, (welche haben letztes Mal gefehlt, nach einem Authorization-Check Fehler) eigene Berechtigungen anzeigen Systemtrace (u.a. Berechtigungsprüfung tracen)
Geschäftsparter (Businesspartner) order Organsisationsmanagement (pdorg)
Benutzer haben Berechtigungen. Eine Berechtigung bezieht sich auf ein Berechtigungsobjekt (=Datenstruktur mit mehreren Feldern). Berechtigung = Instanziierung des Berechtigungsobjekt, d.h. für jedes Feld wird ein Wert angegeben. Beispiel: Benutzer hat zum Berechtigungsobjekt M_BEST_BSA ("Belegart in Bestellung") eine Berechtigung "YM_BEST_NB" mit den Feldwerten
BSART ("Einkaufsbelegart") = NB ("Normalbestellung") ACTVT ("Aktivität") = * (numerisch Anlegen, Ändern, Löschen, Preisanzeige, ... oder Wildcard)
Authority-Check lv_bsart = 'NB'. "Normalbestellung anlegen AUTHORITY-CHECK OBJECT ’M_BEST_BSA’ ID ’BSART’ FIELD lv_bsart ID ’ACTVT’ FIELD ’02’. IF sy-subrc 0. MESSAGE 'keine Berechtigung'
26/30
ABAP erste Schritte.docx
prüft: Hat der Benutzer eine Berechtigung, die das Berechtigungobjekt "abdeckt" (matched), wenn im Berechtigungsobjekt die Variablen entsprechend dem Authority-Check gefüllt sind? Abdecken: beinhalten, im Intervall (bei numerisch), durch Wildcard erfüllt (*) Forderung des Authority-Check:
Feld des Forderung des Authority-Check von Berechtigung des Benutzers Berechtigungsobjekts erfüllt? BSART NB ok ACTVT 02 ok, weil Wildcard * jede Zahl matched Berechtigungen werden zu Berechtigungsprofilen ("Einzelprofile") zusammengefasst. Berechtigungsprofile werden zu Sammelprofilen zusammengefasst
Rolle Menge von Transaktionen, die eine Gruppen von Benutzern i.d.R. ausführt (z.B. Einkäufer) + rollenspezifisches Menü. Für jede Transaktion ist vom Softwarehersteller hinterlegt, welche Berechtigungsobjekte abgefragt werden automatisches Generieren von Berechtigungsprofilen. Bearbeiten: In su01 auf die Rolle doppelklicken, dann "Berechtigungsdaten pflegen" auswählen, oder SU53.
27/30
ABAP erste Schritte.docx
Berechtigung Objektklasse anlegen http://books.google.de/books?id=s5NWPIBiT6cC&pg=PA356&lpg=PA356&dq=sap+berechtigungsobj ekt+objektklasse+anlegen&source=bl&ots=T6j2PfotNb&sig=wfSVMQMvZT_A7btNGZtHjb3hSXQ&hl= en&sa=X&ei=NIIqUbfBCet4ASnmIDADw&ved=0CGMQ6AEwBg#v=onepage&q=sap%20berechtigungsobjekt%20objektklasse %20anlegen&f=false TC SU21 Anlegen Button auswählen Im Dropdown "Objektklasse" auswählen
Berechtigungsobjekt anlegen http://help.sap.com/saphelp_erp60_sp/helpdata/de/9e/74ba3bd14a6a6ae10000000a114084/conte nt.htm 28/30
ABAP erste Schritte.docx
TC SU21 Anlegen Button auswählen Objektklasse auswählen, in der das Berechtigungsobjekt angelegt werden soll Im Dropdown "Berechtigungsobjekt" auswählen
Währungen 2 Dezimalstellen SAP hat zur Speicherung von Währungsbeträgen als internes Format DEC(17.2) gewählt. Bei Währungen 2 Dezimalstellen muss das folgende Verfahren angewendet werden.
Beim Speichern Konvertierung des Betrags in das interne Format durch Multiplikation mit 10 ^ "Anzahl Dezimalstellen" anschließend Division durch 10^2
Das entspricht der Speicherung des Währungsbetrags "ohne die Dezimalstellen" Beispiel 123456 JPY als DEC(17.2) = 1234,56
Beim Laden Konvertieren des Betrags in das externe Format durch Multiplikation mit 10^2 anschließend Division mit 10 ^Anzahl der Dezimalstellen aus der Währung
Beispiel DEC(17.2) = 1234,56 123456 JPY Die Anzahl der Dezimalstellen einer Währung steht in der Tabelle TCURX (Dezimalstellen der Währungen) Diese Konvertierungen werden beim Feldtransport gemacht, wenn das Währungsfeld vor dem Betragsfeld transportiert wird. Bei einem BAPI oder bei einer selbstprogrammierten API müssen diese Konvertierungen selbst durchgeführt werden. Dazu gibt es zwei SAP-Funktionsbausteine: CURRENCY_AMOUNT_BAPI_TO_SAP: converts the data to two decimal before saving CURRENCY_AMOUNT_SAP_TO_BAPI: conversion to correct decimals for end user viewing. Bemerkung: SE11 stellt den Währungsbetrag im Dezimalfeld FALSCH dar. Den richtigen Wert erhält man nur, wenn man einen eigenen ZReport mit write "Dezimalfeld" erstellt.
29/30
ABAP erste Schritte.docx
Hintergrundverarbeitung SM37 SM36
Jobs verwalten Jobs einplanen
http://help.sap.com/saphelp_nw70ehp2/helpdata/de/c4/3a7ed1505211d189550000e829fbbd/fram eset.htm
ABAP-Unittests Unittestrunner: TR SE38 Report: RS_AUCV_RUNNER
30/30
ABAP erste Schritte.docx
View more...
Comments