ABAP Field Symbols usage.docx

5
ABAP Field Symbols usage – Advanced use Declare a Field Symbols TYPES: TT_MARA TYPE STANDARD TABLE OF MARA. DATA: T_MARA TYPE TT_MARA. * FIELD-SYMBOLS: <LFS_MARA> LIKE LINE OF T_MARA. " << * " FIELD SYMBOL WITHOUT TYPE FIELD-SYMBOLS: <LFS_ANY_TAB> TYPE ANY TABLE, <LFS_ANY> TYPE ANY. APPEND and INSERT using Field Symbols * APPEND LINE APPEND INITIAL LINE TO T_MARA ASSIGNING <LFS_MARA>. <LFS_MARA>-MATNR = '123456'. * * INSERT TABLE INSERT INITIAL LINE INTO T_MARA ASSIGNING <LFS_MARA> INDEX 2. <LFS_MARA>-MATNR = 'ABCDEF'. Access ITAB rows using Field Symbols * READ TABLE READ TABLE T_MARA ASSIGNING <LFS_MARA> WITH KEY MATNR = '123456'. IF SY-SUBRC EQ 0. WRITE: <LFS_MARA>-MATNR.

Transcript of ABAP Field Symbols usage.docx

Page 1: ABAP Field Symbols usage.docx

ABAP Field Symbols usage – Advanced use

Declare a Field Symbols TYPES: TT_MARA TYPE STANDARD TABLE OF MARA.DATA: T_MARA TYPE TT_MARA.*FIELD-SYMBOLS: <LFS_MARA> LIKE LINE OF T_MARA. " <<*" FIELD SYMBOL WITHOUT TYPEFIELD-SYMBOLS: <LFS_ANY_TAB> TYPE ANY TABLE, <LFS_ANY> TYPE ANY. 

APPEND and INSERT using Field Symbols * APPEND LINEAPPEND INITIAL LINE TO T_MARA ASSIGNING <LFS_MARA>.<LFS_MARA>-MATNR = '123456'.** INSERT TABLEINSERT INITIAL LINE INTO T_MARA ASSIGNING <LFS_MARA> INDEX 2.<LFS_MARA>-MATNR = 'ABCDEF'. 

Access ITAB rows using Field Symbols * READ TABLEREAD TABLE T_MARA ASSIGNING <LFS_MARA> WITH KEY MATNR = '123456'.IF SY-SUBRC EQ 0. WRITE: <LFS_MARA>-MATNR.ENDIF.** ACCESS VIA LOOPLOOP AT T_MARA ASSIGNING <LFS_MARA>. WRITE: <LFS_MARA>-MATNR.ENDLOOP.  

Page 2: ABAP Field Symbols usage.docx

Modify an entry using Field-Symbols: * READ AND MODIFYREAD TABLE T_MARA ASSIGNING <LFS_MARA> WITH KEY MATNR = '123456'.IF SY-SUBRC EQ 0. <LFS_MARA>-ERSDA = SY-DATUM.ENDIF.** LOOP AND MODIFYLOOP AT T_MARA ASSIGNING <LFS_MARA>. <LFS_MARA>-ERSDA = SY-DATUM + 1ENDLOOP. 

CHECK field Symbols using IS ASSIGNEDCHECK IF FIELD SYMBOL IS ASSIGNED TO A VALID REFERENCE * CHECK IF FIELD-SYMBOL IS ASSIGNEDIF <LFS_MARA> IS ASSIGNED. WRITE: 'ASSIGNED'.ELSE. WRITE: 'UNASSIGNED'.ENDIF. 

Remove the Reference of the Field Symbols "REMVOE THE REFERENCEUNASSIGN <LFS_MARA>. 

Copy Internal Tables using two field-symbols DATA: LT_1 TYPE STANDARD TABLE OF T100.DATA: LT_2 TYPE STANDARD TABLE OF T100.FIELD-SYMBOLS: <LT_1> TYPE ANY TABLE.FIELD-SYMBOLS: <LT_2> TYPE ANY TABLE.*ASSIGN LT_1 TO <LT_1>.*SELECT * FROM T100 INTO TABLE <LT_1> UP TO 10 ROWS.

Page 3: ABAP Field Symbols usage.docx

*ASSIGN LT_2 TO <LT_2>.<LT_2> = <LT_1>.*DATA: LV_LINES TYPE I.LV_LINES = LINES( LT_2 ).WRITE: LV_LINES. 

Assign data using two field-symbols DATA: LT_1 TYPE STANDARD TABLE OF T100.DATA: LT_2 TYPE STANDARD TABLE OF T100.FIELD-SYMBOLS: <LS_1> TYPE T100.FIELD-SYMBOLS: <LS_2> TYPE T100.*SELECT * FROM T100 INTO TABLE LT_1 UP TO 10 ROWS.*LOOP AT LT_1 ASSIGNING <LS_1>. APPEND INITIAL LINE TO LT_2 ASSIGNING <LS_2>. <LS_2> = <LS_1>.ENDLOOP.*DATA: LV_LINES TYPE I.LV_LINES = LINES( LT_2 ).WRITE: LV_LINES. 

Field Symbol to access component by Name DATA: LT_1 TYPE STANDARD TABLE OF T100.FIELD-SYMBOLS: <LS_1> LIKE LINE OF LT_1.*SELECT * FROM T100 INTO TABLE LT_1 UP TO 10 ROWS.** DYNAMIC ACCESSDATA: LV_FIELD TYPE CHAR30.FIELD-SYMBOLS: <LV_FIELD> TYPE ANY.LV_FIELD = 'TEXT'.LOOP AT LT_1 ASSIGNING <LS_1>. ASSIGN COMPONENT LV_FIELD OF STRUCTURE <LS_1> TO <LV_FIELD>. CHECK <LV_FIELD> IS ASSIGNED. WRITE: / <LV_FIELD>.ENDLOOP.

Page 4: ABAP Field Symbols usage.docx

 

Field Symbol to access component by Component NumberDATA: lt_1 TYPE STANDARD TABLE OF t100.FIELD-SYMBOLS: <ls_1> LIKE LINE OF lt_1.*SELECT * FROM t100 INTO TABLE lt_1 UP TO 10 ROWS.** dynamic accessDATA: lv_comp_number TYPE i.FIELD-SYMBOLS: <lv_field> TYPE ANY.lv_comp_number = 4.LOOP AT lt_1 ASSIGNING <ls_1>. ASSIGN COMPONENT lv_comp_number OF STRUCTURE <ls_1> TO <lv_field>. CHECK <lv_field> IS ASSIGNED. WRITE: / <lv_field>.ENDLOOP.