gibt es einen altenativen Funktionsbaustein zu CALL FUNCTION 'CREATE_XLS_HEADER_FROM_DDIC' ??
Ich möchte mir mit diesem die Überschriftszeile für eine Tabelle erzeugen lassen.
Allerdings enthält die Tabelle ein Feld das mit CURR deklariert ist und dann kommt es zu einem Kurzdump, dass dieses nicht als Zahl interpretiertbar ist.
Nun wollte ich fragen, ob es vielleicht einen anderen Funktionsbaustein gibt, mit dem man dieses Problem umgehen kann.
Bevor ich da Faxen mache, würde ich mir mit Hilfe der Klasse CL_ABAP_TYPEDESCR und ihrer Unterklassen rasch selber was Passendes basteln, wenn der Standardbaustein nicht wunschgemäß funktioniert.
So was ähnliches habe ich gerade mit dem Baustein RHXPROVIDE_PERIODS gemacht. Obwohl er eigentlich zu HR gehört, könnte ich mir vorstellen, dass er auch für Nutzer anderer Module nützlich sein könnte. Man steckt eine Tabelle von Zeiträumen (mit den Feldern "von" und "bis") rein, und der Baustein erkennt alle Überlappungen und liefert eine Tabelle von Teilzeiträumen zurück, während derer keiner der Ausgangszeiträume sich verändert hat. Das braucht man, wenn etwas mehrere Attribute hat, die alle zeitraumsabhängig sind, sich aber unabhängig voneinander ändern können und man wissen möchte, welche Attributkombinationen zu welcher Zeit gegolten haben. Z.B. gilt Attribut 1 vom 01.01.2018 bis 01.01.2019 und Attribut 2 vom 01.06.2018-31.12.2020. Dann schiebt man die Zeiträume rein und bekommt die drei Teilzeiträume 01.01.2018-31.05.2018, 01.06.2018-31.12.2018 und 01.01.2019-31.12.2020 zurück.
Ich habe den (doch sehr alten) Code modernisiert, auch in der Hoffnung, noch mehr Performance rauszumelken. Zunächst hat das nicht geklappt; mit moderner Programmierung ist er trotz größten Effizienzbemühens auf meiner Seite sogar ca. 5% langsamer. Aber dann bin ich auf einen Programmierfehler gestoßen, der da schon seit zahllosen Jahren drinstecken muss (vom Programmierstil her ist der Baustein von Release 3.0 oder noch älter). Dieser Bug führt nicht zu falschen Ergebnissen, aber ihn zu beheben hat die Laufzeit auf 20% reduziert, also rasch mal die Geschwindigkeit verfünffacht. 😎