Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 


I am writing this blog to give a guide how to connect SAP BusinessObjects Cloud (BOC / C4A)  to several different datasources.



 

Content:


 

  • HANA Database on-premise

  • SAP BPC NW on premise

  • SAP BW on-premise

  • SAP S4 on-premise

  • General JDBC SQL database



 

SAP HANA on-premise


 

Required:



  • SAP Webdispatcher or Http Apache Server

  • SAP HANA Info Access Service (InA), version 4.10.0 or above


 

1) Installation Http Apache Server


 

Help             : SAP BusinessObjects Cloud Help

Download     : https://httpd.apache.org/ if you are not compiling it, you could use one of the distributions.

                     I used Apache Haus Downloads .

 

Required for httpd:  Download Visual C++ Redistributable for Visual Studio 2015 from Official Microsoft Download Center

 

In my example i use as installation path: c:\dev\Apache24\!



Hostname where apache httpd is installed: hostname.sin.corp.xxx


 

2) Setup Http Apache Server


 

After the installation go open the file httpd.conf, which it is under the directory: c:\dev\Apache24\conf\

 

Change the following in the file!

 

























old value new value
Define SRVROOT "/Apache24" Define SRVROOT "c:\dev\Apache24"
Listen 80 #Listen 80


#LoadModule proxy_module modules/mod_proxy.so

#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

#LoadModule proxy_connect_module modules/mod_proxy_connect.so

#LoadModule proxy_express_module modules/mod_proxy_express.so

#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

#LoadModule proxy_html_module modules/mod_proxy_html.so

#LoadModule proxy_http_module modules/mod_proxy_http.so

#LoadModule proxy_http2_module modules/mod_proxy_http2.so

#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so


LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_express_module modules/mod_proxy_express.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

LoadModule proxy_html_module modules/mod_proxy_html.so

LoadModule proxy_http_module modules/mod_proxy_http.so

#LoadModule proxy_http2_module modules/mod_proxy_http2.so

LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so


<IfModule ssl_module>

#Include conf/extra/httpd-ssl.conf

Include conf/extra/httpd-ahssl.conf

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>


<IfModule ssl_module>

Include conf/extra/httpd-BOCssl.conf

#Include conf/extra/httpd-ahssl.conf

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

 

Go to the folder c:\dev\Apache24\conf\extra and copy the file httpd-ssl.conf  to httpd-BOCssl.conf.

Open the file httpd-BOCssl.conf and change the following:

 













old value new value


<VirtualHost _default_:443>

 

 

#   General setup for the virtual host

DocumentRoot "${SRVROOT}/htdocs"

ServerName www.example.com:443

ServerAdmin admin@example.com

ErrorLog "${SRVROOT}/logs/error.log"

TransferLog "${SRVROOT}/logs/access.log"

 

 

#  SSL Engine Switch:

#   Enable/Disable SSL for this virtual host.

SSLEngine on

 

 

#   SSL Cipher Suite:

#   List the ciphers that the client is permitted to negotiate.

#   See the mod_ssl documentation for a complete list.

#   Recent OpenSSL snapshots include Elliptic Curve Cryptograhpy (ECC)

#   cipher suites (see RFC 4492) as part of "ALL". Edit this line

#   if you need to disable any of those ciphers.

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

 

........

 

 

 

</VirtualHost>


<VirtualHost _default_:443>

SSLEngine on

SSLProxyEngine on

ServerName hostname.sin.corp.xxx:443

SSLCertificateFile "${SRVROOT}/conf/ssl/reverseproxy.crt"

SSLCertificateKeyFile "${SRVROOT}/conf/ssl/reverseproxy.key"

DocumentRoot "${SRVROOT}/htdocs"

# DocumentRoot access handled globally in httpd.conf

CustomLog "${SRVROOT}/logs/ssl_request.log" \

"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

<Directory "${SRVROOT}/htdocs">

Options Indexes Includes FollowSymLinks

AllowOverride AuthConfig Limit FileInfo

Require all granted

</Directory>

 

#i

ProxyPass /hanadb/ http://<your hana server>:80<instance no>/


  ProxyPassReverse /hanadb/ http://<your hana server>:80<instance no>


 


  ProxyRemote https://epmprod<accountname>.hana.ondemand.com/ https://<your proxy host>:8080/

