Skip to Content
Author's profile photo Sharmila Gurubelli

SAP Hybris – Data Hub Installation

SAP Integrations

SAP integrations provide a framework for connecting the Omni-commerce capabilities of SAP Hybris Commerce with other SAP products.

Architecture of SAP Integrations

SAP integrations involve various possible system landscapes, types of communication, data transfer processes, and SAP-specific configuration settings.

For now, let’s focus on Hybris Data Hub Concept.

Data Hub

  • Data hubs are an important component in information architecture.
  • data hub is a database which is populated with data from one or more sources and from which data is taken to one or more destinations.
  • A database that is situated between one source and one destination is more appropriately termed a “staging area”.

Hybris Data Hub

Receives and sends data to SAP ERP or to hybris (data replication in both directions).

example: Hybris Data Hub can replicate product master data from SAP ERP to hybris, or send orders from hybris to SAP ERP.

  • It can be used to connect hybris to non-SAP systems.

Execution takes place in following major steps:

  1. Load (raw format)
  2. Composition (canonical format)
  3. Publication (target format)
  • It also acts as a staging area where external data can be analysed for errors and corrected before being fed into hybris.

 

1.Raw items come directly from the source system.

  • The data they contain may undergo some preprocessing before entering the Data Hub.

2.Canonical items have been processed by Data Hub and no longer resemble their raw origins.

  • They are organised, consistent, and ready for use by a target system.

3.Target items are transition items.

  • The process of creating target items reconciles the canonical items to target system requirements

 

Feeds and Pools

  • Data Hub enables the management of data load and composition with the use of feeds and pools.
  • Fragmented items can be loaded into distinct data pools using any number of separate feeds.
  • Feeds and Pools allow a fine level of control over how data is segregated and processed.

Data Feeds

  • Data feeds enable you to configure how raw fragments enter Data Hub.
  • When data is loaded using one of the available input channels, it is passed on to a data feed as specified in the load payload.
  • The data feed then delivers raw items for processing to a specified data pool.

Data Pools

  • Data pools enable you to isolate and manage your data within Data Hub, for composition and publishing.
  • During the composition of raw items into canonical items, only data isolated within each pool is used.

Step-by-step Procedure for Data hub setup in our local system.

Prerequisites:

1.Hybris – v6.2.0 (I’m using)

2.Apache Tomcat 7.x

3.JDK 1.8

4.MySQL

Step 1:

Create folders as below structure in any of the drive

datahub6.2

  • config
  • crm
  • erp
  • others

  •  Open your tomcat folder -> go to config -> create Catalina folder -> localhost folder -> datahub-webapp (create xml file)

Step 2:

Copy the data from below to the datahub-webapp (xml file)

