Configure 2 SFTP Destinations in SAP BO

Recently there is an requirement to to send schedule reports from SAP BO 4.1 SP7 to two different SFTP locations.

For configuring SFTP, you requires fingerprint. There are multiple ways to generate, you can get more details from here –

https://blogs.sap.com/2015/07/23/sftp-destination-for-sap-businessobjects-bi-platform-41/

This can be achieved by configuring SFTP destination in Servers – Adaptive Job Server – Destinations.

You can configure 1 SFTP destination at a time in Adaptive Job Server – Destination & for second SFTP destination you need to create a clone of Job Server & configure with second SFTP destination.

Now if you schedule the Job for Webi Reports, fill the SFTP destination field. it will pick the server automatically as given option – Use the first available server.

The problem on this scenario is, I am getting success in sending the report to first SFTP destination but for second SFTP destination, it’s continuously failing with sftp error as SFTP destination is different as compare to configure in Job Server.

My challenge to give Second Job Server for sending the reports to my second SFTP destination. While scheduling you cannot select the Job Server however there is an option to select Job Server Group.

To achieve this, I have created a Job Server Group in CMC — Servers with the name Job Server & assign the second Adaptive Job Server to this Group.

I have suggested now to schedule the report again & choose option – Give preference to servers in selected group.

This time it will pick the job server assigned to this group & it will send the data to second SFTP destination successfully.

A major drawback of this configuration is, if a job server assigned to this group get stopped then it will stop sending data to SFTP destination & job also start getting failed.

SAP Web Dispatcher Configuration

We have recently installed a new PO 7.5 landscape & want to add this system to web dispatcher.

While adding in Web Dispatcher, we have checked System is showing in Web Disp with Error “Resource Temporary Unavailable”.

We have checked through multiple SAP notes & it’s an error related to Groups.

As we are on JAVA system 2 groups (/J2EE/icr_groups & /J2EE/icr_urlprefix) need to maintain in ConfigTool with cluster restart to resolve this issue.

SAP Note – 1282692 help on this.

Once we added the group in Web Disp & restarted the cluster, it’s showing available in Web Dispatcher & traffic started flowing.

JCO_ERROR_LOGON_FAILURE – SSO Issue

Recently we are getting issue in our SSO connectivity between SAP Business Objects 4.2 SP5 to SAP BW system. We have crosscheck the SSO certificate & it’s valid till 2025 but still it’s throwing the below error for all end users –

JCO_ERROR_LOGON_FAILUREL:Initialization of destination custom_xxxxxxxxxxxxxx failed: System received an expired SSO ticket on xx.xx.xxx.xxx. sysnr 00

There is no change in the SAP level & OS level as well & no OS patching has been done & suddenly it’s started for Analysis for Excel, Webi reports etc…

While going through the multiple things, we have identified that there is 3 minute time difference between SAP Business Objects Server & SAP BW Server. SAP BO server is 3 minute late with SAP BW server, due to this SSO ticket is expiring as BW is not accepting the same.

We update the NTP configuration in SAP Business Objects Server to sync the time with SAP BW server & verified the same at OS level. No need to restart the SAP BO or BW server.

Recheck the SSO functionality again & Voila, now it’s working fine for all BO related stuff.

SAP USMM – User Licensing Report

USMM is a SAP licensing Tool to determine the number of users and the chargeable objects of the modules for SAP system.

Submitting Licensing report to SAP

Step 1: Generate License report

Navigate to USMM tx in SAP system & click on ‘System Measurement’

The system measure would trigger some background jobs which can be monitor from SM37, looks for jobs RSUVM* & wait for these jobs to be completed.

Go to ‘System measurement in the Menu and click on ‘Export to Law file’.

Save the file to a local folder (i.e. – USMM_License)

Step 2: Generate License report on all SAP systems

Perform this step in all the SAP systems
Save the License file for each system in the local folder

Step 3: Submit Report to SAP

Log on to any SAP production system.

In this system run transaction SLAW

This is the License Administration Workbench

Import all the systems data using the first icon on step 1 (Import Data of a System)
Once all the systems LAW files are imported from all SAP systems(already generated report)
Click on Combine Users –> Click on Consolidate All Data
DO NOT click on ‘Send results’ button yet.

Go to results tab to make sure to verify & review the reports along with the stake. Once numbers are satisfactory, you are good to submit report to SAP.After the number are satisfactory.

