Skip to Content

Client Type for Session using SDK in BOE

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/45a1e4bf6e041014910aba7db0e91070.html

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/45f58fe26e041014910aba7db0e91070.html

 

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-intelligence-documents-for-bi41/

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

 

6 Comments
You must be Logged on to comment or reply to a post.
  • Thanks Bharath!  Great information.

    Previously, no matter what I put in for the “clientType”, my session was always “unknown” in the CMC and auditing logs.  This blog helped me resolve the issue with your important comment: “if Application registered in BOE then in CMC sessions – name of the application will display else it display as Unknown

    I found two links that explained and resolved this for me, so I’m providing them to help others understand that the client_id value is actually one of 25 fixed CUIDs in the database.

    I hope this helps,

     

    Dan

     

     

    • Hi Daniel,

      could you please suggest what would be the process in case I’m using HTTP requests? How to get the correct clientType, please?

      Thank you very much.

      • Hi Munarik,

        Look at the table in the documentation link (sp04 Developer guide) above and you will see the cuids for the client types.

        if I want to use “Custom Application 12” (which has a fixed cuid of AZFkpRO4waBGvZNBt4R85YY) as my client type then I would log on using the following:

        POST   biprws/v1/logon/long

        body:

        <attrs xmlns="http://www.sap.com/rws/bip">
            <attr name="password" type="string">user1_secret</attr>
            <attr name="clientType" type="string">AZFkpRO4waBGvZNBt4R85YY</attr>
            <attr name="auth" type="string" possibilities="secEnterprise,secLDAP,secWinAD,secSAPR3">secEnterprise</attr>
            <attr name="userName" type="string">user1</attr>
        </attrs>

        The session will show up as “Custom Application 12” in the cmc and audit logs

        The key is that you must use one of the fixed CUIDs that are registered with the CMS.

        Dan