Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe in eine SAP Report einen Selection-Screen, auf deisem kann ein Tabellenname angegeben werden. Der Parameter heisst p_itab.

Nachher will ich aus dieser Tabelle alle Einträge auslesen. Dazu brauch ich eine internet Tabelle, die den gleichen Typ hat, wie die Tabelle, deren Namen der Benutzer eingegeben hat.

mit folgendem Select kann ich die Tabelle lesen:

SELECT * FROM (p_itab) INTO TABLE itab.

Angenommen der Benutzer hat als Tabellennamen SPFLI eingeben, so müsste itab wie folgt definiert sein:

data itab type standard table of SPFLI.

Genau das SPFLI soll aber dynamisch sein, also der Benutzer soll jede Tabelle aus dem DD angeben können.

Wie kriegt ich meine interne Tabelle vom richtigen Typ??

data itab type standard table of (p_itab).

funktioniert leider nicht.

Geschrieben

Hi!

Wenn du "Variablen" zur Laufzeit definieren willst, machst du das am besten über Feldsymbole.

Das funktioniert folgendermaßen:

Als erstes definierst du das Feldsymbol:

FIELD-SYMBOLS <itab> TYPE ALL. (die Klammern "<>" gehören zum Feldsymbolnamen.

Dann Definiertst du dir ein Objekt für die Übertragung:

DATA objekt TYPE REF TO data.

Und schlussendlich kannst du deinem Feldsymbol den gewünschten Wert zuweisen:

CREATE DATA objekt TYPE (spfli).

ASSIGN objekt->* TO <itab>.

So ungefähr müssts funktionieren. Hab das ganze aber auch schon lang nimmer gemacht. Also alle Angaben ohne Gewähr.

Liebe Grüße

Nixaja

Geschrieben

Hab grad nochmal in der Hilfe nachgesehn. Anscheinend funktioniert das ganze auch ohne Objekt.

FIELD-SYMBOLS <PT> TYPE ANY.

TABLES SFLIGHT.

...

ASSIGN SFLIGHT-PLANETYPE TO <PT>.

WRITE <PT>.

Nixaja

Geschrieben
Original geschrieben von Nixaja

TABLES SFLIGHT.

...

ASSIGN SFLIGHT-PLANETYPE TO <PT>.

Das hilft mir doch nichts!!

Ich weiss doch gar nicht, ob jetzt die Tabelle SFLIGHT, oder SPFLI, oder sonstirgendeine Tabelle lesen muss, das bestimmt ja der User frei durch seine Eingabe in das Textfeld!!!

Und ich weiss zur Zeit wo ich den Report schreibe doch noch gar nicht, was der User da jemals reinschreiben wird....

Irgendwie versteht das Problem niemand.

Probiers doch mal aus:

Selektionscreen mit einem Textfeld.

Wenn ich SPFLI in das Textfeld schreibe, soll mir der Inhalt der Tabelle SPFLI als Liste ausgeben werden.

Wenn ich aber in das Textfeld SFLIGHT schreibe, soll mir der Inhalt der Tabelle SFLIGHT ausgeben werden, und die hat ja eine ganz andere Struktur als SPFLI....

Geschrieben

Heyhey, net gleich so grantig! ;)

Du gibst einfach den Namen der Tabelle (den hast du ja) in eine Variable. Und die weist du dann dem Objekt zu.

DATA meine_Variable(40) TYPE c.

CREATE DATA objekt TYPE (meine_Variable)

Nixaja

Geschrieben
Original geschrieben von Nixaja

DATA meine_Variable(40) TYPE c.

CREATE DATA objekt TYPE (meine_Variable)

^^ Gibt bei mir nur eine Fehler, weil 'objekt' unbekannt ist

Mit Objekten hab ich noch nie gearbeitet, und ehrlich gesagt, versteh ich auch nicht wie obiges Beispiel funktionieren soll....

Also Codebeispiel:


SELECTION-SCREEN BEGIN OF BLOCK 123 WITH FRAME.

PARAMETERS: p_what(100) TYPE c obligatory.

SELECTION-SCREEN END OF BLOCK 123.

