0% fanden dieses Dokument nützlich (0 Abstimmungen)
6 Ansichten37 Seiten

Dialog

Das Dokument behandelt die Grundlagen der SAP ABAP Dialogprogrammierung und beschreibt Schritt für Schritt, wie man einen Programmrahmen, Dynpros, Ausgänge, Transaktionscodes und GUI-Elemente erstellt. Es werden auch spezifische Anweisungen zur Datenbeschaffung, Fehlerbehandlung und zur Verwendung von Tokens in der Ablauflogik gegeben. Zudem wird erläutert, wie man die Benutzeroberfläche anpasst und optimiert.

Hochgeladen von

Roland Kirsch
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als DOCX, PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
6 Ansichten37 Seiten

Dialog

Das Dokument behandelt die Grundlagen der SAP ABAP Dialogprogrammierung und beschreibt Schritt für Schritt, wie man einen Programmrahmen, Dynpros, Ausgänge, Transaktionscodes und GUI-Elemente erstellt. Es werden auch spezifische Anweisungen zur Datenbeschaffung, Fehlerbehandlung und zur Verwendung von Tokens in der Ablauflogik gegeben. Zudem wird erläutert, wie man die Benutzeroberfläche anpasst und optimiert.

Hochgeladen von

Roland Kirsch
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als DOCX, PDF, TXT herunterladen oder online auf Scribd lesen

SAP ABAP Dialogprogrammierung

ABAP-Grundlagen Reflexa Dialog


Inhalt

1 Legen Sie einen Programmrahmen über den Object Navigator an....................4

2 Legen Sie ein Dynpro über den integrierten Screen Painter an...........................5
2.1 Object Navigator.............................................................................................6
2.2 Definieren Sie einen Rahmen.........................................................................7
2.3 Definieren Sie die Eingabeanwahl..................................................................7

3 Definieren Sie einen Ausgang..................................................................................8


3.1 Legen Sie einen Status an...............................................................................8

4 Legen Sie den Ausstieg fest......................................................................................9

5 Legen Sie einen Transaktionscode für ihren Modulpool an...............................10

6 Integrieren Sie den Statusaufruf + und eine Titelleiste......................................12


6.1 Passen Sie die PBO-Phase an.......................................................................12

7 Definieren Sie die Datenbeschaffung in der PAI-Phase ihres Dynpros.............13

8 Fehlermeldung im Fehlerfall produzieren...........................................................15

9 Token in der Ablauflogik.......................................................................................16


9.1 Arbeiten mit dem Field-Token.....................................................................16
9.2 Arbeiten mit dem "on input" Zusatz.............................................................16
9.3 Arbeiten mit dem "on chain-input" Zusatz...................................................17
9.4 Arbeiten mit dem "on request" Zusatz (on chain-request)...........................17

10 Definieren Sie den Ausgabebildschirm.................................................................17


10.1 Dynpro 200 anlegen und einen Rahmen definieren.....................................17

11 Steuern Sie ein optimales Beenden /Abbrechen / Zurück aus............................19

12 Die Felder im 200er Bild sind gemäß Modi zu behandeln.................................21


12.1 Steuern Sie die Modi Anzeigen / Ändern optimal........................................21
12.2 Das Feld Personalnummer soll generell protected bleiben...........................23

13 Legen Sie ein Sperrobjekt zur aktualisierenden Tabelle an...............................24

14 Bauen Sie die Sperrbausteine optimal in ihren Ablauf ein.................................27


14.1 Sperrbausteine nur Bedarf frequentieren......................................................27

15 Lagern Sie ihren zu aktualisierenden Datensatz in einer Work-Area zwischen und prüfen Sie die
Update-Relevanz.....................................................................................................29
15.1 Work-Area integrieren..................................................................................29
15.2 Übergabe der Werte konditionieren..............................................................29

16 User befragen..........................................................................................................29

ABAP-Grundlagen Reflexa Dialog


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 3
17 Verbuchungskonzept..............................................................................................30
17.1 Einleiten der Verbuchung.............................................................................30
17.2 Verbucherbaustein definieren.......................................................................31
17.3 Verbaucherbaustein einbauen.......................................................................32

