一种实现业务对象属性之间业务逻辑关系的方法及装置的制作方法

文档序号:6465244阅读:128来源:国知局
专利名称:一种实现业务对象属性之间业务逻辑关系的方法及装置的制作方法
技术领域
本发明涉及数据处理技术领域,特别是涉及一种实现业务对象属性之间业 务逻辑关系的方法及装置。
背景技术
在业务应用系统的数据处理过程中,经常需要对业务对象的属性进 行操作,包括各属性之间的计算、隐藏某些属性等,这些操作是根据一 定的业务逻辑进行的,因此,各属性之间的关系称为业务逻辑关系。例
如,销售订单是企业资源管理计划(Enterprise Resources Planning, ERP ) 的一个业务对象,该业务对象的属性也就是销售订单的元素,包括单价、
数量、金额等字段,则该业务对象属性之间的业务逻辑关系可以是如下 这种计算关系金额z数量x单价;还可以是销售订单中物料值改变时, 同时携带其安全库存数量等。
但是,由于ERP业务对象的业务逻辑具有复杂性,在不同的用户、 不同的操作场景中,可能需要实现业务对象属性间不同的业务逻辑关系。 例如在销售订单业务中,属性间的计算关系通常是金额=数量x单价,
其中单价是由物料的销售价确定的,这也是比较通用的情况;但是在一 些企业的个性化应用中,要求销售单价可以随金额的大小变化,即在已 知数量、金额的情况下,反算单价,即单价=金额/数量。
现有的ERP系统通常是在设计阶段将业务对象属性之间通用的业务 逻辑关系定义出来,定义好业务逻辑关系的ERP系统作为通用产品供用 户使用。而当用户需要个性化的业务逻辑关系时,则需要通过修改通用 产品中业务对象(如订单业务)的业务代码逻辑来实现,也就是要修改 通用产品的组件。
这种通过硬编码的方式来实现ERP业务对象属性之间计算关系的方法,会使通用产品的升级维护成本提高,无法从真正意义上满足用户的 个性化需求。

发明内容
有鉴于此,本发明的目的在于提供一种实现业务对象属性之间业务逻辑关 系的方法及装置,以解决现有技术在实现业务对象属性之间不同的业务逻辑关 系时,需要较高的维护成本的问题。
为实现上述目的,本发明提供了如下方案 一种实现业务对象属性之间业务逻辑关系的方法,包括 确定实现业务对象属性之间业务逻辑关系的触发机制; 定义业务对象属性之间业务逻辑关系的表达式; 在所述触发机制下执行所述表达式,实现所述业务逻辑关系。 其中,所述表达式为多个,还包括 定义各表达式之间的时序关系,得到表达式序列; 则在所述触发机制下执行所述表达式包括
在所述触发机制下解析所述表达式序列,得到各表达式之间的时序关系; 根据所述时序关系,依次执行各表达式。
其中,还包括定义所述表达式的执行条件,则在所述触发机制下,满足
所述执行条件时执行所述表达式。
其中,定义业务对象属性之间业务逻辑关系的表达式包括 将所述业务对象属性抽象为不同的变元; 利用所述变元描述业务对象属性之间业务逻辑关系的表达式。 一种实现业务对象属性之间业务逻辑关系的装置,包括 触发机制确定单元,用于确定实现业务对象属性之间业务逻辑关系的触发
机制;
表达式定义单元,用于定义业务对象属性之间业务逻辑关系的表达式; 表达式执行单元,用于在所述触发机制下执行所述表达式,实现所述业务 逻辑关系。
其中,所述表达式定义单元定义的表达式为多个,该装置还包括
时序关系定义单元,用于定义各表达式之间的时序关系,得到表达式序列;则所述表达式执行单元包括
解析子单元,用于在所述触发机制下解析所述表达式序列,得到各表达式
之间的时序关系;
执行子单元,用于根据所述时序关系,依次执行各表达式。 其中,还包括
执行条件定义单元,用于定义所述表达式的执行条件; 贝'J,所述表达式执行单元在所述触发机制下,满足所述执行条件时执行所 述表达式。
其中,所述表达式定义单元包括
变元抽象子单元,用于将所述业务对象属性抽象为不同的变元; 描述子单元,用于利用所述变元描述业务对象属性之间业务逻辑关系的表 达式。
根据本发明提供的具体实施例,本发明公开了以下技术效果
首先,本发明实施例确定实现业务对象属性之间业务逻辑关系的触发机 制;定义业务对象属性之间业务逻辑关系的表达式;在所述触发机制下执行所 述表达式,实现所述业务逻辑关系。通过本发明实施例可以由用户按照自己的 个性化需要定义业务对象属性之间的业务逻辑关系,不需要修改通用产品组 件,因此降低了维护成本,能够快速实现通用产品与个性化开发的无缝升级。
其次,可以根据具体的业务场景来定义多元化的触发机制,通过触发机制 来决定属性之间业务逻辑关系的运行时刻,从而保证了业务对象实现其复杂的 业务逻辑。同时,还可以定义执行条件,使得在当前触发机制下,满足某种条 件时才触发业务逻辑关系的运行,进一步满足了用户个性化业务的需求。
再次,对于复杂的业务对象属性之间的业务逻辑关系,可以实现公式序列, 并可以保存触发机制与公式序列的对应关系,业务逻辑关系运行时,可以才艮据 触发机制实时解析公式序列,以实现业务对象之间的业务逻辑关系,同时保证 业务逻辑的正确性。
最后,将业务对象属性元素抽象为不同的变元,并由以变元为参数的^^式 来表达业务对象属性之间的业务逻辑关系,便于编程实现时代码的编写。


