'abap - Field "ZCRM_MLS2" is unknown Error
I am getting a error of "Field "ZCRM_MLS2" is unknown." at Line 23. Do you guys have any idea? Thanks in advance.
REPORT zcrm_mls_program2.
DATA: lv_name_surname TYPE zcrm_dt_ml2,
lv_age TYPE zcrm_dt_ml1,
lv_done TYPE xfeld,
lt_alldata TYPE zcrm_mls2,
ls_data TYPE zcrm_mls2 .
SELECT * FROM zcrm_mls2
WHERE done IS INITIAL INTO @lt_alldata.
ENDSELECT.
IF sy-subrc is INITIAL .
MODIFY zcrm_mls3 FROM lt_alldata.
LOOP at zcrm_mls2 INTO ls_data. " <==== line number 23
ls_data-done = 'X'.
MODIFY zcrm_mls3 FROM ls_data.
ENDLOOP.
ENDIF.
Solution 1:[1]
Just fo fun
REPORT zcrm_mls_program2.
DATA: lt_alldata TYPE STANDARD TABLE OF zcrm_mls2 WITH EMPTY KEY,
ls_data TYPE zcrm_mls2.
*----------------------------------------------------------------------*
*1st version
SELECT * FROM zcrm_mls2
WHERE done = @space INTO @ls_data.
APPEND ls_data TO lt_alldata.
ENDSELECT.
IF sy-subrc IS INITIAL .
LOOP AT lt_alldata INTO ls_data.
ls_data-done = 'X'.
MODIFY zcrm_mls3 FROM ls_data.
ENDLOOP.
COMMIT WORK.
ENDIF.
*----------------------------------------------------------------------*
*2nd version
SELECT *
FROM zcrm_mls2
INTO TABLE @lt_alldata
WHERE done = @space
.
IF sy-subrc IS INITIAL .
LOOP AT lt_alldata INTO ls_data.
ls_data-done = 'X'.
MODIFY zcrm_mls3 FROM ls_data.
ENDLOOP.
COMMIT WORK.
ENDIF.
*----------------------------------------------------------------------*
*3rd version
SELECT *
FROM zcrm_mls2
INTO TABLE @lt_alldata
WHERE done = @space
.
IF sy-subrc IS INITIAL .
LOOP AT lt_alldata INTO ls_data.
ls_data-done = 'X'.
MODIFY lt_alldata INDEX sy-tabix FROM ls_data .
ENDLOOP.
MODIFY zcrm_mls3 FROM TABLE lt_alldata.
COMMIT WORK.
ENDIF.
*----------------------------------------------------------------------*
*4th version
SELECT *
FROM zcrm_mls2
INTO TABLE @lt_alldata
WHERE done = @space
.
IF sy-subrc IS INITIAL .
LOOP AT lt_alldata REFERENCE INTO DATA(lps_data).
lps_data->done = 'X'.
ENDLOOP.
MODIFY zcrm_mls3 FROM TABLE lt_alldata.
COMMIT WORK.
ENDIF.
*----------------------------------------------------------------------*
*5th version
SELECT *
FROM zcrm_mls2
INTO TABLE @lt_alldata
WHERE done = @space
.
IF sy-subrc IS INITIAL .
MODIFY lt_alldata FROM VALUE #( done = 'X' ) TRANSPORTING done WHERE done = space.
MODIFY zcrm_mls3 FROM TABLE lt_alldata.
COMMIT WORK.
ENDIF.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | alezhu |
