This blog describes about- How to set client type for BOE Enterprise Session using:
Purpose of Setting client type for EnterpriseSession:
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.

–Key tables are ADS_EVENT and ADS_EVENT_DETAIL
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.
https://help.sap.com/viewer/0225aa3e7b4b4b17b2d4a882e6f2de96/4.2.4/en-US/45a1e4bf6e041014910aba7db0e...
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...
These methods are available in both Java and .Net stub of BI Platform Webservices.
Using SessionStub:
Using Session:
Session must be taken from any of above methods, then it will audit with mentioned client_id.
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
- BI Platform Java SDK
- BI Platform REST SDK (BIP RWS) (BOE 4.2 SP03 +)
- 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