Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

variable reference

Former Member
0 Likes
720

I Have to refer a variable using another variable..

Using that variable i have to set the value to that refered variable..

for example

I have a variable called matnr01 to matnr12..

I Have to refer the variable like

field1 = 'matnr01'.

If iam setting the value to the field1..it should set the value to matnr01..(like pointer concept in c)

Is it Possible in ABAP?

Pls reply immediately.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
679

Hi,

The same thing can be put into a loop as below.

DATA: matnr01 like mara-matnr,

matnr02 like mara-matnr,

matnr03 like mara-matnr,

matnr04 like mara-matnr.

field-symbols <F1> type mara-matnr.

data: varname(7) type c.

data: indx type n.

do 4 times.

indx = sy-index.

concatenate 'matnr0' indx into varname.

Assign (varname) to <F1>.

<F1> = indx.

enddo.

-Abhijit.

5 REPLIES 5
Read only

Former Member
0 Likes
679

Hi

Try using the code below:

DATA: matnr01 like mara-matnr,

matnr02 like mara-matnr,

matnr03 like mara-matnr,

matnr04 like mara-matnr.

field-symbols <F1> type mara-matnr.

Assign matnr01 to <F1>.

<F1> = '100'.

Assign matnr02 to <F1>.

<F1> = '200'.

Assign matnr03 to <F1>.

<F1> = '300'.

Assign matnr04 to <F1>.

<F1> = '400'.

Write : matnr01, matnr02, matnr03, matnr04.

Hope this helps.

-Abhijit

Message was edited by: Abhijit Deshmukh

Read only

0 Likes
679

Hi Abijith,

Thanks for the reply..

Move '100' to (var_name) shows me a error in that line.

It's not working..

Is there any other way...

Thanks..

Read only

Former Member
0 Likes
679

Hi Priya,

I think you are talking about field symbols in ABAP.

Just see the definition of a field symbol:

Field symbols are placeholders or symbolic names for other fields. They do not physically reserve space for a field, but point to its contents. A field symbol cam point to any data object.Whenever you address a field symbol in a program, you are addressing the field that is assigned to the field symbol

syntax for field symbol is

FIELD-SYMBOLS <Fieldsymbolname> TYPE type_name.

eg: FIELD-SYMBOLS <FS> TYPE I.

You can assign a field symbol to any field using ASSIGN statement.

Let me give u an example of how to convert ASCII to char using field-symbols

data : c.

field-symbols : <n> type x.

data : rn type i.

c = 'A'.

assign c to <n> casting.

move <n> to rn.

write rn.

Output: the ascii value of 'A' is displayed.

I hope u got some idea.

Regards,

Sylendra.

Read only

Former Member
0 Likes
680

Hi,

The same thing can be put into a loop as below.

DATA: matnr01 like mara-matnr,

matnr02 like mara-matnr,

matnr03 like mara-matnr,

matnr04 like mara-matnr.

field-symbols <F1> type mara-matnr.

data: varname(7) type c.

data: indx type n.

do 4 times.

indx = sy-index.

concatenate 'matnr0' indx into varname.

Assign (varname) to <F1>.

<F1> = indx.

enddo.

-Abhijit.

Read only

Former Member
0 Likes
679

Hi priya,

1. Very simple.

2. We have to use FIELD-SYMBOLS

and another variable for FIELD NAME.

3. just copy paste in new program

(there will be a selection screen,

there u just enter

MATNR01

MATNR02

MATNR03 OR

MATNR04

It will give the value in that variable.

4.

REPORT abc.

PARAMETERS : fldname(30) TYPE c default 'MATNR01'.

*----


DATA : matnr01 LIKE mara-matnr,

matnr02 LIKE mara-matnr,

matnr03 LIKE mara-matnr,

matnr04 LIKE mara-matnr.

FIELD-SYMBOLS : <f> TYPE ANY.

*----


matnr01 = 'Mat 01'.

matnr02 = 'Mat 02'.

matnr03 = 'Mat 03'.

matnr04 = 'Mat 04'.

*----


ASSIGN (fldname) TO <f>.

WRITE 😕 <f>.

regards,

amit m.