<Context antiJARLocking="true" docBase="<YOUR_PATH>\hybris\bin\ext-integration\datahub\web-app/datahub-webapp-6.2.0.2-RC13.war" reloadable="true">

    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
            virtualClasspath=
			
                "<YOUR_PATH>/datahub6.2/config;
                 <YOUR_PATH>/datahub6.2/crm/*.jar;
	         <YOUR_PATH>/datahub6.2/erp/*.jar;
	         <YOUR_PATH>/datahub6.2/others/*.jar"/>
</Context>

Step 3:

<YOUR_PATH>hybris\bin\ext-integration\datahub\web-app

  • Go to the above path and copy both the path and file name

Step 4:

The copied path and file name should be pasted in the tomcat folder

Open your tomcat folder -> go to config -> Catalina folder -> localhost folder -> datahub-webapp

Step 5:

Now Start the Tomcat

Go to the following path

<YOUR_PATH>\apache-tomcat-7.0.73\apache-tomcat-7.0.73\bin

  • Run the command startup.bat through command prompt

  • Automatically runs the command in new command prompt as below

Step 6:

Observe the change in the folders after the server starts

Before:

After:

Step 7:

Now go to the datahub6.2 folder which we have created earlier

<YOUR_PATH>\datahub6.2\config

Step 8:

create the following files

encryption-key ———– text format

local.properties ———– properties file

  • Copy the key 32digit key and paste in encryption-key file
  • Copy the following code into local.properties file
#DB Setup
dataSource.className=com.mysql.jdbc.jdbc2.optional.MysqlDataSource
dataSource.driverClass=com.mysql.jdbc.Driver
dataSource.jdbcUrl=jdbc:mysql://localhost/datahub?useConfigs=maxPerformance
dataSource.username=root
dataSource.password=root
#media storage
mediaSource.className=com.mysql.jdbc.jdbc2.optional.MysqlDataSource
mediaSource.driverClass=com.mysql.jdbc.Driver
mediaSource.jdbcUrl=jdbc:mysql://localhost/datahub?useConfigs=maxPerformance
mediaSource.username=root
mediaSource.password=root
#Not why we need to set it here.
datahub.extension.exportURL=http://localhost:9001/datahubadapter
datahub.extension.username=admin
datahub.extension.password=nimda
#Not why we need to set it here.
targetsystem.hybriscore.url=http://localhost:9001/datahubadapter
targetsystem.hybriscore.username=admin
targetsystem.hybriscore.password=nimda
# Encryption
datahub.encryption.key.path=encryption-key.txt
# enable/disable secured attribute value masking
datahub.secure.data.masking.mode=true
# set the masking value
datahub.secure.data.masking.value=*******
kernel.autoInitMode=create-drop
#kernel.autoInitMode=update
#====
sapcoreconfiguration.pool=SAPCONFIGURATION_POOL
#sapcoreconfiguration.autocompose.pools=GLOBAL,SAPCONFIGURATION_POOL
#sapcoreconfiguration.autopublish.targetsystemsbypools=GLOBAL.HybrisCore
datahub.publication.saveImpex=true
datahub.server.url=http://localhost:8080/datahub-webapp/v1

Step 10:

Go to the following path

<YOUR_PATH>\hybris\bin\ext-integration\datahub\extensions\sap


Step 11:

copy the highlighted jar files into the following folder

Go to erp folder

Step 12:

Go to others folder

Download the mysql-connector-java-5.1.30-bin.jar file and copy to the others folder only the jar file after extracting the Zip file

Step 13:

Login to MYSQL workbench

  • Create a Schema as below

Step 14:

Step 15:

Start Tomcat server

Step 16:

Go to localhost:8080/datahub-webapp/v1/data-feeds

  • To Disable Spring secure
    Stop the server

Step 17:

Go to the following path

<YOUR_PATH>\apache-tomcat-7.0.73\apache-tomcat-7.0.73\webapps\datahub-webapp\WEB-INF

  • web (open the xml file) and comment the following code

Step 18:

Now Start the server

Step 19:

Tables will be loaded in a schema which was created in step 13.

In the next blog, I will be posting how to load data into data hub using IDOC, CSV  and also further by sending IDOC directly from SAP ERP to Hybris (Asynchronous Order Management).

Thanks for reading 🙂

 

Assigned Tags

      24 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Hi, Thank you for this nice post on DataHub.

      I would like to know, how to mask the password for below properties..If password is mentioned like this then there will be a chance of misusing it. Can you please throw some light on this? Appreciate your help!

       

      datahub.extension.password=nimda

      targetsystem.hybriscore.password=nimda

       

      Regards

      Satish

      Author's profile photo Srinivas Jayanna
      Srinivas Jayanna

      Hi Sharmila,

      Thanks for posting this blog.

      For me even after disabling the spring secure,system asking credentials to login. Can you please let me know is there any additional things we need to set.

      Author's profile photo Sharmila Gurubelli
      Sharmila Gurubelli
      Blog Post Author

      Hi Srinivas,

      Have you restarted the server after disabling the spring secure?

      Can you please share the screenshot of web.xml which you disabled.

      Thank you,

      Sharmila G.

      Author's profile photo Srinivas Jayanna
      Srinivas Jayanna

      Hi Sharmila,

      Issue resolved. I forgot to restart the server.

      Thanks & Regards

      Srinivas H J

      Author's profile photo Former Member
      Former Member

      Hi,

      Thank you for sharing valuable knowledge in such a simple way

      Author's profile photo Former Member
      Former Member

      Hi Sharmila,

      I have done the inbound from Datahub to Hybris, i dont know how to do the outbound from Hybris to  Datahub, please help me

       

      Author's profile photo Maaz Ahmed
      Maaz Ahmed

      Raja Ravichandran did you find a way for outbound? if so, can you please share

       

       

      Author's profile photo Varsha Alimchandani
      Varsha Alimchandani

      Hi Sharmila,

      We have installed Hybris 6.1 commerce suite. I am absolutely new to Hybris, and we are trying to setup connectivity between S/4 HANA to Hybris using ALE configurations.

      We have done all the settings in S/4 HANA and created RFC destination and HTTP in Hybris backoffice.

      Now we sent few IDOCs to Hybris and they are sucessfull. can you please help me where can i see this IDOC data posted in Hybris system?

       

      Best regards,

      Varsha.

      Author's profile photo Former Member
      Former Member

      Hi Sharmila ,

      I have a problem in step 16 , and i can't find WEB-INF file in this path " <YOUR_PATH>\apache-tomcat-7.0.73\apache-tomcat-7.0.73\webapps\datahub-webapp\WEB-INF" 

      Regards,

      Author's profile photo Former Member
      Former Member

      Hi Shimaa,

       

      Were you able to resolve your 404 issue posted above. I am also facing same kind of problem, please share the solution if you have.

       

      Regards,

      Kuldeepak

      Author's profile photo Former Member
      Former Member

      Getting the error Class not found: "org.apache.catalina.loader.VirtualWebappLoader" exception.
      Any clues ?

      Author's profile photo Former Member
      Former Member

      Config is different for Tomcat 8, so issue is fixed.
      But getting Mysql driver issue, but i placed same jar in others folder. BTW i'm using Hybris6.3.

      Author's profile photo Bhavik Solanki
      Bhavik Solanki

      Wait for some time as, after the tomcat server goes up, it takes some time to initialize the data.

      [INFO] [c.h.d.l.i.DefaultInitializationService] **************************
      [INFO] [c.h.d.l.i.DefaultInitializationService] * Ending Integrity Check *
      [INFO] [c.h.d.l.i.DefaultInitializationService] **************************

      After you see this on the tomcat continue with step 16

      Author's profile photo Former Member
      Former Member

      Nice write-up.

      Author's profile photo Former Member
      Former Member

      We have a situation that is we need 2 solr index servers on 2 dedicated hosts.

       

      Could someone also write about how to install solr index server on 2 dedicated hosts for the same

      Hybris cluster?

      Thanks.

       

      Author's profile photo Former Member
      Former Member

       

      More details:

      We have a situation that is we need to add 2 solr index servers on 2 dedicated hosts in order to speed up the search.

      Could someone also write about how to install solr index server on 2 dedicated hosts for the same Hybris cluster?

      Thanks.

       

      Author's profile photo Hari Prasad
      Hari Prasad

      what is the encryption key?

      can we give any number?

       

      Author's profile photo Muhammad Aqib
      Muhammad Aqib

      Install openSSL and run this command to generate encryption key : openssl enc -aes-128-cbc -k secret -P -md sha1

       

      Author's profile photo David Nguyen
      David Nguyen

      Hi Sharmila,

      I am trying to follow your instruction and stop at the "Copy the key 32digit key and paste in encryption-key file". Not sure where can I get this key, but is this something we have to purchase or locate somewhere?

      Thank you for your help,

      David

       

      Author's profile photo Muhammad Aqib
      Muhammad Aqib

      David Nguyen Install openSSL and run this command to generate encryption key : openssl enc -aes-128-cbc -k secret -P -md sha1

      Author's profile photo David Nguyen
      David Nguyen

      Thanks Muhammad!

      Author's profile photo Johan Van Zijl
      Johan Van Zijl

      Just a note, I had tremendous problems after performing Step 17 in order to Disable Spring Security. I did this as I could not log in to webapp without it, despite having maintained a user/password.

      The error I received was: Internal Error 500

      java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
      	org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes(RequestContextHolder.java:131)
      

      Disabling Spring Security was the wrong answer. For some reason tomcat was not reading the datahub admin user from local.properties. Tempory fix for now, I maintained the user and password directly in {tomcat}/webapps/datahub-webapp/WEB-INF/classes/META-INF/datahub-security-basic-spring.xml

       

      Author's profile photo Manigandan L
      Manigandan L

      hi I am getting 404 wen hitting

      http://localhost:8080/datahub-webapp/v1/idoc/receiver

      post method

      Author's profile photo amish kumar
      amish kumar

      Hi Sharmila,

      Thanks for share the data hub knowledge.

      I had problem that no table created in my datahub db and after setup I visit mention url and able to see only one feed data

      <feedDatas>
      <feedData>
      <feedId>0</feedId>
      <name>DEFAULT_FEED</name>
      <description>Default feed</description>
      <poolingStrategy>GLOBAL_POOL</poolingStrategy>
      </feedData>
      </feedDatas>
      Second can you tell how to load data into data hub using IDOC, CSV?
      Plz reply
      Thanks in advance
      Regards,
      Amish