FuBa für Feldprüfung und Aufbereitung

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

FuBa für Feldprüfung und Aufbereitung

Beitrag von TakerOne (Specialist / 102 / 0 / 3 ) »
Hi, ich hätte da gern mal wieder ein Problem. :lol:

Ich lese aus einer Excel-Tabelle mehrere Felder mit numerischen Werten ein, die zu einem Update verwendet werden sollen.
Da diese Werte aber aus einer manuellen Eingabe stammen, müssen sie auf Gültigkeit geprüft werden (Numerischer Inhalt, Länge etc.).

Gibt es einen FuBa, dem ich das zu prüfende Feld übergebe, ebenso das Empfangsfeld und der mir den Inhalt in diesem Empfangsfeld typgerecht aufbereitet zurückliefert und ggf. einen Fehlercode zurückliefert?
Es können auch Unit oder Currency abh. Felder sein, also müsste eventuell auch die Einheit übergeben werden.

Habe schon CATS_NUMERIC_INPUT_CHECK versucht, aber das Ergebnis ist nicht ausreichend. Bin halt etwas gierig, suche die eierlegende Wollmilchsau.

Wäre für Hinweise sehr dankbar.
Ich bin eigentlich ein sehr netter Mensch.
Wenn ich Freunde hätte, könnten diese es bestätigen. :-)

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


Beitrag von TakerOne (Specialist / 102 / 0 / 3 ) »
Hab noch was vergessen.

Die Werte können abhängig von der Nationalität sein. Mal kommt die Datei aus Amerika, mal aus München und mal aus Hamudistan (liegt zwischen Iran und Persien).

Der Baustein sollte auch das verarbeiten können, ggf. mit Vorgabeparameter. Die Anmeldesprache von SAP ist davon unabhängig. d.h. es sollte in der deutschen Zentrale laufen können und amerikanische Daten einlesen können und ebenfalls der Amerikaner deutsche Dateien.

Hintergrund: Es werden Materiallisten mit Konditionen und Staffelpreise als Excel-Datei an Lieferanten gesandt. Diese passen die Preise an und senden die Datei zurück. Da die Lieferanten auch aus dem Ausland stammen können, werden ggf. andere Formatierungen verwendet.

Gruß
Ich bin eigentlich ein sehr netter Mensch.
Wenn ich Freunde hätte, könnten diese es bestätigen. :-)

Generischer FB für Validierung

Beitrag von quercus (ForumUser / 13 / 0 / 0 ) »
Hallo,
wie wäre es mit dem FB RS_CONV_EX_2_IN_DTEL?
Dieser prüft eine Eingabe anhand eines übergebenen
Datenelements.
Beispiel: Eingabe 29.02.2005, Datenelement 'DATUM'
liefert die Exception INVALID_DATE.
Klappt sicher auch bei anderen Datenelementen.
Bitte Doku beachten:
"Der Parameter OUTPUT_INTERNAL muß die technischen
Eigenschaften des in DTEL angegebenen Datenelements haben". Direkter Test über SE37 klappt nicht.
Viel Erfolg.
Gruß
quercus
Aimer savoir est humain, savoir aimer est divin

Beitrag von TakerOne (Specialist / 102 / 0 / 3 ) »
Vielen Dank für den Hinweis, der FuBa hilft mir schon sehr viel weiter.
Ich bin eigentlich ein sehr netter Mensch.
Wenn ich Freunde hätte, könnten diese es bestätigen. :-)

Konvertierung von externem zu internem Format

Beitrag von mike81503 (ForumUser / 35 / 0 / 0 ) »
Hallo TakerOne,


versuche es mal mit folgendem Coding:

Code: Alles auswählen.

 FUNCTION z_field_conv_inp .
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(I_FIELDNAME) LIKE  DFIES-FIELDNAME
*"     VALUE(I_FIELDVALUE)
*"     VALUE(I_TABNAME) LIKE  DFIES-TABNAME
*"  EXPORTING
*"     VALUE(O_FIELDVALUE)
*"  EXCEPTIONS
*"      CONVEXIT_OR_VALUE_NOT_FOUND
*"      FIELD_OR_TAB_NOT_FOUND
*"      VALUE_NOT_VALID
*"      NO_CONVERSION
*"----------------------------------------------------------------------
  DATA: lt_dfies  LIKE STANDARD TABLE OF dfies.
  DATA: wa_dfies  TYPE  dfies.

  DATA: lv_value_out    TYPE REF  TO data.
  DATA: lv_length_in    TYPE i.

  DATA: mess_typ.

  FIELD-SYMBOLS: <value_out>  TYPE ANY.

  DATA:  conversion_call(30) TYPE c VALUE 'CONVERSION_EXIT_?_INPUT'.

