FuBA die Struktur mitgeben (dynamisch)

Getting started ... Alles für einen gelungenen Start.
37 Beiträge • Vorherige Seite 3 von 3 (current)
37 Beiträge Vorherige Seite 3 von 3 (current)

Re: FuBA die Struktur mitgeben (dynamisch)

Beitrag von ewx (Top Expert / 4884 / 318 / 644 ) »
Welcher String und was verstehst du unter "gemoved"?
Kannst du vielleicht einmal ein Beispiel zeigen, was rein gehen soll (string) und was du als Ausgabe erwartest?

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


Re: FuBA die Struktur mitgeben (dynamisch)

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Types: Begin of ty_struc,
Feld1 type c lenght 12,
Feld2 type p (15),
Feld3 type p(12),
Feld4 type d(5),
Feld5 type n(10),
end of ty_struc.

data: ls_struc type ty_struc,
Var1 type lchr length 1000.

Var1 = '1232141231241355hddfze5tdhfdhdvb'.

FIELD-SYMBOLS: <fs_struc> type ty_struc.
ASSIGN Var1 to <fs_struc> CASTING.
ls_struc = <fs_struc>.

" ls_struc = Var1 <--------- Dies ist ja nicht mehr möglich, wegen Unicode.

Re: FuBA die Struktur mitgeben (dynamisch)

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
So dieses Problem hätte ich allerdings gelöst, bloß nun möchte ich einen FuBa dafür entwickeln und das Problem woran ich hänge ist, dass die Struktur die man dem FuBa als Parameter mitgibt unterschiedlich und im Vorfeld nicht bekannt ist.

Re: FuBA die Struktur mitgeben (dynamisch)

Beitrag von ewx (Top Expert / 4884 / 318 / 644 ) »
Wie ist denn die gepackte Zahl in deinem String codiert?
steht da 'abc 1.234efg'?
Oder wird es wirklich als "gepackte" Zahl geliefert?

Re: FuBA die Struktur mitgeben (dynamisch)

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Ja, so 'abc 1.234efg' würde es stehen.

Re: FuBA die Struktur mitgeben (dynamisch)

Beitrag von ewx (Top Expert / 4884 / 318 / 644 ) »
So, damit das ganze Geeier hier mal ein Ende hat:

Code: Alles auswählen.

REPORT.


CLASS conv DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS struc IMPORTING i TYPE clike EXPORTING e TYPE any.

ENDCLASS.

CLASS conv IMPLEMENTATION.
  METHOD struc.
    DATA sd     TYPE REF TO cl_abap_structdescr. "structure Description
    DATA source TYPE string.

    source = i.
    TRY.
        "Datenbeschreibung für Zielstruktur
        sd ?= cl_abap_typedescr=>describe_by_data( e ).
        "Komponenten der Struktur
        DATA(components) = sd->get_components( ).
        LOOP AT components INTO DATA(component).
          "Wert des der aktuellen Komponente zuweisen
          ASSIGN COMPONENT component-name OF STRUCTURE e TO FIELD-SYMBOL(<field>).
          CHECK sy-subrc = 0.
          "Elementbeschreibung holen, um die Ausgabelänge zu haben
          DATA(ed) = CAST cl_abap_elemdescr( component-type ).
          TRY.
              "Zuweisung des Teilstring
              <field> = source(ed->output_length).
            CATCH cx_sy_conversion_overflow.
              "Feldüberlauf...
              CLEAR <field>.
          ENDTRY.
          "Verschieben des Datenstrings um die Ausgabelänge
          SHIFT source LEFT BY ed->output_length PLACES.

        ENDLOOP.
      CATCH cx_sy_move_cast_error.
    ENDTRY.

  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.

  TYPES: BEGIN OF ty_struc,
           felda TYPE c LENGTH 10,
           feld1 TYPE p LENGTH 2 DECIMALS 1, "Ausgabelänge 5
           feld2 TYPE p LENGTH 2 DECIMALS 2, "Ausgabelänge 5
           feld3 TYPE p LENGTH 3 DECIMALS 2, "Ausgabelänge 7
           feld4 TYPE p LENGTH 4 DECIMALS 2, "Ausgabelänge 9
           feld5 TYPE p LENGTH 5 DECIMALS 2, "Ausgabelänge 11
           feldz TYPE c LENGTH 10,
         END OF ty_struc.

  DATA: struc TYPE ty_struc,
        var   TYPE string.

  var = `abcdefghij 1.1  2.22 333.33- 4444.44 555555.55-klmnopqrst`.

  conv=>struc( EXPORTING i = var IMPORTING e = struc ).

  DO.
    ASSIGN COMPONENT sy-index OF STRUCTURE struc TO FIELD-SYMBOL(<f>).
    IF sy-subrc = 0.
      WRITE: <f> COLOR COL_NORMAL.
    ELSE.
      EXIT.
    ENDIF.
  ENDDO.
Übrigens wieder ein sehr schönes Beispiel FÜR Test Units!! und damit GEGEN einen Funktionsbaustein...
Hier kann sooo viel schief gehen...

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
L0w-RiDer


Re: FuBA die Struktur mitgeben (dynamisch)

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Super! Vielen vielen Dank :).

Vergleichbare Themen

13
Antw.
11224
Views
Struktur dynamisch bearbeiten
von isp » 02.08.2018 15:28 • Verfasst in ABAP Objects®
6
Antw.
3748
Views
Struktur dynamisch auslesen / schreiben
von Ingo » 04.08.2021 09:52 • Verfasst in ABAP® Core
4
Antw.
4906
Views
Feldzugriff auf Struktur dynamisch gestalten
von JohnLocklay » 07.11.2017 11:57 • Verfasst in ABAP® Core
3
Antw.
4798
Views
Dynamisch Struktur und Tabelle generieren und füllen
von Kresiquadratur » 16.07.2007 14:32 • Verfasst in ABAP® für Anfänger
2
Antw.
3351
Views
Dynamisch erzeugte ITAB, ASSIGN, wie kriege ich die Struktur
von enneos » 12.07.2007 16:10 • Verfasst in ABAP® Core

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.