图l是本发明实施例提供的方法的流程图; 图2是本发明实施例提供的另一方法的流程图; 图3是本发明实施例提供的再一方法的流程图; 图4是本发明实施例提供的实现界面示意图5是本发明实施例提供的定义业务逻辑关系表达式的界面示意图6是本发明实施例提供的定义表达式序列的界面示意图7是本发明实施例提供的第一装置的示意图8是本发明实施例提供的第二装置的示意图9是本发明实施例提供的第三装置的示意图IO是本发明实施例提供的第四装置的示意图。
具体实施例方式
本发明提供了 一种实现业务对象属性之间业务逻辑关系的方法,下面结合 附图对该方法进行详细地描述。
实施例一、参见图1,本发明实施例所提供的实现业务对象属性之间业务 逻辑关系的方法包括以下步骤
S101:确定实现业务对象属性之间业务逻辑关系的触发机制;
需要说明的是,本发明实施例允许用户根据个性化业务需求,自定义表达 业务对象属性之间业务逻辑关系的公式,通过所述公式来实现所述业务逻辑关 系。但是只定义了业务逻辑关系的公式是不够的,还要确定业务逻辑关系公式 的运行时刻,系统才能够正确的实现业务对象属性之间的业务逻辑关系。因此, 所述触发机制就是指用户个性化定制的公式的触发时刻点,也就是说该触发机 制决定了属性之间业务逻辑关系的实际运行时刻。
其中,触发机制可以由用户根据实际业务需求进行个性化定制,在实际应 用中可以包括业务对象加载时触发、业务对象某一属性元素值改变时触发、 业务对象执行某操作时触发、业务对象在特定场景下触发(如保存时进行业务 对象的业务逻辑校验)等。用户可以才艮据具体的业务应用场景来确定选用哪种 触发机制,这种多元化的触发机制保证了 ERP业务对象能够实现复杂的业务逻辑,满足用户需求的个性化定制。
S102:定义业务对象属性之间业务逻辑关系的表达式; 如前文所述,对于业务对象属性之间的各种业务逻辑关系(如计算关系、 显示/隐藏某属性等),可以通过^^式来描述。在实际应用中,对于不同的用户, 相同的业务对象属性之间可能需要实现不同的业务逻辑关系的表现形式。因此 本发明实施例为了满足用户的个性化需求,该步骤并不是由系统在设计阶4爻来 完成的,而是给出公式定义模板,由用户来完成具体公式的定义,也就是说, 用户可以根据实际需要设置相应的公式,并将定义好的公式保存在所述的公式 定义模板中。同时保存的还有该公式与步骤S101中确定的触发机制之间的对 应关系。
S103:在所述触发机制下执行所述表达式,实现所述业务逻辑关系。
业务对象运行的过程中,就需要实现各属性之间的某些业务逻辑关系。此 时,系统会实时检测是否有满足触发机制的事件发生,如果检测到,系统则会 根据保存的该触发机制与业务逻辑关系表达式之间的关系,找到相应的业务逻 辑关系表达式,并执行该表达式,从而实现了相应的业务逻辑关系。
从以上所述可以看出,本发明实施例所提供的实现业务对象属性之间业务 逻辑关系的方法中,用户可以根据实际业务需求定制个性化的业务逻辑关系表 达式,并定制相应的触发机制,业务对象运行期间,满足触发机制的事件发生 时,即可自动执行用户定制的表达式,而不需要通过修改业务对象的业务逻辑 代码来实现业务逻辑关系的个性化定制,也就是说本发明实施例不需要修改通 用产品组件,因此降低了维护成本,可以快速实现通用版本与个性化开发的无 缝升级。
在实际应用中,业务对象属性之间可能存在相对复杂的业务逻辑关系,可 能要通过多个表达式才能准确地描述该业务逻辑关系。因此本发明实施例允许 用户定义多个表达式来描述一个业务逻辑关系,下面结合附图对该方法进行详 细地描述。
实施例二、参见图2,本发明实施例提供地实现业务对象属性之间业务逻 辑关系的方法包括以下步骤S2 01:确定实现业务对象属性之间业务逻辑关系的触发机制;
S202:定义业务对象属性之间业务逻辑关系的多个表达式,并定义各表达 式的时序关系,形成表达式序列,同时保存该表达式序列与步骤S201中确定 的触发机制的对应关系;
描述同一个业务逻辑关系的多个表达式之间通常具有一定的联系,例如公 式二中的某个参数需要首先从公式一中计算出来,这样就需要先计算公式一, 然后根据公式一的计算结果来计算公式二。因此为了保证程序的正确运行以及 描述的业务逻辑关系的正确性,本发明实施例对于多个表达式的情况,允许用 户定义各表达式之间的时序关系,从而形成表达式序列,保存在表达式定义模 板中。同时用户还需要定义该表达式序列与步骤S201中确定的触发机制之间 的对应关系,因此在这种情况下, 一个触发机制对应的是一个由多个表达式组 成的表达式序列。
S203:在所述触发机制下执行各表达式,实现所述业务逻辑关系。
业务对象运行时,系统实时检测是否有满足触发机制的事件发生,当检测 到某一触发机制的事件发生时,系统则会根据保存的触发机制与表达式序列之 间的对应关系,找到相应的表达式序列,并实时解析该表达式序列,然后根据 各表达式之间的时序关系,依次执行各表达式,以实现业务对象属性之间的业 务逻辑关系。
在实际应用中,用户还可能存在一些其他的个性化需求,如,在销售订单 业务中,销售数量超过1000时,金卡用户可以享受折上折等相关业务。对于 这种业务需求,业务对象属性之间的业务逻辑关系无法完全通过表达式进行描 述,还需要明确表达式的执行条件。因此,在本发明的优选实施例中,允许用 户定义表达式的执行条件,则在当前触发机制下,只有在满足该执行条件时才 触发相应的表达式的执行。
为了便于程序的实现,本发明的优选实施例中,在定义业务逻辑关系的表 达式之前,还可以首先将业务对象的属性元素抽象为不同的变元,例如业务对 象的字段元素用唯一的键值来表示,然后用这些抽象出来的变元来定义业务逻 辑关系的表达式。为了更好地理解本发明实施例所4是供的方法,参见图3,以业务对象为销
售订单、业务逻辑关系为反算单价为例对该方法进行详细地描述。
S301:依据该业务应用场景,定义计算关系的触发机制。例如可以定义该 计算关系的触发机制为业务对象某一属性元素改变时触发,如销售订单金额 字段值改变时触发该计算关系。
参见图4,系统可以提供待定的触发机制,包括加载更新事件、值更新事 件、保存规则等,在这个例子中,用户则可以选择值更新事件作为触发机制, 用户只需要点击值更新事件对应的按钮即可完成该步骤。
S302:将销售订单属性元素抽象为不同的变元及参数定义,包括销售订 单的字段、销售订单中基础材料的属性(如,物料、安全库存数量、规格型号 等)、销售订单中的菜单信息(方便用户个性化需求中隐藏某一菜单等)、每种 公式定义中的相关辅助参数(运算符、系统参数等)定义等。需要说明的是, 此步骤可以抽象业务对象的多种计算关系,便于用户定义多个表达式,且代码 可以完全复用。
S303:定义销售订单中计算关系表达式,如单价=金额/数量,参见图 5,利用步骤S302中抽象的变元可以将该表达式定义为FPrice = FAmount/ FQty。同时可以定义/>式的执行条件为FAmount〉20000,也就是在当前触发机 制下,只有当金额字段的值大于2000时,才执行表达式计算,否则,不予执 行。定义成功后,保存在数据库表达式定义模板中。
参见图6,对于复杂的业务逻辑关系,本发明实施例允许用户定义表达式 序列,用户可以进行新增表达式、修改/删除已经定义的表达式等操作,同时 可以利用上移、下移按钮来调整各表达式的顺序,从而使各表达式组成具有一 定时序关系的表达式序列。
S304:销售订单录单时,系统会实时检测金额字段值是否改变,如果改变,
则触发所述表达式进行计算,系统解析公式后执行反算,并将计算结果回填到 数据单价字段。
由以上各实施例的描述可见,本发明通过定义业务对象属性之间业务逻辑 关系的触发机制、定义表达式序列、运行时解析并执行表达式,实现了业务对象属性之间的业务逻辑关系,以此满足了用户需求的个性化定制,降低了软件 的维护成本。
与本发明实施例提供的方法相对应,本发明实施例还提供了 一种实现业务
对象属性之间的业务逻辑关系的装置,参见图7,该装置包括
触发机制确定单元U701,用于确定实现业务对象属性之间业务逻辑关系 的触发4几制;
表达式定义单元U702,用于定义业务对象属性之间业务逻辑关系的表达
式;
表达式执行单元U703,用于在所述触发机制下执行所述表达式,实现所 述业务逻辑关系。
触发机制确定单元U701确定了实现业务对象属性之间业务逻辑关系的触 发机制后,表达式定义单元U702就可以定义业务对象属性之间业务逻辑关系 的表达式;将该表达式以及该表达式与所述触发机制之间的对应关系保存在数 据库表达式定义模板中。业务对象运行时,系统则会实时检测是否有满足触发 机制的事件发生,如果检测到,则由表达式执行单元U703在所述触发机制下 执行所述表达式,从而实现所述业务逻辑关系。
对于复杂的业务逻辑关系,本发明实施例允许用户定义表达式序列,参见 图8,表达式定义单元U802定义的表达式可以为多个,则该装置还包括
时序关系定义单元U804,用于定义各表达式之间的时序关系,得到表达 式序列。
对于这种情况,表达式执行单元U8G3进一步包括
解析子单元U8031,用于在所述触发机制下解析所述表达式序列,得到各 表达式之间的时序关系;
执行子单元U8032,用于根据所述时序关系,依次执行各表达式。
解析子单元U8031解析出的各表达式之间的时序关系,与时序关系定义单 元U804定义的各表达式之间的时序关系相同,执行子单元U8032按照这一时 序关系执行各表达式,则可以保证程序的正常运行,同时保证了表达式序列所 表达的业务逻辑的正确性。
图8中的触发机制确定单元U8 01与图7中的触发机制确定单元U7 01相同。对于用户其他一些个性化的需求,如前文所述的销售订单业务中,销售数 量超过1000时,金卡客户可享受折上折等相关业务,这种需求可以通过限定
表达式的执行条件来完成,因此参见图9,在本发明装置的优选实施例中,还 包括
执行条件定义单元U904,用于定义所述表达式的执行条件;
贝'J,表达式执行单元U903在所述触发机制下,只有在满足所述执行条件 时才执行所述表达式,以此满足了上述个性化需求。
图9中的触发机制确定单元U901、表达式定义单元U902与图7中的触发 机制确定单元U701、表达式定义单元U702相同。
在实际应用中,为了便于程序实现,参见图10,表达式定义单元U1002 进一步包括
变元抽象子单元Ul0021,用于将所述业务对象属性抽象为不同的变元; 描述子单元U10022,用于利用所述变元描述业务对象属性之间业务逻辑 关系的表达式。
图10中的触发机制确定单元UlOOl、表达式执行单元U1003与图7中的 触发机制确定单元U701、表达式执行单元U703相同。
以上对本发明所提供的 一种实现业务对象属性之间业务逻辑关系的方法 及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式 进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思 想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明 的限制。
权利要求
1、一种实现业务对象属性之间业务逻辑关系的方法,其特征在于,包括确定实现业务对象属性之间业务逻辑关系的触发机制;定义业务对象属性之间业务逻辑关系的表达式;在所述触发机制下执行所述表达式,实现所述业务逻辑关系。
2、 根据权利要求1所述的方法,其特征在于,所述表达式为多个,还包括定义各表达式之间的时序关系,得到表达式序列; 则在所述触发机制下执行所述表达式包括在所述触发机制下解析所述表达式序列,得到各表达式之间的时序关系; 根据所述时序关系,依次执行各表达式。
3、 根据权利要求1所述的方法,其特征在于,还包括定义所述表达式 的执行条件,则在所述触发机制下,满足所述执行条件时执行所述表达式。
4、 根据权利要求1所述的方法,其特征在于,定义业务对象属性之间业 务逻辑关系的表达式包括将所述业务对象属性抽象为不同的变元;利用所述变元描述业务对象属性之间业务逻辑关系的表达式。
5、 一种实现业务对象属性之间业务逻辑关系的装置,其特征在于,包括 触发机制确定单元,用于确定实现业务对象属性之间业务逻辑关系的触发机制;表达式定义单元,用于定义业务对象属性之间业务逻辑关系的表达式; 表达式执行单元,用于在所述触发机制下执行所述表达式,实现所述业务 逻辑关系。
6、 根据权利要求5所述的装置,其特征在于,所述表达式定义单元定义 的表达式为多个,该装置还包括时序关系定义单元,用于定义各表达式之间的时序关系,得到表达式序列; 则所述表达式执行单元包括解析子单元,用于在所述触发机制下解析所述表达式序列,得到各表达式 之间的时序关系;执行子单元,用于根据所述时序关系,依次执行各表达式。
7、 根据权利要求5所述的装置,其特征在于,还包括 执行条件定义单元,用于定义所述表达式的执行条件;贝'J,所述表达式执行单元在所述触发机制下,满足所述执行条件时执行所述表达式o
8、 根据权利要求5所述的装置,其特征在于,所述表达式定义单元包括 变元抽象子单元,用于将所述业务对象属性抽象为不同的变元; 描述子单元,用于利用所述变元描述业务对象属性之间业务逻辑关系的表达式。
全文摘要
本发明公开了一种实现业务对象属性之间业务逻辑关系的方法,该方法包括确定实现业务对象属性之间业务逻辑关系的触发机制;定义业务对象属性之间业务逻辑关系的表达式;在所述触发机制下执行所述表达式,实现所述业务逻辑关系。本发明还公开了一种实现业务对象属性之间业务逻辑关系的装置。通过本发明实施例,可以由用户按照自己的个性化需要定义业务对象属性之间的业务逻辑关系,不需要修改通用产品组件,因此降低了维护成本,能够快速实现通用产品与个性化开发的无缝升级。
文档编号G06Q10/00GK101295382SQ200810126398
公开日2008年10月29日 申请日期2008年6月30日 优先权日2008年6月30日
发明者高玉宏 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1