Transport Options for a SAP HANA Database

In addition to the common transport tools from SAP, e.g. the extended Change and Transport System (CTS+) or the transaction SCTS_HTA in ABAP, Microsoft also offers a transport option for the SAP HANA database. In this blog post, the transport tool MS Azure Pipelines for the SAP HANA database is roughly presented in a technical way. Furthermore, the possibility of integrating other MS Azure tools (MS Azure Boards, MS Azure Repos and MS Azure Test Plans) for successful project management is also made clear.

Limitations of CTS+ and SCTS_HTA

A disadvantage of the tool extended Change and Transport System (CTS+) is that during a transport all development objects are transported in a Delivery Unit. It is not possible to remove individual development objects that are in the same package from a Delivery Unit. So either all development objects of a package that is assigned to a Delivery Unit are transported, or none at all. The disadvantage of SCTS_HTA is that an ABAP system is required here, as the selected SAP HANA objects and packages are transferred from the SAP HANA repository to the HTA repository in ABAP and added to a transport request during synchronisation with transaction SCTS_HTA.

Al­ter­na­ti­ve to CTS+ and SCTS_HTA

In most cases, the deployment on the SAP HANA database takes place within the framework of a project, as such a project must be monitored, controlled and tested by means of a project management tool. Microsoft offers the necessary software for project management, deployment and testing under one roof. MS Azure Boards is available for project management and MS Azure Test Plans covers testing in a project. The combination of MS Azure Repos and MS Azure Pipelines is used for deployment.

Transport Concept with MS Azure Pipelines

For the transport, so-called MS Azure Repos are consumed from MS Azure Pipelines. In this context, the MS Azure Repos represent the SAP HANA Workspaces, i.e. one branch is created in MS Azure Repos for each SAP HANA system. Thus, for this variant of Microsoft Azure Repository Branches per SAP HANA system are necessary. The branches reflect the database object versions of the respective SAP HANA database objects. The transport flow from the development branch to the production branch can be set up using Microsoft tools. This is shown in the following graph.

All images on this page © 2022. BIG.Cube GmbH. All rights reserved.

Development continues to take place as usual on the development system. As soon as the development is finished, it is uploaded to the development branch by the developer. Uploading can be done with the version control software Git. The next step is to transport the development to the quality sector via a pull request. A pull request is used to transport object versions from a source branch to a target branch.

Deployment on the Systems

First, the pull request must be approved by the client. After the pull request is completed, the development ends up in the quality branch and then the MS Azure Pipeline is triggered and the deployment is carried out on the quality system. The deployment on the quality system is carried out via a server (e.g. MS Server) on which there is a technical user (agent) who carries out the deployment on the SAP HANA database with the help of the software regi.exe. However, to activate the database objects on the SAP HANA system, a technical database user with the appropriate database authorisations is required. Once all database objects have been successfully activated on the test system, the deployment is checked for quality. When the test cases have been successfully executed on the quality system, the development can be transported to the production branch. The transport is again carried out with a pull request, and the deployment on the productive system is carried out in the same way as on the test system. After deployment to the productive SAP HANA database, the live implementation of a development is complete.

Conclusion

Transporting with MS Azure Pipelines is suitable for both SAP HANA XS Classic database objects and SAP HANA XS Advanced applications. If an application runs on the SAP HANA database that requires both XSC and XSA, only one tool is needed for both SAP HANA XS versions. For the transports of SAP HANA XSA applications, additional software is required besides MS Azure Pipelines, such as the MBT Tool.

Written by Veli Hasanca

Share Post

More Exciting Topics from our Newsroom

Shortcuts for SAP BW in Eclipse

This blog post explains five simple shortcuts to make working...

Read More

Factors of Success for a SAP BW/4HANA Migration

This blog post shows which Factors of Success exist for...

Read More

Review of the DSAG Annual Congress 2022

These topics were discussed at the DSAG Annual Congress 2022.

Read More

SAP HANA Database as a Basis for Existing SAP BW Installations