18 Laufzeitfehler über ST22 analysieren..................................................................33


18.1 Fehlerstelle erkennen und korrigieren..........................................................33

19 Felder aus/einblenden............................................................................................33
19.1 Blenden Sie Felder die das Gehalt betreffen individuell aus / ein................33

20 Ausgabe der Tabelle als ALV................................................................................35


20.1 Referenzen aufbauen....................................................................................35

1 Legen Sie einen Programmrahmen über den Object Navigator an

SAP Menü

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 4
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE80 - Object Navigator

Object Navigator

>Repository Browser<
>lokale Objekte<

>über die rechte Maustaste<

Enter

Enter

>sichern<
>lokales Objekt<
>Objektliste anzeigen <

>aktivieren <

enter

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 5

ihr Programm über die rechte Maustaste aktivieren

Favoriten
+ Hinzufügen

Favoriten
+ Programme
+ + ihr relevantes

>Erkennen Sie den angelegten Rahmen<

2 Legen Sie ein Dynpro über den integrierten Screen Painter an

==========================================================
Prosa

Dynpro ist die Abkurzung fur Dynamisches Programm. Ein Dynpro ist ein Objekt des Repositorys
und liegt immer als Komponente eines ABAP-Programms vor. Es besteht aus einem Bildschirmbild
mit seinen Bildschirmelementen und der Dynpro-Ablauflogik. Den Bildschirmelementen
sind Dynpro-Felder zugeordnet. Die Ablauflogik enthalt Verarbeitungsblocke fur
Ereignisse, die vor dem Senden eines Bildschirmbildes und nach Benutzeraktionen auf dem
angezeigten Bildschirmbild ausgelost werden. Dynpros sind damit neben den weborientierten
Neuerungen von SAP NetWeaver die Grundlage fur Benutzerdialoge auf einem AS ABAP.

Das SAP GUI prasentiert auf dem Bildschirm das Bildschirmbild eines Dynpros in einem GUIFenster.
Das Bildschirmbild kann Bildschirmelemente zum Anzeigen von Inhalten oder zur Entgegennahme von Benutzeraktionen enthalten. Das Bildschirmbild
und seine Bildschirmelemente werden mit dem Layout Editor des Werkzeugs Screen Painter bearbeitet. Jedes Bildschirmelement hat Eigenschaften,
die im Screen Painter statisch vordefiniert und teilweise dynamisch im ABAP-Programm modifiziert werden konnen.

Als weiteren Teil der grafischen Benutzeroberflache enthalt jedes Standardfenster eine Menuleiste,
eine Systemfunktionsleiste und eine Anwendungsfunktionsleiste. GUI-Fenster, die als
modales Dialogfenster angezeigt werden, enthalten nur eine Anwendungsfunktionsleiste. Die
Leisten sind eigenstandige Komponenten des ABAP-Programms und werden in einem GUIStatus
zusammengefasst und uber Setzen des GUI-Status einem Dynpro zugeordnet. Neben
den grafischen Elementen ist die Funktionstastenbelegung Teil der Benutzeroberflache, die
ebenfalls als eigenstandige Komponente des ABAP-Programms definiert und ebenfalls Teil
eines GUI-Status ist. Die Komponenten des GUI-Status und der GUI-Status selbst werden mit
dem Werkzeug Menu Painter bearbeitet, wobei im Wesentlichen die von der Benutzeroberflache
prasentierten Bedienelemente mit Funktionscodes verknupft werden, die im ABAPProgramm
auswertbar sind. Die Bezeichnung des aktuellen GUI-Status kann dem Systemfeld
sy-pfkey entnommen werden.
Vervollstandigt wird ein GUI-Fenster durch die Titel- und Statusleiste. Die Titelleiste, die
ebenfalls mit dem Menu Painter bearbeitet wird, enthalt die Uberschrift des GUI-Fensters. Die
Statusleiste zeigt Informationen an, die unter anderem wahrend der Ausfuhrung eines ABAPProgramms
durch die MESSAGE-Anweisung gesendet werden konnen. Auserdem enthalt sie Systeminformationen, die uber ein Icon auf der rechten Seite der
Leiste ein- und ausgeblendet werden konnen.
Das Bildschirmbild eines Dynpros wird im Layout Editor des Screen Painters erstellt. Das Bildschirmbild des Programms DEMO_DYNPRO enthalt alle
moglichen Bildschirmelemente. Oberhalb des Bildschirmbildes sind Menuleiste, Systemfunktionsleiste (Symbolleiste), Titelleiste und
Anwendungsfunktionsleiste (Buttonleiste), unterhalb ist die Statusleiste angeordnet.
Nach der PBO-Verarbeitung (Process Before Output) und vor dem Senden des Bildschirmbildes erfolgt ein Datentransport globaler Datenobjekte des
zugehorigen ABAP-Programms zu gleichnamigen Dynpro-Feldern. Nach einer Benutzeraktion auf dem Bildschirmbild und vor oder wahrend der PAI-
Verarbeitung (Process After Input) erfolgt der Datentransport in umgekehrter
Reihenfolge. Zum Zeitpunkt PAI werden zunachst die Inhalte aller Dynpro-Felder, die keinem Table Control oder Steploop angehoren und in keiner
FIELD-Anweisung aufgefuhrt werden in die gleichnamigen Felder des ABAP-Programms

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 6
transportiert
=========================================================