Click on Send (This will send the report to SAP)

LMBI – License Measurement tool for Business Objects

As per my earlier post, i have shared how BO licensing works.

Once you have install the BO license (CS & named user), now it’s time to audit the license as per license Contract with SAP. LMBI tool requires to perform this action.

This tool will run 2 things – Measurement & Consolidation.

Measurement – This need to run first time based on your version (32bit/64bit) by giving BO administrator credentials, once it’s collected the data successfully. it’s create the measurement.xml file in the respective location. This file requires to import in Consolidation tool.

Consolidation – This tool import the previous run measurement.xml file & ask you several questions. i.e. BO is standalone or integrated server, CPU details, licensing contract with SAP & will show the output whether you are consistent with your license or not.

Below Notes helpful to perform the action –

2817296 – Need correct License Measurement Tool (LMBI) for BI Platform
2383265 – How to launch License Measurement Tool (LMBI) when CORBA SSL protocol is configured

How SAP Business Objects Licensing works

There are different type of licensing available for SAP Business Objects as per the version installed. SAP released multiple notes to understand the same. This is quite different from SAP ABAP & JAVA system.

This comes with “Named User License”, “Concurrent Sessions Based Licensing”, CPU based etc…

Most details covers in below notes –

1285639 – What license types are available for Business Objects Enterprise?

1794184 – What are the different license types (NUL, CAL, CS, CSBL, CPU) for SAP BusinessObjects products

2251998 – How to generate license keys for SAP BusinessObjects Business Intelligence Platform (all versions)

1251889 – License key request for SAP Analytics Solutions (previously SAP BusinessObjects)

————————————————————————————————

Example –

NUL Licensing – Means how many named user login into the system simultaneously. These are guaranteed users which will get the access of BO system.

CSBL Licensing – Means suppose 1 user login into the BO system & then he login into crystal reports or create any other session without disconnecting the previous one, then he is creating multiple concurrent sessions & if these sessions are exhausted by some users then another user can’t login into the system & it will throw an error.

CPU based licensing – Means unlimited named users & concurrent sessions,based on your BO hardware, ideally how many CPU cores & metrics installed in Virtual/Physical server.

————————————————————————————————

Monitor the Current Usage of SAP Business Objects –

Before changing/updating license in BO, please verify the Global System Metrics on your Business Objects Server.

Login into BO Application ——–> Settings ————> View Global System Metrics

The above will show the Purchased license details with Peak License Used.

How to run DB2 commands for SAP

useful DB2 commands which needs to run to administer the DB2 Database for SAP workloads.

#To start DB2
db2start

#To connect to particular database
db2 connect to dbname

#To check DB configuration/parameters
db2 get db cfg for dbname

#To update DB configuration/parameters
db2 update db cfg for dbname using LOGARCHMETH1 DISK:/db2/TST/archivelog

This is an example, you can update any parameter as per your requirement. LOGARCHMETH1 is parameter which need to update to keep the archive logs, This parameter is visible by check DB configuration command & after updating any parameter, DB restart requires & sometimes offline DB backup requires before starting up the DB.

#Backup DB2 Database
db2 backup database dbname to /location

#Restore DB2 Database
db2 restore db dbname from /location on /db2/TST/sapdata1

The above command will restore the DB on /db2/TST/sapdata1 folder. Make sure to check the DB parameters once restore completed as it always point to old configuration. After restore many times DB can’t start & throw roll forwarding error, in this case you need to complete the roll forwarding with below command –

#To end the roll forward status
db2 rollforward db TST to end of logs & complete

#To deactivate DB before shutting down
db2 deactivate db dbname

#To shut down DB normally
db2stop

#To shut down db forcefully as application connections were still exists
db2stop force

#To check all schema in DB2 DB
db2 select schemaname from syscat.schemata

#To list all the tables for all DB’s
db2 list tables for all

#To list all the tables in respective DB
db2 list tables for schema dbname

#To manually generate the archive logs
db2 archive log for database dbname

#Unlock DDIC or any other user in DB2
db2 “update SAPSID.USR02 set UFLAG=0 where BNAME=’DDIC’ and MANDT=’000′

#Check HA/DR status in DB2
db2pd -d dbname -hadr | grep -i hadr

DB2 HA/DR Cluster Stop / Start

SAP application should be shut down before stopping the DB2 cluster.