* bei PSP Nummern gibt es Probleme, daher 
* hier ne Sonderlocke
* handle error message from function call * CJPN_PROJEKTNUMMER_UNEDIT
  mess_typ = 'S'.
  EXPORT mess_typ  TO MEMORY ID 'EXT_MESS_TYP'.

* no fieldname set, when object key has *more as one field
  IF  NOT  i_fieldname IS INITIAL.

    CALL FUNCTION 'DDIF_FIELDINFO_GET'
      EXPORTING
        tabname              = i_tabname
        fieldname            = i_fieldname
*    LANGU                = SY-LANGU
*    LFIELDNAME           = ' '
*    ALL_TYPES            = ' '
*  IMPORTING
*    X030L_WA             =
*    DDOBJTYPE            =
*    dfies_wa             =
*    LINES_DESCR          =
    TABLES
      dfies_tab            = lt_dfies
*    FIXED_VALUES         =
      EXCEPTIONS
        not_found            = 1
        internal_error       = 2
        OTHERS               = 3.

    IF sy-subrc <> 0.

      RAISE field_or_tab_not_found.

    ENDIF.

    READ TABLE lt_dfies INTO  wa_dfies  INDEX 1.

    IF  sy-subrc NE 0.
*
      EXIT.
    ENDIF.



    CREATE  DATA  lv_value_out      TYPE  (wa_dfies-domname).

    ASSIGN  lv_value_out->* TO <value_out>.

    lv_length_in = strlen( i_fieldvalue ).

    IF lv_length_in  GT  wa_dfies-outputlen.

      RAISE value_not_valid.

    ENDIF.


    IF NOT wa_dfies-convexit  IS INITIAL.
*  conversion exit exists

* replace conversion routine name
      REPLACE '?' WITH wa_dfies-convexit  INTO conversion_call.


      CALL FUNCTION conversion_call
           EXPORTING
                input     = i_fieldvalue
           IMPORTING
                output    = <value_out>
           EXCEPTIONS
                not_found = 1.

      IF  sy-subrc  NE 0.
*    conversion exit or value not found (PRPS checks against database !)

        RAISE convexit_or_value_not_found.

      ENDIF.



    ELSE.
*   no conversion exit, OUT = IN
      RAISE no_conversion.

    ENDIF.

  else.

    ASSIGN  i_fieldvalue  TO <value_out>.

  ENDIF.   " IF NOT wa_dfies-convexit  IS INITIAL

  o_fieldvalue = <value_out>.




ENDFUNCTION.
Kannst es ja zumindest mal testen.

Gruss Michael

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2734
Views
Eigene Feldprüfung im editierbaren ALV
von Nordlicht » 28.09.2016 11:05 • Verfasst in ABAP® Core
2
Antw.
984
Views
Batch-Input Feldprüfung bearbeiten?
von ABAPJB » 26.09.2014 11:24 • Verfasst in ABAP® für Anfänger
8
Antw.
5303
Views
Aufbereitung EXCEL in SAP
von honeyjam » 08.09.2011 09:09 • Verfasst in ABAP® für Anfänger
2
Antw.
6687
Views
SapScript Aufbereitung
von jr-ewing » 26.10.2006 13:23 • Verfasst in ABAP® Core
0
Antw.
3775
Views
Globale Datums-Aufbereitung
von Tron » 20.09.2016 11:31 • Verfasst in Tips + Tricks & FAQs

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 4 Stunden von DeathAndPain gelöst 22 / 2796
Daten an Tabelle binden
vor 9 Stunden von Lukas Sanders 2 / 874
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 430

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.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 4 Stunden von DeathAndPain gelöst 22 / 2796
Daten an Tabelle binden
vor 9 Stunden von Lukas Sanders 2 / 874
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 430

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2466
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9050