ProxyPass /sap/ https://epmprod<accountname>.hana.ondemand.com:443/sap/

ProxyPassReverse /sap/ https://epmprod<accountname>.hana.ondemand.com:443/sap/

 

 

 

 

</virtualhost>

 

 

If your network is not behind a proxy, omit the that line :   ProxyRemote https://epmprod<accountname>.hana.ondemand.com/ https://<your proxy host>:8080/



Now, we are generating the certificate.


Go to the folder c:\dev\Apache24\bin and run the following commands:

  1. set OPENSSL_CONF=c:\dev\Apache24\conf\openssl.cnf.

  2. openssl req -newkey rsa:2048 -nodes -keyout reverseproxy.key -out reverseproxy.csr
    ---------------------------------------------------------------------------------------------------------------------------------------
    $ openssl req -newkey rsa:2048 -nodes -keyout reverseproxy.key -out reverseproxy.csr
    Generating a 2048 bit RSA private key
    .................+++
    ......+++
    writing new private key to 'reverseproxy.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:
    State or Province Name (full name) [Some-State]:
    Locality Name (eg, city) []:
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
    Organizational Unit Name (eg, section) []:
    Common Name (e.g. server FQDN or YOUR name) []:hostname.sin.corp.xxx
    Email Address []:

    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    ----------------------------------------------------------------------------------------------------------------------------------------------------

  3. openssl x509 -req -in reverseproxy.csr -signkey reverseproxy.key -out reverseproxy.crt

  4. move reverseproxy.* ..\conf\ssl\


 

 

3) Configure connection inside BusinessObject Cloud


 

Go to the "Chrome" browser and open following url: http://hostname.sin.corp.xxx//sap/fpa/ui/index.html?tenant=<tentant id>



Select "Connection" from the side panel



Click on the "+" icon and select "SAP HANA" under "Live Data Conection"

 



 

Enter the connection details and click the "Ok" button.
Remember the path is taken from the configuration of :

 

          ProxyPass /hanadb/ http://<your hana server>:80<instance no>/


          ProxyPassReverse /hanadb/ http://<your hana server>:80<instance no>


 

 



Select "Modeler - Models" from the side panel.



Click on the "+" icon.



Click on the "Use a Datasource" icon and select from the left side "Live Data Connection".



Select you HANA datasource and select your view.



 

SAP HANA on HANA Cloud Platform(HCP)


 

Add the folowing roles to HANA database user, which is connecting.

 

sap.bc.ina.service.v2.userRole:INA_USER



URL also important, it gives you the hostnane for the connection.

https://<database name><Account name>.hanatrial.ondemand.com/sap/hana/ide/security/

Example:

database name     : hcpta01

accountname        : p1234567890trial
Hostname             : hcpta01p1234567890trial.hanatrial.ondemand.com

 

Go to the "Chrome" browser and open following url: http://hostname.sin.corp.xxx//sap/fpa/ui/index.html?tenant=<tentant id>



     Select "Connection" from the side panel



     Click on the "+" icon and select "SAP HANA" under "Live Data Conection"





 

Connection done.

 

 

SAP BPC on-premise


 

Required:



  • SAP HANA Cloud Connector


 

1) Installation SAP HANA Cloud Connector


 

Download from https://tools.hana.ondemand.com/#cloud and install it

  1. Login with Administrator/manage

  2. Connect to your epm host.

  3. Go to access control and enter the following a paramters:internal hostname:  on-premise BPC hostname
    internal port        :   BPC port
    Virtual hostname:   your choice   ex. hcp.bpc
    Virtual port        :    your choice   ex. 50700

  4. Go to "Resource accessible" enter "/" and select "Path and all sub-path"


 



2) Configure BOC connection

 

Go to the "Chrome" browser and open following url: http://hostname.sin.corp.xxx//sap/fpa/ui/index.html?tenant=<tentant id>



     Select "Connection" from the side panel



     Click on the "+" icon and select "Import Data Connection" - "SAP BPC"



   Enter the parameters and for host name you use the virtual host from the cloud connector configuration.



   Done.

 

SAP BW on-premise


 

BW System parameters:

 

BW hostname: bwhostname

System number: 07

