gelöst Dynamische Feldzuweisung


Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Moderatoren: Jan, Steff

gelöst Dynamische Feldzuweisung

Beitragvon SAP_ENTWICKLER » 06.12.2017, 15:45

Hallo,

ich habe Probleme mit der dynamischen Zuweisung von Feldwerten. Für den Experten ist das sicher BLABLA, ich habe damit aber noch nicht so häufig gearbeitet.


1.) Möchte ich den Wert eines Feldes GV_XYZ dem Feld einer Struktur zuweisen, wobei ich das Zielfeld (XYZ-4711NN), NN ist numerisch von 1 bis 99, über die Berechnung der Stellen NN dynamisch ermitteln muss.

2.) Ist auch das Quellfeld dynamisch, der Name kommt als ABC-BLABLA aus dem Feld einer Tabelle wobei ich auch hier das Zielfeld (XYZ-4711NN), NN ist numerisch von 1 bis 99, über die Berechnung der Stellen NN dynamisch ermitteln muss.

Daran versuche ich mich schon eine ganze Zeit.

Kann mir jemand helfen?

Vielen Dank

Norbert
SAP_ENTWICKLER
Specialist
 
Beiträge: 299
Registriert: 27.05.2013, 09:40
Dank erhalten: 4 mal
Ich bin: Berater/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Dynamische Feldzuweisung

Beitragvon Dele » 06.12.2017, 16:24

Vielleicht hilft dir ja folgendes kleines Beispiel:
Code: Alles auswählen
report.

data:    begin of my_structure,
               fld01    type i,
               fld02    type i,
               fld03    type i,
               fld04    type i,
               fld05    type i,
               fld06    type i,
               fld07    type i,
               fld08    type i,
               fld09    type i,
         end   of my_structure.

data:    begin of component,
               root     type c length 3 value 'FLD',
               nr       type n length 2,
         end   of component.

field-symbols: <fldxx>  like my_Structure-fld01.

do 9 times.
   move sy-index to component-nr.
   assign component component of structure my_structure to <fldxx>.
   write: /01 component, <fldxx>.
enddo.

do 9 times.
   move sy-index to component-nr.
   assign component component of structure my_structure to <fldxx>.
   compute <fldxx> = sy-index * 10.
enddo.

uline.
do 9 times.
   move sy-index to component-nr.
   assign component component of structure my_structure to <fldxx>.
   write: /01 component, <fldxx>.
enddo.

Für diese Nachricht hat Dele einen Dank bekommen :
SAP_ENTWICKLER
Dele
Specialist
 
Beiträge: 281
Registriert: 06.05.2005, 11:07
Dank erhalten: 41 mal

Re: Dynamische Feldzuweisung

Beitragvon SAP_ENTWICKLER » 07.12.2017, 06:19

Hallo,

irgendwie hilft das nicht.

Code: Alles auswählen
* Position übernehmen
    CONCATENATE gc_oustruc 'POS' gv_posit INTO gv_feldname.
    ASSIGN gv_feldname TO <fnamez>.
    gv_numc2 = gs_qmlbl-pos.
    ASSIGN (gv_numc2) TO <fnamez>.
 


<fnamez> habe ich den Namen des Zielfeldes in der Ausgabestruktur zugewiesen. gs_qmlbl-pos beinhaltet den Wert, der dorthin übertragen werden soll. Nach Adam Riese müsste nach Abarbeitung des Codings im GS_OUTDATA-POSNN der Wert des Feldes gs_qmlbl-pos stehen. Ist aber nicht der Fall. Die Richtigkeit der Namen habe ich überprüft.

Ich habe keine Idee mehr!!!!

Viele Grüße
Norbert
SAP_ENTWICKLER
Specialist
 
Beiträge: 299
Registriert: 27.05.2013, 09:40
Dank erhalten: 4 mal
Ich bin: Berater/in

Re: Dynamische Feldzuweisung

Beitragvon Wann » 07.12.2017, 08:59

Das erste und zweite Assign gefällt mir nicht.
Das würde bei mir - ohne viel zu ändern - eher so aussehen:

CONCATENATE gc_oustruc 'POS' gv_posit INTO gv_feldname.
ASSIGN (gv_feldname) TO <fnamez>.
gv_numc2 = gs_qmlbl-pos.
<fnamez> = gv_numc2.

Für diese Nachricht hat Wann einen Dank bekommen :
SAP_ENTWICKLER
Wann
ForumUser
 
Beiträge: 8
Registriert: 08.01.2015, 09:37
Dank erhalten: 2 mal
Ich bin: Entwickler/in

Re: Dynamische Feldzuweisung

Beitragvon Dele » 07.12.2017, 09:06

Dein Coding ist mir nicht ganz klar, weil ich die Datendeklarationen nicht kenne.

data: begin of component,
root type c length 14 value ''GS_OUTDATA-POS',
nr type n length 2,
end of component.

move 01 to component-nr. "--> danach steht in component ''GS_OUTDATA-POS01'
assign (component) to <target_field>. "--> danch zeigt <target_field> auf ''GS_OUTDATA-POS01'
move "neuer Wert" to <target_field>. "--> danach steht in ''GS_OUTDATA-POS01 der neue Wert

move 02 to component-nr. "--> danach steht in component ''GS_OUTDATA-POS02'
assign (component) to <target_field>. "--> danch zeigt <target_field> auf ''GS_OUTDATA-POS02'
move "neuer Wert" to <target_field>. "--> danach steht in ''GS_OUTDATA-POS02 der neue Wert

Für diese Nachricht hat Dele einen Dank bekommen :
SAP_ENTWICKLER
Dele
Specialist
 
Beiträge: 281
Registriert: 06.05.2005, 11:07
Dank erhalten: 41 mal


Zurück zu ABAP® Core

  Aktuelle Beiträge   
DSGVO in SAP umsetzen
vor 41 Minuten von ralf.wenzel 0 Antw.
Berechtigungsprüfung Dialog- vs. RFC-User im Single Sign On
vor 2 Stunden von sapdepp 0 Antw.
Reporttransaktion für andere Mitarbeiter zugänglich machen
vor 5 Stunden von Tron 1 Antw.
Materialkalkulation
vor 8 Stunden von erp-bt 1 Antw.
gelöst Barcodes in Warenbewegungen & Belegen
vor 7 Stunden von marc.braun 1 Antw.

  Ähnliche Beiträge beta
Dynamische Selektionsbildschirme
28.11.2003, 06:28 von Olaf P. 6 Antw.
Dynamische Where-Bedingung
29.03.2004, 17:22 von Mrs. Hilflos 9 Antw.
dynamische Tabellen
14.01.2005, 09:49 von popeiko 1 Antw.
Dynamische IDocs.
28.04.2005, 06:13 von H0schie 1 Antw.
dynamische Tabellen
15.06.2005, 12:42 von gast 1 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!