DATA: itab type ?????.

SELECT * FROM (p_from) INTO itab.
[/PHP]

wie krieg ich den Typ für itab??

Geschrieben

Hast du mein erstes Posting nicht gelesen? Ich zitiere mich nochmal selber:

Als erstes definierst du das Feldsymbol:

FIELD-SYMBOLS <itab> TYPE ANY. (die Klammern "<>" gehören zum Feldsymbolnamen.)

Dann Definiertst du dir ein Objekt für die Übertragung:

DATA objekt TYPE REF TO data.

DATA meine_variable(40) TYPE c.

Und schlussendlich kannst du deinem Feldsymbol den gewünschten Wert zuweisen:

CREATE DATA objekt TYPE (meine_varialbe).

ASSIGN objekt->* TO <itab>.

Und dann füllst du mit einem Select dein Feldsymbol:

SELECT * FROM (meine_varialbe)

INTO CORRESPONDING FIELDS OF <itab>

Müsste eigentlich funktionieren. Kanns aber grad selber net ausprobieren.

Nixaja

Geschrieben
Original geschrieben von Nixaja

H

DATA objekt TYPE REF TO data.

CREATE DATA objekt TYPE (meine_varialbe).

Hab ich gelesen, aber ich hab ja auch geschrieben, dass ichs nicht verstehe.

Erste zeile: Was ist das data???

Zeile zwei gibt bei mir einen Fehler: statt meine_variable wurde meine_variable-feld erwartet.

Kann aber auch sein, dass Zeile zwei nicht geht, weil Zeile eins nicht funktioniert...

Geschrieben
Original geschrieben von FinalFantasy


SELECTION-SCREEN BEGIN OF BLOCK 123 WITH FRAME.

PARAMETERS: p_what(100) TYPE c obligatory.

SELECTION-SCREEN END OF BLOCK 123.

DATA: itab type ?????.

SELECT * FROM (p_from) INTO itab.
[/PHP]

[/b]

Probiers mal so:

SELECTION-SCREEN BEGIN OF BLOCK 123 WITH FRAME.

PARAMETERS: p_what(100) TYPE c obligatory.

SELECTION-SCREEN END OF BLOCK 123.

FIELD-SYMBOLS <itab> TYPE ANY.

DATA objekt TYPE REF TO data.

CREATE DATA objekt TYPE (p_from).

ASSIGN objekt->* TO <itab>.

SELECT * FROM (p_from) INTO <itab>.

Geschrieben

Da kriege ich leider eine Kurzdump mit dem Fehlertext:

Es wurde versucht, einem typisierten Feldsymbol ein Feld zuzuweisen,

das nicht den erforderlichen Typ besitzt.

bei dem ASSIGN.

Ich versteh das mit den Objekten zwar nicht wirklich aber der Ansatz scheint gut zu sein. Werd mich jetzt noch ein bischen durch die Hilfe wühlen. *gg*

Geschrieben
Original geschrieben von FinalFantasy

Da kriege ich leider eine Kurzdump mit dem Fehlertext:

Es wurde versucht, einem typisierten Feldsymbol ein Feld zuzuweisen,

das nicht den erforderlichen Typ besitzt.

bei dem ASSIGN.

Ich versteh das mit den Objekten zwar nicht wirklich aber der Ansatz scheint gut zu sein. Werd mich jetzt noch ein bischen durch die Hilfe wühlen. *gg*

Seltsam. Bei mir funktionierts einwandfrei (hab nur ganz am Schluss das ENDSELECT vergessen :rolleyes: )

Wenn du willst, kannst du deinen aktuellen Quellcode posten. Dann schau ich ihn mal durch.

Nixaja

Geschrieben

Ahh, also das kleine Beispiel hab ich jetzt auch zum laufen bekommen. Der Selectionscreenparamter muss natürlich auch p_from heissen, und nicht p_where.... :confused:

Was mir aber noch nicht gefällt, ist dass die Tabelle Zeilenweise (also SELECT ... ENDSELECT) gelesen wird.

Mal schaun, das geht anders bestimmt auch noch. :D

Geschrieben
Original geschrieben von FinalFantasy