More and more users of SAP systems are implementing the SAP HANA database as the basis for existing SAP BW installations. The advantage of an SAP HANA database for a BW system is that SAP HANA views can be generated when BW objects are created. All generated SAP HANA views are of the type Calculation View. By generating SAP HANA views, BW data is published to SAP HANA, whereby these SAP HANA views point directly to the data and tables. This allows the BW data to be consumed directly in SAP HANA. It is not recommended to change calculation views created by BW systems on the SAP HANA database, as the Calculation Views can be overwritten again by the BW system at any time (source: help.sap.com).

Manual Assignment of Privileges is Time-Consuming and Error-Prone

In order to be able to select the Calculation Views, a user needs the corresponding HANA privileges on the SAP HANA database. The assignment of the privilege is done manually via an administrator. The manual assignment of permissions is not very efficient and, depending on the number of Calculation Views to be authorised, can very quickly take several hours or even days.

In this blog post, we present a way to automate the authorisation of Calculation Views. This automation process also applies to the Calculation Views which are created directly on the SAP HANA database.

Required Database Objects

To automate the authorisation of Calculation Views on the SAP HANA database, some SAP HANA database objects have to be created and configured accordingly. The following table provides the necessary overview and description.

SAP HANA Database Objects Description

Calculation View

The Calculation View is created from the BW system on the SAP HANA database.

CSV

The CSV file simplifies the maintenance of (new) Calculation View permissions. Here the roles are assigned to the Calculation Views to be authorised.

HDBTable

The HDBTABLE creates a database table that reflects the content of the CSV file.

HDBTI

The HDBTI object fills the HDBTABLE with the content from the CSV file.

HDBSchema

For some database objects, an HDBSCHEMA object must be created, e.g. Stored Procedure or HDBTABLE.

Role

In the HANA roles, the SELECT rights of calculation views are added according to the mapping table (CSV).

Stored Procedure

The procedure determines the unauthorised Calculation Views and performs the authorisation.

XS Job

The XS job calls the stored procedure.

XS Job Schedule

An XS job schedule controls the execution of the XS job by means of an XS cron.

Technical User

The technical user executes the XS job.

Example Scenario

The repository role authorization.roles.calulationview::SELECT_CALCULATION_VIEW is to be extended with a SELECT privilege for the Calculation View MyCalcView. The state of the repository role before assignment has no object privileges. This can be checked in HANA Studio under HANA Administration View as follows.
The repository role authorization.roles.calulationview: :SELECT_CALCULATION_VIEW is to be extended with a SELECT privilege for the Calculation View MyCalcView. The state of the repository role before assignment has no object privileges. This can be checked in HANA Studio under HANA Administration View as follows.
  1. Filtering the runtime role name under Security/Role
  2. Opening the Object Privileges Tab of the Runtime Role

The Calculation View to be authorised is located in the repository under the bigcube.app.vha and is entered into the control table as follows.

  1. CATALOG_ROLE_NAME: The role name must be entered here without a wildcard.
  2. CALCULATION_VIEW_PATH: The path is entered here (wildcard possible)
  3. CALCULATION_VIEW_NAME: The name of the Calculation View is entered here (wildcard possible).

The CSV file can be opened with Microsoft Excel. The per cent sign serves as a wildcard in the Excel table. The path is provided with a wildcard here and the name of the Calculation View is entered at the end with a wildcard. The wildcard can be used for the columns CALCULATION_VIEW_PATH and CALCULATION_VIEW_NAME as desired, for example also in the view name MyCalcView%. After the control table has been maintained, the CSV file must be saved and activated. Only then is the mapping valid.

The XS job will now perform the mapping according to the control table. As soon as the mapping has been carried out, the role is automatically extended by the corresponding Calculation View authorisation (SELECT).

  1. Filtering the runtime role name under Security/Role
  2. Opening the Object Privileges Tab of the Runtime Role
  3. Open object privileges of the selected object (Calculation View)
Each execution of an XS job creates a log entry in the log table. To ensure that the log table is also tidied up accordingly, care must be taken to clean up the log table. The clean-up can be done in the stored procedure called by the technical user.

Conclusion

The HANA Native database objects to be created must be adapted and defined according to customer requirements.

  • HDBSchema
  • HDBTable
  • HDBTI
  • CSV
  • XS Job
  • Technical User

The following HANA Native database objects are implemented according to customer requirements. The logic of the automation is integrated in these objects. Our experts from the SAP Basis team will be happy to support you in this (learn more about SAP Basis and Hana Platform Services >>).

  • Stored Procedure
  • XS Job Schedule
  • HDBRole

