Führende Nullen dynamisch über Domäne

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Führende Nullen dynamisch über Domäne

Beitrag von John Monooxid (ForumUser / 2 / 0 / 0 ) »
Hallo liebe ABAP Gemeinde, ich habe folgendes Problem:

Ich lade eine Exceltabelle in eine SAP Tabelle. Teil dieses Excel Dokuments sind die Domäne, Wert_alt und Wert_neu. Das hochladen klappt auch wunderbar, nur muss nun durch mein Programm erkannt werden, welche Domäne jeweils verwendet wird und daraus folgend Wert_alt und Wert_neu mit führenden Nullen aufgefüllt werden, je nachdem, ob die Werte numerisch oder alphanumerisch sind. Wenn numerisch, fülle auf, wenn alphanumerisch, fülle nicht auf.

Den tollen Fuba 'CONVERSION_EXIT_ALPHA_INPUT' kann ich ja sicherlich nicht nutzen, oder? Denn in meinem Excelfile habe ich verschiedene Dömanen...

Hat jemand einen Tipp für mich? :roll:
Vielen Dank im Voraus.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von airwaver (Specialist / 134 / 0 / 1 ) »
Mit dem FB 'DD_DOMA_GET' erhälst du Infos zur Domäne, unter anderem auch die Länge und den Typ. Die 2 Werte kannst du doch im Programm abfragen und dann ggf. mit Nullen auffüllen.
Zum Nullenauffüllen müsstest du dir halt ein Unterprogramm schreibn, in das du dein WERT_ALT und WERT_NEU reingibst und WERT_NEU dann mit Nullen aufgefüllt wird.

Code: Alles auswählen.

data: wert_alt type char10,
      wert_neu type char10,
      domname  type domname.

wert_alt = '12345'.
domname  = 'NUM10'.

perform nullen_auffuellen using wert_alt wert_neu domname.

write:/ 'ALT = ', wert_alt.
write:/ 'NEU = ', wert_neu.


form nullen_auffuellen using l_wert_alt type char10
                             l_wert_neu type char10
                             l_domname  type domname.
  data: laenge type i,
        off type i value 0,
        dd01v type dd01v,
        dd07v type table of dd07v.

  l_wert_neu = l_wert_alt.

  laenge = strlen( l_wert_neu ).

  call function 'DD_DOMA_GET'
   exporting
     domain_name         = l_domname
   importing
     dd01v_wa_a          = dd01v
   tables
     dd07v_tab_a         = dd07v
     dd07v_tab_n         = dd07v.

  if dd01v-datatype = 'NUMC'.

    shift l_wert_neu right deleting trailing space.

    do dd01v-leng times.

      off = sy-index - 1.
      if l_wert_neu+off(1) is initial.
        l_wert_neu+off(1) = '0'.
      else.
        exit.
      endif.

    enddo.

  endif.

endform.

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo,

wenn in der Domäne ein Konv-Exit gepflegt ist, sollte man damit den Conv-FB aufbauen und aufrufen:

Code: Alles auswählen.

IF dd01v-convexit IS NOT INITIAL.
  CONCATENATE
    'CONVERSION_EXIT_'
    dd01v-convexit 
    '_INPUT' 
    INTO lv_conv_fb.
  CONDENSE lv_conv_fb NO-GAPS.
  CALL FUNCTION lv_conv_fb
    EXPORTING
      input         = l_wert_alt
    IMPORTING
      output        = l_wert_neu.
ENDIF.
QED
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von John Monooxid (ForumUser / 2 / 0 / 0 ) »
Edit:

Danke an alle, es funktioniert :wink:

Seite 1 von 1

Vergleichbare Themen

4
Antw.
3313
Views
Führende Nullen
von Kelly » 05.10.2005 09:48 • Verfasst in ABAP® für Anfänger
9
Antw.
7201
Views
Führende Nullen
von Beginner014 » 24.10.2014 08:51 • Verfasst in ABAP® für Anfänger
18
Antw.
13880
Views
führende Nullen
von tabea* » 14.04.2007 09:21 • Verfasst in ABAP® für Anfänger
5
Antw.
5480
Views
führende Nullen in char fel
von F12_man » 25.05.2007 12:12 • Verfasst in ABAP® Core
3
Antw.
10575
Views
SAPScript - führende Nullen
von Thomas_C. » 03.09.2007 16:11 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.