Skip to Content

SLIN: get explanation (~long text) on warning (Message Code UNR 3204)

Hi,

when SLIN gives me a warning saying something is wrong, where can I get more Info about that check (e.g. why and under what circumstances is that a problem, how to do it better..)

This is a general question, but of course I also have a example at hand:

"Do not modify table rows in tables with control level processing."

(I get this on a NW7.50 system).

I guess I should be able to look up the Message Code "UNR 3204" somewhere, but how?

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • avatar image
    Former Member
    Dec 22, 2016 at 09:08 AM

    Hello Joachim,

    in case the warning is less than obvious and needs an explanation, an info button is displayed. In this case, however, the warning appears pretty obvious. When using control level processing (Statements AT FIRST/NEW/LAST inside LOOP) the table must not be modified within the loop. Otherwise, the results are unpredictable. See the ABAP online documentation for "AT - itab".

    Regards, Hagen

    Add comment
    10|10000 characters needed characters exceeded

  • Dec 22, 2016 at 11:24 AM

    Hi Hagen, thanks for your answers!

    So for the general part: so if there is no info button, the message seemed obvius enought to the author of the test, ok.

    But why is the message code provided, if theres no place to look it up? (More general: What's the message code about?).

    For my example with the AT NEW:

    I have some coding like this:

      LOOP AT big_table ASSIGNING <data>.
        AT NEW matnr.
          lv_index = 0.
        ENDAT.
        lv_index = lv_index + 1.
        IF lv_index > 5.
    	<data>-delete_flag = ABAP_TRUE
        ENDIF.
      ENDLOOP.
    
    
    "delte the lines we marked as "not interesting"
    delete big_tale wherer delete_flag = abap_true. 
    

    So you're saying that causes unpredictable behavior? (delete_flag is the last column).

    I looked up the help for "at new", all I see there is: - The internal table cannot be modified within the LOOP loop. --> well, it can be, at least in my system - is that a bug?

    While I agree that deleting or adding lines in such a loop or fiddling around with the first few columns is not a good idea, I have the "feeling" that changing the last column like above should be fine. How would you re-write the above coding?

    best

    Joachim

    Add comment
    10|10000 characters needed characters exceeded