SAP Menü
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE80 - Object Navigator

2.1 Object Navigator

>Repository Browser<
>ihr Programm<

>über die rechte Maustaste<

enter

>layout<

2.2 Definieren Sie einen Rahmen

>Rahmenikone anklicken <


>über den Bildschirm ziehen<
Definieren Sie einen mnemonischen Text

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 7

2.3 Definieren Sie die Eingabeanwahl

Springen
+ Sekundaerfenster
+ + Dict/Programmfelder

Tabelle > z.B.: ZTB_PSTAMM_XX (ihre Tabelle)

>Schlüsselfeld ZFE_PERSNR markieren<

enter

>Popup schliessen<

Erkennen Sie die Feldbezeichnung des Eingabefeldes

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 8
3 Definieren Sie einen Ausgang

3.1 Legen Sie einen Status an

>Benennen Sie Diesen " basic_100_200"

>Enter + Bennen Sie die Symbolleiste

>Defnieren Sie den Funktionstyp durch Doppelklick auf das jeweilige Symbol und Eintrag des Typs 'E'

>Aktivieren im Gesamtkontext

4 Legen Sie den Ausstieg fest

SAP Menü
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE80 - Object Navigator

Object Navigator
>Repository Browser<

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 9
>ihr Dynpro<

Karte ‚Ablauflogik’ ziehen

geben Sie in der PAI-Phase ein

===================================================================

Prosa

Die Anweisung MODULE der Dynpro-Ablauflogik ruft das Dialogmodul mod des ABAP-Programms auf. MODULE kann entweder als Schlusselwort oder
als Zusatz der Anweisung FIELD verwendet werden. Bei der Verwendung als Zusatz ist der Aufruf des Dialogmoduls von Bedingungen an Dynpro-
Felder abhangig.
====================================================================

" module navigation at exit-command."

Klicken Sie auf "Navigation" doppelt

>Enter x 4

Quellcode definieren (rote Zeilen)


--------------

module navigation input.


set screen 0.
leave screen.
endmodule. --------------

>Pretty Printer<^

>aktivieren<

komplettes Programm aktivieren

5 Legen Sie einen Transaktionscode für ihren Modulpool an

SAP Menü
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE80 - Object Navigator

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 10
Object Navigator

>Repository Browser<
>ihr Programm<

> <

> <

> <

> <

> zurück bis Easy Access<

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 11

> <

> <

> <

> < doppeltklicken

im Moment noch Ausstieg mit /n in der Commandline

6 Integrieren Sie den Statusaufruf + und eine Titelleiste

6.1 Passen Sie die PBO-Phase an

Klicken Sie auf "basic..." doppelt

>Enter x 4

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 12

=========================================
module basic_100_200 output.
set pf-status 'BASIC_100_200'.
set titlebar '100'.
endmodule.
=========================================
>Pretty Printer<

Klicken Sie auf "100" doppelt

>Enter

>Enter

>aktivieren<

