This article was written to give insight on hybris datahub to help temper expectations on its capabilities, user interface, and java knowledge requirement. I’ll highlight its good features and areas where it may need improvement. Though some points may seem to be impartial but I’ll try to be objective as much as I can. Note that I’m an SAP consultant focused on integration with sales and distribution modules and have in-depth project experience with hybris commerce and SAP ECC via datahub as key integration point. I come from SAP functional background so there may be some cases I sound like I’m comparing how a certain function is expected to work as how we typically handle it in SAP. Since, there’s not enough talent globally to meet the demand, I’ve noticed that there are few consulting firms and freelancers are trying to build their hybris delivery capabilities and hybris skillset respectively. But companies are also taking a measured approach in re-tooling their resources. One of this approach is to learn the skillset independently which is very common in this era where new technologies just sprout of nowhere. If you are in a situation where you need to get your feet wet on hybris datahub integration with SAP and haven’t taken a deep dive into hybris datahub development, this article is for you!
Just a bit of history, before SAP acquired hybris, the hybris integration approach was based on Impex import and export files which were imported or exported from the hybris system. Since hybris I the primary e-commerce solution that will be offered by SAP, it made sense to build a framework for integrating seamlessly with hybris products. This gave birth to SAP datahub that was envisioned to serve as a framework where developers can build hybris asynchronous interfaces with SAP or Non-SAP product.
I have not touched all the latest features of the product since this article is not enough to cover them all but we’ll continue to share more insights in the future.
You may know that data hub is built based on Java Spring Framework, therefore, knowledge of Java programming and common tools used in Java-based implementations will help you easily figure out the procedures and architecture of Hybris datahub, Hybris commerce, and Hybris extensions. It needs to be set-up using tools such as maven, apache tomcat, and JDK while development of enhancements and modifications of java projects can be handled using your preferred IDEs. I used eclipse to import maven projects and custom datahub extensions. While knowledge of Java helps in understanding how extensions can be deployed and how to troubleshoot Hybris server issues, being proficient in java will depend on what role you play in the team. If you are the datahub architect or the tech development lead to develop datahub custom extensions for external system integrations, then yes, it’s a pre-requisite. Otherwise, the out of the box interface extensions should be enough to support standard asynchronous interfaces with SAP such as order management (SALESORDER_CREATEFROMDAT2), order cancellation, order (ORDRSP) and delivery (DELINF) response to hybris, customer master replication to hybris (DEBMAS), pricing replication to hybris (COND_A), material master replication(MATMAS) to hybris and stock level replication to hybris (LOISTD).
In my opinion, datahub is not as simple as advertised from a functional consultant perspective because technical help is required for the installation process. Even a technical guy who has limited knowledge of Java will have a tough time during installation for the simple reason that the deployment, initialization, and build approach are foreign for non-java guys. I had to understand that I need to build, re-build the application each time I changed a property file and re-start the tomcat apache server to reflect the changes. And these steps are really confusing since these are all done via command prompt. I suggest that you note down each step, including program commands and screenshots so you can easily revert your changes. I sure hope that SAP would help improve or develop a wizard to handle the installation process.
To elaborate this further…
Hybris datahub doesn’t provide the typical windows GUI to install the application. You would need to follow step by step procedures that can be found in hybris wiki which requires you to execute in command prompt.
Since the files are already compressed, it should be easy to just run WinZip and extract the files so we can simply run the commands. I’m wrong, this step in itself already run into issues due to long folder names that violates windows policies. You will need to download WinRAR to decompress the file without issues.
In this era of great emphasis on user experience, why are there no UI or windows wizard for step-by-step installation procedures?Some may argue that my expectations here are wrong but I’ve been a consultant who handled an application that was acquired by Oracle, Oracle kept on improving the installation processes of the application. Hybris datahub has been built to make it easy to integrate with hybris but this step of manually installing the application leads me to the 3rd point.
Datahub and Hybris Commerce servers that are ran in local windows environment needs the command prompt windows be open. This means at least 2 windows must be open, but in my case I used 3 as shown below but your server set-up may be different from mine so screenshots below are just for illustration purpose.
Data hub re-start:
Hybris server re-start:
It can take you days to successfully install hybris and datahub in your local system if you don’t have a pretty good understanding of the Java framework, how it works with Apache tomcat, and extension concept. Why? Because if you wrongly install the application, there’s no uninstaller to clean up the system. You need to delete the whole folder.So in a case where you may have wrongly installed or blindly followed the instructions in hybris wiki, you may end-up compiling it wrongly and not able to start the hybris server and datahub and all the other extensions you’d like to use. The compilation itself if you’re running the installation in your local desktop with minimum requirements may take you 45 minutes to an hour. We’re not even talking about the effort to research each and every issue that may come up when we try to start the servers.
Ideally, the consultants should have all the tools they need to do a clean installation and set-up, but in reality, not everything can be taught even in a formal training setting. After training, SAP may provide support but at the end of the day, the technical guys would still need to figure a lot by themselves.Screenshot below shows one of the issues that caused me not being able to start the datahub and the solution I found in an Apache-tomcat forum.
Data hub doesn’t have a simple UI that will allow a business analyst or functional consultant to just simply build the translation by simple drag/drop approach and formula update. If in a case where an additional field needs to be added or behavior to be changed, a couple of areas in the code need to be changed to handle the receiving of raw information from source, creating compositions of raw data to its canonical format and publishing it to target format that receiving party can understand. This is where the java IDE such as eclipse helps but still it’s a lot for a non-Java guy to learn in 1 day.
As I pointed earlier, I could not emphasize more the importance of understanding Java because most if not all of the tools used requires java knowledge. Points below lists these tools that must be very common for a developer. If the user doesn’t know how to use dos commands then how will he be able to navigate and perform the installation?
Datahub provides a framework where solutions can be developed on top of out of the box solutions to support integrations with external systems. The modular design of the data hub makes it easier for developers to create extensions. With the popular spring framework used, a guy with good knowledge of Java and this framework can quickly adapt and modify the codes. Let me continue further with other great things datahub has to offer.
If you’re an integration type guy, you would understand the dilemma of the very first step in integration development and that is building mapping plans. With SAP datahub, building the mapping plan is easier compared to developing an interface from scratch. Just look at the raw XML and you can see the attribute names used are found in common SAP iDOC types. There’s less figuring out situations for the SAP ABAPer or SAP functional guy.
SAP has done a great job of building the translation between hybris and SAP due to the fact that they focused on the essential fields and mapped the required fields against the IDOC types and segment fields that a typical SAP integrator would be familiar with. This essentially reduces the time to do mapping plans compared to a case when an EDI format or XML format need to be analyzed by a consultant to come up with the mapping.I’ve done a couple of integrations with SAP ECC and typically, it takes quite a while to figure out and build a proper mapping plan between SAP and the system we’re trying to integrate it with. However, with SAP datahub, the fields used are exactly or closely matching with the IDOC type and IDOC segment fields.
Another good point about SAP spearheaded the hybris datahub development is that they have documented in good detail the settings to be configured in SAP to communicate with datahub rather than just relying to the publicly available SAP help. The documents in the wiki are clear enough to give the exact direction of what needs to be changed in the ALE, Ports, Partner Profiles, RFC settings, and output type set-up. Even the standard SAP program to be executed to create outbound iDOC to replicate material master, pricing conditions and stock levels are found in hybris wiki.
The idea of activating extensions and adding fields for translation are possible by “configuring” the hybris datahub property files, XMLs, re-building and restarting the servers.I did put quotes with the word configure because in SAP, configuration means we can go to a customizing screen and make changes to influence a behavior of a function in SAP without coding in ABAP.In hybris datahub, this can be achieved too without coding but there’s no simple UI where these changes can be done. The IDE may already be considered a simple UI but still going to an XML code to make field changes seems to be too technical for an SAP functional consultant to handle.
Listeners can also be extended as per requirements and the good thing is that events can be triggered to send e-mail notifications. E-mail notifications as we know are very important for interface set-up for quick reaction and fix by relevant parties. Notifications help in pinpoint the root cause and potential solution to the issue.
SAP Hybris datahub and Hybris commerce can be installed in a local client so long as the client system meets the minimum system requirements which notebooks can. This makes it easier for developer and consultant to make modifications locally and still be able to integrate with third party systems. This means that internet connection is not needed to run simple interface tests to datahub. I used google postman to post REST API calls to hybris datahub! Having a system that’s available for quick demo set-up to potential customers is vital during hybris sales presentations.
To conclude, hybris datahub is a good solution to integrate with hybris and it continues to be developed and enhance to provide more features and functionalities. I believe all these steep learning curve of setting it up will eventually be replaced with a better UI to make the solution simpler to use, and maintain. Developers can simply focus on code enhancements rather than configuration.