12-21-2018 9:32 AM
I am getting this error when i perform sum in ALV on particular field.
Runtime Errors MOVE_TO_LIT_NOTALLOWED_NODATA
Error Details
Short text
Error at assignment: Overwritten protected field.
What happened?
Error in the ABAP Application Program
The current ABAP program "SAPLKKBL" had to be terminated because it has
come across a statement that unfortunately cannot be executed.
SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
FORM SUM_UNIT_OUT_CHECK "INS K_SUBTOTEH
USING VALUE(VFLG_SPLITLINE) TYPE C "INS K_SUBTOTEH
RS_SORT TYPE KKBLO_SORT_EXTEND. "INS K_SUBTOTEH
DATA: LFLG_SHOW(1) TYPE C.
FIELD-SYMBOLS:
<L_UNIT>.
* <ls_dep_field> type dep_field,
* <ls_fieldcat> type kkblo_fieldcat,
* <ls_ref_fieldcat> type kkblo_fieldcat.
DATA:
LS_DEP_FIELD TYPE DEP_FIELD,
LS_FIELDCAT TYPE KKBLO_FIELDCAT.
* Prüfung für alle referenzierten Einheitsfelder
* loop at gt_stack-t_dep_field assigning <ls_dep_field>.
LOOP AT GT_STACK-T_DEP_FIELD INTO LS_DEP_FIELD.
CLEAR LFLG_SHOW.
* Prüfung für jedes Kennzahlfeld, daß darauf referenziert
* loop at <ls_dep_field>-t_ref_fieldcat assigning <ls_ref_fieldcat>.
*+++ BRAUNMI LOOP mit ASSIGNING for FIELDCAT
FIELD-SYMBOLS: <LS_REF_FIELDCAT> TYPE KKBLO_FIELDCAT.
LOOP AT LS_DEP_FIELD-T_REF_FIELDCAT ASSIGNING <LS_REF_FIELDCAT>.
* Aktuellen Feldkatalogeintrag zur Kennzahl besorgen
READ TABLE GT_STACK-IT_FIELDCAT INTO LS_FIELDCAT
WITH KEY FIELDNAME = <LS_REF_FIELDCAT>-FIELDNAME
TABNAME = <LS_REF_FIELDCAT>-TABNAME.
IF SY-SUBRC = 0.
* Nur die betrachten, für die auch aktuell summiert wird
CHECK NOT LS_FIELDCAT-DO_SUM IS INITIAL.
* Wenn mindestens eine Kennzahl auf der Liste ist, muß
* Einheit angezeigt werden
IF LS_FIELDCAT-NO_OUT NE 'X'.
LFLG_SHOW = 'X'.
EXIT.
ENDIF.
ENDIF.
ENDLOOP.
* LOOP AT LS_DEP_FIELD-T_REF_FIELDCAT INTO LS_REF_FIELDCAT.
*
** Aktuellen Feldkatalogeintrag zur Kennzahl besorgen
** read table gt_stack-it_fieldcat assigning <ls_fieldcat>
** with key fieldname = <ls_ref_fieldcat>-fieldname
** tabname = <ls_ref_fieldcat>-tabname.
* READ TABLE GT_STACK-IT_FIELDCAT INTO LS_FIELDCAT
* WITH KEY FIELDNAME = LS_REF_FIELDCAT-FIELDNAME
* TABNAME = LS_REF_FIELDCAT-TABNAME.
* IF SY-SUBRC = 0.
** Nur die betrachten, für die auch aktuell summiert wird
** check <ls_fieldcat>-do_sum = 'X'.
** CHECK LS_FIELDCAT-DO_SUM = 'X'.
* CHECK not LS_FIELDCAT-DO_SUM is initial.
*
** Wenn mindestens eine Kennzahl auf der Liste ist, muß
** Einheit angezeigt werden
** if <ls_fieldcat>-no_out ne 'X'.
* IF LS_FIELDCAT-NO_OUT NE 'X'.
* LFLG_SHOW = 'X'.
* EXIT.
* ENDIF.
* ENDIF.
* ENDLOOP.
* Wenn die Einheit gleichzeitig das aktuelle
* Zwischensummenkriterium ist
IF LS_DEP_FIELD-S_DEP_FIELDCAT-FIELDNAME = "INS K_SUBTOTEH
RS_SORT-FIELDNAME. "INS K_SUBTOTEH
* in einer Split-Zeile nie die Einheit ausgeben,
* da diese in der aktuellen Zwischensumme immer
* homogen sein muß und deshalb schon in der ersten
* Zeile ausgegeben wurde
IF VFLG_SPLITLINE = 'X'. "INS K_SUBTOTEH
CLEAR LFLG_SHOW. "INS K_SUBTOTEH
* in der ersten Zeile immer die Einheit ausgeben,
* da diese Zwischensummenkrit. ist und deshalb
* auch erscheinen muß, falls keine Kennzahl diese
* referenziert
ELSE. "INS K_SUBTOTEH
LFLG_SHOW = 'X'. "INS K_SUBTOTEH
ENDIF. "INS K_SUBTOTEH
ENDIF. "INS K_SUBTOTEH
IF LFLG_SHOW IS INITIAL.
* assign component <ls_dep_field>-s_dep_fieldcat-fieldname
ASSIGN COMPONENT LS_DEP_FIELD-S_DEP_FIELDCAT-FIELDNAME
OF STRUCTURE T_OUTTAB TO <L_UNIT>.
----->>>>>CLEAR <L_UNIT>.
ENDIF.
ENDLOOP.
ENDFORM. " SPLIT_LINE_CHECK
12-21-2018 11:52 AM
It tells you why.
The field you are trying to change is either a string literal or a constant.
It would help if you named what the 'particular' field is - my psychic powers are not strong at the moment.