使用Sbo用户自定义业务对象

本文详细介绍了Sbo中的用户自定义业务对象(UDO)的概念及其应用价值,包括自定义业务对象的设计目的、创建步骤及如何在软件中实现注册与使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、   什么是用户自定义业务对象
用户自定义业务对象,User-defined Object (UDO),是Sbo提供给二次开发人员用以创建私有的本地化的业务处理对象。通过将自定义对象注册到Sbo中,使用户自定义业务对象成为Sbo业务对象集合中的一个组成部分。
用户自定义业务对象可以通过二次开发人员在程序中向Sbo进行注册,也可以通过Sbo主程序进行注册,以节约开发时间。不过对于提供服务的软件开发商来说,更多的是用程序注册的方式。本文侧重介绍怎样通过自研发软件进行Sbo自定义对象的注册、使用。
2、   为什么要使用自定义业务对象
自定义业务对象的基础是自定义数据表,自定义业务对象的目的是通过将多个有业务关联的不同数据表定义为业务对象,从而使Sbo认识到这些表单之间的内在业务关系,在业务处理的时候遵循Sbo业务对象的通用规则,从而提高了应用的业务完整性和数据的一致性。
应该说,通过散列的针对不同表单的业务处理模块,由二次开发程序控制不同表单其实是同一个业务之间不同自模块之间的约束,完全可以实现自定义业务对象的功能。事实上,自定义对象只有在Sbo 2004以上的版本才予以支持,原来的自定义业务就采用的是散列子模块约束来完成的。
有些时候,Sbo业务对象拥有比较复杂的一些属性,这些属性包括是否是单据对象具有关闭、取消、结算的功能,是否具有序列号管理功能,是否具有类似财务凭证那样的年度结转功能,是否需要进行历史日志记录,是否对应缺省的界面维护窗口。
可见对于自定义的复杂业务,使用Sbo自定义业务对象可以大大简便对新增业务的管理,有着非常现实的意义。
3、   定义并创建支持自定义业务对象的数据结构。
数据结构是实现业务持久性保持的基础,对以管理信息软件来讲,数据结构对应着数据库中的数据表单。自定义业务对象需要自身支持自定义业务的数据表。
可以通过Sbo主程序(工具用户定义字段管理用户字段)或者通过二次开发程序实现自定义业务对象的数据库表单的建立。
SDK中,通常用SAPbobsCOM.UserTablesMD创建自定义数据表,用SAPbobsCOM.UserFieldsMD定义用户表的数据字段。指定数据字段的数据类型(自定用户字段有5种数据类型:分别是字符型、文本型、数值型、日期型和浮点型)、数据长度、是否允许为空、是否是有效选择字段、是否关联到指定表内容、是否指定缺省值等。
有些业务可能不是一个数据表可以独立完成的,这个时候应该考虑对应此业务创建多个数据表,其中一个数信息主表,其他的表单位辅助表(比如销售中,OINV对应的销售业务对象的主要信息表,而INV1中对应的是销售的项目清单,而附加费、代收款信息又在其它的数据表中)。
4、   创建自定义业务对象
有了自定义数据表,就可以创建自定义业务对象了。对于只对应单表的简单业务,直接通过单表操作就可以了。那么那些业务对象应该考虑使用自定义业务对象呢?以下的业务应该考虑使用自定义业务对象:
多表对应的业务。
财务相关的业务。
需要进行序列号管理的业务
定义自定义业务对象可以通过Sbo主程序来完成,也可以通过二次开发软件来实现,对于提供服务的软件公司来讲,多使用二次开发软件来实现Sbo自定义业务对象。
Sbo主程序通过“工具自定义业务对象注册向导”来新增、修改、删除、维护自定义业务对象。二次开发程序通过SAPbobsCOM.UserObjectsMD完成对自定义业务对象的注册和维护的。
SAPbobsCOM.UserObjectsMD UserObjectMD;
oUserObjectMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD);
//允许取消属性
oUserObjectMD.CanCancel = SAPbobsCOM.BoYesNoEnum.tYES;
//允许关闭属性
oUserObjectMD.CanClose = SAPbobsCOM.BoYesNoEnum.tYES;
//允许创建自定义维护界面
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES;
//允许删除属性
oUserObjectMD.CanDelete = SAPbobsCOM.BoYesNoEnum.tYES;
//允许查找属性
oUserObjectMD.CanFind = SAPbobsCOM.BoYesNoEnum.tYES;
//允许日志属性,LogTableName指定记录日志的表名
oUserObjectMD.CanLog = SAPbobsCOM.BoYesNoEnum.tNO;
//允许年度转结属性
oUserObjectMD.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tYES;
//允许序列号管理属性
oUserObjectMD.ManageSeries = SAPbobsCOM.BoYesNoEnum.tNO;
//指定子表,比如凭证行,可以通过oUserObjectMD.ChildTables.Add()指定多个子表
oUserObjectMD.ChildTables.TableName = "SM_CHILD1";
//指定自定义业务内部代码
oUserObjectMD.Code = "oUDO001";
//指定自定义业务内部描述
oUserObjectMD.Name = "自定义业务测试";
//指定自定业务的类型:主数据或者单据
oUserObjectMD.ObjectType = SAPbobsCOM.BoUDOObjType.boud_Document;
//指定主表
oUserObjectMD.TableName = "SM_MAIN";
//新增用户自定义业务对象
oUserObjectMD.Add();                               //通过Update维护、Remove删除自定义用户对象
5、   使用自定义业务对象
注册了用户自定义业务对象之后,就可以来使用这些业务对象了。使用业务对象可以在自定义时刻的指定缺省的界面来维护,但是通常用二次开发的程序来实现,可以是Add-on插件或者使用DI API SDK开发独立的应用程序来处理。
使用自定义业务对象,至少需要:
l 进入到自定义业务对象的处理模块的入口。
Add-on插件或者独立应用程序中一般为自定义菜单。如何在程序中定义进入到自定义业务对象处理界面的菜单,不在本文讨论范围之内。
l 绘制处理自定义业务对象的界面窗口。
绘制处理自定义业务对象的界面窗口,侦听窗口控件项的操作事件的程序,不在本文讨论。
l 处理自定义业务对象。
                         i.  关联业务处理界面同自定义业务对象