Was mir aber noch nicht gefällt, ist dass die Tabelle Zeilenweise (also SELECT ... ENDSELECT) gelesen wird.

Ich denke, dagegen wirst du wenig unternehmen können. Ein Array Fetch ist meines Wissens bei Selektionen in Feldsymbole nicht möglich.

Am Besten du arbeitest die Daten zeilenweise zwischen SELECT und ENDSELECT ab. Ist zwar langsamer - funktioniert aber auch :)

Liebe Grüße und noch viel Spaß mit den Feldsymbolen :rolleyes:

Nixaja

Geschrieben

Hi,

hier ist das Programm zum Herunterladen von DB-Tabellen.

Die Daten werden in einer CSV-Datei auf dem Applikations-Server gespeichert.

Der FB 'Z_ZRPARAMETER_READ' holt nur ein Temporäres Verzeichnis aus einer Kundeneigenen Tabelle, muss also irgendwie ersetzt werden. Denke aber, dass dich das an dieser Stelle gar nicht so interessiert.

Message 183(zr) ist eine Fehlermeldung, falls die Datei nicht erzeugt werden konnte.

Message 081(zs) ist ein Dummy, den ich vergewaltigt habe. Ist ja auch nur ein Schmutzprogramm gewesen :-)

Wenn noch fragen sind, weisste ja wie du mich erreichen kannst.

REPORT z_tabledownload .

* Lokale Daten

DATA: l_tabname LIKE dd02l-tabname,

lt_data TYPE REF TO data,

l_data TYPE string,

l_field TYPE string,

l_out TYPE string,

l_zrparameter TYPE zrparameter,

l_filename TYPE string,

lt_tablefields TYPE TABLE OF dbfield,

l_count TYPE sydbcnt,

l_sydbcnt TYPE sy-dbcnt.

FIELD-SYMBOLS: <lt_data> TYPE table,

<l_data> TYPE ANY,

<l_field> TYPE ANY,

<l_tablefield> TYPE dbfield.

* Selektionsbild

PARAMETERS: p_tab LIKE dd02l-tabname OBLIGATORY,

p_size TYPE i OBLIGATORY DEFAULT '10000'.

* Programmstart

START-OF-SELECTION.

* Tabelle prüfen

SELECT SINGLE tabname

FROM dd02l

INTO l_tabname

WHERE tabname = p_tab.

* Tabelle nicht vorhanden

IF NOT sy-subrc = 0.

MESSAGE s402(mo) DISPLAY LIKE 'E' WITH p_tab.

RETURN.

ENDIF.

* Feldbezeichnungen lesen

CALL FUNCTION 'DB_GET_TABLE_FIELDS'

EXPORTING

tabname = l_tabname

TABLES

dbfields = lt_tablefields.

* Pfad des Work-Verzeichnisses lesen

CALL FUNCTION 'Z_ZRPARAMETER_READ'

EXPORTING

i_id = 'TEMP_PFAD'

IMPORTING

e_zrparameter = l_zrparameter

EXCEPTIONS

no_input_data = 1

data_not_found = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

* Dateiname aufbauen

CONCATENATE l_zrparameter-wert sy-sysid '-' l_tabname '-' sy-datum '-' sy-uzeit '.txt' INTO l_filename.

* Instanzierung der lokalen Daten

CREATE DATA: lt_data TYPE STANDARD TABLE OF (l_tabname).

ASSIGN lt_data->* TO <lt_data>.

* Ausgabedatei öffnen

OPEN DATASET l_filename FOR OUTPUT IN TEXT MODE.

IF NOT sy-subrc = 0.

MESSAGE s183(zr) DISPLAY LIKE 'E'.

RETURN.

ENDIF.

* Überschrift der Feldnamen schreiben

LOOP AT lt_tablefields ASSIGNING <l_tablefield>.

CONCATENATE l_out <l_tablefield>-name ';' INTO l_out.

ENDLOOP.

* Überschrift schreibem

TRANSFER l_out TO l_filename.

* Anzahl der Datensätze ermitteln

SELECT COUNT(*) FROM (l_tabname) INTO l_sydbcnt.

