Dynamischer ("Dirty") Assign

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Dynamischer ("Dirty") Assign

Beitrag von Gast ( / / 0 / 3 ) »
Hallo! Bei noch ABAP-Neuling und habe mir im Forum schon die Einträge zum dynamischen ("Dirty") Assign angesehen, jedoch funktioniert es bei mir nicht. Vielleicht weiß hier ja jemand Rat.

Ich möchte von einem FuBa aus auf einen Parameter des rufenden Reports zugreifen.

R/3 Release 4.6C

Mein Test-Code:

Report:

Code: Alles auswählen.

REPORT zs_test_mn_2.

PARAMETER: p_werk TYPE t001w-werks DEFAULT '0001'.

START-OF-SELECTION.
  CALL FUNCTION 'ZS_TEST_MN'.
FuBa:

Code: Alles auswählen.

FUNCTION zs_test_mn.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"----------------------------------------------------------------------

  DATA: var(6) TYPE c VALUE 'p_werk'.

  FIELD-SYMBOLS: <var>.

  ASSIGN ('(sy-cprog)(var)') TO <var>.
  IF sy-subrc = 0.
    WRITE: 'HURRA!'.
  ELSE.
    EXIT.
  ENDIF.

ENDFUNCTION.
Sowohl Report als auch FuBa sind nur lokal angelegt.

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


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

dieser ASSIGN funktioniert m.W. nur bei global definierten Variablen (oder Parametern in FB's).
Gruß
Ereglam


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

Beitrag von BesenWesen (Specialist / 183 / 0 / 0 ) »
hi,

du musst bei deinem FuBa einen Import-parameter einrichten (Registerkarte Import) und diesen musst du dann beim Aufruf fuellen.

Code: Alles auswählen.

REPORT zs_test_mn_2. 

PARAMETER: p_werk TYPE t001w-werks DEFAULT '0001'. 

START-OF-SELECTION. 
  CALL FUNCTION 'ZS_TEST_MN'
* hier wird uebergeben
exporting 
e_werk = p_werk
.
und dein FuBa saehe dann ungefaehr so aus.

Code: Alles auswählen.

FUNCTION zs_test_mn. 
*"---------------------------------------------------------------------- 
*"*"Lokale Schnittstelle: 
*"  IMPORTING
*"     VALUE(E_WERK) TYPE  CHAR3
*"---------------------------------------------------------------------- 

*  DATA: var(6) TYPE c VALUE 'p_werk'. 

  FIELD-SYMBOLS: <var>. 

  ASSIGN ('(sy-cprog)(var)') TO <var>. 
  IF sy-subrc = 0. 
    WRITE: 'HURRA!'. 
  ELSE. 
    EXIT. 
  ENDIF. 

ENDFUNCTION. 
Gruss
BesenWesen

Beitrag von Gast ( / / 0 / 3 ) »
Und wie könnte ich dann dynamisch auf Parameter/SelectOptions des rufenden Reports zugreifen, ohne Schnittstelle, wenn das da oben generell nicht geht?

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
offiziell: überhaupt nicht!

Inoffiziell mit besagtem ASSIGN (ich hatte mich von der Angabe 'lokal' irritieren lassen):

Code: Alles auswählen.

ASSIGN ('(ZS_TEST_MN_2)P_WERK') TO <var>. 
Sollte funktionieren, weil P_WERK im Report global definiert ist.

PS:
SAP hat verschiedentlich damit Probleme, wenn die Bezeichner bei dynamischen Zugriffen nicht groß geschrieben sind.

PPS:
diese Variante sollte ohnehin NUR dann verwendet werden, wenn es absolut keine andere Möglichkeit (z.B. EXPORT/IMPOPRT MEMORY etc.) gibt!!!
Gruß
Ereglam


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

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »

Code: Alles auswählen.

concatenate '(' sy-cprog ') p_var into feldname.
ASSIGN (feldname)...
Gruß,
Enno

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1648
Views
Dirty Assign
von allgrinder » 10.08.2015 11:14 • Verfasst in ABAP® für Anfänger
9
Antw.
6090
Views
Dirty Assign und danach Änderung
von FelixFICO » 11.03.2016 15:08 • Verfasst in ABAP® Core
3
Antw.
4249
Views
Dirty Assign auf Variablen einer Klasse
von jensschladitz » 17.01.2019 11:23 • Verfasst in ABAP® Core
7
Antw.
1393
Views
AIF: Dirty assign in background funktioniert nicht?
von Romaniac » 02.01.2023 11:10 • Verfasst in ABAP® Core
5
Antw.
3030
Views
Dirty assign auf Feld in interner Tabelle mit Index
von Romaniac » 06.12.2019 12:31 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 35 Minuten von msfox 18 / 10858
Dialog-Container mit Toolbar/Status
vor 3 Stunden von black_adept gelöst 27 / 3966
IT0024 Qualifikationen CP-ID
vor 4 Stunden von ArjenR 1 / 46

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

Trennen Strasse und Hausnummer
vor 35 Minuten von msfox 18 / 10858
Dialog-Container mit Toolbar/Status
vor 3 Stunden von black_adept gelöst 27 / 3966
IT0024 Qualifikationen CP-ID
vor 4 Stunden von ArjenR 1 / 46

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 4 Stunden von ArjenR 1 / 46
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2978
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9566