With this process, the Calculation Views on the SAP HANA database can now be authorised automatically. The Calculation View permissions are controlled from a central location in the form of an Excel spreadsheet. This saves you the manual effort of authorising new Calculation Views. Automation is also possible for other HANA Native objects, for example HDBSchema, HDBView, HDBTable, HDBdd …

Written by Veli Hasanca

Get In Touch With Us Now

Share Post

More Exciting Topics from our Newsroom

We are one of “Germany’s best employers”

As one of Germany's top 100 employers with renewed 'Great...

Read More

Shortcuts for SAP BW in Eclipse

This blog post explains five simple shortcuts to make working...

Read More

Bavarian Curling with the BIG.Cube

BIG.Cube employees went bavarian curling together after work. Find out...

Read More

Development of SAPUI5 Custom Controls - Practical Examples

In a previous blog post, we showed what preparation is needed to create SAPUI5 custom controls and how they are then developed step by step>>.
The following article shows that completely new controls can be realised with simple HTML and CSS knowledge. We will show you exactly how this works with two examples from current client projects. The first development is an extension of an existing control. The second is a completely new development with its own renderer function.

Extension of a SAPUI5 Custom Control

The extension comes from a desktop application, which is not available for mobile devices. The design team in the project wanted a button that would display different colours and icons on mouse-over. On the left you can see an icon / button with a hook as an icon. If you hover over this icon with the mouse, it changes to a pencil icon.

SAPUI5 Custom Controls
SAPUI5 Custom Controls
SAPUI5 Custom Controls

In this example, it makes sense to extend an existing control. This means that the existing functionalities, such as properties, events or aggregations, can continue to be used as normal. We have decided to extend the control sap.ui.core.Icon, as the property for hoverColor is already available there. Thus, only an exchange of the icon had to be made.

The sap.ui.core.Icon already has the property “src” for specifying an icon. In our Custom Control we have created two new properties called “defaultSrc” and “hoverSrc”. As soon as the mouse event “onmouseover” is triggered, the value from the hoverSRC is written into the existing src. If the “onmouseout” is executed again afterwards, the defaultSRC is written to src. By using the already existing setSrc function from the source control, the rendering does not have to be adapted. Only the icon is exchanged in the background.

The execution of a setter function of a control always triggers the renderer function. Therefore, this does not have to be triggered here in the corresponding mouse events.

New Development of a Control

In another example, a certain chart was to be built that does not exist in the standard SAPUI5.

This chart always displays a value between 0 and 100, consists of a colour gradient in the bar, should display the Y-axis in steps of 20 and should be able to accept custom colours and X-axis labels.
Broken down into simple HTML, this is no great feat. It’s just a few labels, lines and a rectangle with a gradient. Therefore, the use of a chart framework (e.g. D3.js) was dispensed with here and this was developed as its a standalone Custom Control. The expected parameters were 5 different colours, as well as a value and an X-axis label:

  • colorBarRGB (The colour on which the transparent gradient is to be built)
  • colorBarAccentRGB (The colour to represent the top line on the bar)
  • colorNumberRGB (The colour in which the displayed number is to be displayed)
  • colorXAxisRGB (The colour in which the X-axis is to be displayed)
  • colorXAxisDescRGB (The colour in which the X-axis description is to be displayed)
  • value (The value on the basis of which the bar is built)
  • xAxisName (The X-axis label to be displayed)

The renderer function initially looks like this:

The transferred oRM stands for the SAPUI5 RenderManager. The oControl transferred is the custom control instance from which the properties can be read. First you start with a div, which is closed again at the end. The ControlData and CSS classes, which can be transferred via the XML, are written into the div itself. Within the two div tags, you can now write your own HTML, which will fill the Custom Control with life. This has been outsourced here into three separate methods. Within the methods, individual divs were again created, styles added and transferred back to the main renderer function at the end. In order not to have to perform cumbersome string concatenations, div objects are created in the three outsourced methods. These are converted by jQuery into an HTML string and thus transferred to the write function. Here you can see the function that is responsible for the background and the X and Y axes as an example.

Conclusion

