Assing / move-corresponding ??? <wa1> to <wa2>

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Assing / move-corresponding ??? <wa1> to <wa2>

Beitrag von Kleenmex (Specialist / 126 / 0 / 0 ) »
Hallo zusammen

Folgendes Problem ich lade div. Files hoch die alle div. Strukturen haben, nun habe ich pro file eine Struktur angleget aber die tabellen möchte ich noch mit dem Mandtanten versehen.....kann man irgend wie eine move-correspondig zwischen wa's machen??

Code: Alles auswählen.


DATA: tab1(30) TYPE c.
DATA: tab2(30) TYPE c.


FIELD-SYMBOLS:
<fstable> TYPE ANY TABLE,
<fstable1> TYPE ANY TABLE,
<fswa>    TYPE data,
<fswa1>    TYPE data,
<fsfield> TYPE data.

DATA:
b_ret TYPE c,
n_action TYPE i,
n_filelen TYPE i,
rc TYPE i,
tbl_files TYPE filetable,
s_filename TYPE string,
s_path TYPE string,
s_fullpath TYPE string,
x_header TYPE xstring,
obj_feservices TYPE REF TO cl_gui_frontend_services.


CREATE DATA inttab TYPE TABLE OF (tab1).
  ASSIGN inttab->* TO <fstable>.

  DATA:    w_filename TYPE string.

  CLEAR w_filename.
  MOVE pa_downl TO w_filename.

  CALL METHOD cl_gui_frontend_services=>gui_upload
    EXPORTING
      filename                = w_filename
      filetype                = 'ASC'
      has_field_separator     = 'X'
    CHANGING
      data_tab                = <fstable>
    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.

    tab2 = tab1(14).

    CREATE DATA inttab TYPE TABLE OF (tab2).
    ASSIGN inttab->* TO <fstable1>.

    LOOP AT <fstable> ASSIGNING <fswa>.

*-Problem  <fswa> hat ein Feld nicht darum muss irgend wie die WA in
*-die andere Transferiert werden...

*- move-corresponding <fswa> to <fswa1>

    INSERT INTO (tab2) VALUES <fswa1>
    ENDLOOP.

Bitte um hilfe

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


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

dafür eignet sich hervorangend der MODIFY-Befehl mit dem Zusatz 'WHERE <Bedingung> TRANSPORTING'.
Gruß
Ereglam


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

Modify

Beitrag von Kleenmex (Specialist / 126 / 0 / 0 ) »
ereglam hat geschrieben:Hallo Kleenmex,

dafür eignet sich hervorangend der MODIFY-Befehl mit dem Zusatz 'WHERE <Bedingung> TRANSPORTING'.
Sorry das verstehen ich nicht wie das gehen soll

Kannst du mir da helfen ??

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

ich muss eingestehen, dass ich etwas voreilig war, als ich meine Anwort schrieb. :oops:

Wenn ich es (jetzt ;) ) richtig verstehe, hast Du eine Datei, die im Blockformat vorliegt und in <fstable> geladen wird.
Anschließend soll der Inhalt diese Tabelle zeilenweise in die Tabelle <fstable1> übertragen werden, wobei dort das erste Feld das Feld Mandant ist. Ist das so richtig?

Dazu würde ich folgendes machen:

Code: Alles auswählen.

TYPES:
  BEGIN OF ts_tab1,
    feld1 TYPE >typ<,
...
  END   OF ts_tab1,
  BEGIN OF ts_tab2,
    mandt TYPE mandt.
* benamte Struktur erzeugen
    INCLUDE TYPE ts_tab1 AS data. 
TYPES:
  END   OF ts_tab2.
...
DATA:
  fswa1 TYPE ts_tab2.
...
    LOOP AT <fstable> ASSIGNING <fswa>. 
* Feldleiste de DB-Tabelle mit Mandanten versorgen (wobei das implizit ohnehin gemacht wird, wenn Zusatz CLIENT SPECIFIED im INSERT fehlt)
      fswa1-mandt = sy-mandt.