Client ID: 100

Language: en

User: bwuser

 

Required:



  • Apache Tomcat

  • SAP BusinessObject Cloud Agent

  • SAP Cloud Connector


 

1) Installation of Tomcat


Dowload tomcat from  http://tomcat.apache.org/download-70.cgi

 

Hostname: tomcat.server

Installation path: C:\Apache\tomcat7\

 

Go to the folder C:\Apache\tomcat7\conf and open file server.xml

 





















old value new value
<Server port="8005" shutdown="SHUTDOWN"> <Server port="8005" shutdown="SHUTDOWN">


<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />


<Connector port="8088" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

 

The ports don't have to be changed, but depends on existing server os, may some ports already used.

 

Open the command shell and go to folder  C:\Apache\tomcat7\bin

Check if the environment variable JAVA_HOME or JAVA_JRE is set.

If not use the command set JAVA_HOME=C:\JAVA\jdk1.8.0_91 or set JAVA_JRE=C:\JAVA\jre1.8.0_91

 

run the command startup.bat.

 

Note:

If you are getting an error like that:

--------------------------------------------

$ startup.bat

Files\Java\jre1.8.0_91\"" was unexpected at this time.
---------------------------------------------

It means you have a space in the JAVA_HOME path, which tomcat has a problem.

 

 

 

Go to browser and go to URL: http://localhost:8088/

 



Back to the command shell, go the following path: C:\Apache\tomcat7\webapps\manager\WEB-INF\

 

Open the file web.xml and change the following things

















old value new value
<max-file-size>52428800</max-file-size> <max-file-size>552430000</max-file-size>
<max-request-size>52428800</max-request-size> <max-request-size>552430000</max-request-size>

Should be bigger than 52428800!

 

 

Go to the folder : C:\Apache\tomcat7\conf

Open the file tomcat-users.xml













old value new value


<!--

<role rolename="tomcat"/>

<role rolename="role1"/>

<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>

<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>

<user username="role1" password="<must-be-changed>" roles="role1"/>

-->


  <role rolename="tomcat"/>

<role rolename="c4a"/>

<role rolename="admin-gui"/>

<role rolename="manager-gui"/>

<role rolename="Services"/>

<user username="tomcat" password="Welcome1" roles="tomcat,admin-gui,manager-gui"/>

<user username="both" password="Welcome1" roles="tomcat,c4a"/>

<user username="c4aadmin" password="Welcome1" roles="c4a,Services"/>

 

 

 

2) Installation of BusinessObject Cloud Agent


 

Download from the service portal the SAP BOBJ Cloud Agent.

 



 

Please assure you download the latest patch!

 

Unzip the file and copy the file C4A_AGENT.war to C:\Apache\tomcat7\webapps\

 

Download SAP Java Connector (SAP JCO), version 3.0.12 or higher.



 

Unzip the files and copy the two sapjco3.jar and sapjco3.dll into the following location C:\Apache\tomcat7\lib\

 

 

Go to folder ; C:\Apache\tomcat7\bin

 

Run the command shutdown.bat and then run startup.bat

 

 

Go back to the browser and enter the following url:  http://localhost:8088/C4A_AGENT/service/api/epm/bw

 



 

 

After login you should see the screen below with return html code 200.



3) Install configure and install SAP cloud connector

Download from https://tools.hana.ondemand.com/#cloud and install it




  1. Login with Administrator/manage

  2. Connect to your epm host.

  3. Go to access control and enter the following a paramters:internal hostname:  tomcat.server
    internal port        :   8088
    Virtual hostname:   your choice   ex. hcp.c4aagent
    Virtual port        :    your choice   ex. 8077

  4. Go to "Resource accessible" enter "/C4a_AGENT/" and select "Path and all sub-path"



 

4) Configure BOC connection

 

Go to the "Chrome" browser and open following url: http://hostname.sin.corp.xxx//sap/fpa/ui/index.html?tenant=<tentant id>



     Select "System" from the side panel and select "Administration"



     Enter the parameters from the cloud connector
User and password from tomcat-users.xml
C4AAdmin\Welcome1



     Select "Connection" from the side panel



     Click on the "+" icon and select "Import Data Connection" - "SAP BW"



Enter your parameters, connection done.




4 Comments