In this blog post, two current customer examples were used to show that the development of Custom Controls does not have to involve an enormous amount of effort. Often these can be easily extended. New developments can also be realised quickly and conveniently with simple HTML and CSS knowledge – and without large budgets and long-term use of resources.

Written by Martika Möller

Share Post

More Exciting Topics from our Newsroom

Shortcuts for SAP BW in Eclipse

This blog post explains five simple shortcuts to make working...

Read More

Data Quality in SAP BW: Checking Data for Plausibility without Programming

Our standard software Q-THOR can easily improve data quality in...

Read More

SAP HANA Transport with MS Azure Pipelines

This blog post introduces the transport tool MS Azure Pipelines...

Read More

Why choose your own SAPUI5 Custom Controls?

The more SAPUI5 applications you develop, the more you get to know the limitations and restrictions. These are either the SAP Fiori Guidelines or the controls themselves. We quickly receive the statement in a client project: “Can’t this be implemented somehow?” Here, the quick answer is often that this is too expensive or not possible.

However, this does not have to be the case! Anyone who has ever dealt with SAPUI5 Custom Controls can quickly assess which requirements can be realised in no time at all, despite in-house development.

Don't Just Get Started

The first and most important to-do in client projects should be to inform those responsible that this particular requirement cannot be solved with standard SAP tools. Since companies often have policies regarding custom development, this needs to be clarified before starting the development of the Custom Control.

It also makes sense to provide information about the risks and consequences. Depending on which functionality the Custom Control provides or which existing controls it enhances, the functionality must be ensured during a SAPUI5 version upgrade. In the worst case, adjustments must be made to the SAPUI5 Custom Control so that it looks or behaves identically with the new SAPUI5 version.

Once the formalities have been taken care of, it’s time for the actual work. Here, it is important to understand exactly what is required of in-house development. The basics of creating SAPUI5 Custom Controls are highlighted below. In our next blog post, we will present two examples from our customer projects.

How to Create SAPUI5 Custom Controls

A Custom Control is initially very similar to a controller. The upper part defines which other controls are required or which files are to be imported. Based on one of the transferred controls, an extension is built using the “extend” function.

If no suitable control can be found that can be extended, the sap.ui.core.Control is used. This control is the basis for all other controls. The name of the Custom Control is composed of the namespace of the app and a specific name. To avoid confusion, the js file should also have the same name.
Another object is passed to the “extend” function where, for example, new properties or events can be defined. The important thing with any custom control is that the “renderer” function is present. The “renderer” function of the control to be expanded is often useful here. Alternatively, this must be written yourself (both types will be taken up in the further blog post).

Use of a SAPUI5 Custom Control

If the Custom Control is to be used within the view, the path and an abbreviation must first be defined, as with an additional SAPUI5 library.

In this example, there is a folder in the root path called “controls”. Inside this folder is a MyCustomControl.js file that mirrors the custom control. Within the XML, all inherited as well as all new properties, events, aggregations and associations are available. It can therefore be used like a normal control of the SAPUI5 library.

Adding More Properties

If a Custom Control requires another property, this is defined within the properties object. In the following example, the property is called “secondText” and is of the type “string”. A defaultValue can also be defined, which is an empty string here.

The familiar SAPUI5 types are available for properties:
  • string
  • boolean
  • int
  • float
  • any
  • object
  • arrays, for example string[]
  • spe­cial SAPUI5 types like “sap.ui.core.CSSSize” or other Con­trols
The DefaultValue is not a mandatory field and can therefore be left blank. The SAPUI5 framework automatically generates setter and getter methods from the new property. These can be used both within the Custom Control and within a controller. In our example, the generated methods are called setSecondText and getSecondText.

Adding More Events

If a Custom Control requires another event, this is defined within the event object. In the following example, two events have been defined: hoverIn and hoverOut, which are to react to the mouse cursor.

However, new events do not trigger themselves. Rather, they must be actively triggered. Since a MouseHoverIn and Out is desired in our example, the Custom Control must listen to the mouse events.

The SAPUI5 framework also generates new methods for events, which belong to the triggering (fire) of the event. This way, the browser mouse events can be listened to within the Custom Control and the own new event can be triggered (fired).

Conclusion