SAPbouiCOM.FormCreationParams cp;
SAPbouiCOM.Form frm;
cp = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams);
cp.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Fixed;
cp.FormType = "frmType";
cp.ObjectType = "oUDO001";               //必须关联到指定的UDOCode
cp.UniqueID = " UDO01";
frm = SBO_Application.Forms.AddEx(cp);
                        ii.   关联窗口组件到数据源
                      iii.   通过frm.DataBrowser.BrowseBy 激活自定义业务对象导航
                      iv.   添加新增、更新、查找服务按钮
SAPbouiCOM.Item oItem;
oItem = frm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON);
这个按钮进入界面或者保存成功之后为“新增”按钮,界面内容有修改之后为“更新”按钮,在查询状态下为“查找”按钮。
此按钮将根据当前业务状态按照自定义业务对象注册属性自动调用系统校验功能,保障自定义对象数据的正确性、一致性和完整性。
                        v.   添加取消按钮
SAPbouiCOM.Item oItem;
oItem = frm.Items.Add("2", SAPbouiCOM.BoFormItemTypes.it_BUTTON);
取消当前业务。


本文转自foresun  51CTO博客,原文链接:http://blog.51cto.com/foresun/41143,如需转载请自行联系原作者
一、软件功能 富盛SBO插件集基于富盛SBO程序开发框架,主要包括以下功能模块: 富盛Addon插件通用权限管理 建立于富盛Addon程序开发框架的所有模块产品的通用权限管理,可以细化管理到业务模块中的功能项目,比如某个业务窗口的浏览权限、新增权限、编辑权限、删除权限等都可以纳入综合管理。 界面参见:http://blog.vsharing.com/foresun/A680619.html 富盛SBO固定资产管理 为了适应中国企业的固定资产管理,遵循国家财务行业对固定资产的折旧方法和要求,支持不折旧、直线折旧、快速折旧、工作量折旧等常用的折旧方式,并对资产增加、资产减少的各种交易方式提供了支持,由于提供了灵活的交易自定义功能,软件能够满足当前国内工业、商业企业的固定资产管理需要。 功能参见:http://blog.vsharing.com/foresun/A680619.html 富盛SBO金税接口管理 富盛Sbo金税接口模块适用于包括工业企业、商品流通等所有经营管理体制的需要企业Sbo资源管理系统同金税工程进行数据交互的企业,独立外资、中外合资、本土中资企业都可以选用富盛Sbo金税接口管理模块协助企业实现Sbo企业资源管理同国家强制规定的金税接口的信息交互。 操作手册参见: http://blog.vsharing.com/foresun/A683474.html 富盛SBO供应商成本利润结算分析 [强烈推荐] 针对当前商业运行中的供应商对于经销商的优惠政策、促销政策,联系到业务运行中的物料、赠品、赠券等费用,以及供应商政策之外或者无法通过供应商政策体现的月返等季节性或者政策性返利补差等,通过本软件进行综合集成管理。实现了经营期间经营商品的销售、成本、政策调整后实际成本、毛利、毛利率、经营费用返利补差之后的企业真正的利润成本分析。同时提供了对品类、货品、结算类型、供应商、业务主管、业务代表、经营单品的销售、成本、政策返利、经营费用、供应商返补的分类分析。 参见:http://blog.vsharing.com/foresun/A626306.html。当前功能要比参见资料强大的多,使用便知。 富盛SBO企业经营分析 针对Sbo中的企业经营分析功能薄弱的情况,提供了一个强大自定义分析工具,通过自定义之后,软件自动完成对企业关注的数据的综合分析。企业可以完成通过分析工具分析企业经营情况、利润情况、费用使用情况,弥补了Sbo的利润表、资产负债表等功能不足的缺陷。 一个分析实现例示,参见:http://blog.vsharing.com/foresun/A601436.html 当前版本支持多分析项目,就是说不管可以实现上述实例的项目分析,还可以另行定义其它的,比如利润分析、资产负债分析等等。 软件还支持跨数据库的数据分析,就是说,即使业务数据不在Sbo数据库中,由于分析软件支持存储过程、视图和数据表之上的数据分析,所以可以实现跨业务数据库的经营分析。我们就曾经为一家企业的三个Sbo业务数据库通过本软件进行综合业务分析。 富盛SBO入库验收管理 [强烈推荐] 针对Sbo中直接引用订单入库的简易管理,很多企业希望采购到货之后需要根据到货单增加到货验收,本软件模块就是为了实现这个业务需求。在Sbo标准业务流程中插入质检验收环节,只有验收业务进行处理之后的采购订单、退货单才能被采购入库业务和贷项凭证进行引用,继续接下来的其他业务。 富盛SBO员工工资管理 [强烈推荐] 建立于富盛Sbo插件程序开发框架,运行于Sbo之上的企业员工工资管理,除了普通的工资管理之外,本软件通过三种方式来实现员工的考核工资:数据提取、数据计算、数据录入。数据提取通过一个开放性的统一管理方式从Sbo或者第三方的Addon甚至在其它的软件中(必需SQL Server数据库)中通过存储过程、视图、数据表提取数据,从而可以同考勤系统、绩效考核系统中的数据进行集成;同时支持复杂数据分析,为绩效考核提供了充分的业务接口,也使工资管理软件提供了强大的扩展性和实用性。 二、富盛SBO程序开发框架 SBO行业的朋友对富盛软件应该不陌生,对富盛SBO程序开发框架也应该有所耳闻。富盛SBO程序开发框架是供广大SBO Addon开发爱好者使用的终生免费程序包,包含了富盛软件Sbo Addons程序开发框架企业版的所有功能,比如集成了基于FastReport的打印报表查询功能、透过SBO限制的键盘输入捕捉功能、序列号自动生成器、集成知名WINRAR开源压缩等等,富盛软件在其博客上介绍的所有Addon实现技巧和功能。 三、版权声明 您可以任意复制、安装和使用本软件,任何获得此软件的用户均自动获得本软件的使用权,但是富盛软件保留对此软件的所有权利。 请尊重作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值