Haubi hat geschrieben:Wenn ich allerdings untypisierte Parameter in einem Programm sehe könnte ich immer an der Wand hochgehen .
Die Typisierung von FORM-Schnittstellen wurde zu 3.0 eingeführt, wenn ich mich richtig erinnere.
Zu 3.0 gab es in der SE38 auch noch einen Menüpunkt Hilfsmittel->Typisierung, der das Programm RSPARM30 gestartet hat.
Das Programm untersuchte im angegebenen Rahmenprogramm alle FORMs mit untypisierten Parametern, suchte nach passenden PERFORM-Anweisungen, analysierte die Herkunft und Typisierung der Aktualparameter und generierte Vorschläge f'ür die Typisierung.
In der Liste konnte man dann per Checkbox angeben, welche Typisierung das Programm vornehmen sollte. Beim Sichern hat das Programm automatisch die FORM-Schnittstellen angepaßt.
Aber kaum ein Kunde wußte von dieser Funktion.
Zu 4.0 wollte ich das Programm noch mal verwenden.
Der Menüpunkt war verschwunden, aber das Programm existierte noch.
Im Programm habe ich dann 2 Fehler entdeckt:
1. die Prüfung, ob es externe PERFORMs gibt, war fehlerhaft.
2. Wenn das Programm auf Aktualparameter gestoßen ist, die per STATICS definiert wurden, kam es zum Fehler.
Die falsche Prüfung auf externe Performs hat SAP in einem Patch für 3.1I behoben, das Problem mit STATICS-Anweisungen nicht.
Also habe ich RSPARM30 nach ZSPARM30 kopiert, die Includes, die verändert werden mußten, ebenfalls kopiert und in meinem Rahmenprogramm ersetzt, den Rest übernommen.
Mit irgendeinem späteren Release wurden dann alle Restbestände von RSPARM30 entsorgt, so daß auch mein ZSPARM30 ohne die Includes nicht mehr funktionierte.
Und alles from scratch noch mal zu programmieren war mir dann doch zu viel Aufwand.
Generell sollte man LIKE nicht mehr verwenden, da es im Zusammenhang mit ABAP Objects verboten ist (oder mit einer der nächsten Versionen verboten wird).
Daher also besser:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
FORM f
USING ut_itab
TYPE itab_type
. DATA: ls_wa
TYPE LINE OF itab_type
, lt_itab TYPE itab_type.
...
- GeSHi ©
Auch ohne ABAP Objects kann es schon zu 4.6 zu Problemen kommen, wenn man LIKE verwendet.
Ich hab das mal beim Upgrade von 4.6B auc 4.6C gesehen.
In Kundenprogrammen, in denen z.B.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
DATA: feld
LIKE ddicstruct
-feld
.
- GeSHi ©
vorkam, gab es einen Syntaxfehler, nachdem SAP an die DDIC-Struktur weitere Komponenten angehängt hatte, so daß die Struktur plötzlich keine flache Struktur mehr war.
(Das verwendete Feld selbst war aber nach wie vor CHAR.)
Ist jemand "mutig" und definiert eine APPEND-Struktur für SYST, in der dann ein Tabellentyp als Komponente verwendet wird?
Wie oft kommt wohl DATA: rc LIKE SYST-SUBRC und ähnliches in Programmen vor?
Und ob der Fehler auch auf LIKE SY-SUBRC durchschlägt?
Neugierig bin ich ja. Noch möchte ich mir mein WAS Linux TestDrive aber nicht kaputtmachen.
Evtl. zerlege ich aber demnächst das MiniWAS. Dann berichte ich mal.
Frank