ABAP Programmierhinweise
Eigene Tipps aus leid- oder lustvoller Erfahrung. Gibt es eigentlich Lust beim Programmieren?? Eindeutig ja. Wie auch folgender Hinweis auf die Frage von Oliver Sauermann in der
SAP-Newsgroup vom 11.08.2002 zeigt:
> ich nutze eine Auflösung von 1280 x 1024 und möchte diese auch voll
> im ABAP-Editor ausnutzen. Die vorhandene nutzbare Editierfläche
> für den Source-Code ist in dieser Auflösung nur halb so breit wie
> die gesamte Bildschirmfläche
Der Herrgott hat es wundersamer Weise so eingerichtet, daß (längere)
Kommentare in Spalte 1 und mit einem Stern beginnen müssen, nämlich weil
ausführliche Kommentare leuchtende STERNE in jedem guten Programmcode
sind. Daraus folgt, daß es gar nicht sinnvoll wäre, Kommentare neben
dem sonstigen Quellcode unterzubringen, weil an den Stellen 2 bis 80
dann eine unmotivierte, weiße Fläche entstünde.
Stattdessen könntest Du am rechten Rand Deines SAPgui das
Visualisierungsfenster des Windows Media Player oder des Realplayer
aufziehen. Die psychodelischen Bilder dürften Deinen Programmstil
positiv bereichern.
Alternativ dazu kannst Du in den Optionen zum SAPGui auch einen
Vergrößerungsfaktor einstellen. Wenn Du diesen Wert passend hochsetzt,
kannst Du auch unter 1280x1024 Pixeln dafür sorgen, daß der Quellcode
die gesamte Breite des Bildschirms einnimmt.
-
DER Link schlechthin für (englischsprachige) Informationen über ABAP ist natürlich das SDN (SAP Developer Network)
-
weil ich diesen Link immer wieder suche: im OSS bzw. Service Marketplace findet man die Registrierung von Modifikationen unter service.sap.com/sscr, weitere Stichworte zum Link: Modifikationsassistent, Erweiterungen, Zugangsschlüssel, Entwicklerschlüssel; SSCR heiß übrigens: SAP Software Change Registration
-
SE83 - Reuse Library - Programmierbeispiele für z.B. alle SAP-Controls aber auch andere grundlegende Themen.
-
Check und Exit in Userexits verwenden: ...mit einer DO-Schleife eine Klammer um dieses Coding legen (dann können in diesem Include auch die Befehle CHECK und EXIT genutzt werden...): DO 1 TIMES. <coding> ENDDO.
-
im Standard darf man nur 6 Modi (Modus) gleichzeitig öffnen. Das ist besonders hinderlich, wenn man sich auch im Entwicklungssystem nur einmal anmelden darf. Seit ABAP 7.0 kann der Systemparameter (der Basisadmin weiß wo) rdisp/max_alt_modes auf bis zu 16 hoch gesetzt werden (default = 6)
-
einige selbst geschriebene Code-Schnipsel finden sich in der Rubrik ABAP Syntax. SAP bietet mit der Transaktion ABAPDOCU einige Hilfsprogramme. Oder auch in der SE38 bzw. SE80 über <Umfeld> - <Beispiele> - <Performance-Beispiele> navigieren.
-
bei 'Schwierigkeiten' immer die SAP Newsgroup befragen: zur Not das Coding mitposten [Ausschnitt]
-
Die SE80-Transaktion ist bei vielen älteren Programmierern völlig unbekannt. Zu Unrecht, denn von hier aus kann man wirklich ALLES erreichen. Zum Kennenlernen ein kleines SE80-Tutorial.
-
Hilfe-Dateien lokal ablegen: die *.chm-Dateien (Kompilierte HTML-Hilfedatei, CD im SAP Knowledgeshop) lokal auf der Festplatte ablegen beschert einem eine wesentlich höhere Zugriffsgeschwindigkeit und lässt auch ein komfortables Suchen (Registerblatt Suchen) nach Stichworten oder Namensbestandteilen zu
-
Eine Verknüpfung auf die Datei 00000001.CHM öffnet die SAP-Komplett-Hilfe
-
Eine Verknüpfung auf die Datei 00000980.CHM springt direkt in das Kapitel "ABAP Programmierung (BC-ABA)", 00005071.CHM = Bedienung des ALV;
-
ein Maus-Rechts-Klick auf das Location-Icon im rechten Fenster (neben der Kapitelüberschrift) und der Auswahl "Eigenschaften" zeigt den Namen der gerade geöffneten *.chm-Datei an oder gibt einem die URL des angewählten Themas
-
In einigen Entwicklungssystemen sind die Datenbanken des "Flugmodelles" nicht gefüllt. Dafür gibt es den Report: 'S_FLIGHT_MODEL_DATA_GENERATOR' (vom Buch ABAP-Objekts) oder auch unter http://www.abaps.de/ 'Tools für Entwickler'; dort gibt es den Report ZRSBCDAT2_46C - Der Testdatengenerator (ab SAP-Release 4.6c). Ein Programm, welches Testdaten im SAP Flugdatenmodell (SCARR, SPFLI,SFLIGHT, SBOOK etc.) aufbaut. Oder ZRSBCDAT2_46 (bis SAP-Release 4.6b). Unter 4.6C ist es der Report 'SAPBC_TOOLS_GENERATOR_NEW', unter 4.7 ist es der Report 'SAPBC_DATA_GENERATOR'.
-
Übersicht über alle ABAP-Anweisungen
-
Bedeutung der ABAP-Systemfelder
-
ABAP-Glossar
-
eingebaute ABAP-Typen
-
Checkboxen können mehr wie zwei Zustände haben:
'0' -> Die Checkbox erscheint als leeres Feld, ist aber nicht eingabebereit
'1' -> Die Checkbox ist angehakt, aber nicht eingabebereit
'-' -> Es wird gar keine Checkbox angezeigt, leeres Feld dort auf der Liste
' ' -> leere eingabebereite Checkbox
'X' -> gefüllte eingabebereite Checkbox
-
Ein oft benötigtes Detail: Dateiauswahl zum Upload über ein Popup [aus einen Newsgroupbeitrag von Stefan: Hi Heinz,
Willst du den FuBau wissen, der die Auswahl anzeigt und eine Datei zurückliefert? Dann nimm WS_FILENAME_GET mit den Parametern
DEFPATH = Anfangspfad
MASK = ',*.*,*.*.'
MODE = 'S'
Wenn du ein ganzes Directory in das SAP-System laden willst habe ich folgende Methode gefunden. Schreibe zunächst eine Batchdatei (z.B. abapdir.bat) als Batchdatei in das Windows-Verzeichnis (WS-Download). Starte dort die Batchdatei, die das Verzeichnis in eine Tabelle schreibt (WS_EXECUTE), lese die erzeugte Datei (z.B. abapdir.txt) wieder ins SAP-System zurück (WS_UPLOAD) und versuche nachher die beiden Dateien wieder zu löschen, wenn du sie nicht mehr brauchst. Ich benutze dazu eine Batchdatei, die aus einer Zeile besteht, und die lautet:
dir *.* /b > dirtext.txt
-
Umstieg ABAP Workbench 4.6C -> 6.10
-
Nutzen der ABAP-Beispielbibliothek: Nach der Drücken der F1-Taste (für die Schlüsselwort-Hilfe auf einem ABAP-Befehl, z.B. SELECT) in dem sich dann öffnenden Hilfefenster auf den Button klicken. Das öffnet ein Verzeichnis mit Beispielprogrammen zu fast allen Themen, die von dort aus direkt ausführbar und auch debugbar sind. Die Programme sind zwar fast nicht kommentiert, dafür aber sehr übersichtlich gehalten. Die Beispiele eignen sich natürlich auch als Coding-Bibliothek.
-
Um mal eben auf die Schnelle den Tabelleninhalt der Tabelle TSTC anzusehen kann man am auch direkt eintippen: /n*se16 DATABROWSE-TABLENAME=TSTC . Diese Befehle finden sich in der Tabelle TSTCP.
-
Ab der Version 4.7 Enterprise heißen Entwicklungsklassen >> Pakete.
-
Der ambitionierte Programmierer wird sicherlich den SAP Designguide beherzigen.
-
ALV (Abap-List-Viewer). Normale Reports sollten eigentlich nicht mehr 'ohne' programmiert werden. Diverse Programmbeispiele finden sich unter 'BALV*'
-
PDF-Ausgabe: seit 4.6D gibt es einen SAP-Gerätetyp "PDF1". Der kann selber PDF schreiben. Den Gerätetypen kann man laut OSS auch für die Releases 4.6C, 4.6B, 4.5B downloaden (Hinweis 317851).
-
um den Cursor direkt in das Kommandofeld zu setzen: Strg/ absenden
-
Testdaten: immer wieder ein Problem die 'richtigen' Feldinhalte debuggen zu können. Man kann vorhandene Daten in der Transaktion SE16N durch Eingabe von '&SAP_EDIT' editieren / pflegen / manipulieren / ändern / updaten / löschen (geht bei SE11 so NICHT). Einen weiteren Hinweis (wenn man wenigstens Debug-Berechtigung hat) liefert der Tricktresor für die SE16.
-
Die Sichten des Materialstamms [MM01 etc.] haben folgende Kennbuchstaben im Pflegestatus:
-
A Arbeitsvorbereitung
-
B Buchhaltung
-
C Klassifizierung
-
D Disposition
-
E Einkauf
-
F Fertigungshilfsmittel
-
G Kalkulation
-
K Grunddaten
-
L Lagerung
-
P Prognose
-
Q Qualitätsmanagement
-
S Lagerverwaltung
-
V Vertrieb
-
X Werksbestände
-
Z Lagerortbestände
-
Direkter Link zu einer Sapnote (also einem Hinweis, SAPnotes) kann z.B. so aussehen: Hinweis 1092631 [also service.sap.com/sap/support/notes/1092631]. Der Link ruft den Hinweis auf. Nach der OSS-Anmeldung wird direkt auf die entsprechende Seite weitergeleitet. Für Dokumentationen ist die Angabe eines Links nur in dieser Form sinnvoll weil die weitergeleitete Adresse (z.B. https://websmp130.sap-ag.de/... ) jeweils eine andere sein kann.
-
Erweiterung des Materialstamms, User-Exit EXIT_SAPLMGMU_001: dafür gibt es bei saptechnical.com ein ausführliches Tutorial inklusive Customizing.
-
ein ausgegebener ALV soll nach Excel exportiert werden (oder als Excel dargestellt) scheitert aber an zu großen Datenmengen. Die Anwendung 'hängt' oder dumpt sogar. Die SAP-Note 635011 (SAP-Hinweis) gibt Auskunft das das anscheinend 'normal' ist. Manchmal hilft nur noch der Export als HTML-Datei. Diese kann dann problemlos mit Excel eingelesen werden.
-
Der gemeine User will immer 'alles nach Excel' haben. Mausrechtsklick in das ALSV und ''Tabellenkalkulatio..' auswählen. Der Auswahldialog 'Formate' verschwindet wenn man 'Immer das gewählte Format anwenden' anklickt. Dann ist die Not groß, falls das verkehrte Format ausgewählt wurde. Lösung: Um während des Exports das Dialogfenster Tabellenkalkulation auswählen wieder angeboten zu bekommen, wählen Sie im Kontextmenü der Liste Tabellenkalkulation.
Es gibt einige gute Seiten im Netz, die sich mit verschiedenen Aspekten der Programmierung beschäftigen. Hier in loser Folge einige Links (die neuesten immer zuoberst):
-
Frank Müllers Site zur Softwareentwicklung allgemein
-
ABAP/4-Tutorial mit vielen Beispielen und guter Suchfunktion
-
Designguide für Oberflächen etc, inkl. aller Icons, Shortcuts. Listen auch jeweils in Deutsch. Sehr empfehlenswert. Ebenso Vergleichsliste für Deutsche und englische Funktionsbezeichnung etc. Auch als Nachschlagewerk für Icons zu ge-(miss)brauchen.
-
ABAP-Guide
-
ABAP related hints or tips
-
a Windows help file with collected ABAP tips and tricks
-
Erklärung und Listung aller Systemfelder
-
Im SAP®-Standard werden TIPS und TRICKS über die Transaktion SE30 aufgerufen. Der Button TIPS & TRICKS verzweigt dann auf eine Übersicht von Befehlsalternativen. Diese Alternativen sind eine Pflichtlektüre für jeden R/3®-Entwickler. Die Auswahl der Alternativen ermöglicht eine individuelle Bearbeitung der einzelnen Befehlsfolgen.
-
BAPIs bzw. RFC mit Delphi aufrufen.
-
www.brabandt.de : Auflistung von OK-Codes, ABAP/4® Referenz etc.
-
Die Tabelle TSTC enthält alle vorhandenen Transaktionscodes des Systems.
R/2 - Besonderheiten
Das Programmieren im R/2 (ja auch 2004 benötigte man diese Fertigkeiten noch) hat einige Besonderheiten zu bieten: man muss sich nicht nur mit einer bedienungsunfreundlichen Emulation (jedenfalls aus heutiger Sicht) herumschlagen, nein es gibt auch noch etliche Besonderheiten, die man aus heutiger Sicht überhaupt nicht gewohnt ist. In loser Reihenfolge einige Tipps:
Naa, fündig geworden? Oder fehlt noch etwas? Hinweise bitte über das Kontaktformular. Vielen Dank.