* Der Trick: da ob tab2 mit einem benamten INCLUDE (hier data) versehen wurede, kann man im Programm darauf zugreifen... ;-)
      fswa1-data = <fswa>. 
      INSERT INTO (tab2) VALUES fswa1.
    ENDLOOP. 
Alternativ könnte man zwar noch die Feldliste sich holen und mit ASSIGN COMPONENT jedes Feld einzeln zuweisen, aber um die Definition der Feldlisten (siehe oben) kommt man dann trotzdem nicht herum...
Gruß
Ereglam


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

Super danke viel mal

Beitrag von Kleenmex (Specialist / 126 / 0 / 0 ) »
ereglam hat geschrieben:Hallo Kleenmex,

ich muss eingestehen, dass ich etwas voreilig war, als ich meine Anwort schrieb. :oops:

Wenn ich es (jetzt ;) ) richtig verstehe, hast Du eine Datei, die im Blockformat vorliegt und in <fstable> geladen wird.
Anschließend soll der Inhalt diese Tabelle zeilenweise in die Tabelle <fstable1> übertragen werden, wobei dort das erste Feld das Feld Mandant ist. Ist das so richtig?

Dazu würde ich folgendes machen:

Code: Alles auswählen.

TYPES:
  BEGIN OF ts_tab1,
    feld1 TYPE >typ<,
...
  END   OF ts_tab1,
  BEGIN OF ts_tab2,
    mandt TYPE mandt.
* benamte Struktur erzeugen
    INCLUDE TYPE ts_tab1 AS data. 
TYPES:
  END   OF ts_tab2.
...
DATA:
  fswa1 TYPE ts_tab2.
...
    LOOP AT <fstable> ASSIGNING <fswa>. 
* Feldleiste de DB-Tabelle mit Mandanten versorgen (wobei das implizit ohnehin gemacht wird, wenn Zusatz CLIENT SPECIFIED im INSERT fehlt)
      fswa1-mandt = sy-mandt.
* Der Trick: da ob tab2 mit einem benamten INCLUDE (hier data) versehen wurede, kann man im Programm darauf zugreifen... ;-)
      fswa1-data = <fswa>. 
      INSERT INTO (tab2) VALUES fswa1.
    ENDLOOP. 
Alternativ könnte man zwar noch die Feldliste sich holen und mit ASSIGN COMPONENT jedes Feld einzeln zuweisen, aber um die Definition der Feldlisten (siehe oben) kommt man dann trotzdem nicht herum...
Super so geht es danke viel mal

Gruss Kleenmex

Seite 1 von 1

Vergleichbare Themen

1
Antw.
221
Views
move-datei
von HH_ABAP » 16.08.2023 11:28 • Verfasst in ABAP® für Anfänger
2
Antw.
4826
Views
Move Corresponding bei Feldsymbolen?
von MarkusW » 31.10.2007 09:27 • Verfasst in ABAP® Core
1
Antw.
5308
Views
Move-Corresponding mit interner Tabelle
von Dele » 13.10.2015 13:53 • Verfasst in Tips + Tricks & FAQs
1
Antw.
2175
Views
MOVE...PERCENTAGE im OO-Kontext
von newbie007 » 08.02.2012 15:08 • Verfasst in ABAP Objects®
0
Antw.
1303
Views
MOVE-CORRESPONDING für generische (TYPE ANY) Strukturen
von mtakacs » 17.10.2005 12:36 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor 4 Stunden von msfox gelöst 7 / 6044
ABAP - Mail so10 Text
vor 9 Stunden von retsch 6 / 130
selection-screen comment mit icon
vor 18 Stunden von DeathAndPain 9 / 1173

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

Nach MESSAGE TYPE E Felder entsperren
vor 4 Stunden von msfox gelöst 7 / 6044
ABAP - Mail so10 Text
vor 9 Stunden von retsch 6 / 130
selection-screen comment mit icon
vor 18 Stunden von DeathAndPain 9 / 1173

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor 5 Tagen von Manfred K. 1 / 938
BUSOBJEKT zu CMIS PHIO ermitteln
vor 3 Wochen von snooga87 1 / 2747