ABAP Objects

Objektorientiertes ABAP für moderne Clean Core SAP Systeme

Grundlagen

(C) Brandeis Consulting📁

SAP Entwicklungsumgebungen für ABAP Objects

bisher - SE24

SE24

neu - Eclipse + ADT

alt text

  • ABAP Objects im SAPGUI über SE24 bzw. SE80
  • Modernes ABAP nur noch mit Eclipse + ABAP Development Tools (ADT)
  • Empfehlung der SAP: nutzt Eclipse ADT!
(C) Brandeis Consulting📁

ABAP Klasse anlegen

bisher - SE80

SE80

neu - Eclipse ABAP Projekt

ADT

  • Eclipse ist eine Entwicklungsumgebung, die nicht von und für SAP gebaut wurde
  • Die Konzepte sind etwas anders als gewohnt
  • Das Anlegen von ABAP Objekten erfolgt z.B. über das Kontextmenü
(C) Brandeis Consulting📁

ABAP Klassendefinition

bisher

Claas Props

neu

class ZCL_ABAP_CLAAS definition
  public
  final
  create public
  shared memory enabled .

public section.
protected section.
private section.
ENDCLASS.

CLASS ZCL_ABAP_CLAAS IMPLEMENTATION.
ENDCLASS.
  • Formularbasiert (SE24/SE80) vs. sourcecodebasiert (Eclipse ADT)
  • Trennung im Sourcecode zwischen definition und implementation
  • Einstellungen aus dem formularbasierten Ansatz werden zu Code
(C) Brandeis Consulting📁

SAPGUI: Support Formularbasiert- und Quelltext-Modus

SAPGUI Formular

SAPGUI Source

  • Im SAPGUI Editor kann zwischen der Quelltext-Sicht und der formularbasierten Sicht gewechselt werden
  • In der Quelltext-Sicht gehen bereits einige Editiermöglichkeiten
  • Eclipse ADT bietet aber sehr viel mehr Funktionaität
(C) Brandeis Consulting📁

ABAP Methodendefinition

bisher

Class Methods

neu

CLASS zcl_abap_claas DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC
  SHARED MEMORY ENABLED .

  PUBLIC SECTION.
    CLASS-METHODS: public_static_method.
    METHODS: public_method.
  PROTECTED SECTION.
    METHODS: protected_method.
  PRIVATE SECTION.
    METHODS: private_method.
ENDCLASS.
  • Spalte Art im SAPGUI wird zu section mit verschiedenen Sichtbarkeiten
  • Die Implementierung erfolgt bei Eclipse im gleichen Fenster
  • Es wird leichter, wenn man vorher die Bedienung von Eclipse kennenlernt
(C) Brandeis Consulting📁

ABAP Methodenparameter

bisher

Methodenparameter

neu

  methods EXAMPLE_METHOD
    importing
      value(ID_USER_BY_VALUE) type USER default SY-UNAME
      !ID_STRING_BY_REFERENCE type STRING optional
      !IO_REF_TO_OBJECT type ref to OBJECT
    exporting
      value(ER_REF_TO_DATA) type ref to DATA
      value(ED_INT_BY_VALUE) type I
      !EV_BY_REFERENCE type STRING
    changing
      value(CD_DATA_BY_VALUE) type DATA
      !CS_T001_BY_REFERENCE type T001 optional
    returning
      value(RV_SUCCESS) type ABAP_BOOLEAN
    raising
      CX_STATIC_CHECK .
  • verschiedene Präfixe bei den Parametern - sehr unterschiedliche Umsetzung - eigene Richtlinien sinnvoll
  • Analog zu Funktionsbausteinen: importing vs. exporting vs. changing
  • NEU: returning - Nicht mehr bei ABAP Objects Klassen: tables
  • Wertübergabe durch VALUE() - Referenzübergabe mit "!", aber andere Bedeutung von TYPE REF TO
  • zusätzlich: optionale Parameter, Vorschlagswerte und Ausnahmen
(C) Brandeis Consulting📁