Application Development 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: 

Runtime Errors MOVE_TO_LIT_NOTALLOWED_NODATA.

pram_1991
Participant
0 Kudos

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
1 REPLY 1

former_member182550
Active Contributor

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.