komplettes Programm aktivieren + testen (Breakpoint im neuen Modul auf Zeile 10)

7 Definieren Sie die Datenbeschaffung in der PAI-Phase ihres Dynpros

SAP Menü
+ Werkzeuge
+ + ABAP Workbench
+ + + Übersicht
+ + + + SE80 - Object Navigator

Object Navigator
>Repository Browser<
>ihr Dynpro<
>ändern<

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 13

> < eintragen (individueller Name)

auf > < doppeltklicken

> <
> x 2<

> <

>cursor auf Leerzeile positionieren<

> <

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 14

> <

> <

> <

>im Top include die Tabelle bekanntmachen<

> <
> <

>Transaktion mit SQLTrace debuggen<

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 15

8 Fehlermeldung im Fehlerfall produzieren

>Anpassen wie oben<

9 Token in der Ablauflogik

9.1 Arbeiten mit dem Field-Token

=======================================================
Prosa

Die Anweisung FIELD der Dynpro-Ablauflogik steuert wahrend des Ereignisses PAI den Datentransport vom Dynpro an das ABAP-Programm. Daruber
hinaus kann sie mit der Anweisung MODULE verknupft werden, um Dialogmodule bedingt aufzurufen, um eine Uberprufung der Eingabe zu
ermoglichen. Wenn die Anweisung FIELD im Ereignisblock zu PAI mit einer MODULE-Anweisung verknupft ist, steuert sie die Behandlung von
Warnungen und Fehlermeldungen, die im aufgerufenen Modul mit der Anweisung MESSAGE gesendet werden.

=====================================================

>Testen<

9.2 Arbeiten mit dem "on input" Zusatz

==============================================================================
Prosa
Diese Bedingung bewirkt, dass das Modul mod nur dann aufgerufen wird, wenn dynp_field bei einem eingabebereiten Dynpro-Feld nicht leer ist. Alle
Dynpro-Felder mit Ausnahme solcher vom Typ STRING oder SSTRING gelten als leer, wenn sie in der Bildschirmdarstellung ausschlieslich
Leerzeichen enthalten. Dynpro-Felder vom Typ STRING und SSTRING gelten als leer, wenn sie keine Zeichen enthalten. Falls das Eingabefeld das
spezielle Attribut *-Eingabe besitzt und der Benutzer einen Stern als erstes Zeichen in das Eingabefeld des Dynpro-Feldes dynp_field eingegeben hat,
ist die Bedingung ON INPUT jedoch nicht erfullt. In der Bildschirmanzeige ist ein leeres Feld vom Typ STRING oder SSTRING dadurch erkennbar, dass
der Cursor nur auf den Beginn des Feldes gesetzt werden kann.
==============================================================================

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 16

Gehen Sie mit dem Zusatz "on input" um und testen Sie den Ablauf (Debugging)

9.3 Arbeiten mit dem "on chain-input" Zusatz

==========================================================================
Prosa

Die Anweisungen CHAIN und ENDCHAIN der Dynpro-Ablauflogik definieren Verarbeitungsketten.


Zwischen CHAIN und ENDCHAIN konnen die Anweisungen FIELD und MODULE aufgefuhrt
werden. Alle Anweisungen zwischen CHAIN und ENDCHAIN bilden eine Verarbeitungskette.
Verarbeitungsketten sind nicht schachtelbar. Die Anweisung CHAIN kann in den Ereignisblocken
zu PAI und PBO angegeben werden, hat im Ereignisblock zu PBO aber keine Wirkung

========================================================================

9.4 Arbeiten mit dem "on request" Zusatz (on chain-request)

=====================================================
Prosa

Diese Bedingung bewirkt, dass das Modul mod nur dann aufgerufen wird, wenn der Wert des Dynpro-Feldes dynp_field seit dem Ereignis PBO durch
eine Eingabe verandert wurde. Als Eingabe gilt auch, wenn eine bereits vorhandene Eingabe mit dem gleichen Wert uberschrieben oder explizit der
Initialwert des Feldes eingegeben wird.
======================================================
Testen Sie den Unterschied

10 Definieren Sie den Ausgabebildschirm

10.1 Dynpro 200 anlegen und einen Rahmen definieren

