且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

怎样通过《Sbo维护与开发助手软件》进行Sbo开发和维护(2/3)

更新时间:2022-09-30 19:41:16

3、业务对象数据结构全剖析。应该说这个功能主要为开发人员提供的,但是维护人员也可以从中获得帮助。在这这个功能模块中解析了每个业务对象的主键检索条件、数据结构和业务逻辑。在此着重讨论一下QueryParms通数据操纵之间的关系。
A、查询参数(QueryParams),指明数据对象的主键字段列表和主键字段的数据类型。既然是主键,那么在数据操纵的时候就必须满足:非空、唯一性。非空意味着这个业务对象在新增数据的时候,这些字段时必须的,并且必须在关联数据表中也是必填的;唯一性意味着在唯一性精确更新修改业务对象的时候,可以通过这样主键字段列表进行唯一性信息确定,从而保障数据操纵的准确性。
不管使用DI API或者DI Server API进行开发,SAP不建议通过SQL语句直接对数据库进行维护,而是应该DI API中的业务对象的Add、Update和Remove方法完成对业务对象进行数据操作;在DI Server API中也是通过AddObject、UpdateObject、RemoveObject指令来完成 --当然对于单据对象,可能还存在Close、Cancel操作--对应DI Server API中的CloseObject、CancelObject,也是应该遵循同样的处理规则。
相对来说,新增业务对象在DI API中实现较为简单,实例化一个业务对象,然后按照业务对象所提供的字段属性进行赋值,之后通过调用业务对象的Add方法完成新增操作,不过,新增之前,应该对新增数据进行有效性校验,通过GetByKey查询主键是否存在也是有效性检验的其中一项内容,当然也可以直接检查保存后的返回值确定新增是否成功。对于DI Server API也是一样,不过,DI Server指令因为使用XML文档,所以在字段属性的设置上更加灵活。
在DI API开发中,要对一个业务对象进行修改、删除、关闭或者取消,一般的,应该先使用业务对象的GetByKey检索出指定的业务信息--从上面介绍中可以看到,这需要使用QueryParams中的对应字段作为检索参数--检索得到的业务数据通过UI界面(可以使Sbo UI SDK开发的UI界面或者自己开发的UI窗口)显示到人机界面上,操作人员对数据进行相应处理后,通过保存或者确定之类的按钮来完成对业务对象的修改、删除、关闭或者取消。
在DI Server API中有所不同,首先需要指定业务操纵对象,对应本功能模块上的AdmInfo,比如如果要对特价对象进行处理,需要指明 oSpecialPrices 。DI Server API开发中,QueryParms对应主键列表就非常重要了,不同业务对象的主键字段列表也对应着数据操纵条件,如oItem的主键是ItemCode,其操纵条件为myItemCode001;oSpecialPrices的主键包括两项cardCode和itemCode,对应的操纵条件为myItemCode001myCardCode001。同DI API不同,因为DI Server的数据操纵指令通过XML格式进行传递,只要保障主键列表的对应关系就可以了,而不需要象DI API中需要严格的参数顺序。当然,对于二次开发人员的自定义函数中是否确定应该做这种要求,那是另外一回事。
QueryParams中指定的字段列表作为业务对象的主键字段列表,在业务对象主数据信息表、以及关联字表中都应该具有,它也是我们在系统维护中进行表间数据关联的最恰当字段关联列表。
B、业务对象结构。在QueryParams之后,软件列举了业务对象对应的数据信息表以及关联业务子表。通常在QueryParams之后的第一个数据表示业务对象的主数据表,其它数据表同主数据表之间存在着某种业务关联,主信息表同业务子表之间通过QueryParams对应的字段列表进行关联。
本功能模块中列举的主信息表和关联信息表中的字段仅仅只能在DI API或者DI Server API开发中使用,在实际的数据库中很多字段并不是此处显示的内容,但是在SDK开发中应该使用这些内容。


本文转自foresun  51CTO博客,原文链接:http://blog.51cto.com/foresun/40504,如需转载请自行联系原作者