* Datensätze paketweise lesen

SELECT * FROM (l_tabname)

INTO TABLE <lt_data>

PACKAGE SIZE p_size

ORDER BY PRIMARY KEY.

* Gelesene Sätze zählen

l_count = l_count + p_size.

* Statusbar aktualisieren

PERFORM show_status USING l_count l_sydbcnt.

* Datensätze für Ausgabe aufbereiten

LOOP AT <lt_data> ASSIGNING <l_data>.

CLEAR l_out.

DO.

ASSIGN COMPONENT sy-index OF STRUCTURE <l_data> TO <l_field>.

IF sy-subrc = 0.

l_field = <l_field>.

CONCATENATE l_out l_field ';' INTO l_out.

ELSE.

EXIT.

ENDIF.

ENDDO.

* Datensatz in Datei schreiben

TRANSFER l_out TO l_filename.

ENDLOOP.

ENDSELECT.

* Ausgabedatei schließen

CLOSE DATASET l_filename.

IF NOT sy-subrc = 0.

MESSAGE s183(zr) DISPLAY LIKE 'E'.

RETURN.

ENDIF.

* Das war's

MESSAGE s081(zs) WITH 'Tabelle' l_tabname 'wurde gespeichert in Datei' l_filename.

*&---------------------------------------------------------------------*

*& Form show_status

*&---------------------------------------------------------------------*

FORM show_status USING p_count TYPE sydbcnt

p_sydbcnt TYPE sydbcnt.

* Lokale Daten

DATA: l_count TYPE string,

l_sydbcnt TYPE string,

l_progress1 TYPE string,

l_progress_percentage(2) TYPE n,

l_progress_text TYPE string.

l_count = p_count.

l_sydbcnt = p_sydbcnt.

* Prozentsatz der Verarbeitung berechnen

l_progress1 = trunc( l_count / l_sydbcnt * 100 ).

l_progress_percentage = l_progress1.

CONCATENATE l_count 'von' l_sydbcnt 'Sätzen gelesen (' l_progress_percentage '%)'

INTO l_progress_text SEPARATED BY space.

* Progress auf den GUI anzeigen

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

percentage = l_progress_percentage

text = l_progress_text.

ENDFORM. " show_status

Geschrieben

Bei mir macht die Zeile

CREATE DATA: lt_data TYPE STANDARD TABLE OF (l_tabname).

Probleme. So hab ichs gestern ja auch schon probiert, aber ich krieg immer den Fehler:

"TABLE" konnt nicht interpretiert werden. Mögliche Fehlerursachen: Schreibweise, oder Kommafehler.

Geschrieben

Wir sind zu dem Ergebnis gekommen, dass das scheinbar am erstellen einer Tabelle einer dynamischen Struktur im OO-Umfeld liegt. OO wurde erst vollständig in Release 4.7 implementiert.

Probier mal bitte testweise den Tabellennamen fest reinzuschreiben. Wenn das klappt, suchst du im OSS mal nach nem Hinweis wie das in 4.6 geht.

Eventuell kommt man da mit Support Packages schon ein Stück weiter. Hängt aber davon ab, auf welchem Releasestand ihr seid.

  • 4 Jahre später...
Geschrieben

hallo

ich muss auch dynamisch eine tabelle auslesen und in eine textdatei schreiben. das läuft bei mir soweit. jetzt habe ich das problem die daten aus der textdatei in die tabelle wieder einfügen. weiß evtl einer wie man es macht. weiß nicht wie ich das machen soll. habe es schon mit assign versucht aber das klappt leider nicht.

Zur Funktionsweise. Der Benutzer gibt in dem Selections Screen eine Tabelle an und gibt den Pfad der Datei an welche die Daten enthält für die Tabelle. Diese Daten müssen dann in die Tabelle wieder eingefügt werden. Es kann bei dem Selecten Screnn bei jeder Eingabe um eine andere Tabelle sich handeln.

mfg

commander

Geschrieben (bearbeitet)

Hi,

das hier sollte dir bei der Konvertierung helfen. Ich bin mal von einer Semikolon-getrennter Datei ausgegangen.

