Sie sind auf Seite 1von 30

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

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

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

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.

Dynpro-Prozessor Runtime für die Ablauflogik eines ABAP-Programms, reagiert auf Benutzeraktionen in Bildschrimmasken,
Dynpro-Prozessor Runtime für die Ablauflogik eines ABAP-Programms, reagiert auf Benutzeraktionen in Bildschrimmasken,

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 Dynpro- Prozessor, erzeugt Bildschirmausgaben.

betriebswirtschaftliche Kernbereiche eines SAP-Systems Bereich Abkürzung Bemerkung Logisitk  
betriebswirtschaftliche Kernbereiche eines SAP-Systems Bereich Abkürzung Bemerkung Logisitk  
betriebswirtschaftliche Kernbereiche eines SAP-Systems Bereich Abkürzung Bemerkung Logisitk  

betriebswirtschaftliche Kernbereiche eines SAP-Systems

Bereich

Abkürzung

Bemerkung

Logisitk

 

Materialwirtschaft, Produktion, Vertrieb

Rechnungswesen

 

Finanzen, Controlling

Personal

 

Personaladministration, Lohnabrechnung

SAP-Module

Abkürzung

Bedeutung

FI

Finanzwesen (Finanzbuchhaltung, Rechnungswesen)

CO

Controlling

HR

Human Resource

Logistik:

 

MM

Materialwirtschaft (Materials Management)

PP

Produktionsplanung und Steuerung (Production Planning and Control)

PM

Instandhaltung (Plant Maintenance)

SD

Vertrieb (Sales and Distribution)

Wichtige Transaktionen

SE80

Object Navigator (wichtigste Transaktion)

SE84

Repository Infosystem

SE11

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

laufende Transaktion beenden und neue Transaktion starten

/nex

alle Transaktionen schließen und alle Sessions beenden

/o<Transaktion>

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

Beschreibung

TSTC

Transaktionen (TCODE = Transaktionscode)

Anmelden

Zur Programmentwicklung einloggen mit SAPGui als User BCUSER und Passwort DemoTest1

einloggen mit SAPGui als User BCUSER und Passwort DemoTest1 Abmelden (/NEX) Fenster schließen System  Abmelden

Abmelden (/NEX)

Fenster schließen

System Abmelden

Version des Abap Application Server anzeigen

System Status

des Abap Application Server anzeigen System  Status SAP-Systemdaten Komponentenversion zeigt die Abap-Version

SAP-Systemdaten Komponentenversion zeigt die Abap-Version des Systems an.

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

Domäne die technischen Attribute eines Felds  Datentyp  Länge  Dezimalstellen  Wertebereiche Alle

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

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

und Tabellentypen (für interne Tabellen angelegt werden). Vergleich Tabellentyp, Struktur, transparente Tabelle ???

Vergleich

Tabellentyp, Struktur, transparente Tabelle ???

Datentypen

Dictionary type

Meaning

Maximum length n

ABAP type

DEC

Calculation/amount

1-31, 1-17 in tables

P((n+1)/2)

field

INT1

Single-byte integer

3

Internal only

INT2

Two-byte integer

5

Internal only

INT4

Four-byte integer

10

I

CURR

Currency field

Jan 17

P((n+1)/2)

CUKY

Currency key

5

C(5)

QUAN

Amount

Jan 17

P((n+1)/2)

UNIT

Unit

02. Mrz

C(n)

PREC

Accuracy

16

Internal only

FLTP

Floating point number

16

F(8)

NUMC

Numeric text

1-255

N(n)

CHAR

Character

1-255

C(n)

LCHR

Long character

256-max

C(n)

STRING.

String of variable length

1-max

STRING.

RAWSTRING

Byte sequence of variable length

1-max

XSTRING

DATS

Date

8

D

ACCP

Accounting period

6

N(6)

YYYYMM

TIMS

Time HHMMSS

6

T

RAW

Byte sequence

1-255

X(n)

LRAW

Long byte sequence

256-max

X(n)

CLNT

Client

3

C(3)

LANG

Language

internal 1, external 2

C(1)

Boolean-Datentyp in ABAP

Datentyp

Konstante

Wirklichkeit

abap_bool

   

c(1)

 

abap_true

'X'

 

abap_false

'

'

 

abap_undefined

'-'

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

Ablauf  speichern (Ctrl-S)  prüfen (Ctrl-F2) Programm  prüfen  Syntax  aktivieren (Ctrl-F3)

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.

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

Bedeutung

Beispiel

i

integer

DATA zahl01 TYPE i.

p

decimal

