Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /kunden/349566_51067/webseiten/4ap.de/framework/class.database.php on line 61
4AP.de ~ alles fuer ABAP-Programmierer - Infos zur SAP Programmiersprache - Programmierhinweise
 

4AP.de ~ alles fuer ABAP-Programmierer - Infos zur SAP Programmiersprache


Suche



 

Programmierhinweise

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 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
  • einige Tipps zusammengefasst von André Hellmund
  • LDAP ist ein ziemlich neues Thema. Allgemeine Infos im Linux-Magazin. Die Diplomarbeit von Oliver Schönherr liefert einen schönen Überblick über Verzeichnisdienste und Java Programmierung im Server-Umfeld. Interessant ist der Entwurf eines SQL-Backends für LDAP in Kapitel 6. Siehe auch SAP-Hilfe zum Thema. Den LDAP Zugriff auf Verzeichnisdienste aus SAP R/3. Siehe auch Verzeichnisdienst. Ein Beispiel für WAS 6.10 Nutzung findet sich bei Computerservice Wolf.
  • 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 Icon Beispielprogramme 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):
 
  • leicht verständlicher Einstieg in ABAP objektorientiert [bzw. die objektorientierte Programmierung] bei Wolfram Püchert.
  • Frank Müllers Site zur Softwareentwicklung allgemein
  • Jochens ABAP Tipps und Tricks
  • sehr schöne grafische Übersichten über die Tabellenzusammenhänge, z.B. für die Bereiche SD, MM, FI, PS etc., Zusammenfassung hier
  • 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.
  • OK-Codes

 


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:
 
  • Die Editor-Transaktion heißt TM38 (nicht SE..)
  • Navigation in der TM38:
    Shift F7  = 1/2 Seite +
          Shift F8  = 1/2 Seite -
          Shift F9  = Listanfang
          Shift F10 = 1 Seite +
          Shift F11 = 1 Seite -
          Shift F12 = Listende
    
          check  = Syntaxprüfung
          u      = Speichern (update)
          sub    = Testlauf
  • Im R2 ist dringend die Workarea in einer Select-Schleife zu löschen. Die nicht überschriebenen Felder werden innerhalb einer Select-Endselect-Schleife nicht automatisch gelöscht! Feldinhalte bleiben - im Gegensatz zum R/3 - bestehen!
  • Die Selection über z.b. '1998*' BT '1999*' endet beim ersten Datensatz von 1999!!! Wenn mann alle Datensätze beginnen bit 1998 und 1999 selektieren möchte muß man 'CP 1998' sowie 'CP 1999' eingeben. CP steht für 'contains pattern'. Die erweiterten Selektionsoptionen bekommt man mit F17 wenn man den Cursor auf den letzen Unterstrich in die Zeile des Seletionsbildes stellt.
  • Coding-Export: wenn man das Coding aus dem R/2 herunterlädt (das geht nur bei funktionierender PC-ON-Verbindung (Admin befragen) oder mit Hilfe einer Anmeldung an das R/2 über das normale SAP-Logon (jas, das geht bei JEDEM R/2) bekommt man die Zeilennummern mit ausgegeben. Um diese zu entfernen das ganze Coding ins WORD laden, dann im WORD den ganzen Text in eine Festbreitenschrift umwandeln (erkennbar am Druckersymbol [nicht TT] neben dem Namen,z.B. Courier). Wenn das geschafft ist die Steuerungs- und Alt-Taste gleichzeitig gedrückt halten {<Strg> + <Alt>}, jetzt mit der Maus den zu entfernenden Text markieren. Voila, wieder eine weitere WORD-Funktion gelernt.




Naa, fündig geworden? Oder fehlt noch etwas? Hinweise bitte über das Kontaktformular. Vielen Dank.