In this article it was shown that the advantages of Custom Controls compared to a detached jQuery or JavaScript component are enormous. SAPUI5 takes care of the rendering and the existing functionalities without anyone having to deal with it themselves. If existing SAPUI5 controls can be extended by properties or events so that the requirements are met, this can be realised with just a few lines of code. Even completely new Controls can be realised with simple HTML and CSS knowledge. Find out how this is implemented in our next blog post!

Written by Martika Möller

Share Post

More Exciting Topics from our Newsroom

We are one of “Germany’s best employers”

As one of Germany's top 100 employers with renewed 'Great...

Read More

Shortcuts for SAP BW in Eclipse

This blog post explains five simple shortcuts to make working...

Read More

Bavarian Curling with the BIG.Cube

BIG.Cube employees went bavarian curling together after work. Find out...

Read More

Enable Live Reporting on SAP HANA for Different Reporting Tools

Our client from the finance sector wanted to meet the ad hoc reporting requirements of the specialist departments. The aim was to create flexible options for quick analyses in addition to the established standard reporting.

The Setting

The customer had connected several supplier systems to a SAP HANA. This in turn passes on its data to a data warehouse. Due to the storage size (6TB), the connected data-providing systems and the performance, SAP HANA was to be used as the reporting platform for these analyses.

© 2021. BIG.Cube GmbH. All rights reserved.

Challenge

The client’s requirement was to implement a generic interface of this reporting platform that could be used by several tools. In addition, only the objects that were released for the accessing person should be visible via this interface.

Since many systems were connected to the reporting platform as data suppliers, the interface also had to be optimised for large amounts of data and many queries. And all this while making optimal use of the performance of HANA. Lastly, it had to be ensured that the operation of other, parallel applications on HANA was not affected.

Solution

From the connection with SAP SDI to a UI5 app to keep track of the status, we designed and implemented a holistic solution. Find out in the following steps how we implemented the requirements for the SAP HANA reporting platform:
1. Selection of the Access Type

The fastest way of access was via JDBC/ODBC accesses. Since the client was already using SAP HANA as an environment for native HANA development and had thus already implemented user management for HANA, this approach was chosen. The front-end tools used by the client all supported this solution.

2. Database User - Who Manages the Roles?

Normally, an ABAP system is also installed in such cases. Here, however, it was a purely HANA native system that was already connected to the company’s user interface. A HANA native application was also running on the database. Therefore, both the knowledge and the technology were already in place.

3. Create Data Rooms

With privileges to different data groups, the data room was divided and made accessible per user group. Both general rights to tables and analytical privileges to reduce the data provided to row level were assigned.

4. Calculation Views Per­formance Boost

Calculation Views were used to connect the data from the supplier systems with that from the HANA native app. Analytical privileges were also used there for access control.
Another use of the Calculation Views was to build recurrent data spaces that were used for queries. Through the Calculation Views and their input parameters, the calculation of the result could be done on HANA and did not have to be done through the front-end tools. This led to a significant increase in the performance of report updates.

5. Various Front-End Tools

Our interface could be used equally by the different departments and the tools used. For example, Microsoft’s Power BI, R with Shiny Apps and all other tools with ODBC/JDBC connectivity.

6. HANA Work­load Mana­ge­ment

The size of the reporting HANA with 6TB of pure InMemory storage, plus the additional cold storages with 4TB, made it possible to forego major interventions in workload management during the pilot phase. Nevertheless, limits have been set for the query size (here 256GB). The system is continuously monitored. If an increasing workload is detected, the workload classes are activated and thus system stability continues to be ensured.

All images on this page © 2021. BIG.Cube GmbH. All rights reserved.

Conclusion

Our generic approach meant that all tools could obtain data via the same interface. By setting up the data spaces prepared by Calculation Views, over 90 per cent of the queries could be processed quickly with optimal utilisation of HANA. The availability of the complete  data budget also created maximum flexibility for possible queries – without
the need for IT support.

Written by Daniel Fröhler

Share Post

More Exciting Topics from our Newsroom

We are one of “Germany’s best employers”

As one of Germany's top 100 employers with renewed 'Great...

Read More

Shortcuts for SAP BW in Eclipse

This blog post explains five simple shortcuts to make working...

Read More

Bavarian Curling with the BIG.Cube

