[ABAP] Führende Nullen zu einer Materialnummer (MATNR), Vertriebsbeleg (VBELN) hinzufügen (zero-padding)

Variante 1 (FuBa)

DATA: lv_matnr TYPE char18 VALUE '1234567890'.

* Prüft Länge, Datentyp, fügt führende Nullen ein
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input  = lv_matnr
  IMPORTING
    output = lv_matnr.

WRITE: / |{ lv_matnr }|.

Variante 2 (UNPACK)

DATA: lv_c_matnr TYPE char10 VALUE '1234567890'. " 10-stellige MatNr
DATA: lv_matnr TYPE mara-matnr.                  " 18-stellige MatNr

UNPACK lv_c_matnr TO lv_matnr.

WRITE: / |{ lv_matnr }|.

Variante 3 (SHIFT/OVERLAY)

DATA: lv_c_matnr TYPE char18 VALUE '1234567890'. " 10-stellige MatNr als Input

SHIFT lv_c_matnr RIGHT DELETING TRAILING space.
* 18-stellig mit Nullen überlagern
OVERLAY lv_c_matnr WITH '000000000000000000'.

WRITE: / |{ lv_c_matnr }|.

Variante 4 (String-Template)

DATA: lv_matnr TYPE string VALUE '12345'

* 18-stellige Ausgabe mit führende Nullen
lv_matnr = |{ lv_matnr WIDTH = 18 ALPHA = IN }|.

WRITE: / |{ lv_matnr }|.