Den Update-Teil musste noch einfügen.

Wichtig ist, dass der Parameter S_STRUC ein Tabellentyp von deiner Tabelle ist. Die Info wird intern für die dynamische Objekterzeugung benötigt.

Sinnvollerweise hinterlegst du noch eine Tabelle aller zulässigen Zieltabellen damit da nicht Unsinn eingegeben werden kann.

Ansonsten, bei Fragen.... fragen

Greetz

Agent Purple

REPORT <Wie ich immer das Ding heisst>.

* Selection screen

PARAMETERS s_file TYPE dxfilename OBLIGATORY.

PARAMETERS s_struc TYPE dd40l-typename OBLIGATORY.

* Local types

TYPES tt_text1000 TYPE TABLE OF text1000.

* Global data

DATA g_tabname TYPE ddobjname.

DATA gt_file_data TYPE tt_text1000.

DATA gr_data TYPE REF TO data.

* Selection screen handling

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_file.

PERFORM f4_filename CHANGING s_file.

* Start

START-OF-SELECTION.

* Upload file

PERFORM upload USING s_file

CHANGING gt_file_data.

* Convert data

PERFORM convert_data USING gt_file_data s_struc

CHANGING gr_data g_tabname.

* Process data

PERFORM process USING gr_data g_tabname.

*&---------------------------------------------------------------------*

*& Form f4_filename

*&---------------------------------------------------------------------*

* Get filename

*----------------------------------------------------------------------*

FORM f4_filename CHANGING e_filename TYPE dxfilename.

* Local data

DATA l_filename TYPE eseftfront.

* Fet filename

CALL FUNCTION 'C13Z_FRONTEND_FILENAME_GET'

IMPORTING

e_filename = l_filename

EXCEPTIONS

internal_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

* Export filename

e_filename = l_filename.

ENDFORM. "f4_filename

*&---------------------------------------------------------------------*

*& Form upload

*&---------------------------------------------------------------------*

* Upload file

*----------------------------------------------------------------------*

FORM upload USING i_file TYPE dxfilename

CHANGING et_data TYPE tt_text1000.

* Local data

DATA l_filename TYPE string.

* Set parameter

l_filename = i_file.

* Upload file

CALL METHOD cl_gui_frontend_services=>gui_upload

EXPORTING

filename = l_filename

CHANGING

data_tab = et_data

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

not_supported_by_gui = 17

error_no_gui = 18

OTHERS = 19.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. "upload

*&---------------------------------------------------------------------*

*& Form read_target_structure

*&---------------------------------------------------------------------*

* Read DDic information of target structure

*----------------------------------------------------------------------*

FORM read_target_structure USING i_structure TYPE ttypename

CHANGING et_ddfields TYPE ddfields

e_tabname TYPE ddobjname.

* Local data

DATA l_ddtypeget TYPE ddtypeget.

DATA lt_ddtypes TYPE TABLE OF ddtypes.

DATA lt_dd40l TYPE TABLE OF dd40l.

FIELD-SYMBOLS <lt_ddtypes> TYPE ddtypes.

FIELD-SYMBOLS <lt_dd40l> TYPE dd40l.

* Set parameters

l_ddtypeget-tthd = 'X'.

APPEND INITIAL LINE TO lt_ddtypes ASSIGNING <lt_ddtypes>.

<lt_ddtypes>-typename = i_structure.

* Read table type info

CALL FUNCTION 'DD_TYPEINFO_GET'

EXPORTING

getstate = l_ddtypeget

TABLES

ddtypes_tab = lt_ddtypes

dd40l_tab = lt_dd40l.

* Error handling

IF lt_dd40l IS INITIAL.

MESSAGE e007(e2) WITH i_structure.

ENDIF.

* Get line type

READ TABLE lt_dd40l INDEX 1 ASSIGNING <lt_dd40l>.

e_tabname = <lt_dd40l>-rowtype.

* Read field info of line type

CALL FUNCTION 'DDIF_NAMETAB_GET'

EXPORTING

tabname = e_tabname

TABLES

dfies_tab = et_ddfields

