International Editable SALV Day – 2017
International Editable SALV Day 2017 – Year Nine
Dear CL_SALV_TABLE Fans,
Welcome to February 8th, 2017 which is the ninth International Editable SALV Day. See below for a link to a blog I wrote to celebrate this day exactly one year ago:-
The gist of the problem is that the end users are no longer content to sit and stare at a report with love in their eyes, but rather want to interact with it, changing values and saving them to the database.
In other words as time has gone by the worlds of analytics and transaction have blurred together. No longer do you print out a report, use that to perform various transactions in SAP one by one, and then print out another report to see if you remembered to make all the changes you wanted.
This you can do with a report created using CL_ALV_GRID. This you cannot do with a report created using the “new improved replacement” i.e. CL_SALV_TABLE.
The business requirements almost always want the ability for grids to be editable, and as developers we want to use the newest technology – with CL_SALV_TABLE you also get the bonuse it creates the field catalogue for you.
There is a simple answer surely – since CL_SALV_TABLE is nothing more than a fancy wrapper for CL_ALV_GRID why can’t SAP just expose a little bit more of the underlying functionality of the class at the core? In the same way a subclass can do everything its parent class can do and more.
This day marks the 9th 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.
SAP told him to go and stand in the corner with a dunces cap on his head for even daring to suggest such a thing.
I also want the ability to be able to programmatically add icons to the command bar, like I can do with CL_ALV_GRID. You can do that sometimes, sort of, with CL_SALV_TABLE, but not in all situations.
The best workaround solution is to use the CL_SALV_TABLE for the one thing it is good at – creating the field catalogue, and then pass that field catalogue into a real instance of CL_GUI_ALV_GRID and then Bob is Your Uncle. It would be great if you did not have to do that, but there you go.
Anyway it is obvious this is never going to change, but that is no reason not to keep on and on about it like a broken record. The point is not even about the ALV GRID as such. The point is about thousands of SAP developers all begging SAP to give them something to make their lives easier and getting the finger in return, on the grounds that we don’t really know what we actually want.
These days SAP keeps talking about “design thinking” and “empathy” with the customers. Well in this case the product is the tools (like ALV classes) that SAP provide the customers (developers in this case). Empathy should be trying to put yourselves in the shoes of the developer and working out why so many people keep asking for something again and again, instead of unilaterally deciding the whole lot of them are a pack of fools who don’t know a good thing when they see it.
With that piece of vitriol out of the way let us turn to the argument that the whole thing is moot anyway, as we should no longer be using the SAP GUI because it is old fashioned / ugly.
This may well be so, but I bet a pound to a bucket of ferrets a lot of companies are still using the SAP GUI in a big way. With the advent of UI5 and S/4 HANA maybe slightly less every single year, but it will be a long time till the GUI bows out the door.
Based on my wide-ranging, in depth, asked everyone on the planet, research I have used my empathetic design thinking skills and determined what end users find easy and hard to enter data into. Ranging from easiest (1) to hardest (6) here is what they like:-
- Table Controls in the SAP GUI
- Any sort of standard Web Page (including UI5)
- ALV Grids
- Engraving the data into solid rock with a blunt chisel whilst having their innards torn out by a pack of ravenous wolves
- Web Dynpro
Since we have been told for years now to avoid “spreadsheet hell” the first one is out of the question, and it would be heresy to return to the days of table controls, no matter if people like them or not. The reason they (users) tend to like table controls by the way is because the cells are big (like Excel) and you can easily tell where the cursor is (like Excel) and you don’t have to blank out the existing content before entering new content (just like Excel).
So whilst we are traveling down the road to UI5 we are stuck with ALV grids for a fair old while – and they need to be editable.
In conclusion, on this day next year I will be publishing a blog celebrating the 10th annual International Editable SALV Day.
See you then!
Shame on SAP 🙁
couldn' t agree more!
Wow, 9 years already?! Time goes by fast!
Paul, good luck for the next 52 weeks ^^
I'm with you so are others, I guess!
Heresy? Table controls are a pain for the developer... but they are still the only supported method to edit tabular data.
I couldn't agree more, but ALV is now "old fashion", everything will be fiori.....so i don't see how it would make business sense to SAP to update this soon to be obsolete (according to them and with a tone of asarcasm) piece of code.
"Soon"? There are still SAP systems running pre-ECC 6.0 versions out there. Even officially SAP is not dropping support for ECC till 2025 the last I've heard. It's still quite a bit of time.
Don't mix operational continuity, with improvements. Support is about fixing code errors or functionality, not adding new features, here Paul is celebrating 9 years of a non-existing feature on software released by SAP as the "new and improved ALV" object class.
And if you go further, even with EHPs (which represent new features) they will eventually be halted for ECC6.0 and only released for S/4HANA.
So yeah, i believe ALVs as we know them today will soon be obsolete, 99% of what we develop today directly on ABAP in the ECC will evolve to CDS views that can be exposed as ODATA.
I have here one word: ZCL_FALV i am currently using it. It looks like cl_salv_table, but it is much easier and it uses cl_gui_alv_grid .
Yes, the very first link in the blog above recommends using that.