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

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:
几个朋友在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
登录函数会返回一个登录状态代码,用于指定是否成功登录,如果登录失败,原因是什么。应用软件应该对此予以处理。


本文转自foresun  51CTO博客,原文链接:http://blog.51cto.com/foresun/43627,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
5月前
|
安全 中间件 API
跨平台整合:如何在不同系统中使用淘宝商品详情API
使用淘宝商品详情API实现跨平台整合,涉及步骤包括理解平台要求、研究API文档、设计数据模型、开发中间件、确保安全认证、测试调试、遵循法规、UI适配及持续维护。此过程能共享数据,提升效率,增加销售机会,优化顾客体验。注意API调用限制、数据格式及各平台特定需求。
|
5月前
|
算法 Linux API
【Linux系统编程】Linux下删除文件的 API方式以及文件删除机制差异
【Linux系统编程】Linux下删除文件的 API方式以及文件删除机制差异
106 0
|
2月前
|
JSON API 数据处理
Winform管理系统新飞跃:无缝集成SqlSugar与Web API,实现数据云端同步的革新之路!
【8月更文挑战第3天】在企业应用开发中,常需将Winform桌面应用扩展至支持Web API调用,实现数据云端同步。本文通过实例展示如何在已有SqlSugar为基础的Winform系统中集成HTTP客户端调用Web API。采用.NET的`HttpClient`处理请求,支持异步操作。示例包括创建HTTP辅助类封装请求逻辑及在Winform界面调用API更新UI。此外,还讨论了跨域与安全性的处理策略。这种方法提高了系统的灵活性与扩展性,便于未来的技术演进。
174 2
|
2月前
|
开发框架 缓存 前端开发
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
|
4月前
|
JavaScript 前端开发 测试技术
【vue实战项目】通用管理系统:api封装、404页
【vue实战项目】通用管理系统:api封装、404页
37 3
|
5天前
|
敏捷开发 人工智能 API
如何快速部署大模型接口管理和分发系统:One-API
One API 是一个开源的接口管理与分发系统,支持多种大模型平台如 OpenAI、Google PaLM 2、百度文心一言等。通过统一接口访问不同大模型服务,简化工作流程并提高效率。适用于多模型集成项目、开发代理服务、教育研究及快速原型制作等多种场景。阿里云计算巢提供了快速部署方案,简化了部署过程。
|
2月前
|
监控 Cloud Native 容灾
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
|
2月前
|
API 网络架构
【Azure Developer】使用 Microsoft Graph API查看用户状态和登录记录
【Azure Developer】使用 Microsoft Graph API查看用户状态和登录记录
|
2月前
|
移动开发 开发框架 小程序
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
|
3月前
|
API 数据库 数据安全/隐私保护
Django配置api、管理系统和视图
Django配置api、管理系统和视图
68 1