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

  几个朋友在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

  登录函数会返回一个登录状态代码,用于指定是否成功登录,如果登录失败,原因是什么。应用软件应该对此予以处理。

  本文出自 “富盛软件” 博客,请务必保留此出处http://foresun.blog.51cto.com/221037/43627

时间: 2024-08-30 09:08:31

详解基于Sbo DI API独立程序系统登录的实现的相关文章

《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——导读

前言 嵌入式Linux软硬件开发详解--基于S5PV210处理器 近年来,嵌入式技术和嵌入式产品发展势头迅猛,其应用领域涉及通信产品.消费电子.汽车工业.工业控制.信息家电.国防工业等各个方面.嵌入式产品在IT产业以及电子工业的经济总额中所占的比重越来越大,对国民经济增长的贡献日益显著.随着智能手机.媒体播放器.数码相机和机顶盒等嵌入式产品的普及,嵌入式系统的知识在广大民众中的传播也越来越广泛.出于对嵌入式高科技知识的追求,广大在校学生纷纷选修嵌入式系统课程,以获得嵌入式系统的理论知识和开发技能

详解如何利用iOS API编写简单微博客户端

要编写社交网络客户端程序,可以大体上分为4个主要的步骤 下面我们按照这个流程,介绍一下: 1.引入Accounts和Social框架 工程中需要引入Accounts和Social框架,Accounts框架中有进行用户账户认证所需类,Social框架中SLRequest类是我们所需要的.添加具体步骤是选择工程中的TARGETS→WeiBo→Build Phases→Link Binary With Libraries,选择右下角的"+"按钮,打开框架和库选择对话框. 分别选择Social

详解Java的JDBC API的存储过程与SQL转义语法的使用_java

正如一个Connection对象创建Statement和PreparedStatement对象,它也创造了CallableStatement对象这将被用来执行调用数据库存储过程. 创建CallableStatement对象:假设,需要执行以下Oracle存储过程: CREATE OR REPLACE PROCEDURE getEmpName (EMP_ID IN NUMBER, EMP_FIRST OUT VARCHAR) AS BEGIN SELECT first INTO EMP_FIRST

《OSPF和IS-IS详解》一1.7 独立且平等

1.7 独立且平等 OSPF和IS-IS详解与TCP/IP相比,OSI协议对各国政府.电信运营商以及许多其他机构的吸引力要更大一点,因为ISO是一家按流程和规矩办事的组织,而IETF则不那么"循规蹈矩".由于上面提到的那些机构代表了很大一部分客户群体,因此那时有许多计算机和网络设备供应商都开始着手开发兼容OSI参考模型的协议族.Novell (NetWare).Banyan (VINES).General Motors(通用汽车公司)(MAP 和TOP).Apple(苹果公司)(App

详解基于javascript实现的苹果系统底部菜单_javascript技巧

(不好意,先前发布的是有误的分析.现在的这个没问提了!!!) 昨天看到了"妙味课堂"的一个苹果菜单的DEMO.根据里面提到的"勾股定理".我自己分析了一下代码.如下: 先来一效果图吧! 静止时: 鼠标滑动时: 一.要实现在的功能或效果: 在鼠标滑动的靠近其中某一张图片时,这个图片会随着鼠标向它的靠近而慢慢放大. a.是"放大"不是"变大".[放大]是等比例的,而[变大]:不一定是等比例.后面的公式中会体现. b.这里的[靠近]

支付宝前端团队详解基于Node.jsWeb框架Chair

Chair是支付宝前端团队推出的,基于Node.js的Web框架,适用于大部分的Web应用. 本文简要介绍Chair的设计思想.功能架构和开发状况. 一.Chair的由来和设计思想 历史上,支付宝前端项目都是直接基于Java后端开发的.这种架构下,前端工程师做出网页模板(基于velocity模板引擎的vm文件),交给后端的Java引擎渲染.支付宝采用的Java引擎是名为Sofa的MVC框架. 对于前端工程师来说,这种架构有很多不方便的地方.首先,需要了解后端的实现,并且依赖开发环境中的dev服务

详解基于朴素贝叶斯的情感分析及 Python 实现

相对于「 基于词典的分析 」,「 基于机器学习 」的就不需要大量标注的词典,但是需要大量标记的数据,比如: 还是下面这句话,如果它的标签是: 服务质量 - 中 (共有三个级别,好.中.差) ╮(╯-╰)╭,其是机器学习,通过大量已经标签的数据训练出一个模型, 然后你在输入一条评论,来判断标签级别 宁馨的点评 国庆活动,用62开头的信用卡可以6.2元买一个印有银联卡标记的冰淇淋, 有香草,巧克力和抹茶三种口味可选,我选的是香草口味,味道很浓郁. 另外任意消费都可以10元买两个马卡龙,个头虽不是很大

详解Silverlight 2中的独立存储(Isolated Storage)

id.dat记录了当前应用程序的ID quota.dat记录了当前应用程序独立存储的配额,即存储空间大小 used.dat记录已经使用的空间 在另一个s文件夹下可以找到我们创建的目录以及文件,并且可以打开文件来看到存储的内容,如下图所示: 禁用独立存储 现在我们来思考一个问题,既然独立存储是一个与Cookie机制类似的局部信任机制,我们是否也可以禁用独立存储呢?答案自然是肯定的.在Silverlight应用程序上点击右键时,选择Silverlight Configuration菜单,将会看到如下

详解基于Bootstrap扁平化的后台框架Ace_javascript技巧

最近一段时间在做一个管理系统,在网上找了很久的前端展示框架,终于找到一款基于Bootstrap的后台管理系统模版:Ace.Bootstrap是Twitter 于2010年开发出来的前端框架,用过的同学应该知道,这款前端框架不仅界面很美观,而且兼容了很多的浏览器,大大加速了我们开发网站的速度!这篇文章讲到的Ace是基于Bootstrap的,所以界面自然也非常美观,这款后台管理系统组合了好多插件以及组件,可以满足很大一部分的后台管理系统模版.废话不多说,看下界面就知道了 如果想及时了解Spark.H