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: 
former_member230921
Active Contributor
This blog describes about- How to set client type for BOE Enterprise Session using:

  1. BI Platform Java SDK

  2. BI Platform REST SDK (BIP RWS) (BOE 4.2 SP03 +)

  3. BI Platform SOAP Web Services (dswsbobje) (BOE 4.2 SP02 +)


Purpose of Setting client type for EnterpriseSession:

  • In Audit DB– keeps track of the type of client used to login (Column Name : Client_Type_ID)

  • In CMC - If Application registered in BOE then in CMC sessions - name of the application will display else it display as Unknown


Auditing:  (Learn More)


An Auditing Event is a data structure containing information describing an event that took place on the SAP BusinessObjects BI platform system. An event consists of Event Properties and Event Details. Examples of events are Logon or View or Refresh. In this example you see a logon event.

An Auditing Event Property is a key event property that each event has. Duration or User Name are examples of Auditing Event Properties. Each property is represented as a column in the ADS_EVENT table. Note: In this diagram you see an example of only some of the event properties stored in ADS_EVENT table.

Finally, an Auditing Event Detail provides additional information about the event. Each event detail is stored as a row in the ADS_EVENT_DETAIL table.
4.x Audit DB schema:



–Key tables are ADS_EVENT and ADS_EVENT_DETAIL
–ADS_EVENT contain all event properties for each event (one row per event), and includes:


Note:

Client_Type_ID keeps track of the type of client used to login.

Cluster_ID indicates the cluster from where the event was fired.

Server_ID indicates the instance of the server that triggered the event.

Service_Type_ID indicates what kind of service triggered the event.

Start_Time  represents when the workflow was started, in GMT to simplify reporting for a global organization.

The Duration of operation, captured in milliseconds, represents how long it took to perform an operation.

The User ID, the User Name and the Session ID help identify the user who performed the operation and the specific session, in case the user has multiple windows or clients.

Status tracks status of the operation, such as whether a report was run successfully or failed.

The Action ID tracks all events generated as a result of a single user action or click.

 

 

Set client type for session using BI Platform Java SDK


Logging on with logonEx:










IEnterpriseSession logonEx() throws SDKException

{

ISessionMgr sessionManager = CrystalEnterprise.getSessionMgr();

IEnterpriseLogonInformation logonInfo = sessionManager.createLogonInfo();

logonInfo.setReportedHostname("computerName");

logonInfo.setReportedIP("computerIP");

logonInfo. setClientType(“clientType”);

IEnterpriseSession enterpriseSession = sessionManager.logonEx("username", "password", "<cms>:<port>",

"secEnterprise", logonInfo);

return enterpriseSession;

}

 

Logging on with logonWithTokenEx :










IEnterpriseSession logonWithcustomTokenEx() throws SDKException

{

ISessionMgr sessionManager = CrystalEnterprise.getSessionMgr();

IEnterpriseSession enterpriseSession = sessionManager.logon ("username", "password",

"<cms>:<port>", "secEnterprise");

IEnterpriseLogonInformation logonInfo = sessionManager.createLogonInfo();

logonInfo.setReportedHostname("computerName");

logonInfo.setReportedIP("computerIP");

logonInfo. setClientType(“clientType”);

String customLogonToken = enterpriseSession.getLogonTokenMgr().createLogonToken("",120,100);

enterpriseSession = sessionManager.logonWithTokenEx(customLogonToken, logonInfo);

return enterpriseSession;

}

Learn More:


https://help.sap.com/viewer/0225aa3e7b4b4b17b2d4a882e6f2de96/4.2.4/en-US/45a1e4bf6e041014910aba7db0e...

Set client type for session using BI Platform REST SDK(RWS)


















































Sl. No.

Description

REST API

Http Methods

Query Parameters
1.
Logon using username and password

(Learn More)
http://host:<port>/biprws/vx/logon/long GET, POST N.A
2.
Logon with token/serialized Seeeion

(Learn More)
 http://host:<port>/biprws/vx/logon/token  GET, POST  N.A
 3.
Logon with adsso

(Learn More)
http://host:<port>/biprws/vx/logon/adsso  GET clienttype
4.
Logon trusted

(Learn More)
http://host:<port>/biprws/vx/logon/trusted  GET  X-SAP-TRUSTED-USER, clienttype
5.
Logon trusted x509

(Learn More)
http://host:<port>/biprws/vx/logon/trustedx509 GET clienttype

Note : setting client type using REST SDK is available from BOE 4.2 SP03 +.

Learn More:

https://help.sap.com/viewer/db6a17c0d1214fd6971de66ea0122378/4.2.4/en-US/45f58fe26e041014910aba7db0e...

 

Set client type for session using BI Platform SOAP WebServices(dswsbobje)


These methods are available in both Java and .Net stub of BI Platform Webservices.

1. Login:










String SESSION_ADDRESS = "http://<host>:<port>/dswsbobje/services/Session";

URL sessConnURL = new URL(SESSION_ADDRESS);

Connection m_sessConnection = new Connection(sessConnURL);

Session m_session = new Session(m_sessConnection);

EnterpriseCredential credential = EnterpriseCredential.Factory.newInstance();

credential.setAuthType("secEnterprise");

credential.setLogin("administrator");

credential.setPassword("Password1");

credential.setClientType("client_id");

SessionInfo info = m_session.login(credential);


2. LoginWithToken:


Using SessionStub:











String SESSION_ADDRESS = "http:// <host>:<port>//dswsbobje/services/Session";

SessionStub m_session_Stub = new SessionStub(SESSION_ADDRESS);

LoginWithToken lt = LoginWithToken.Factory.newInstance();

lt.setLoginToken(newToken);

lt.setClientType("client_id");

LoginWithTokenDocument loginTDoc = LoginWithTokenDocument.Factory.newInstance();

loginTDoc.setLoginWithToken(lt);

LoginWithTokenResponseDocument respDoc = m_session_Stub .loginWithToken(loginTDoc);

LoginWithTokenResponse resp = respDoc.getLoginWithTokenResponse();

SessionInfo sessionInfo = resp.getSessionInfo();

Using Session:








String SESSION_ADDRESS = "http:// <host>:<port>//dswsbobje/services/Session";

URL sessConnURL = new URL(SESSION_ADDRESS);

Connection m_sessConnection = new Connection(sessConnURL);

Session m_session = new Session(m_sessConnection);

LoginOption option = LoginOption.Factory.newInstance();

option.setClientType(“client_id”);

SessionInfo info = m_session.loginWithToken(newToken,option);


3. LoginWithSerializedSession:


Session must be taken from any of above methods, then it will audit with mentioned client_id.

 
Related Links:

https://blogs.sap.com/2017/04/21/session-management-in-bi-platform-rest-sdk-rws/

https://blogs.sap.com/2015/07/15/unlock-the-auditing-database-with-a-new-universe-and-web-intelligen...

https://help.sap.com/viewer/p/SAP_BUSINESSOBJECTS_BUSINESS_INTELLIGENCE_PLATFORM

 
6 Comments