> <

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 17

> <

> <

> <

>alle markieren außer des Mandanten<

> <

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 18

>Anpassen wie oben<


>aktivieren<
>zurück<

im 100er Dynpro (Eigenschaften)

>Folgebild anpassen<
>alles aktivieren<
>testen<

11 Steuern Sie ein optimales Beenden /Abbrechen / Zurück aus

==============================================================

Prosa

In Ihren ABAP-Programmen sollten Sie statt mit SY-UCOMM mit dem Feld OK_CODE arbeiten.

Dafür gibt es zwei Gründe:

Erstens hat das ABAP-Programm die volle Kontrolle über die darin deklarierten Felder, und zweitens sollten Sie niemals den Wert eines ABAP-
Systemfelds ändern.

Globale Datendeklarationen:

DATEN: OK_CODE LIKE SY-UCOMM,


SAVE_OK WIE SY-UCOMM.

Statt eines Menüpunktes oder eines Druckknopfes kann man einen Funktionscode auch in das Kommando-Feld eingeben, was zum Übertragen des
FCodes in die OK-Code-Variable führt.
=============================================================================

- Definition des Ok-Code Feldes in beiden Elementlisten


- Deklarieren Sie die Funktionscodeabfrage

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 19

- Definieren Sie das Steuerungsfeld in beiden Elementlisten

- Definieren Sie die Sicherung des Funktionscodes im Modul USER_COMMAND_0100/ USER_COMMAND_0200

Im ersten PAI-Modul sollten Sie der Hilfsvariable den Inhalt des OK_FIELD zuweisen und anschließend das Feld OK_CODE löschen und mit der
Hilfsvariable weiterarbeiten.

- Betten Sie den schon verwendeten Status im Bild 200 ein

- Betten Sie das Navigationsmodul ein

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 20

- Funktion Zurueck = Vorangegangenes Bild


- Funktion Beenden + Abbrechen = Ende der Applikation

=============================================== Code =========================


module navigation input.
set screen 0.
if sy-dynnr eq 200.
if sy-ucomm = 'ZURUECK'.
set screen 100.
endif.
endif.
leave screen.
endmodule.
=============================================================================

Testen Sie den kompletten Ablauf

12 Die Felder im 200er Bild sind gemäß Modi zu behandeln

12.1 Steuern Sie die Modi Anzeigen / Ändern optimal

-Anzeigemodi = Felder protected (Default)


- Änderungsmodi = Felder eingebbar

- Passen Sie den Status an


- Machen Sie das Keyfeld zum Mussfeld

Normen einmischen und anpassen

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 21

Drucktasten beleben

F1/F2 belegen (Umsch) + aktivieren + testen

Module BASIC_100_200 anpassen

===================================================
module basic_100_200 output.
data(input) = ''.
case save_ok.
when 'UPDATE'.
set pf-status 'BASIC_100_200' excluding 'UPDATE'.
input = 1.
when 'DISPLAY' or
' '.
set pf-status 'BASIC_100_200' excluding 'DISPLAY'.
endcase.
case sy-dynnr.
when 100.
set titlebar '100'.
when 200.
set titlebar '200'.
endcase.
endmodule.

==================================================

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 22

Testen Sie die Steuerung

Weiter geht's mit dem Modul feldsteuerung.

> < eingeben


auf ;Feldsteuerung’ doppeltklicken

> <

> x 2<

> <

===================================================

module feldsteuerung output.


loop at screen.
screen-input = input.
modify screen.
endloop.
endmodule.

===================================================

><

> <

12.2 Das Feld Personalnummer soll generell protected bleiben

Beleben Sie die Feldgruppensteuerung in der Feldliste

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 23

Passen Sie das Modul Feldsteuerung an


===========================================
module feldsteuerung output.
loop at screen.
screen-input = input.
if screen-group1 eq 'KEY'.
screen-input = 0.
endif.
modify screen.
endloop.
endmodule.
===========================================
>aktivieren + testen

13 Legen Sie ein Sperrobjekt zur aktualisierenden Tabelle an

> <

> <

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 24

>Primärtabelle angeben<
>Schreibsperre setzen<
Schreibsperre

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.

