ich habe ein klitzekleines Problem: Wie kann ich ein character-Feld mit Länge 15 mit führenden Nullen auffüllen. Hat jemand dafür eine smarte Lösung. Vorab Danke.
Die sinnvollste Methode wäre, die Variable mit Bezug auf ein Datenelement zu definieren, das sich wiederum auf die passende Domäne bezieht. Dann erledigt das System die Konvertierung der im Dynpro eingegebenen Werte ins interne Format per Conversion exit.
Und falls es nicht um Nutzereingaben geht (und Du die Daten aus irgendeiner anderen Quelle so bekommst und dann aufbereiten mußt), ist die direkte Verwendung des entsprechenden CONVERSION_EXIT_..._INPUT-Funktionsbausteins immer noch die sicherste Methode. (Den Conversion Exit findest Du unter den Eigenschaften der Domäne.)
Ansonsten müßtest Du noch etliche Sicherheitsprüfungen einbauen, damit MATNR A001 nicht in einen völlig falschen Wert umgesetzt wird.
Conversion-Exit hört sich für mich am sichersten an, daher bin ich mal hergegangen und hab mir über die SE37 anzeigen lassen, was es denn da so alles an Conversion-Bausteinen gibt. Das ist ja nun eine ganze Menge. Welcher ist denn nun der für meine Zwecke richtige? Leider bin ich nicht so ganz fündig geworden Danke.
Wenn Du keine passende Domäne findest, dann in Deinem Beispiell vermutlich CONVERSION_EXIT_ALPHA_INPUT. (Die Anzahl der vorangestellten Nullen hängt dann von der definierten Länge der übergebenen Variablen ab.
Ansonsten ALPHA durch den in SE11 zu der Domäne angegebenen Conversion Exit ersetzen.
Dear Sandman: If you want to suppress non-numeric characters, you can look at the ASSIGN command with option TYPE. You can force a field to act like a numeric, which does not require the declaration of a separate field (especially helpful, if the length can vary).
Pseudo-code: data: REC-C15(15) type C. f-s: [f1]. (brackets for HTML) Instead of move x to REC-C15, you assign REC-C15 to [f1] type 'N' and move x to [f1].