Dustbins at SAP TECHED 2015 in Las Vegas (1)
Apart from the keynote last night today was the first day of TECHED2015 in Las Vegas. I thought I would write down as much of what I could remember while it was still fresh in my mind. I am sure I have forgotten a lot already, but here goes:-
Workflow in Outlook
There is an add-on to Microsoft called “Microsoft Gateway server” where you can connect to ODATA exposed services from the SAP back end, and have them appear in Outlook 2010 or 2103, as, for example, tasks, but you can also see contact details and appointments.
For workflow items in particular there is a generic service you activate in transaction SICF. Thereafter you have to configure this service to say what particular type of work items you want to be visible from outside the SAP system.
Outlook “pulls” the data from SAP either by the user pressing a button, or some sort of scheduled job. This means the data is never really up to date, and if a work item is sitting in four peoples Outlook inbox, and one of them approves it, the other three items do not instantly vanish, as they would inside the SAP system.
SAP GUI version 730 goes out of support in October 2015. The 740 GUI will be supported until January 2018. About a year before the that the next version will come out, the number of which has not been decided yet.
SAP GUI for Java is very strange; I don’t know why anyone would want to use that. Of course I am biased as I could not live without the graphical screen painter for all the DYNPRO screens no-one uses any more.
In the new version of Screen Personas it can work with SAP GUI for Windows, as well as with SAP GUI for HTML. However since the Personas editor is only in the HTML GUI you have to create your new screens using that tool, and then SAP GUI for Windows can read them (If you have the Personas add-on in your ABAP system).
It was stressed that if you create over-complex scripts there is a performance hit, as the DYNPRO screens have to run in the background, this presumably plus the time lag for the round trip from the web browser to the back end system. I don’t know if running Personas using SAP GUI for Windows will be any faster.
This came out today – 20th of October 2015 – though of course it would, to co-incide with the conference. The actual EHP which you would need to install on your ERP system in order to get the new version of ABAP is not yet out however, and no-one knows when it will be available.
The so called “Push Channels” which I am giving a speech on tomorrow are now released for productive use in version 7.5 They worked in 7.4 but you were not supposed to use them as that would have been naughty. Someone told me the underlying technology has changed somewhat radically as well. This is all needed for the so called “internet of things” where a sensor detects something of interest and then “pushes” the information to the SAP system, without the SAP system having to constantly poll for new information.
There is a new data type INT8 for storing really big numbers. This must be what they mean by “big data” – I had been wondering.
Karl Kessler gave a demonstration where he coded a CDS view in the ABAP system (using SQLScript) which linked sales order headers to items and customers. One line of code at the top said something like “Odata : Publish” which means a service was generated which exposed the data to the outside world.
He then tested this and the result was like a SE16 of VBAK where you could click on the customer number and then see the relevant line in KNA1.
Moreover, he then opened up the SAP Web IDE ( I got a bit of a mixed message, speakers were saying ABAP in Eclipse was the way to go, it’s great, and then when they coded anything they used the Web IDE – and it was still called “River” on one slide) and then generated a UI5 application from a template. Whilst configuring the application he chose the CDS view, and then picked some fields to display.
The resulting application not only had the data but automatic navigation to the customer data, as defined in the view. We were told SAP is working on transactional applications as well as report type things like this.
The BOPF got mentioned, I was really hoping this had not become obsolete already! Mind you its name had already changed to BOPFSADL on the slide, I have been wondering if SADL is a new framework for business objects like monsters and sales orders. Maybe it’s like the Incredible Hulk and BOPF turns into SADL when it gets angry.
There is a lot of improved tools for checking your custom code to see if it will work in the S/4 HANA on-premise addition. In the cloud addition you can’t have Z code anyway (pretty much) so the problem is not so relevant. Mind you I don’t think any customer has gone onto S/4 HANA in the cloud yet, they all chose the on-premise version.
S/4 HANA in General
First and foremost the material number increases in length from 18 characters to 40. This will of course be backward compatible so nothing existing will break (they say).
In the same way that “simple finance” got rid of all the tables like COEP and BSIK and all their friends, leaving just BKPF and a new table called ACCDOCU, the same treatment is being given to tables like MARD and MBEW by the “simple logistics”. The slide started off with about 20 such tables, and then they all ran off leaving just two – I think one for master data and one for transactional data (MSEG was one of the two). I can’t imagine how that is going to work.
It looks like all the functionality in the supply chain management “new dimension” product is being migrated back into the core – things like the APO and Demand Planning and the like. My guess is eventually (could take 20 years) all the “new dimension” products will die in the same way as SEM with everything going back to the core ERP system.
I give my speech tomorrow, so I am sure I will be pelted with rotten eggs and tomatoes. At least I am not the last speaker before the heavy drinking, I mean “networking” session.
nice write-up... I always enjoy your posting.
Thank you for informing us the material number length on S/4 HANA. It must be big impact for all the consultants and developers.
"SAP GUI for Java is very strange; I don’t know why anyone would want to use that."
I guess on Linux or Mac there is not much choice. Except using some virtual Windows with the WIn version, which is still better than using Java version.
In fact, when I'm on my Mac (at home) I use Remote Desktop to my Windows machine (in the office) and then run SAPGUI from there. Otherwise, if RDP to Windows wasn't available, I would just use the SAPGUI for HTML. But, if you're trying to support a fleet of Macs for your enterprise, then the JavaGUI may be the best answer.
Thanks for the recap, Paul, and interesting comments about the Outlook workflow connection. Even with the limitations you describe, it sounds like a lot more functionality than what we currently do for email integration, so I might have to look into that.
As always, your dry style of humor always makes for a fun read.
Have a chat to Graham Robinson, about his two-clicks tool.
Too much SAP, not enough Rubbish Bins
Thanks for the recap Paul. Good to know that I'm not the only one thinking about the future of SAP Gui and of course the screen personas thing...
Hope I can read some more recaps the next days 😉
I have made a shed load of notes this morning, and hope to post a blog tonight, but since that is after the drinking (networking) it might have to wait! That's why I wrote down the notes - the new programming model proposed by SAP for S/4 HANA is quite different than what we are used to, and at first glance appears to utterly violate the MVC principle, but I might be being unfair.
Anyway, my go at speaking in 45 minutes, then I will the hook....
"My guess is eventually (could take 20 years) all the “new dimension” products will die in the same way as SEM with everything going back to the core ERP system."
you don't need SAP NetWeaver 7.5 to be able to use ABAP Channels. ABAP channels in AS ABAP 7.5 were extended to TCP/IP, but it is another use case for the IoT (Industry 4.0) and the future.
ABAP Channels are generally available and ready for productive usage already with SAP NetWeaver AS ABAP 7.4 Support Package 5 (SP05). The ABAP Channles infrastructure was significantly improved in AS ABAP 7.4 SP08 (of course in fully compatible way to SP05) through API refactoring, support of WebSocket subprotocols and message exchange with SAP Push Channel Protocol.
See ABAP Channels use cases: Say Goodbye to Polling: Real-time eventing in ABAP with ABAP Channels and how to use ABAP Channels Introduction to ABAP Channels
Yes, that is what my speech at TECHED was about - ABAP Channels.
I had created a working application on a 7.4 system using messaging channels, and did a presentation about how my company would use such a technology to solve two major business problems. I also talked about push channels in my book, which was published (in February) before I had even heard about 7.5 (which was last week)!
I think according to the comments in the blogs you mention, where you see me asking questions and getting replies from someone at SAP - that the part in 7.4 which was not supposed to be for productive use was the messaging between two applications running in the SAP GUI.
The idea would be that one application updates the database and then sends a message to all other applications subscribed to be notified of changes of that sort then the target application(s) would refresh themselves without the user having to press a refresh button, or to have to periodically poll the database using CL_GUI_TIMER to trigger a periodic database read.
This is the major use case that myself - and I imagine a large number of companies - would be interested in, as in real life we are not all doing 100% of our transactions in UI5.
what, two dynpro-applications 😕 ... 😆
Is there a recording of your session available or can you share at least the slides with us? I would love to have a view on that if possible.
Yes, two ALV grids.
There are two example programs in the 7.4 system which demonstrate this, a sender and a receiver, you just send a text string between the two and it pops up on the receiver without anything needing to be done. They use WRITE statements!
I am not sure I am allowed to publish the slides from TECHED myself but in every other year I have been able to get access to TECHED slides after the event has finished so you should be OK. My session was TEC125.
I will also no doubt publish a blog about this in due course, with some code samples from my application.
I was playing with push channels yesterday evening again. It works like a charm - I have two sessions open, each one displaying an ALV grid. The second program has subscribed to messages the first one generates, but only for the plant the second program had specified on it's selection screen.
I select a record on the first screen and press a button to cause a database change to that record.
I then have a look at the second screen and without me having done anything the changed data has been reflected in the second session. This is great.
As this works even with WRITE statements I have no doubt this would work with two GUI DYNPRO transactions as well.
i'm am really curious how you got to run this for ALV grids? I fiddled around a bit but wasn't able to run this properly with ALVs.
And after this dicussion Say Goodbye to Polling: Real-time eventing in ABAP with ABAP Channels i got the impression that it isn't possible with ALVs.
we have a kind of prototype (PoC) for SAPGUI Push Channel (SPC). This is an additional NOT RELEASED channel type belonging to the ABAP Channels family built from technical point of view very similar to ABAP Push Channel (APC). As you may know SAPGUI connection (aka DIAG) is a TCP/IP connection (similar to a WebSocket)´and provide similar and even richer capabilities than a WebSocket (RFC6455) connection.
I already have mentioned this (SPC) in http://scn.sap.com/community/abap/blog/2014/11/24/say-goodbye-to-polling-real-time-eventing-in-abap-with-abap-channels including in blog "Say Goodbye to Polling: Real-time eventing in ABAP with ABAP Channels".
Have fun with ABAP Channels,
At TECHED I made sure I told the audience that this was not released for productive use.
In my experiment I found that in the "receive" method that method started firing as soon as the message was received, and so I could do anything I want there. So I called static methods of my ALV class to re-read the database and refresh the display of the ALV grid. You need a PID set up for this to work.
To summarise : this works perfectly, is just what everyone wants, but you are not supposed to use it, as it is naughty, and you will not get any support from SAP if it all goes wrong.
This is rather like saying "you can eat from any tree in the Garden of Eden except the apple tree". We all know how that ended.
It is like using a standard function module that has not been released. It works, it does what you want, just like the GUI push channel, but you are not supposed to use it and won't get that wonderful support from SAP.
That wonderful, wonderful support. that support you pay millions for every year. that support that involves sending system access details, the support pack level you are on and screen shots of the problem along with a detailed explanation.
Then after 24 hours you get asked what support pack level you are on.
So you send back system access details, the support pack level you are on the screen shots etc
Then after 24 hours you get asked for system access details.
So you send it all again.
Then after 24 hours you get asked to repeat the details of the problem.
So you send it all again.
Then after 24 hours your problem gets escalated out of 1st level support to someone in Germany. They send you a message back saying the system is working as designed, so this is a consulting issue, they will look into it if you pay them a million dollars extra.
After a while you just give up. I haven't raised anything with SAP for years, I just don't hate myself enough to go through that kind of torture. You are better off going outside and asking the tramp by the bus stop if he knows the answer. At least there is a possibility of getting a sensible answer from him.
So if you use the GUI push channels (or an unreleased standard SAP function module) in your live system you will miss out on that wonderful SAP support experience I just described.
In real life when SAP gives you something that works and can add value for your company, but says don't use it, people are going to use it anyway. The only exception is German companies, where people do as they are told and won't break the rules.
Australia is the exact opposite, we are focused on results, and you know what the rules can do with themselves. This is why I was always in trouble when I worked in Germany.
Then after 24 hours
You described the best case scenario. Normally it takes several days/weeks to get reply. 🙁
Made my day. Thanks!
SADL is the "Service Adaptation Definition Language". While the original view-building-aspect seems to have been lost to CDS, there still is a runtime which provides crud-services on basis of different meta-models. BOPF is one of them.
You can imagine SADL knowing which DB-tables to access in order to read a BO node (as it knows the BOPF metadata) and thus bypassing the BOPF buffer for read-only-scenarios.
I am burning to know what you think of SAP's new idea of having the text names of fields defined inside the CDS view i.e. inside the database layer / data model. These are so called "semantic annotations" and go alongside of other UI things like which order the fields go in, which ones you can search on, have subtotals and other ALV type things
In fact as far as I can see SAP are pushing to have the whole MVC framework inside a CDS view inside the database. This concept horrifies me. One SAP presenting guy generated a UI5 application and proudly said "look - there is no view or controller!" as if that was a good thing.
Going back to text names for SAP fields, at the so called "Fiori café" at Las Vegas, because I love to be contrary, I was arguing in favour of your point of view (which is opposite to mine as you know) to an SAP guy who was saying that the model in the MVC framework is just the place to put the text definitions for fields like VKORG and VBTYP the user sees on the UI.
He put up quite a good argument, but now I just don't know. The funny thing is, doing such a thing was my gut feeling, as put forward in my book, and now it is SAP's official position and they are telling everyone to do it, I am starting to doubt it and come around to your way of thinking.
I'm so horrified I even wrote it down: A note on SAPs annotation-notion, funny enough, just yesterday. It's not only about the mixed layers, but also about de-normalization of the meta-model etc.
I'd love to read your comments.