Have you ever wondered what would happen if you took software used for business processing and somehow combined it with software used for 3D games? Something like this:
Well wonder no longer. This article describes how to fit a 3D game front-end on top of the SHINE (SAP HANA Interactive Education) demo content available in your SAP HANA system. The 3D game client runs on your Mac or PC and connects to your HANA server. The client reads Purchase Order (PO) information from the HANA system and creates PO “creatures” in the game that you can then hunt, analyse and shoot to approve or reject them in the HANA system. There is also a reporting element, where 3D bar charts can be climbed on to give you a different perspective on your data – OLTP (of sorts) and OLAP in a single 3D world.
Have you ever wanted to actually shoot your data? Well now you can 🙂 . Details on how to install and run the client yourself, along with its source code are given later.
This video gives you a better idea of how it plays out. This shows a Rev72 system having POs approved and rejected and some bar charts analysed, occasionally showing the SHINE Web interface for comparison:
The cardboard boxes are the POs, with images of their contents from the Rev72 system. Here are some screenshots:
A PO is Rejected
A PO is Approved
A Bar Chart
As you can see, if you reject a PO in the game it explodes, whilst approved POs zoom upwards to their (religion-neutral) “PO Heaven”. These changes are reflected in HANA before the graphical effects happen in the game. If you stand on the switches near the bar charts you control what the charts display, and these are showing the same data as you see in the SHINE web reports.
You may well ask “why on earth would I want to connect a 3D front-end to HANA?” That is a very valid question, and one I’ve asked myself more than once. Think of it as a Proof of Concept showing what sort of things are possible with a 3D interface over HANA. It is arguably a form of “gamification“, and this article is the “Making of” companion to another articleposted over on the SCN gamification area which looks more at the gameplay aspects (such as they are) and how the PoC could be developed further. It is interesting to see that a company that make 3D Virtual Reality goggles, called Oculus Rift. were recently bought by Facebook, so 3D may be becoming more mainstream in future.
You can install the client on your PC or Mac and connect to any HANA server that has the SHINE content installed (it is there by default now if you are on a recent revision). There is no backend install required on the HANA system, you just need the local client. A big thanks to Aron MacDonaldfor his input to this work, helping with testing and providing valuable feedback and ideas. To try out the 3D Game Client for yourself follow the next section:
If you don’t have access to one already, you can get your own HANA system. The following versions are supported: Rev 60 / SP6, Rev 70 / SP7 and Rev 72. SP8 is not tested yet, but will work if the SHINE content is similar.
IMPORTANT: for Rev 72 you must make sure that your user id has a default Session Client set. If this is not in place the 3D game client will not detect your HANA version correctly and charts won’t work (the setting is needed for the SHINE currency conversion). To make the setting, in HANA Studio, Systems tab -> Security -> Users, make sure your user has its Session Client set to 001, like this:
To check that you’ve got the SHINE content installed, you can check that you can see data in the PO Worklist application using these links:
SHINE PO Worklist Entry Points
|Version||URL to PO Worklist|
|Rev 60 / SP6||<server ip address>:80<instance>/sap/hana/democontent/epm/ui/poworklist/WebContent/poWorklist.html|
|Rev 70 / SP7||<server ip address>:80<instance>/sap/hana/democontent/epm/ui/poworklist/poWorklist.html|
|Rev 72||<server ip address>:80<instance>/sap/hana/democontent/epmNext/ui/poworklist/poWorklist.html|
The above links take you to the web front-end for the SHINE PO Worklist. There you can check data, and see POs changing their status to Rejected and Approved.
There are some front-end prerequisites. You need one of: Windows XP with SP2 or later; Windows 7 with SP1 or later; Windows 8; Mac OS X Snow Leopard 10.6 or later. Windows Vista is not supported. You also need a graphics card with DirectX 9 level (shader model 2.0) capabilities. Any card made since 2004 should work. The front-end does not work on the CAL remote desktop PC on AWS, it does need to be run locally.
How to Install Front-end Client
To download the client go here: https://www.dropbox.com/s/wda5ae2h5dfbeeq/Epm3d_Windows_x86.zip
To install, just unzip it into any folder, there is no actual installer.
Windows 64 bit
To download the client go here: https://www.dropbox.com/s/x6iut2p65itk7ti/Epm3d_Windows_64.zip
To install, just unzip it into any folder, there is no actual installer.
To download the client go here: https://www.dropbox.com/s/4jzm9snfawi6ox3/Epm3d_MacOS.app.zip
To install the client see Aron’s document, you have to skip past a couple of screens during start-up.
How to Play
- Run the executable.
- On the first popup enter your HANA system details, and press check connection:
- If the check connection fails, error messages telling you why will appear in the box at the bottom of the screen. See also the troubleshooting section below.
- Then press Start.
- There is help displayed in-game, press F1 to toggle it, but for completeness the help is here too:
- Once in the game, use mouse to look around and the keys WASD or cursor keys to move around. Stand on the buttons nearby the charts to interact with them (refreshing charts and changing their type).
- With a PO box highlighted, click left mouse or press Y to approve the PO in the system. Click right mouse or press N to reject a PO. These approvals or rejections are reflected in the HANA system (in fact they won’t appear in the game until they are successfully posted to the HANA system). You can check the data in HANA has changed using the links to the SHINE PO Worklist given above.
- If the client does not start at all, it is most likely your PC is too old (>10 years old wont have good enough graphics card).
- If the client starts but the connection check fails, make sure system details and user details are correct. Make sure user has rights to view and change the SHINE content, which you can check using the SHINE PO Worklist Entry Points links above.
- If the client does not detect your version as Rev72, and you know you’re using Rev72, this is almost certainly because your user id does not have a default client set, see Back-end Prerequisites section above.
Sap Hana Client Installation Guide
For Advanced Players
- Hold down the Shift key (Windows) or the Alt key (Mac) when you start the executable and an additional dialog appears. This allows you to specify screen resolution and graphics quality, and also to edit the controls.
- To invert the mouse press “m” during gameplay. This inverts the up-down axis for the mouse when you are looking around, some people find this easier to use.
So with all that out of the way, finally we can get to the “How to” part. The game client was built using a product called Unity. Unity was designed originally for developing 3D games, but is also used for 3D visualisation like walk-throughs of buildings. There is a free edition which has a few advanced features removed, but all the heavy lifting of 3D development is done for you. Lighting, physics, input, cross-platform builds and much more are either done for you entirely or at least are well supported by the Unity engine. All you need to do is some C# or JS scripting to control the behaviours of objects and glue stuff together. I chose to use C# as most tutorials tend to use that, although you can mix scripting languages if you wish across different objects.
The communication between the client and HANA is all done using oData and XSJS services, the same services that are used by the standard SHINE web frontend. To find these I used the web frontend (see the links in section “SHINE PO Worklist Entry Points” above) with Fiddlerrunning, and that way I could see all the oData and XSJS calls that were being made. With that, it was easy to generate the necessary URLs.
Trivia: SP6 used UPPERCASE for field names, so oData service calls are eg “PURCHASEORDERID”. SP7 changed this and used TitleCase for fields, so oData service calls became eg “PurchaseOrderId”. Then Rev72 went back and used UPPERCASE again, so URLs are back to saying “PURCHASEORDERID”. What will SP8 bring, back to TitleCase perhaps?
The source code and assets are all available in GitHub. Unity is easy to use, but not so intuitive that you can dive in immediately and follow it all. At least do the intro videos tutorials provided the Unity teamto learn the interface or you’ll quickly get pretty lost (at least I did).
To help orientate yourself if your looking through the Unity project files, the various objects in Unity link together like this:
Unity Client Architecture Diagram
The boxes in the above diagram are mostly C# scripts in the Unity project. Most of the communication between objects is event driven (you’ll see lots of On* event handlers in the scripts, for example when collisions happen, or when an oData query returns). There are also per-frame calls made by the Unity engine, so every 1/50th of a second (or thereabouts) the Update() method is called, which is used to handle drawing things and collecting user input.
I hope this article proves interesting, the source code is there to pull apart and reuse, any feedback is welcome.
In the last few years, SAP has come out with various methods to speed up the configuration process for large, complex, corporate operations. The configuration that was delivered was the mainstay for several years. It typically (but not always) involved basic customization from client 000 with SAP Solution Manager and some other products as exceptions. Then came the Best Practices methodology which allowed some configuration to be further modified in the delivery clients. Over the last several years, Best Practices content and Rapid development have evolved and increased tremendously. Recently, SAP has also introduced the model company concept where the scope of Best Practices is focused on specific industries and based on a Model Company concept. This is a pre-packaged SAP Consulting service from SAP and contains some limitations in scope and time (typically, Model Company lags the Best Practice by about a year). For a review of the differences, check out this very useful blog from SAP’s Amin Hoque.
A merged client is the next leap of this evolving standard: where a customer cannot utilize a model company and does not want to lose the delivered customization in 000 by implementing Best Practice alone, they can now implement a Merged Client—where they can get the best of both worlds: all Best Practices for full scope, multiple languages and all client 000 reference settings. The work is complex and there are numerous blogs available by experts like SAP’s Mahesh Sardesai that can be useful.
So how do all the products and offerings and the step by step guides from various SAP experts translate in real life? In this blog, we shall walk through an industrial scenario where we implemented Merged Client for an aerospace customer with five languages and 11 countries. As you can see below, the work was complex and SAP lays out scenarios where a merged client is useful. Typically, if the “scope is large and isn’t covered by Best Practices content, [we should] choose a merged client”.
This was borne out by our own experience where we have already estimated that the merged client will save us about four months’ worth of time in four scope areas, over using Best Practices alone: Project Systems, Complex Final Assembly, Grouping, Pegging & Distribution, Government Contracting
The steps that we followed to set up the Merged Client are detailed below. In our efforts, we were greatly helped and guided by SAP’s Hanuma Rupakula without whose help we could not have been successful:
- The first step is to install S4 HANA. In our case, it was S4 HANA 1909 FP3 STE on the Cloud
- Set up Languages in addition to EN and DE using transaction code SMLT Do NOT run supplementation in client 000 because it conflicts with BP Activation
- The reference note to start with was Note 2948925 and check and implement Note 2921856. (Not required in FP3)
- Next, download the latest business content for FP3, extract it and import to client 000 using STMS:
Then continue with these steps:
- Activate Business Functions in 000 per this link in the Admin Guide using txn SFW5
- Check table /FTI/T_NOCLN000 and make sure that the client number 100 and 600 don’t exist in the table.
- Create an entry for Client 100 in SCC4 with currency as blank
- Using txn SCCL only, not SCCLN, execute client copy using profile SAP_CUST (client copy from 000 to 100)
- Log in to client 100 as SAP_ALL and execute BP activation using txn /n/SMB/BBI for the Solution Builder
- Import the 11 countries one by one:
Select Canada and similarly, all other countries in our list:
You should get a successful message after a few minutes:
Click the Back key to confirm that Canada has been imported. Rename the solution for clarity as needed:
- Similarly do the 10 other countries.
- Next, do EWM pre-activation steps (recall that we have chosen the full scope for our work)
- Do the next set of pre-activations based on Note 2839315. This is a critical Note since it references attachments that must be followed. The highlighted line below shows the document that was used in our current effort:
- Now, execute the next pre-step based on Note 2839315:
For US: delete UTX2 and UTX3 in transaction code OVK1
Sap Hana Client Mac Free
For CA: delete CTX2 and CTX3
Nothing else should be deleted (India, for example, had four tax category entries which should be left untouched)
Similarly, delete entries for View V_TTXJ in SM30 for US and CA:
- Set User Parameters in SU01 for each user doing the activation. Enter parameter enter ERB value as A000 and ETP as 2.
Note: If you have any other existing parameters, do not delete them.
- In SPRO, navigate to the Logistics Execution –> Shipping –> Deliveries -> Proof of Delivery -> Define Reasons for Quantity Differences. Delete the two existing entries
- Now execute the Business Partners Number range adjustments:
In txn SNRO, choose Internal Editing for DEBITOR:
Click on Change Intervals:
Delete the current contents and add the entry shown below:
Repeat the same for Object KREDITOR:
- Next from SPRO, choose Financial Accounting –> Accounts Receivable and Payable –> Customer Accounts –> Master Data à Preparations for Creating Customer Master Data –> Assign Number Ranges to Customer Account Groups.
Set all values from 01, XX etc to BP:
- Similarly, for Vendors, go to SPRO and then choose Financial Accounting –> Accounts Receivable and Payable –> Vendor Accounts –> Master Data –> Preparations for Creating Vendor Master Data –> Assign Number Ranges to Vendor Account Groups. One of the original entries is shown for representative purposes only:
- In SPRO, go to Cross Application Components –> Master Data Synchronization –> Customer/Vendor Integration –> Business Partner Settings –> Settings for Vendor Integration –> Field Assignment for Vendor Integration –> Assign Keys –> Define Number Assignment for Direction BP to Vendor. For all listed records, de-select the Same Nos. checkbox.
You are now ready to start your activation!
- Check the Pre-Activation settings one more time: Prerequisite Settings for Activation – SAP Help Portal
- In txn /n/SMB/BBI, set Country US as Favorite:
- Now click on Implementation Assistant:
- Copy Solution from BP_OP_ENTPR_S4HANA1909_USV6 to OURCOMPANY_US:
- Import Installation Data separately for each country Custom solution (like OURCOMPANY_US).
- Select “Implementation Assistant” and “Activate” to start the process
- Choose Enter on the Document Lines: Display messages pop up.
- Choose Enter on the next popup coming up on the same step to continue with the activation:
- Choose Enter on the below message.
- Choose Yes on the warning dialog box to proceed with the activation.
- Choose Back button and the activation will continue with the same screen for some time.
Similarly moving on to Canada, copying the solution and adding the installation data. We then activated the following countries:
- For GB we got this error. Logged out, logged in again and repeated and then we were fine. Then activated RU:
- With Japan, we got several errors:
1UJ (JP) Activity : SIMG_CFORFBT059FBH failed for customer in 1909 FPS3
Drilling down on the magnifying glass we get the following:
- To address this error, we opened an Incident with SAP and they created specific Notes 2974114 and 2978647 for us to apply, which fixed the error:
All the countries are now done for Client 100
- Now execute a client copy done from 100 to 600 with profile SAP_ALL
- To add Demo Data in client 600 (unit test client), 0do the following:
- Log in to client 600
- Execute transaction /n/SMB/BBI
- Set a country as Favorite. Start with the US:
- Go to Solutions/Procedure/Start a Procedure:
- Select option “Keep Only Demo Data” and Enter:
- Add Installation Data from Reference Content:
- Select country US:
- After a few minutes of processing, you will get this message:
- Next, click on Implementation Assistant:
- Ensure that With Demo Data is selected this time:
- In some EWM areas, we can get an error like this (blue circle below). The Detail Log can be accessed by clicking the icon circled in red:
- Drilling down the log, we see this. Drilling down on IMPORT, highlighted in yellow, we will see the Plant # (1710 for US):
- This process should be run again in Foreground (FG):
- Click enter to proceed, enter 1710 for Plant if needed and complete. Then set OK:
- The next error has the specific System Admin/Security fix as well so just implement it as instructed:
- Go to SPRO, search for Product Compliance –> Foundation for Product Compliance –> Specify Responsible Units and enter ALL for Authorization Group:
- The proceed to Completion:
- In several countries like Singapore, we get this error, which is purely informative: “QM1 is already available” so this can be ignored:
- Mark as Ignore and proceed similarly with other countries:
Your setup and activation of the merged client is now done! However, a few Post-Activation steps need to be completed:
- Complete Post-Activation steps as detailed in the Admin Guide for your area
- Review any manual rework that may be needed from the Admin Guide.
- Delete the Metadata Cache by going to SPRO/SAP reference IMG –> SAP NetWeaver –> SAP Gateway –> Service Enablement –> Backend OData Channel –> Support Utilities –> Clear Cache –> Execute:
Conclusion: we now have the best of both worlds: Best Practices in scope areas where they exist, and 000 configuration where they don’t.
Acknowledgements to the following, without whom we would not have been successful:
Sap Hana Client Install
Hanuma Rupakula, Director of Development, SAP Labs
SAP CCO’s Office for their support, especially Mike Piazza and Ian McCallum
Raymond Langevin, Program Director, delaware North America
Sap Hana Client For Mac Download
Karen Moss, Solution Architect, delaware North America
Sap Hana Client 64
Raja Gopalan holds multiple SAP and technology certifications and is the Technical Architect at Delaware Consulting, a fast growing, global company that delivers advanced solutions and services to organizations striving for a sustainable, competitive advantage. With over 50 ECC to S/4 migrations, delaware is one of the most experienced SAP partners, globally.