International Editable SALV Day 2022 – Year 14
Dear CL_SALV_TABLE Fans,
Welcome to February 8th, 2022 which is the fourteenth International Editable SALV Day. See below for a link to a blog I wrote to celebrate this day exactly one year ago
This day marks the 14th anniversary of James Hawthorne going cap in hand to SAP and suggesting maybe the CL_SALV_TABLE could be brought up to functional parity with the CL_GUI_ALV_GRID and have an option to be editable.
When I first started programming in ABAP round about the year 2000 the ALV had just came out in the form of function module REUSE_ALV_DISPLAY_LIST. That was perfect timing as it meant I never had to code a report using WRITE statements and the like.
Within a very short space of time SAP came up with CL_GUI_ALV_GRID and its friends. People forget that SAP started pushing classes as opposed to function modules as early as SAP 4.6C.
Anyway, what was good about CL_GUI_ALV_GRID was that you could dynamically (i.e. at runtime) control what user commands appeared at the top of the screen and moreover you could give the end user the facility to edit the data – just like a table control, even if the boxes were smaller and more fiddly to deal with.
Now I might prefer editing data using SM30 but one thing that cannot be denied was that for whatever reason an editable ALV grid was an enormous hit with business users. Pretty much every time a programmer was asked to create a read only report after a very short time they were asked to make that report interactive by making some of the cells editable and this was a really easy thing for the programmer to do.
Now imagine that Henry Ford had done a survey to ask people what it was they liked about driving a Model T Ford as opposed to riding a horse. Let us say the most popular answer was that a car has a roof so when you are travelling, and it rains you do not get drenched.
It would have been strange had Henry Ford reacted to that by deciding that all the new cars he would build would no longer have roofs and so would be open to the elements. No one would do something so illogical surely?
So when the successor to CL_GUI_ALV_GRID was announced it was very strange indeed that the “killer feature” as it were (editability) was removed.
The CL_SALV_TABLE had lots of positives – the field catalogue was generated automatically; you did not need to create a screen with a “control” inside (not that this was a difficult thing to do) and on paper at least the design was much more SOLID i.e., lots of small classes following the “single responsibility” principle.
All well and good and yet I think history will class CL_SALV_TABLE as a failed experiment purely because it cannot do the one thing the end users desire. So why should a programmer ever use it? They could start off with CL_SALV_TABLE but then would have to move back to CL_GUI_ALV_GRID when the – inevitable – request comes in to make the report interactive.
It has been noted that in CL_GUI_ALV_GRID the data editing feature is not officially supported. But it works – and so ten billion zillion SAP customers have been using that feature for ages, in the same way they use unreleased function modules.
And then there is the old chestnut that any second now every single SAP customer will stop using the SAP GUI and move 100% to UI5. That may indeed happen eventually, but I am not holding my breath. As another analogy when 4.6C came out in the year 2000 we the people were told in no uncertain terms that ABAP Objects was the way forward and that within about two seconds flat no serious ABAP programmer would ever use a FORM routine again.
Twenty-two years later and I wonder how many new FORM routines were created yesterday? I conducted some job interviews lately and though all the candidates knew what a global class was none of them had ever created a new Z one, just edited existing Z ones, despite having 8+ years of experience. Therefore, I put it to you, ladies and gentlemen of the jury, that like FORM routines the SAP GUI is here for the long run.
Therefore, even after 14 years I still feel the original request to bring CL_SALV_TABLE up to functional parity with CL_GUI_AV_GRID is not an unreasonable request. It is never going to happen but that is neither here nor there.
See you next year!