SAP Jobsuche bei DV-Treff
Sappralott
vor 12 Jahre
Hallo,

ich versuche, mein ABAP-Programm zum Zweck der besseren Wartbarkeit in kleine Einheiten zu packen, also zu modularisieren.

Dafür hab ich ja zwei grundlegende Möglichkeiten zur Verfügung: Unterprogramme und INCLUDE-Strukturen.

Momentan experimentier ich mit den INCLUDE-Strukturen. Die haben den Vorteil, daß es abgesplittete eigene Code-Stücke sind, nicht Teil des Haupt-Quellcodes. Da sie keine Datenschnittstelle haben, ist aber fraglich, ob ich die langfristig verwenden kann.

Die andere grundlegende Möglichkeit sind Unterprogramme. Die verfügen definitiv über eine Schnittstelle zur Übergabe von Variablen etc.

Was mir nicht ganz klar ist, ist nur: Unterprogramme werden ja direkt an den Haupt-Quellcode angehängt, sind also eigtl. Teil desselben Skripts. Das widerspricht in meiner Vorstellung irgendwie der Grundidee der Aufteilung in Module? Kann man das irgendwie ändern?

Danke sehr!

Gruß,

Sappralott

Förderer

Sappralott
vor 12 Jahre
Hallo,

inzwischen experimentiere ich doch mit Unterprogrammen, die sind rel. einfach zu erstellen und dienen ja auch der Übersichtlichkeit. Dabei kann ich ja Variablen und alles übergeben. Mein Problem bzw. meine Unklarheit ist: Muss ich Variablen etc., die ich in einem Unterprogramm deklariert habe, irgendwie in den FORM-Befehl einfügen, damit sie meinem Hauptprogramm und den drauffolgenden Unterprogrammen dann bekannt sind? Und wie mach ich das?

Vielen Dank!

Gruß,

Sappralott

Sappralott
vor 12 Jahre
Hallo,

inzwischen experimentiere ich doch mit Unterprogramm herum.

Dabei hab ich ein Problem:

Die Deklaration des Zeilentyps, den ich in meiner internen Tabelle verwende, muss flexibel auf Usereingaben reagieren, sprich eine flexible Anzahl von Feldern beinhalten. D.h. ich muss ihn in einem Unterprogramm machen - oder ginge das auch in einer INCLUDE-Struktur? Ich hab in der offiziellen SAP Online-Hilfe gelesen, die haben keine Datenschnittstelle, aber Leute in einem Forum sagen, das geht trotzdem...

Momentan hab ich jedenfalls die Deklarationen in einem Unterprogramm, aber da hab ich den Nachteil: Meine interne Tabelle existiert ja vorher nicht, die deklarier ich ja da. Irgendwie muss ich die aber wohl wieder an mein Hauptprogramm übergeben. Weiter unten krieg ich dann nämlich eine Fehlermeldung "Feld itab01 ist unbekannt" - wie muss ich denn das machen?

Andererseits - wenn es möglich wäre, dass ich in INCLUDE-Strukturen Variablen verwende, dann würde ich generell lieber INCLUDEs statt Unterprogrammen verwenden, die sind ja separat, das ist irgendwie ordentlicher.

Vielen Dank!

Gruß,

Sapperdapper

Benutzer, die gerade dieses Thema lesen