EXCEPTIONS

not_found = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. "read_target_structure

*&---------------------------------------------------------------------*

*& Form transfer_single_field

*&---------------------------------------------------------------------*

* Transfer data of single field

*----------------------------------------------------------------------*

FORM transfer_single_field USING i_dfies TYPE dfies

i_source_field TYPE any

CHANGING e_target_field TYPE any.

* Local data

DATA l_exception TYPE REF TO cx_root.

* Transfer data

TRY.

e_target_field = i_source_field.

* Special handling for some data types

CASE i_dfies-datatype.

* CHAR

WHEN 'CHAR'.

* If ALPHA

IF i_dfies-convexit = 'ALPHA'

OR i_dfies-lowercase IS INITIAL.

* Convert

IF i_dfies-convexit = 'ALPHA'.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = e_target_field

IMPORTING

output = e_target_field.

ENDIF.

* Convert to upper case assording to field definition

IF i_dfies-lowercase IS INITIAL.

TRANSLATE e_target_field TO UPPER CASE.

ENDIF.

ENDIF.

* NUMC

WHEN 'NUMC' OR 'DATS' OR 'TIMS'.

* Init

IF i_source_field IS INITIAL.

CLEAR e_target_field.

ENDIF.

ENDCASE.

* Error message if field conversion fails

CATCH cx_root INTO l_exception.

sy-lisel = l_exception->if_message~get_longtext( ).

MESSAGE e001(00) WITH sy-lisel.

ENDTRY.

ENDFORM. "transfer_single_field

*&---------------------------------------------------------------------*

*& Form convert_data

*&---------------------------------------------------------------------*

* Convert file to data table

*----------------------------------------------------------------------*

FORM convert_data USING it_file_data TYPE tt_text1000

i_structure TYPE ttypename

CHANGING er_data TYPE REF TO data

e_tabname TYPE tabname.

* Local data

DATA lt_fields TYPE tt_text1000.

DATA lt_target_ddic TYPE ddfields.

FIELD-SYMBOLS <it_file_data> TYPE text1000.

FIELD-SYMBOLS <er_data> TYPE table.

FIELD-SYMBOLS <er_data_line> TYPE ANY.

FIELD-SYMBOLS <source_field> TYPE ANY.

FIELD-SYMBOLS <target_field> TYPE ANY.

FIELD-SYMBOLS <lt_target_ddic> TYPE dfies.

* Read DDic structure of target

PERFORM read_target_structure USING i_structure

CHANGING lt_target_ddic e_tabname.

* Create data object

CREATE DATA er_data TYPE (i_structure).

* Assign

ASSIGN er_data->* TO <er_data> CASTING TYPE (i_structure).

* Loop data table

LOOP AT it_file_data ASSIGNING <it_file_data>.

* Init

CLEAR lt_fields.

* Split structure into internal table

SPLIT <it_file_data> AT ';' INTO TABLE lt_fields.

* Append line to data object

APPEND INITIAL LINE TO <er_data> ASSIGNING <er_data_line>.

* Loop fields of source file

LOOP AT lt_fields ASSIGNING <source_field>.

* Read info of target field

READ TABLE lt_target_ddic INDEX sy-tabix ASSIGNING <lt_target_ddic>.

* Add some error handling here!!!

IF NOT sy-subrc = 0.

EXIT.

ENDIF.

* Assign target

ASSIGN COMPONENT sy-tabix OF STRUCTURE <er_data_line> TO <target_field>.

* Transfer data

PERFORM transfer_single_field USING <lt_target_ddic> <source_field>

CHANGING <target_field>.

ENDLOOP.

ENDLOOP.

ENDFORM. "convert_data

*&---------------------------------------------------------------------*

*& Form process

*&---------------------------------------------------------------------*

* Process data

*----------------------------------------------------------------------*

FORM process USING ir_data TYPE REF TO data

i_tabname TYPE ddobjname.

* Processing depends on the strucure.

CASE i_tabname.

WHEN '<Insert structure name here>'.

* perform whatever...

ENDCASE.

ENDFORM. "process

Bearbeitet von Agent Purple

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...