BIG.Cube employees went bavarian curling together after work. Find out...

Read More

Standardise, Prepare and Quality-Assure Data Deliveries with SAP SDI Realtime

Our client from the financial sector wanted to standardise data deliveries to its data warehouse and prepare and quality-assure them in an intermediate HANA system. The goal was to prepare everything for near-time reporting in the data warehouse and ad hoc reporting options for the technical departments in the HANA DB.

Here we show a section of the overall architecture, which has been implemented as part of many other projects. In the following, you can read how we connected approx. 700 tables with a source size of approx. 2 TB from an Oracle system in almost real time and what challenges we had to face. At the time of this excerpt, an MS SQL system had already been built into the architecture via log-based Smart Data Integration (SDI) replication.

© 2021. BIG.Cube GmbH. All rights reserved.

Challenges: Regulating Loading - Recognising Changes

The access was only allowed to take place on the standby node of the Oracle system in order not to load the main node. This standby node was only opened read only. The SAP SDI standard options for real-time require write access to the source system. For the data connection, a possibility had to be found in the SAP context that ensures a fast connection despite the read-only mode of the secondary node. In addition, the subsequent system had to be able to see which data had changed as a result of the loading.

Solution - Smart Delta!

From the connection via SAP SDI to a UI5 app for monitoring the status. We developed a holistic solution. Learn how the challenges were solved in the following steps.

Connection with SAP SDI

SAP SDI, SAP’s own solution for data connection integrated into HANA, was chosen for the connection, which was already used for the connection of an MSSQL system. This made it possible to standardise the loading technology and save on operating costs.

Control Utilisation, Increase Speed

In order to reduce the amount of data that is transmitted and to increase the speed, the delta field in the source system was determined and a delta logic was implemented based on this. This only loads the changed data since the last extraction. To control the load on the agent and the HANA, the tables were divided into classes from S to XL using T-Shirt sizes. By setting the maximum parallel running sizes, the load on the system and the speed of the data update can be controlled depending on the available hardware. The expected frequency of Delta and Delete pick-up can also be set. Here, too, performance can be optimised depending on the infrastructure.

Loading with SDI Flowgraphs

SDI flowgraphs were used for the loading, which are optimally suited for filtering the data and partially complicated delta determination. The last load was passed as input to the flow graph, which then loaded the results into the HANA. The results were enriched with a change date, which can be further used by the data warehouse built on it.

UI5 App for Automatic Data Connection

A SAP UI5 app was developed in order to reduce the operating expenses and the expenses for new tables to be connected. This creates the flow graphs automatically and creates or adapts the corresponding .hdbviews and calculation views. This minimises the effort required to change the data structure. In addition, the effort required for the creation and maintenance of flow graphs, tables and calculation views has been significantly reduced.

UI5 Status Dashboard

To ensure an overview of the status of the data connection at all times, a UI5 app was also created here. This is additionally connected to an automatic ticket creation in Azure DevOps as well as to a mail dispatch. Due to the client’s switch from HANA 1 to HANA 2 with the retention of XS Classic objects and the elimination of the classic admin cockpit, an overview of the replication was urgently needed. Other functions have also been integrated into the cockpit, such as changing the T-shirt size of the tables, setting table priorities, defining table groups or quick access to possible error messages.

All images on this page © 2021. BIG.Cube GmbH. All rights reserved.

Reusability

In our solutions, we always ensure a high level of reusability for our clients. Here, SAP SDI was already set architecturally and could be used for all planned scenarios. During development, attention was already paid to the compatibility of HANA 1 with HANA 2 and the possible use of XSA was prepared. Using SAP SDI, MSSQL, Oracle, S4/HANA and BW on HANA systems were connected to the HANA intermediate layer. The SAP standard for real-time connection was also used alongside the Delta process. This standard can also be controlled via the tools.

Conclusion

With our Smart Delta solution, we were able to standardise our client’s data feeds into their data warehouse in just a few steps. For this purpose, we were able to process and quality-assure the data in an intermediary HANA system – in near-time.

Written by Daniel Fröhler

Share Post

More Exciting Topics from our Newsroom

We are one of “Germany’s best employers”

As one of Germany's top 100 employers with renewed 'Great...

Read More

