您的位置:首页 > 职场人生

详解基于Sbo DI API独立程序系统登录的实现 推荐

2007-09-22 07:22 726 查看
几个朋友在Sbo开发讨论群中都说,因为前段时间咱们的例子演示,基于Sbo UI API的Add-on插件的开发基本熟悉了,也掌握了实现Sbo Add-on插件同Sbo主程序之间单点认证的方法;但是他们在开发基于Sbo DI API的独立程序开发中,总是出现无法登录到指定的企业数据库,本文用以对此进行说明。

基于DI API的独立程序开发,就是不再将新开发的业务功能作为插件的形式集成到Sbo主程序中,而是独立的程序一个应用程序、业务中间件或者一个业务处理控件。因为基于DI API,所以使用Sbo DI API来进行相关的业务处理是应该推荐的,那么,这些程序应该遵循Sbo DI API的开发接口规范,而不应该直接简单的连接到Sbo的企业数据库。是的,这样就能够实现我们自己的独立程序同Sbo主程序之间的业务互通和业务兼容。
使用DI API进行Sbo业务处理,通过DI API登录到Sbo业务数据库是第一步,Sbo通过SAPbobsCOM.Company业务对象(本文用oCompany指Company业务对象)进行业务数据库登录验证的。那么使用DI API开发时登录到业务数据库需要注意哪些问题呢?我们先分析一个Sbo的结构。
1、Sbo作为一个轻型的企业信息管理软件,建立在数据库SQL Server之上,要处理基于数据库的的业务信息,首先需要登录到SQL Server数据库,Sbo DI API在登录的时候,需要提供SQL Server数据库的登录参数。

登录SQL Server数据库可是使用两种方法,一种是信任连接方式,只要连接客户端同SQL Server数据库在同一个域内,并且具有登录到SQL Server服务器的权力,那么只需要指定这台服务器的地址就可以连接到这台服务器上的SQL Server数据库。对应oCompany需要进行以下设置:

oCompany.Server = strServer
oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL
oCompany.UseTrusted = True

登录SQL Server数据库的第二种方法是通过数据库的用户和密码进行数据库校验的方式。显然这种方式在登录的时候需要指定数据库服务器的地址,使用的是非信任模式,并且需要指定登录数据库的帐号和密码。如下所示:

oCompany.Server = strServer
oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL
oCompany.UseTrusted = False
oCompany.DbUserName = strDBUserID
oCompany.DbPassword = strDBUserPWD

需要注意,这个时候如果还指定了采用信任模式登录,登录程序就会忽略指定的登录数据库的帐号和密码而采用信任模式,如果信任模式的登录环境--比如现行客户端不是域用户等--不满足,登录就会失败。
2、设置了登录数据库的参数,还要保障是被授权的用户才能够访问Sbo业务数据库。Sbo的被授权用户的含义包括两部分,一部分是当前的Sbo应用平台是经过了SAP公司的授权许可的正版用户,另一部分就是登录者应该是业务平台中的经过管理员许可的操作用户。前者保障了Sbo用户的合法性正当性,后者保证了操作员的合法性正当性。oCompany负责在登录的时候对此进行验证。
Sbo用户合法性验证主要通过Sbo许可验证服务器来进行,被授权的Sbo用户SAP都会发送一个注册许可,运行在Sbo许可验证服务器上。所以oCompany需要查询许可服务器,当前用户是否属于正版用户。如下:

oCompany.LicenseServer = strLicSever

需要注意的是,许可验证服务器通过TCP/IP协议接受登录用户的查询,所以需要在此指定许可验证服务器的地址和端口,如: oCompany.LicenseServer = "192.168.1.128:30000"
3、指定了许可验证服务器,还需要指定操作员的登录用户和登录密码。相关语句如下:

oCompany.UserName = strOperatorId
oCompany.Password = strOperatorPWD

4、Sbo支持多个独立公司的业务处理(同集团下的多个独立核算经营的子公司,使用同一套Sbo进行管理,分别对应不同的Sbo业务数据库,在SQL Server中对应着一个独立的数据库文件)和多语言支持,在登录的时候业务要指定:

oCompany.CompanyDB = strDataBaseName
oCompany.language = SAPbobsCOM.BoSuppLangs.ln_Chinese

5、上面的登录参数指定了,通过以下语句进行登录:

oCompany.Connect

登录函数会返回一个登录状态代码,用于指定是否成功登录,如果登录失败,原因是什么。应用软件应该对此予以处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 休闲 Sbo DI开发