利用DIAP连接SAP Business One

背景:

我正在创建从前端企业管理软件传递数据到后端的SAP Business One。我用的是SBO10.0,数据库MSSQL2017,开发工具VS2019。SBO连接时遇到了一些问题,解决方案于大家共享一下。


问题描述

我编写的代码如下:

	SapB1Company = new Company();
    SapB1Company.Server = "192.168.XXX.XXX";
    SapB1Company.DbServerType = BoDataServerTypes.dst_MSSQL2017;//数据库类型
    SapB1Company.UserName = "manager";
    SapB1Company.Password = "password";
    SapB1Company.CompanyDB = "DBName";
    SapB1Company.DbUserName = "sa";
    SapB1Company.DbPassword = "Password";
    SapB1Company.UseTrusted = false;//连接方式
    SapB1Company.language = BoSuppLangs.ln_Chinese;//DI语言
    SapB1Company.LicenseServer = "192.168.XXX.XXX:30000";
    int conectado = int.MinValue;
    conectado = SapB1Company.Connect();

问题1:
在运行SapB1Company = new Company();报异常:CSLID没有注册。
问题2:
解决问题1后,又报错误-132,认证不通过。


原因分析&解决方案:

提示:这里填写问题的分析:

问题1:
这里的原因是由于DIAPI没有正确的注册。如下解决:
1)在SAPB1安装目录,找到B1_SHR目录,一般安装B1后会留存该目录。
2)找到目录里面的DIAPI安装程序,重新进行安装。把32位的和64位的都装上。
3)安装好以后,重新引入SAPbobsCOM100.dll,不会再报组件没有注册的错误。
如果没有找到B1_SHR,那只有找SAP供应商去解决了。又些变态会删除B1_SHR目录。

问题2:
查阅了国外网站, Company属性只需要设置如下几个:

	SapB1Company = new Company();
    SapB1Company.Server = "WIN-FFC3UUM"; //此处改为服务器名称
    SapB1Company.DbServerType = BoDataServerTypes.dst_MSSQL2017;//数据库类型
    SapB1Company.UserName = "manager";
    SapB1Company.Password = "password";
    SapB1Company.CompanyDB = "DBName";
    SapB1Company.UseTrusted = false;//连接方式
    SapB1Company.language = BoSuppLangs.ln_Chinese;//DI语言
    int conectado = int.MinValue;
    conectado = SapB1Company.Connect();

特别留意的是SapB1Company.Server 用IP地址过不了,改成服务器名称就过了。
conectado 返回值是0,就代表没有错误连接成功了。

希望我的建议对大家有帮助。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值