Shortcuts for SAP BW in Eclipse

This blog post explains five simple shortcuts to make working...

Read More

Bavarian Curling with the BIG.Cube

BIG.Cube employees went bavarian curling together after work. Find out...

Read More

Determine Authorisation Errors Quickly and Efficiently

From HANA 1.0 up to HANA 2.0 SPS 03, analyses for authorisation errors in the SAP HANA database were only possible through laborious searches in the traces and logs. In order for the authorisation errors to be found in the logs, tracing had to be activated accordingly. As a consequence, performance losses that varied depending on the tracing level had to be taken into account.

Life Made Easier with SAP HANA Version 2.0 SPS 04

Now, with SAP HANA Version 2.0 SPS 04, SAP has made it much easier to analyse database authorisation errors. In the database schema SYS, there is now a procedure “SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS“, which uses the GUID to determine the database objects to be authorised. In the following, we will show you in simple steps how to identify authorisation errors in the SAP HANA database and thus save yourself time and effort.

Now, with SAP HANA Version 2.0 SPS 04, SAP has made it much easier to analyse database authorisation errors. In the database schema SYS there is now a procedure
SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS“, which uses the GUID to determine the database objects to be authorised. In the following, we will show you in simple steps how to identify authorisation errors in the SAP HANA database and thus save yourself time and effort.

Three Simple Steps to Success

The key to success lies in the database object “SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS”.

The key to success lies in the database object “SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS “.

Assigning the Required Database Rights

In order to be able to execute the procedure for error analysis of database permissions, you need the following rights:

  • Privilege: EXECUTE
  • Database object: SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS
  • The procedure is called as follows:“CALL SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS(”, ?)”
  • Input parameters: GUID (displayed in the console)
  • Output parameters: ? (authorisation object)

Source: https://help.sap.com/viewer/bed8c14f9f024763b0777aa72b5436f6/2.0.04/en-US/9a33043bc2c14981a92bf0f09c794789.html

Detect the Authorisation Error that has Occurred

The user tries to select a Calculation View to which he has no access rights and receives the error message “insufficient privilege” with an associated GUID.

Evaluate the Authorisation Error by means of GUID

The GUID is now passed into the procedure as an input parameter and the procedure is executed.

CALL SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS (‘5842EF7AAEA79D408D8C70FA37156F36’, ?);”

As you can see, the user lacks the SELECT privilege for the Calculation View _SYS_BIC.bigcube.app.test.vha/MyCalcView“.

All images on this page © 2021. BIG.Cube GmbH. All rights reserved.

Assigning the Required Database Rights

In order to be able to execute the procedure for error analysis of database permissions, you need the following rights:

  • Privilege: EXECUTE
  • Database object: SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS
  • The procedure is called as follows:“CALL SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS(”, ?)”
  • Input parameters: GUID (displayed in the console)
  • Output parameters: ? (authorisation object)

Source: https://help.sap.com/viewer/bed8c14f9f024763b0777aa72b5436f6/2.0.04/en-US/9a33043bc2c14981a92bf0f09c794789.html

Detect the Authorisation Error that has Occurred

The user tries to select a Calculation View to which he has no access rights and receives the error message “insufficient privilege” with an associated GUID.

Evaluate the Authorisation Error by means of GUID

The GUID is now passed into the procedure as an input parameter and the procedure is executed.

CALL SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS (‘5842EF7AAEA79D408D8C70FA37156F36’, ?);

As you can see, the user lacks the SELECT privilege for the Calculation View _SYS_BIC.bigcube.app.test.vha/MyCalcView“.

All images on this page © 2021. BIG.Cube GmbH. All rights reserved.

Conclusion

With simple steps it is now possible to analyse which authorisation objects are missing for a user. This reduces the effort and performance losses caused by searching the database traces or logs.

Written by Veli Hasanca

Get In Touch With Us Now

Share Post

More Exciting Topics from our Newsroom

We are one of “Germany’s best employers”

As one of Germany's top 100 employers with renewed 'Great...

Read More

Shortcuts for SAP BW in Eclipse

This blog post explains five simple shortcuts to make working...

Read More

Bavarian Curling with the BIG.Cube

BIG.Cube employees went bavarian curling together after work. Find out...

Read More