fidley / falv

FALV - Fast ALV Grid
https://abapblog.com
GNU General Public License v3.0
141 stars 52 forks source link

program errors in S/4 Hana 2020 #64

Closed jani80k closed 3 years ago

jani80k commented 3 years ago

Hi, on S4CORE 105 0000 SAP_ABA 75F 0000 -

I get this error on all the example programs whenever "add_button" is used.

Program errors

Message no. 0K534

Diagnosis

A common cause is that the output table passed to the ALV is not defined globally but locally. Thus, the reference to the table is lost. The ALV no longer has an output table.

Procedure

Define the output table globally.

fidley commented 3 years ago

Hi, have you had problems on other releases? So far this was working without issues? Probably I will not have an access to S/4 2020 until mid year :(

Cheers Łukasz

jani80k commented 3 years ago

I will do some more investigation tomorrow but this clearly seems to come from SAP standard.. Maybe I find out some more details... the error message seems misleading- if I google it it is years old...

fidley commented 3 years ago

thanks, normally this error was appearing when you used a private table to display in grid that was editable as far as I remember.

jani80k commented 3 years ago

alvgrid issue alvgrid issue_2

This is where it goes wrong, e.g. in ZDEMO_FALV08 latest version on first add_button method call. On my pre-upgrade Dev System that report is working...

jani80k commented 3 years ago

The difference between the system where it is working and the system where I am getting the error is this: grafik In the debugger for some strange reason with F5 the system does not go inside the method me->set_toolbar_interactive but throws an exception. On my new S/4 Hana Box, F5 goes inside that method and causes the issue showing the error popup. The class that contains this method is CL_GUI_ALV_GRID on both systems. So the error was just not happening in my old system because the system never executed that method maybe? If you debug, does your system go inside that method?

fidley commented 3 years ago

Really strange, as there is catch of CX_ROOT then the exception should be handled. I just tried in my "older" sandboxes and it works like that. In your case it is not catched?

jani80k commented 3 years ago

No, if I press F5 in the debugger, it behaves like F6 and an exception is raised. In the S/4 System F5 behaves normally and at some point a message is raised, there is nothing to catch.

fidley commented 3 years ago

Try replacing the code of refresh_toolbar method with this one. It should avoid calling the toolbar objects before first display happens. And let me know if this helps.

  method refresh_toolbar.
    check cl_gui_alv_grid=>offline( ) is initial.
    check grid->m_init_toolbar eq space.
    try.
        me->set_toolbar_interactive(  ).
      catch cx_root.
        "in case method is called before the display of grid
        "no need to do anything with that
        clear sy-subrc.
    endtry.
    r_falv = me.
  endmethod.
jani80k commented 3 years ago

It seems ok, now. Thanks! Should I check for any side effects?

fidley commented 3 years ago

I assume there is none, but you could check of course. I did some checks on older releases and I had no issues. That is why I will commit this change soon.

jani80k commented 3 years ago

Cool, thx.