SAP HANA Data Modeling Features - from project perspective
You are working on a project and performing your daily tasks. A recent requirement make you ask this question "can we do this in HANA?". Sometimes, we discover things that we did not know at all. The discovered feature was always there but we just ignored it. In some cases, the feature got distributed in new release and we never tried it. Usually, these situations let us find something that can be helpful for deliverables. This way we learn and enhance our skills and hence, optimizes our development process. Personally, I am big fan of things that is simple and just made with purpose. While working with SAP HANA Data modelling perspective I have learnt things that can enhance the data models, provide fast development life cycle and make content management easier.
Project requirement: Information need should be fulfilled with legacy data model or enhanced legacy data model.
Following are the features that can be used to fulfill above requirements (based on real world experience):
We attended SAP DEV Summit in Sydney last year (2015). There, we learnt that analytic views and attribute views won't be used in new HANA view modeling approach. Only calculation views should be used moving forward. Okay, we are already in project mode and creating content from scratch or enhancing existing current content. So, we made decision that we would model only calculation views in order to align with SAP new approach.
The issue is that legacy data model is either an analytical view or calculation view which is built on top of an analytic view (an old SAP HANA Data Modelling approach). Further, these analytic views are consuming attribute views. First suggestion - let's create it again. Second suggestion - RTFM (read the freaking manual). Hey, you can now use "Migrate" feature. Yes, we can use it to migrate or convert following objects:
- attribute views and analytic views to graphical calculation views
- script-based calculation views to graphical calculation views
- classical XML-based analytic privileges to SQL-based analytic privileges
Please note that the migration is from package to another package. This means that if an information view is in package "DEV" and you want to migrate it to package"DEV01". During the migration whole package "DEV" will be migrated to "DEV01". So, make sure that you have collected the required objects under one clean package before migrating objects. Migration has some impact and due to which some of the entities can change when you convert analytic view or attribute view to calculation view. Please refer to SAP HANA Data Modeling guide as these can change over time. Also, there is best practice listed that you can follow to perform smooth migration.
Well, you noticed that how this feature reduces development time and we can achieve results in short period. One more convincing reason to start using calculation view is introduction of "web-based data modeling tools" for future releases. SAP is moving to web-based editor (web-based IDE) for SAP HANA data modelling as well and only calculation view can be created in web-based editor.
Usually, this feature is used for copying SAP delivered standard HANA content (SAP Rapid Deployment Solutions) to customer package. For example, you have downloaded the SAP HANA RDS for operational reporting which has been deployed under "sap.ecc.fin" (just an finance example) package. As per best practice by SAP RDS documentation we should copy this content to company's custom package i.e "company.ecc.fin" and then make changes if needed. In the past, we had to copy each content and it's dependencies (dependent data model) manually and later activate them one by one. Trust me, it was lot of work and required many days (money too) to do it. Therefore, in some cases only required content was copied. Now, with "mass copy" you do following:
- select source and target package
- create a mapping between two packages
- select all data models or just few
- "convert analytic views to calculation view" option is available. Aha ! two goals with one shot.
Now, you can do similar with your legacy content as well. There is no restriction from SAP that you can only do it for SAP delivered content (at least I did not find one). For example, you have legacy content in "legacy.fin" package and you want to copy this "new.fin" package. Well, be SAP guest and do it. You will have to consider following:
- If you are copying dependent objects for script-based calculation views or procedures to a local package, manually change the script or procedure to adjust references in impacted objects after copying. or you can use "Migrate" feature in this case to convert it to graphical view first.
- If you are copying objects to the target package (new.fin) without copying its dependent objects, the copied object has references to the dependent objects in the source package (legacy.fin)
With above features, fast development is achievable and content management is flexible. We all work towards deliverable and if we can deliver on time then we can focus on other things. In fact, if we know about such features then we can estimate our development time and plan ahead.
Remember, goal is to work smart, finish on time and stay ahead.