> <

> <

> <

><

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 25

> < einmal anklicken

> <

> <

> <

><

><

> <

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 26

>Eintrag sichten<
in den [Link] wechseln

> x 3<

in den [Link] wechseln

> <

14 Bauen Sie die Sperrbausteine optimal in ihren Ablauf ein

14.1 Sperrbausteine nur Bedarf frequentieren

>hier Zeile 15 + 20 anpassen

Defnieren Sie zwei Unterprogramme

Klicken Sie auf "SPERREN" doppelt

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 27

Betten Sie in der Zeile 13 ihren Sperrbaustein ein

> <

> <

> < doppelt anklicken

> <

=========================== Code ============================================

form sperren changing input.


call function 'ENQUEUE_EZTB_PSTAMM_XX'
exporting
* MODE_ZTB_PSTAMM_XX = 'E'
* MANDT = SY-MANDT
zfepersnr = ztb_pstamm_xx-zfepersnr
* X_ZFEPERSNR =''
* _SCOPE = '2'
* _WAIT =''
* _COLLECT =''
exceptions
foreign_lock = 1
system_failure = 2
others = 3.
if sy-subrc <> 0.
message 'Objekt schon gesperrt' type 'W' .
input = 0.
endif.
endform.

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 28
==========================================================================

Klicken Sie auf "ENTSPERREN" doppelt + integrieren Sie den Entsperr-Baustein

>Aktivieren und testen

15 Lagern Sie ihren zu aktualisierenden Datensatz in einer Work-Area zwischen und prüfen Sie die Update-Relevanz

15.1 Work-Area integrieren

Anpassung 1 in Zeile 12

15.2 Übergabe der Werte konditionieren

Anpassung im 200er-PAI

========================================================================================
process before output.
module basic_100_200.
module feldsteuerung.
*
process after input.
chain.
field: ztb_pstamm_xx-zfenachname,
ztb_pstamm_xx-zfevorname,
ztb_pstamm_xx-zfegeburtstag,
ztb_pstamm_xx-zfestunden,
ztb_pstamm_xx-zfeunit,
ztb_pstamm_xx-zfegehalt,
ztb_pstamm_xx-zfewaehrung.
module update_relevanz on chain-request.
endchain.
module user_command_0200.
module navigation at exit-command.
===============================================================================

16 User befragen

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 29
Anpassung im Module "UPDATE_RELEVANZ" + Unterprogramm "VERBUCHUNG" nur anlegen + Breakpoint setzen

==============================================================
if wa_ztb_pstamm_xx ne ztb_pstamm_xx.
perform user_abfrage changing answer.
case answer.
when '1'. " Update
perform verbuchung on commit.
when '2'. " Kein Update
ztb_pstamm_xx = wa_ztb_pstamm_xx.
when 'A'. " Abbruch
endcase.
endif.
================================================================================

Anpassung im Top-Include

Anpassung in der User_Abfrage

==================================================================================
form user_abfrage changing answer.
data answer.
call function 'POPUP_TO_CONFIRM'
exporting
titlebar = 'Personalstammdatenänderung'(004)
text_question = 'Daten wurden verändert ! Sichern ?'(001)
text_button_1 = 'Ja'(002)
text_button_2 = 'Nein'(003)
display_cancel_button = 'X'
importing
answer = answer
exceptions
text_not_found =1
others = 2.
if sy-subrc <> 0.
* Implement suitable error handling here
endif.
================================================================================

Anpassung in der VERBUCHUNG

================================================================================

form verbuchung .
break pwd.
endform.

================================================================================

Testen und fehlenden Aufruf "VERBUCHUNG" feststellen

17 Verbuchungskonzept

17.1 Einleiten der Verbuchung

PF-Status anpassen ("SICHERN")

Modul "USER_COMMAND_0200" anpassen

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 30

Aktivieren + Aufruf der Form "VERBUCHUNG" testen

17.2 Verbucherbaustein definieren

Funktionsgruppe anlegen

Funktionsgruppe benennen + aktivieren

Funktionsbaustein anlegen

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 31

Baustein anlegen + aktivieren

Schnittstelle benennen

