cancel
Showing results for 
Search instead for 
Did you mean: 

Connection driver not found SLS 16000: Semantic Java SDK

Former Member
0 Kudos

Hi,

I am trying to create and publish connection on BO 4.1 server using Semantic Java SDK

I have 4.1 server installed on my system trial version and I have created ms access db but I am getting below error

Error:

Exception in thread "main" com.sap.sl.sdk.authoring.internal.AuthoringException: The connection driver "MS Access 2013/ODBC Drivers" is unknown. (SLS 16000)

  at com.sap.sl.sdk.authoring.connection.internal.RelationalDriverFactory.getRelationalDriver(RelationalDriverFactory.java:128)

  at com.sap.sl.sdk.authoring.connection.internal.services.ConnectionFactoryImpl.createRelationalConnection(ConnectionFactoryImpl.java:39)

  at connectionpackage.ConnectionClass.main(ConnectionClass.java:67)

Java Code:

package connectionpackage;

import com.sap.ip.bi.util.BiConsole.out;

import com.sap.sl.sdk.authoring.cms.CmsResourceService;

import com.sap.sl.sdk.authoring.cms.internal.right.SessionRight;

import com.sap.sl.sdk.authoring.connection.Connection;

import com.sap.sl.sdk.authoring.connection.DatabaseConnection;

import com.sap.sl.sdk.authoring.connection.DatabaseConnection.AuthenticationMode;

import com.sap.sl.sdk.authoring.connection.ConnectionFactory;

import com.sap.sl.sdk.authoring.connection.ConnectionParameter;

import com.sap.sl.sdk.authoring.connection.ConnectionService;

import com.sap.sl.sdk.authoring.connection.RelationalConnection;

import com.sap.sl.sdk.authoring.local.LocalResourceService;

import com.sap.sl.sdk.framework.SlContext;

import com.sap.sl.sdk.framework.cms.CmsSessionService;

import com.businessobjects.framework.*;

import com.crystaldecisions.sdk.exception.SDKException;

import com.crystaldecisions.sdk.framework.CrystalEnterprise;

import com.crystaldecisions.sdk.framework.IEnterprisePrincipal;

import com.crystaldecisions.sdk.framework.IEnterpriseSession;

import com.crystaldecisions.sdk.framework.EnterpriseVersion;

import com.crystaldecisions.sdk.framework.ISessionMgr;

import com.crystaldecisions.sdk.framework.internal.SessionMgr;

import com.crystaldecisions.sdk.properties.IProperties;

import com.businessobjects.dsl.framework.session.SessionManager;

  

  public class ConnectionClass {

  

  public static void main(String[] args) {

   IEnterpriseSession sess = null;

  

   try {

    sess = CrystalEnterprise.getSessionMgr().logon("administrator","password1", "INFBA03853.bglrodc.lntinfotech.com", "secEnterprise");

   

   out.println("logged on as: " );

   } catch (SDKException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

   }

  

   SlContext context;

   context = SlContext.create();

   context.getService(CmsSessionService.class).setSession(sess);

  

   CmsResourceService service = context.getService(CmsResourceService.class);

   String tempFolder = "c:\\temp\\";

  

   String userName = "username1"; // dbconnection.getParameter(DatabaseConnection.USER_NAME).getValue();

   String password = "password" ;

   String dbmsName = "MS Access 2013" ; //dbconnection.getParameter(DatabaseConnection.DBMS).getValue();

   String ntwkName = "ODBC Drivers" ; //dbconnection.getParameter(DatabaseConnection.NETWORK_LAYER).getValue();

   String connName = "test" ; //dbconnection.getParameter(DatabaseConnection.DATASOURCE).getValue();

   String dbName   = "Investor";

   String connectionName = "SDKTestRelationalConn";

    

   com.sap.sl.sdk.authoring.connection.ConnectionFactory connectionFactory;

  

   connectionFactory = context.getService(com.sap.sl.sdk.authoring.connection.ConnectionFactory.class);

  

   RelationalConnection connection = connectionFactory.createRelationalConnection(connectionName, dbmsName, ntwkName);

   connection.getParameter("DATASOURCE").setValue(connName);

   connection.getParameter("DATABASE").setValue(dbName);

   connection.getParameter("USER_NAME").setValue(userName);

   connection.getParameter("PASSWORD").setValue(password);

  

   com.sap.sl.sdk.authoring.local.LocalResourceService localResourceService = context.getService(com.sap.sl.sdk.authoring.local.LocalResourceService.class);

   localResourceService.save(connection, tempFolder + connectionName + ".cnx", true);

  

   service.publish(tempFolder  + connectionName + ".cnx", "/Connections" , true);

  }

}

Accepted Solutions (0)

Answers (1)

Answers (1)

daniel_paulsen
Active Contributor
0 Kudos

Hi Vaibhav,

This error usually means that you have not set the path environment variable to point to the win32_x86 folder.

Ensure you have the client tools installed and set the path in a command window using:

set Path = "c:\Program Files(x86)\Sap BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86";%path%

Dan

Former Member
0 Kudos

Hi,

Thanks for reply, path variable is already created but getting same error

daniel_paulsen
Active Contributor
0 Kudos

Its possible that the problem then is whether you're using 32 or 64bit ODBC.

Make sure you DSN is set up in the 32 bit ODBC admin tool and that your application is using the 32bit JRE.

A quick test to make sure it will work is to make the connection in the Information Design Tool on your development box to ensure its working there first.

Dan