DATA zahl01 TYPE p DECIMALS 2. VALUE '-5.67'

c

string mit fixer Länge

DATA geschlecht TYPE c LENGTH 1 VALUE 'W'.

n

numerischer string mit fixer Länge (nur Ziffern), rechtsbündig mit führenden Nullen

DATA telefon TYPE n LENGTH 8 VALUE '887766'.

string

string mit variabler Länge

 

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

Step-In

F6

Step-Over

F7

Return bis zum nächsten Funktionsende

F8

Weiter (bis zum nächsten Breakpoint)

Ctrl+Shift+F3

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.

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

 

CN (Jeder Satz der Prüftabelle hat beliebig viele abhängige Sätze)

C (Eintrag im Prüffeld kann vorhanden sein)

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

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

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

Bedeutung

Ausgabe

A

Abandon

Pop mit Fehlermeldung und Programmende

E

Error

Fehlermeldung in Statusleiste und Programmende

I

Information

PopUp mit Messagetext

S

Status message

Messagetext in Statusleiste

W

Warning

PopUp mit Messagetext

X

Exit

Programmende mit Kurzdump

ABAP-100 Notizen

Ablauf Erstellung eines Dynpros

1. Ok_code_save sy-ucomm

2. TABLES

3. Dynpro anlegen

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

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

Spalteneigenschaften (fcat-fieldname = ‚Spaltenname‘ ) Vor set_table_for_first_display sollte der Feldkatalog geholt warden.

data fcat type LVC_T_FCAT (Tipp: In cl_gui_alv_grid nach fcat suchen) Tabelle mit

* Feldkatalog holen CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'SPFLI' CHANGING

ct_fieldcat

Spalten ausblenden: wa_fcat

= gs_fcat. -TECH wa_fcat -NO_OUT
= gs_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.

*

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

-current_line

.

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

Attribute aus Struktur hinzufügen transparente Tabelle auswählen gewünschte Attribute auswählen

Knoten anlegen über Wizard Namen vergeben

(AUTOS bzw. AUTO)

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

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!

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.<domain>.<ext>).

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.<domain>.<ext>).

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

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

e:UNCAUGHT_EXCEPTION-X:080027D9EDFF1ED28491EBBC1532F7A2_080027D9EDFF1ED28491EBCD11F237A2_1-

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

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 DDIC- Paket 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 is no installed SAPlink plugin for object type DTEL There is no installed SAPlink plugin for object type TABL There is no installed SAPlink plugin for object type TTYP There is no installed SAPlink plugin for object type TABL There is no installed SAPlink plugin for object type VIEW

bzw. für das Funktionsgruppen-Paket:

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

m

Nummernkreise anlegen: Werkzeuge ABAP/4 Workbench Entwicklung Weitere Werkzeuge Nummernkreise

wichtigste Funktionsgruppe: SNR3

Customizing

spro

Einführungsleitfaden starten

shi3

Strukturpflege (structure hierarchy)

sm30

Pflegeviews starten (structure maintenance)

sm31

 

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!

Auslieferungsklassen der Customizing-Tabellen

Beschreibung der Auslieferungsklassen, dem Verhalten bei Mandatenkopie, Verhalten bei Upgrade.

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

Berechtigungen

su01

Benutzer verwalten

pfcg

Rollen verwalten

su02

Berechtigungsprofile verwalten

su03

Objektklasse für Berechtigunsobjekte verwalten

su21

Berechtigungsobjekte verwalten

su24

Berechtigungsobjekte den Transaktionen zuordnen

su53

Historie der Berechtigungsprüfungen, (welche haben letztes Mal gefehlt, nach einem Authorization-Check Fehler)

su56

eigene Berechtigungen anzeigen

st01

Systemtrace (u.a. Berechtigungsprüfung tracen)

Geschäftsparter (Businesspartner) order Organsisationsmanagement (pdorg)

(Businesspartner) order Organsisationsmanagement (pdorg) Benutzer haben Berechtigungen. Eine Berechtigung bezieht

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,

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'

oder Wildcard)

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 Berechtigungsobjekts

Forderung des Authority-Check

von Berechtigung des Benutzers 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.

die Rolle doppelklicken, dann "Berechtigungsdaten pflegen" auswählen, oder SU53. 27/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.

erhält man nur, wenn man einen eigenen ZReport mit write "Dezimalfeld" erstellt. 29/30 ABAP erste Schritte.docx

Hintergrundverarbeitung

SM37

Jobs verwalten

SM36

Jobs einplanen

ABAP-Unittests

Unittestrunner: TR SE38 Report: RS_AUCV_RUNNER