===========================================================
function zfgztb_pstamm_xx_vb.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(IM_ZTB_PSTAMM_XX) TYPE ZTB_PSTAMM_XX
*" EXCEPTIONS
*" TEST
*"----------------------------------------------------------------------
modify ztb_pstamm_xx from im_ztb_pstamm_xx.
if im_ztb_pstamm_xx-zfenachname cs 'Ki'.
raise test.
endif.
endfunction.
============================================================

Eigenschaften einstellen

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 32

17.3 Verbaucherbaustein einbauen

=======================================================
form verbuchung .

break pwd.

call function 'ZFGZTB_PSTAMM_XX_VB'


exporting
im_ztb_pstamm_xx = ztb_pstamm_xx
* EXCEPTIONS
* TEST =1
* OTHERS =2
.
if sy-subrc <> 0.
* Implement suitable error handling here
endif.
endform.

=======================================================================

Aktivieren und test mit + ohne Ausnahme

18 Laufzeitfehler über ST22 analysieren

18.1 Fehlerstelle erkennen und korrigieren

=============================================================

form verbuchung .

break pwd.

call function 'ZFGZTB_PSTAMM_XX_VB'


exporting
im_ztb_pstamm_xx = ztb_pstamm_xx
exceptions
test =1
others = 2.
if sy-subrc <> 0.
* Implement suitable error handling here
endif.
endform.
=========================================================================================0

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 33
Aktivieren und testen

19 Felder aus/einblenden

19.1 Blenden Sie Felder die das Gehalt betreffen individuell aus / ein

Definieren Sie eine Radiobutton-Group mit 2 Radiobutton

Elementliste

Layout

Modifikationsgruppe 'MIT' im 200er Bild definieren

Aktivieren und testen

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 34

Top-Include erweitern

==================================================================
module feldsteuerung output.
loop at screen.
screen-input = input.
if screen-group1 eq 'KEY'.
screen-input = 0.
endif.
screen-invisible = 0.
if screen-group1 eq 'MIT'.
if ohne = 'X'.
screen-invisible = 1.
endif.
endif.
modify screen.
endloop.

endmodule.
==============================================================

Feldsteuerung erweitern + Testen

20 Ausgabe der Tabelle als ALV

20.1 Referenzen aufbauen

=========================================================================
data: lo_alv_display type ref to if_salv_gui_table_ida.
data: lo_container_d0300 type ref to cl_gui_custom_container.
data: fcode type table of sy-ucomm.
=========================================================================

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 35

Layout

Custom Control anlegen

Ablauflogik

Module basic_100_200

im 300er Bild

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 36

im 300er Bild

====================================================================================
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form pbo .
if lo_container_d0300 is not bound.
lo_container_d0300 = new #( 'D0300' ).

" Instantiate and display ALV


lo_alv_display = cl_salv_gui_table_ida=>create( iv_table_name = 'YTB_PSTAMM_XX'
io_gui_container = lo_container_d0300
).
"Allow Text Search in general
lo_alv_display->standard_functions( )->set_text_search_active( abap_true ).
"Release Text Search on textual columns
lo_alv_display->field_catalog( )->enable_text_search( 'ZFEPERSNR' ).
lo_alv_display->field_catalog( )->enable_text_search( 'ZFENACHNAME' ).
lo_alv_display->field_catalog( )->enable_text_search( 'ZFEVORNAME' ).
endif.
endform.
===================================================================================

========================================================================================

Dialogprogrammierung DataGroup Uebungen


SAP ABAP Grundlagen zu Entwicklungsgrundkonzepten - Dialogprogrammierung - 37
constants:
con_ok type sy-ucomm value 'OK',
con_exit type sy-ucomm value 'BEENDEN',
con_canc type sy-ucomm value 'ABBRECHEN',
con_back type sy-ucomm value 'ZURUECK'.

data: l_okcode like sy-ucomm.

save_ok = ok_code.
clear ok_code.

case save_ok.
when con_exit or con_back or con_canc.
* lo_alv_display->free( ).
set screen 100.
leave screen.
endcase.
======================================================================================

Aktivieren + testen

Dialogprogrammierung DataGroup Uebungen

Das könnte Ihnen auch gefallen