Abap Grundlagen Alko
Abap Grundlagen Alko
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
2
> <
Enter
> <
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
4
> <
> <
> anklicken
2. Eröffnen Sie einen 2.Modus und sichten Sie die zu verarbeitende Tabelle
> <
SE11 starten
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
5
> <
> <
>
<
T000
---- SCARR
--------------- SPFLI
------------------------ SFLIGHT
Eingabehilfe/Prüfung
> <
> <
> <
>
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
7
im 1.Modus refresh
<
>Menueeintrag wählen<
> <
4. Legen Sie ein Programm an das die Inhalte aus der Tabelle SBOOK übernimmt
(SE38)
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
8
> <
>
<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
9
*
* ABAP-Anweisungen setzen sich aus
* Token (die kleinste sinngebende Einheit einer Programmiersprache )
* zusammen und werden durch einen Punkt (.) abgeschlossen.
* Die Token einer Anweisung müssen durch mindestens ein Leerzeichen getrenn
t werden
* Eine ABAP-Anweisung ist nicht auf eine Zeile des Quelltexts beschränkt
* und es wird nicht nach Groß- und Kleinschreibung unterschieden. *
* Das Zeichen * an der ersten Stelle einer Programmzeile definiert diese Ze
ile als
* Kommentarzeile. Der Inhalt einer Kommentarzeile ist beliebig
* und wird beim Generieren des Programms vom ABAP Compiler ignoriert.
*
* Das Zeichen " an einer beliebigen Stelle einer Programmzeile definiert de
n
* dahinter folgenden Inhalt der Zeile bis zum Zeilenende als Kommentar
* (Zeilenkommentar), der ebenfalls beim Generieren des Programms vom
* ABAP Compiler ignoriert wird. Ausnahmen von dieser Regel sind " in Zeiche
nliteralen
* =========================================================================
=============
*&---------------------------------------------------------------------*
*& Report ZSBOOK_INSERT_00
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
*
* Die Anweisung REPORT muss nach der Auflösung eventueller Include-
Programme
* die erste Anweisung eines eigenständigen Programms sein und leitet ein
* ausführbares Programm ein.
* Der Name rep muss direkt angegeben werden
*
* Das Schlüsselwort REPORT kann in der Anweisung durch das Schlüsselwort
* PROGRAM ersetzt werden. In ausführbaren Programmen ist PROGRAM gleichbede
utend
* mit REPORT und kann mit dessen Zusätzen verwendet werden
* =========================================================================
======
*report zsbook_insert_00.
*
* Die Anweisung DATA deklariert eine Variable mit beliebigem Datentyp.
* Das deklarierte Datenobjekt ist innerhalb des aktuellen Kontextes
* ab dieser Stelle sichtbar.
* ===================================================================
data: wa_dd02l type dd02l.
*
* Definition der Tabellenart einer internen Tabelle.
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
10
* Standardtabellen werden systemintern über einen Tabellenindex verwaltet.
* Neue Zeilen werden entweder an die Tabelle angehängt oder an
* bestimmten Positionen eingefügt.
* Einzelne Zeilen werden entweder über den Tabellenschlüssel oder den Index
identifiziert
* =========================================================================
==============
data: itab type standard table of sbook.
*
* Das Schlüsselwort SELECTION-SCREEN leitet Anweisungen zum Anlegen
* und Gestalten von Selektionsbildern ein
* Diese Anweisungen definieren einen Block mit dem Namen
* control auf dem aktuellen Selektionsbild. Der Name block muss direkt
* angegeben werden und darf maximal 20 Zeichen lang sein.
Aktion
- Zeile Parameters anpassen
- Programm aktivieren
- Prugramm ausführen + debuggen
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
12
> <
>
<
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
14
> <
> <
> <
> <
> <
>Anzeigen-Button <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
18
> <
> <
> <
Programm kopieren
Neue Data-Anweisung
select * from zbook_00 into table itab. " Inhalt zur Übergabe beschaffen
endloop.
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
21
> <
> <
> <
>Pretty Printer<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
23
> <
>Button <
*
* Select-Option definieren (+ Table-Anweisung )
* Deklaration eines Selektionskriteriums selcrit für ein Datenobjekt dobj
* oder einen in name angegebenen Typ.
* Selektionskriterien sind Komponenten eines Selektionsbildes,
* denen im ABAP-Programm eine Selektionstabelle sowie auf dem Selektionsbild
* zwei Eingabefelder und eine Drucktaste für Mehrfachselektion zugeordnet sind.
* =============================================
select-options: so_carr for sbook-carrid.
2.Block Sql-Ersatz
Lösungsblock
*
* ABAP-Anweisungen setzen sich aus
* Token (die kleinste sinngebende Einheit einer Programmiersprache )
* zusammen und werden durch einen Punkt (.) abgeschlossen.
* Die Token einer Anweisung müssen durch mindestens ein Leerzeichen getrenn
t werden
* Eine ABAP-Anweisung ist nicht auf eine Zeile des Quelltexts beschränkt
* und es wird nicht nach Groß- und Kleinschreibung unterschieden. *
* Das Zeichen * an der ersten Stelle einer Programmzeile definiert diese Ze
ile als
* Kommentarzeile. Der Inhalt einer Kommentarzeile ist beliebig
* und wird beim Generieren des Programms vom ABAP Compiler ignoriert.
*
* Das Zeichen " an einer beliebigen Stelle einer Programmzeile definiert de
n
* dahinter folgenden Inhalt der Zeile bis zum Zeilenende als Kommentar
* (Zeilenkommentar), der ebenfalls beim Generieren des Programms vom
* ABAP Compiler ignoriert wird. Ausnahmen von dieser Regel sind " in Zeiche
nliteralen
* =========================================================================
=============
*&---------------------------------------------------------------------*
*& Report ZSBOOK_INSERT_00
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
*
* Die Anweisung REPORT muss nach der Auflösung eventueller Include-
Programme
* die erste Anweisung eines eigenständigen Programms sein und leitet ein
* ausführbares Programm ein.
* Der Name rep muss direkt angegeben werden
*
* Das Schlüsselwort REPORT kann in der Anweisung durch das Schlüsselwort
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
25
* PROGRAM ersetzt werden. In ausführbaren Programmen ist PROGRAM gleichbede
utend
* mit REPORT und kann mit dessen Zusätzen verwendet werden
* =========================================================================
======
*report zsbook_insert_00.
*
* Die Anweisung DATA deklariert eine Variable mit beliebigem Datentyp.
* Das deklarierte Datenobjekt ist innerhalb des aktuellen Kontextes
* ab dieser Stelle sichtbar.
* ===================================================================
data: wa_dd02l type dd02l,
wa_itab type zbook_00.
*
* Definition der Tabellenart einer internen Tabelle.
* Standardtabellen werden systemintern über einen Tabellenindex verwaltet.
* Neue Zeilen werden entweder an die Tabelle angehängt oder an
* bestimmten Positionen eingefügt.
* Einzelne Zeilen werden entweder über den Tabellenschlüssel oder den Index
identifiziert
* =========================================================================
==============
data: itab type standard table of sbook.
*
* Das Schlüsselwort SELECTION-SCREEN leitet Anweisungen zum Anlegen
* und Gestalten von Selektionsbildern ein
* Diese Anweisungen definieren einen Block mit dem Namen
* control auf dem aktuellen Selektionsbild. Der Name block muss direkt
* angegeben werden und darf maximal 20 Zeichen lang sein.
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
27
>
<
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
29
> <
>
<
> <
> <
> <
>Ikone <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
31
> <
SAP Menü
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE84 - Infosystem
Object Navigator
ABAP-Dictionary
+ Domänen
>alle Selektionen<
>letzter Änderer > ihre Userid
>ausführen<
Object Navigator
ABAP-Dictionary
+ Datenelemente
>alle Selektionen<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
32
>letzter Änderer > ihre Userid
>ausführen<
Object Navigator
ABAP-Dictionary
+ Datenbanktabellen
>alle Selektionen<
>letzter Änderer > ihre Userid
>ausführen
Sollten keine Testdaten vorhanden sein ist zum Testdatenaufbau notwendig folgendes
Programm zu starten
Transaktion : SA38
Programm : sapbc_data_generator
Hilfsmittel
Einstellungen
ABAP Editor
Debuggingden
===================================================================
==============================
Mit der Einstellung "Session-Breakpoints sofort aktiv" werden auch bereits laufende
Transaktionen und Programme sofort mit den neu gesetzten Session-Breakpoints
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
34
synchronisiert. Damit kann man dann z.B. ein lang laufendes Programm unterbrechen und in
den Debugger zwingen, indem man in einem parallelen Externen Modus derselben Anmeldung
einen
Session-Breakpoint an der richtigen Stelle setzt. (Testen wir später)
===================================================================
==============================
Der Neue Debugger wird genauso gestartet wie der klassische Debugger. Allerdings wird nach
jedem Start des Neuen Debuggers ein neuer Modus geöffnet, wobei höchstens sechs (ab EHP6
9) externe Modi je Benutzersitzung verfügbar sind. Falls beim Start des neuen Debuggers kein
weiterer externer Modus verfügbar ist, wird in der Statuszeile die Meldung Kein weiterer
externer Modus für den neuen ABAP Debugger verfügbar angezeigt und der Start im alten
Debugger gestartet. In diesem Fall müssen nicht mehr benötigte Modi geschlossen werden.
Vorgehen
Transaktion : SE38
Programm : ; Z_select_spfli_XX
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
36
> <
===================================================================
Die Zeit, die der auf Eingabe wartende Neue Debugger aktiv ist, wird durch den
Profilparameter rdisp/max_debug_lazy_time begrenzt, der standardmässig auf 600 Sekunden
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
38
eingestellt ist. Nach Ablauf dieser Zeitspanne wird der Debugger-Prozess automatisch beendet
und die Kontrolle wieder an die Anwendung übergeben. Mit Hilfe der Transaktion RZ11 kann
der Systemadministrator den Wert dieses Parameters ändern, indem er die
Funktionen Ändern Wert ändern aufruft.
===================================================================
========
Startmöglichkeit 1
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
39
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
40
Ggf startet der Debugger in einer Routine die Sie nicht zuordnen können.
Passiert sehr oft bei Selektions-Options
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
41
Vorgehen :
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
42
Startmöglichkeit 2
Startmöglichkeit 3
Testen Sie
Wenn der Trace noch nicht eingeschaltet ist schalten Sie den Trace ein
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
45
Klicken Sie das Fernglas an und suchen Sie die Tabelle SPFLI
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
47
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
48
- Select
- Loop
Stoppen Sie ihren Trace und lassen sich die Daten anzegen
Object Navigator
>Repository Browser<
>ihr Paket<
>sichern<
>sichern <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
54
>enter <x2
>aktivieren <
>enter <
>Objektliste anzeigen <
>rechte Maus Aktivierung<
>Favorit hinzufügen und positionieren<
Favoriten
+ Hinzufügen
Favoriten
+ Programme
+ + ihr relevantes
22. Legen Sie ein Dynpro über den integrierten Screen Painter an
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
55
SAP Menü
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE80 - Object Navigator
Object Navigator
>Repository Browser<
>ihr Programm<
enter
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
56
>layout<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
57
>Rahmenikone anklicken<
>über den Bildschirm ziehen<
Springen
+ Sekundaerfenster
+ + Dict/Programmfelder
>Suchhilfe eintragen<
>ZTB_PSTAMM_NACHNAME<
im Bild positionieren
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
59
>aktivieren<
enter
>testen<
enter
SAP Menü
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE80 - Object Navigator
Object Navigator
>Repository Browser<
>ihr Dynpro<
Quellcode definieren
--------------
MODULE init OUTPUT.
display = 'X'.
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
62
ENDMODULE.
--------------
>Pretty Printer<
>zurück< x 2
eintragen
>aktivieren<
SAP Menü
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE80 - Object Navigator
Object Navigator
>Repository Browser<
>ihr Programm<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
63
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
64
> <
> <
> zurück bis Easy Access<
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
65
>Suchhilfe testen<
> <
> <
SAP Menü
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE80 - Object Navigator
Object Navigator
>Repository Browser<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
66
>ihr Dynpro<
>ändern<
--------------
PROCESS AFTER INPUT.
module exit.
--------------
enter x 2
>sichern<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
67
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
68
> <
>Beenden testen<
>erneuter testen<
Menuepfad
System
+++> Status testen
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
69
SAP Menü
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE80 - Object Navigator
Object Navigator
>Repository Browser<
>ihr Dynpro<
>ändern<
> <
> x 2<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
70
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
71
> <
> <
> <
> <
>Transaktion testen<
>Pflegen Sie über SM30 ein paar Einträge<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
72
>Testen<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
73
>Aktivieren + Testen<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
74
>
<
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
77
>alle markieren<
> <
im 100er Dynpro
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
78
>Folgebild anpassen<
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
79
>
<
>Folgedynpro 200 setzen<
>alles aktivieren<
>testen<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
80
33. Steuern Sie ein optimales Beenden /Abbrechen / Zurück aus
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
81
> <
> x 2<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
85
><
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
86
> <
> <
>Primärtabelle angeben<
>Schreibsperre setzen<
Schreibsperre
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
87
Die gesperrten Daten können ausschließlich von einem Benutzer gelesen bzw. bearbeitet
werden. Sowohl die Anforderung einer weiteren Schreibsperre als auch einer Lesesperre
werden abgewiesen.
Lesesperre
Mehrere Benutzer können gleichzeitig lesend auf dieselben Daten zugreifen. Sobald ein Nutzer
jedoch die Daten bearbeitet, hat ein zweiter Benutzer keinen Zugang auf diese Daten. Die
Anforderungen weiterer Lesesperren werden akzeptiert, auch wenn diese von anderen
Benutzern kommen. Eine Schreibsperre wird abgewiesen.
erweiterte Schreibsperre
Während Schreibsperren mehrfach von der gleichen Transaktion angefordert und sukzessive
wieder abgebaut werden können, kann eine Erweiterte Schreibsperre auch von der gleichen
Transaktion nur ein einziges Mal angefordert werden. Jede weitere Anforderung einer Sperre
wird abgewiesen.
> <
> <
> <
><
> <
> <
><
><
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
89
>Eintrag sichten<
in den 1.Modus wechseln
> x 3<
> <
36. Bauen Sie die Sperrbausteine an optimaler Stelle in ihren Ablauf ein
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
90
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
91
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
92
> <
Modul anlegen
Funktionsbaustein über Muster einbetten
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
95
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
96
><
>aktivieren<
>Anpassen,Aktivieren und Testen<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
97
Lagern Sie ihren zu aktualisierenden Datensatz in einer Work-Area zwischen und stellen
sie das Keyfeld generell als Ausgabe im 200er Bild ein
> <
><
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
98
<
<
> <
x 2<
> <
> <
x 2<
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
100
Update auf die Datenbank ohne Verbucher
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
101
Definieren Sie einen Verbucherbaustein der ihren Datensatz verbucht
> <
> <
> >
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
102
> <
> <
> >
><
><
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
103
>
> <
><
><
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
104
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
105
> <
> <
> <
> <
37. Grundlagen der Objektorientierung
>sichern<
>lokales Objekt<
*&---------------------------------------------------------------------*
*& Report ZBEISPIEL1_00
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZBEISPIEL1_00.
* Lokale Klassen bestehen aus ABAP-Quelltext, der innerhalb der Anweisungen CLASS - EN
DCLASS
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
108
* eingeschlossen ist.
* Eine vollständige Klassendefinition besteht aus einem Deklarationsteil und falls erforderlic
h aus
* einem Implementationsteil.
* Der Deklarationsteil enthält die Deklaration aller Komponenten (Attribute, Methoden, Erei
gnisse)
* einer Klasse.
* Bei lokalen Klassen gehört der Deklarationsteil von Klassen zu den globalen Datendeklarat
ionen und
* sollte deshalb auch am Anfang des Programms stehen.
* Falls im Deklarationsteil einer Klasse Methoden deklariert werden, benötigt die Klasse auc
h einen
* Implementationsteil. Dieser besteht aus einem Anweisungsblock
* Public Section
*
* Alle im öffentlichen Abschnitt deklarierten Komponenten
* sind für alle Verwender sowie in den Methoden aller Erben
* und der Klasse selbst ansprechbar.
* Die öffentlichen Komponenten stellen die Schnittstelle
* der Klasse zu jedem Verwender dar.
PUBLIC SECTION.
* Private Section
*
* Alle im privaten Abschnitt deklarierten Komponenten sind nur
* in den Methoden der Klasse selbst ansprechbar und auch nicht
* für die Erben sichtbar.
* Die privaten Komponenten stellen somit keine Schnittstelle zu den
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
109
* Verwendern der Klasse dar.
PRIVATE SECTION.
START-OF-SELECTION.
Break pwd.
* Die Anweisung CREATE OBJECT erzeugt eine Instanz einer Klasse bzw. ein Objekt
* und weist die Referenz auf das Objekt der Referenzvariablen oref zu.
* Direkt nach der Erzeugung des Objekts wird der Instanzkonstruktor
* der Klasse ausgeführt.
DO 3 TIMES.
CALL METHOD cnt->increment.
ENDDO.
WRITE number.
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
110
Neue Schreibweise
DO 3 TIMES.
cnt->increment( ).
ENDDO.
WRITE number.
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
111
>
<
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
112
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
113
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
114
START-OF-SELECTION.
Break pwd.
CREATE OBJECT cnt EXPORTING set_value = number.
DO 3 TIMES.
CALL METHOD cnt->increment.
ENDDO.
WRITE number.
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
115
>anlegen<
>sichern<
>lokales Objekt<
START-OF-SELECTION.
DO 20 TIMES.
CALL METHOD count->increment.
ENDDO.
41. Ereignisse
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
118
>anlegen<
* Mit diesem Zusatz werden die Ereignisbehandler der Liste handler1 handler2 ...
* für alle Objekte registriert, deren Ereignisse sie behandeln können.
* Das sind alle Objekte, deren Klassen gleich class oder Unterklasse von class sind
* bzw. das Interface intf direkt oder über eine Oberklasse implementieren.
* Diese Registrierung gilt auch für alle auslösenden Instanzen, die erst nach der Anweisung
SET HANDLER erzeugt werden
DO 20 TIMES.
CALL METHOD r1->increment_counter.
ENDDO.
Interfaces
* Klassen, deren Objektinstanzen, und der Zugriff über Referenzvariablen bilden die Grundlage
von
* ABAP Objects. Allein mit diesen Mitteln ist es schon möglich typische Business-
Anwendungen mit
* Objekten wie Kunde, Auftrag, Position, Rechnung usw., zu modellieren und mit ABAP
Objects zu*
* implementieren.
* Es kommt aber oft vor, dass ähnliche Klassen eine gleichartige Funktionalität zur Verfügung
stellen müssen,
* die zwar unterschiedlich in den einzelnen Klassen kodiert ist, aber vom Benutzer mit der
gleichen Schnittstelle aufgerufen werden soll.
* Beispielsweise können wir uns die ähnlichen Klassen Sparkonto und Girokonto vorstellen,
die beide eine Methode zur Berechnung des Jahresabschlusses anbieten. Schnittstelle und
Name der Methode sind gleich, die eigentliche Implementierung ist jedoch unterschiedlich.
* Weiterhin möchte der Benutzer dieser Klassen, bzw. deren Instanzen, den Jahresabschluss für
alle Konten durchführen, ohne sich darum zu kümmern, welche Kontoart vorliegt.
INTERFACE status.
METHODS write.
ENDINTERFACE.
START-OF-SELECTION.
DO 5 TIMES.
CALL METHOD: count->increment,
bike->drive.
ENDDO.
Global umsetzen
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
121
START-OF-SELECTION.
CLEAR cnt_2.
cnt_3 = cnt_1.
CLEAR cnt_3.
DO 3 TIMES.
CALL METHOD: cnt_1->increment,
cnt_2->increment,
cnt_3->increment.
ENDDO.
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
123
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
124
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
125
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
126
> <
44. Kontrolle der Schnittstelle im Class builder
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
127
> <
>Kontrolle<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
128
> <
> <
´> <
> <
*&---------------------------------------------------------------------*
*& Report ZBADI_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZBADI_TEST .
tables: spfli.
start-of-selection.
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
129
select * from spfli into corresponding fields of table it_spfli
where carrid in s_carr.
end-of-selection.
loop at it_spfli into wa_spfli.
write:/ wa_spfli-carrid,
wa_spfli-connid,
wa_spfli-cityfrom,
wa_spfli-deptime,
wa_spfli-arrtime.
endloop.
at line-selection.
check not wa_spfli-carrid is initial.
clear wa_spfli.
Coding Ende
Coding testen
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
131
> <
> <
> <x2
> <
Methoden ABAP-Code
>aktivieren<
>Programm testen<
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
134
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
135
> <
> <
>Zeile markieren<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
136
>Paket zuordnen<
> <
> <
>sfw2<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
137
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
138
> <
> <
> <
> <
> x 3<
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
140
> <
><
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
141
>aktivieren<
>Testen der schaltbaren Einheit<
><
>anlegen<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
142
>sichern<
>lokales Objekt<
START-OF-SELECTION.
DO 3 TIMES.
CALL METHOD cnt->increment.
ENDDO.
WRITE number.
>Zeile markieren<
>Importieren<
>lokales Objekt<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
145
>anzeigen<
>aktivieren<
>testen<
>Instanz<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
146
>ausführen<
>Ergebnis sichten<
> <
>Doppelklick<
> <
> <
>
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
148
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
149
In der Abwickelnden
In der Ausnahmeklasse
> <
>
<
>aktivieren<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
150
TRY .
add 1 to count.
if count > 10.
RAISE EXCEPTION TYPE zcx_wert_groesser_10a
exporting count = count.
endif.
CATCH zcx_wert_groesser_10a into oref.
text = oref->get_text( ).
write text.
cleanup.
count = 0.
ENDTRY.
><
><
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
151
>
<
> <
>
<
>testen<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
152
Im Programm integrieren
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
153
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
154
> <
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
155
> <
> <
report z_en_00.
write: / 'Zeile 1 Original'.
write: / 'Zeile 2 Original'.
write: / 'Zeile 3 Original'.
> <
> <
> <
Diese Anweisungen machen einen Abschnitt des aktuellen Programms zu einer expliziten
Erweiterungsoption, wodurch er durch eine Quelltext-Erweiterung ersetzt werden kann. Bei
der Programmgenerierung ersetzt genau ein Quelltext-Plugin der zugeordneten
Erweiterungsimplementierung, dessen Schalter den Zustand stand-by oder an hat, diesen
Programmabschnitt. Falls einem Quelltext-Plugin kein Schalter zugeordnet ist, wird es wie mit
einem Schalter im Zustand an behandelt
REPORT Z_EN_00.
WRITE: / 'Zeile 1 Original'.
ENHANCEMENT-SECTION ZBLOCK1_00 SPOTS zspot_zu_zblock1_00.
WRITE: / 'Zeile 2 Original'.
END-ENHANCEMENT-SECTION:
WRITE: / 'Zeile 3 Original'.
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
156
>Erweiterungsspotbezeichnung eingeben<
>Zeile markieren<
> <
> <
>Doppelt anklicken<
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
157
>Cursor auf Enhancement Section<
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
158
> <
> <
>Testen<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
159
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
160
> <
> <
> <
> ^<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
161
> <
> <
> <
> <
> <
> x2<
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
162
59. Zeichnen Sie eine Transaktion auf und definieren Sie daraus einen Funktionsbaustein
den Sie über Enhancement-Möglichk,eiten erweitern
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
163
> <
>enter<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
164
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
165
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
166
im 1.Modus
> <
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
167
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
168
> <
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
169
61. Integration eines Enhancement Spots
> <
> <
>Zeile markieren<
> <
> <
> < im Programm
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
170
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
171
> <
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
172
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
173
>
<
Die Methode BI_PERSISTENT~FIND_BY_LPOR wird von der SAP WebFlow Engine
aufgerufen, wenn eine persistent gespeicherte Darstellung eines Objektes in eine Instanz der
entsprechenden ABAP-Klasse umgewandelt werden soll.
Die Methode BI_PERSISTENT~LPOR ist das Gegenstück zur Methode
BI_PERSISTENT~FIND_BY_LPOR. Sie liefert die persistente Darstellung zu einer
vorhandenen Instanz eines ABAP-Objektes.
Die Methode BI_PERSISTENT~REFRESH wird von der SAP WebFlow Engine aufgerufen,
wenn das System sicherstellen muss, dass alle Werte des Objektes gültig sind bzw. genau mit
der persistenten Abbildung des Objektes übereinstimmen.
Die Methode BI_OBJECT~DEFAULT_ATTRIBUTE_VALUE liefert den Anzeigename des
Objektes.Wenn Sie die Methode in Ihrer Klasse nicht benötigen, sollten Sie eine “leere“
Implementierung (ohne weiteres Coding) vornehmen, um Programmfehler beim Systemaufruf
der Methode zu vermeiden.
Die Methode BI_OBJECT~EXECUTE_DEFAULT_METHOD ist die Standardmethode des
Objektes. Diese Methode wird ausgeführt, wenn z. B. im Business Workplace das Objekt
aufgerufen wird.
Mit Hilfe der Methode BI_OBJECT~RELEASE signalisiert das System, dass die Referenz auf
die Instanz nicht mehr benötigt wird. Die Referenz kann folglich aus der Instanzverwaltung
gelöscht werden. Nachdem die letzte Referenz aus der Instanzverwaltung gelöscht wurde,
kann der GARBAGE COLLECTOR den entsprechenden Speicherbereich freigeben.
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
174
==================================================================
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
175
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
176
> <
>
<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
177
> <
> <
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
178
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
179
Besonderheit
- Anpassen auf eigene Klasse
====================
Augenmerk
- static Attribute
- Private
- Typverwendung
- Besonderheit um eine Instanzverwaltung zu berücksichtigen muss ein das
Attribut M_POR vom Typ SIBLPOR angelegt werden.
=======================
class-data MST_INSTANCES type T_INSTANCES .
=====================
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
180
><
=========================
**********************************************************************
* Datendeklaration
**********************************************************************
data: l_instance type ref to zcl_00_mara. "Referenz des eigenen Objekts
data: l_matnr type mara-matnr. "Materialnummer / Schlüssel
data: ls_instance type t_instance. "Verwaltung der Instanzen
**********************************************************************
* Programmlogik
**********************************************************************
* Überprüfung, ob bereits eine Lokale Persistente Objektrefererenz
* existiert
check lpor-instid is not initial.
* instid of import parameter LPOR is object key
l_matnr = lpor-instid.
* Gibt es bereits eine Instanz?
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
181
read table mst_instances with key matnr = l_matnr
into ls_instance.
* Wenn es noch keine Instanz gibt
if sy-subrc ne 0.
* Erzeugen des Objekts für die Instanzverwaltung
try.
create object l_instance
exporting
im_matnr = l_matnr.
catch cx_bo_error .
exit.
endtry.
* Anhängen der Instanzen
ls_instance-matnr = l_matnr.
ls_instance-instance = l_instance.
append ls_instance to mst_instances.
endif.
* Füllen des Rückgabewerts
result = ls_instance-instance.
endmethod. "BI_PERSISTENT~FIND_BY_LPOR
=======================================================
=
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
182
========================
*********************************************************************
*
* Programmlogik
*********************************************************************
*
* Erstellen der lokalen Persistenten Objektreferenz
m_por-catid = 'CL'.
m_por-typeid = 'ZCL_00_MARA'.
m_por-instid = me->matnr.
* Laden der Instanz in den Rückgabewert vom Typ SIBFLPOR
result = m_por.
==============================
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
183
> <
==============================
=============================
**********************************************************************
* Programmlogik
**********************************************************************
* Ermitteln der Daten aus der MARA
select single * from mara into m_mara
where matnr = me->matnr.
* Zuweisen der Daten aus der Struktur in die Attribute
me->matkl = me->m_mara-matkl.
me->mtart = me->m_mara-mtart.
me->spart = me->m_mara-spart.
me->bismt = me->m_mara-bismt.
me->ernam = me->m_mara-ernam.
===================================
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
186
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
187
======================
**********************************************************************
* Datendeklaration
**********************************************************************
data: l_matnr type mara-matnr, "Materialnummer
l_maktx type makt-maktx. "Materialkurztext
**********************************************************************
* Programmlogik
**********************************************************************
* Materialkurztext zum Material in lokale Variable schreiben
select single maktx from makt into l_maktx
where matnr = matnr
and spras = sy-langu.
* Führende Nullen bei interner Nummernvergabe löschen
l_matnr = matnr.
shift l_matnr left deleting leading '0'.
* Beschreibenden Text zusammensetzen
concatenate 'Material:'(001) l_matnr '-'(002) l_maktx into
description separated by space.
==========================
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
188
====================
me->read_attributes( ).
me->set_description( ).
=========================
>aktivieren + test<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
189
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
190
============================
**********************************************************************
* Datendeklaration
**********************************************************************
data: lt_return type table of bapiret2,
lt_addsmtp type table of bapiadsmtp,
wa_addsmtp type bapiadsmtp.
**********************************************************************
* Programmlogik
**********************************************************************
* Ermitteln der E-Mail Adressen zum Erfasser
call function 'BAPI_USER_GET_DETAIL'
exporting
username = me->ernam
tables
return = lt_return
addsmtp = lt_addsmtp.
* Lesen der ersten E-Mail Adresse
read table lt_addsmtp index 1 into wa_addsmtp.
* Attribut ausgeben, wenn E-Mail Adresse gepflegt
if sy-subrc = 0.
me->email_ernam = wa_addsmtp-e_mail.
endif.
=============================
>aktivieren + testen<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
191
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
192
**********************************************************************
* Programmlogik
**********************************************************************
* Überprüfung, ob das Material auf der Datenbank vorhanden ist
select single * from mara into m_mara
where matnr = me->matnr.
* Material nich vorhanden -> Ausnahme
if sy-subrc ne 0.
raise exception type cx_bo_error.
endif.
====================
================
**********************************************************************
* Das Schlüsselfeld des Objekts mit dem Importparameter füllen
matnr = im_matnr.
* Existenzcheck Methode aufrufen, Fehler abfangen
try.
call method me->existencecheck.
catch cx_bo_error.
exit.
endtry.
me->read_attributes( ).
me->set_description( ).
=====================
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
194
========================
**********************************************************************
* Programmlogik
**********************************************************************
call function 'BAPI_MATERIAL_DISPLAY'
exporting
material = matnr
* MATERIAL_EVG =
importing
return = ex_return
.
============================
> <
===================
**********************************************************************
* Programmlogik
**********************************************************************
try.
display( ).
catch cx_root.
endtry.
======================
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
196
************************************************************************
* Programmlogik *
************************************************************************
set parameter id 'MAT' field matnr.
set parameter id 'MXX' field im_statm.
call transaction 'MM03' and skip first screen.
**********************************************************************
* Programmlogik
**********************************************************************
set parameter id 'MAT' field matnr.
call transaction 'MM02' and skip first screen.
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
197
>
<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
198
========================
**********************************************************************
* Programmlogik
**********************************************************************
call function 'BAPI_STANDARDMATERIAL_CREATE'
* EXPORTING
* NEWMATERIAL = ' '
* NEWMATERIAL_EVG =
importing
material = ex_matnr
* NEWMATERIAL =
return = ex_return
* MATERIAL_EVG =
* NEWMATERIAL_EVG =
.
============================
> <
><
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
199
<
<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
200
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
201
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
202
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
203
<
<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
204
> <
3 x zurück
>
<
Zurück x 2
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
205
Aktivieren
Testen
>
<
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
207
>
<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
208
=============
*********************************************************************
* Programmlogik
**********************************************************************
call function 'BAPI_MATERIAL_DISPLAY'
exporting
material = matnr
* MATERIAL_EVG =
importing
return = ex_return
.
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
209
case ex_return-number.
when '000'. "Material wurde angezeigt
when '262'.
raise exception type cx_bo_error
exporting textid = 'Material nicht übergeben'.
when '305'.
raise exception type cx_bo_error
exporting textid = 'Material exsistiert nicht'.
when others.
raise exception type cx_bo_error
exporting textid = 'Anderer Fehler'.
endcase.
===================
=====================
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
210
**********************************************************************
* Datendeklaration
**********************************************************************
data: l_event_container type ref to if_swf_ifs_parameter_container.
**********************************************************************
* Programmlogik
**********************************************************************
call function 'BAPI_STANDARDMATERIAL_CREATE'
* EXPORTING
* NEWMATERIAL = ' '
* NEWMATERIAL_EVG =
importing
material = ex_matnr
* NEWMATERIAL =
return = ex_return
* MATERIAL_EVG =
* NEWMATERIAL_EVG =
.
case ex_return-number.
when '356'. "Material wurde angelegt
try.
*--- get the event container that is used to transport the event
call method cl_swf_evt_event=>get_event_container
exporting
im_objcateg = 'CL'
im_objtype = 'ZCL_00_MARA'
im_event = 'CREATED'
receiving
re_reference = l_event_container.
*--- set the values of the parameters
call method l_event_container->set
exporting
name = 'ERNAM'
value = sy-uname.
*--- raise the event
call method cl_swf_evt_event=>raise
exporting
im_objcateg = 'CL'
im_objtype = 'ZCL_00_MARA'
im_event = 'CREATED'
im_objkey = ex_matnr
im_event_container = l_event_container.
*--- start the receivers (tRFC)
commit work.
catch cx_swf_evt_exception.
catch cx_swf_cnt_container.
endtry.
endcase.
==================================
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
211
> <
> <
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
212
>
<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
213
> <
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
214
> <
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
215
>Doppelklick<
> <
> <
>Doppelklick<
<
>Sichern
>Synchrone Objektmethode
>Sichern
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
218
>
<
>Bearbeiterzuordnung pflegen
> <
>anlegen<
> <
>Benutzer<
> <
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
219
Ihr Benutzer
> <
>zurück
>
<
>Auslösende Ereignisse
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
220
>
<
> <
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
221
>
<
IT Informatik für AL-KO - -Abap Grundlagen + Analysewerkzeuge
222