Azure SUSE Linux host running on SBD cluster – Cluster should be set on maintenance mode
(This is a mandatory step otherwise Virtual Name will switch to other host if DB get down in Primary mode. By setting up maintenance mode, it stick on the same node until maintenance mode OFF)

————————————————–
Shut down sequence – Primary DB & then Secondary DB
Startup sequence – Secondary DB & then Primary DB
————————————————–

Login to Primary DB host & verify the crm_status

#Stop the HADR
db2 stop hadr on db dbname
db2 deactivate db dbname
db2stop

Login to Secondary DB host and run below commands

#Stop the HADR
db2 stop hadr on db dbname
db2 deactivate db dbname
db2stop
———————————————–

#Start the HADR on Standby/Secondary host first
db2start
db2start hadr on db dbname as standby

#Start the HADR on Primary host
db2start
db2start hadr on db dbname as primary
————————————————

#Verify the HADR status on both hosts
db2pd -d dbname -hadr | grep -i hadr

I will update the list with more commands very soon….

TEMSE Inconsistencies in SAP – SP12

In Transaction SP12—->consistency Check , system outputs the … Do a consistency check for TEMSE and delete these inconsistent objects. Looks very easy to do the same but actual problem arise when we perform any System refresh/copy activity then do a consistency check. it will show a big list of inconsistencies as below

Cleaning up this by selecting all & run in DIA mode with give you TIME_OUT Dump if your DIA runtime parameter doesn’t properly set eventually in my case it was set 600 sec & it’s always giving me TIME_OUT dump. To avoid this dump, I ran RSBTCDEL report first with retention period of 7 day in BG mode. it cleaned up lot of files & then did again TEMSE consistency check & delete all in one go. This time it clear all the inconsistencies without any issue & without increasing TIME OUT parameter.

What I Learn is, you can also achieve the same by increasing the TIME_OUT parameter but it’s better to run the cleanup before.

SAP: How to find tables in Transaction Code

Hello All,

Recently we requires some tables behind the running SAP program – i.e. BD64 or OAC0.

There is a method where you can click F1 & check the technical tables but sometimes you find the structure tables instead of transparent tables so it’s very difficult to find the data.

There is 1 more method from where you can get the all tables of any program –

Try below –

SE37(Function Module) – RS_PROGRAM_TABLES

OBJECT TYPE = ‘PROG’

OBJECT NAME = ‘REPORT NAME’ “program name of that tcode” —-> Execute

program name you can find from the System – Status – Program Name

Let me know if this help to you.

SSL Certificate Implementation or Renewal in Web Dispatcher

Hello All,

As per SAP best practice, if we are configuring our SAP systems to access from Internet or from External Network via SAP Web Dispatcher, we should implement SSL/HTTPS certificate to secure our web dispatcher & internal network.

All traffic from outside will only process via SSL layer & provide security to our SAP systems as well.

For Implementing or Renewing the existing SSL/HTTPS certificate, You need to purchase the same from any Third Party (i.e. – Go Daddy).

They will provide you SSL certificate in different formats – i.e. – pfx or crt

CRT file can directly import in SAP ABAP or JAVA system (STRUSTSSO2), make sure to enable https protocol on that respective system.

For Web Dispatcher, we requires PSE file & PSE file can be generate via provided PFX file by following below steps –

Pre-requisites – web dispatcher should be in running state with HTTPS protocol enabled.

1. Get PFX certificate from Vendor (i.e. – Go Daddy) with password.

2. Copy the PFX certificate to any directory in Web Dispatcher

Run the following commands to generate the PFX file from the same directory –

#sapgenpse import_p12 -p /usr/sap/SID/W00/sec/DIR NAME/SSL.pse /usr/sap/SID/W00/sec/DIR NAME/SSL_Godaddy.pfx …Press Enter..

enter the encrypted password shared by Vendor

Please enter PSE PIN/Passphrase: BLANK

#sapgenpse seclogin -p /usr/sap/SID/W00/sec/DIR NAME/SSL.pse -x password by vendor -O sidadm ..Press Enter..

Now SSL.pse has been generated in the same directory from here you trigger the commands.

Maintain the below profile parameters & Restart the Web Dispatcher –

SSL_ENCRYPT = 1
ssl/ssl_lib = kernel dir/libsapcrypto.so
ssl/server_pse = /usr/sap/SID/W00/sec/DIR NAME/SSL.pse

Also maintain the CIPHERSUITE parameters & other SSL parameters as per your requirement.