数据对象与状态控制逻辑分离系统和方法技术方案

技术编号:8532526 阅读:196 留言:0更新日期:2013-04-04 15:21
本发明专利技术提供了一种数据对象与状态控制逻辑分离系统,包括:关联单元,将数据对象与状态管理器中的状态数据通过绑定进行关联,状态数据包括状态类型以及对应于状态类型的控制逻辑;状态管理器,在将针对数据对象执行活动时,根据与活动的当前状态对应的控制逻辑,判断活动是否允许被执行,以及在接收到执行单元的通知时,将数据对象的原状态切换至目标状态,在状态管理器切换数据对象的状态后,更新数据对象的状态属性;执行单元,在判断出活动允许被执行时,执行活动,并在活动被执行结束后,向状态管理器发送通知。本发明专利技术还提供了一种数据对象与状态控制逻辑分离方法。通过本发明专利技术可实现数据对应于状态控制逻辑的分离,提高设计和运行的灵活性。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体而言,涉及一种数据对象与状态控制逻辑分离系统和一种数据对象与状态控制逻辑分离方法。
技术介绍
在数据处理流程和功能快速变化且持续改进的情况下,用户期待在保持数据对象不变的情况下,支持更丰富的更灵活的控制逻辑实现,目前通用的实现方法有以下共同的特性1.使用枚举类型描述状态元数据;2.在设计态定义数据对象所引用的状态数据;3.通过设计态定义每种状态的控制逻辑代码,控制针对数据对象的活动操作是否可执行;4.通过状态机等手段定义针对数据对象的活动触发的数据对象的状态变更;5.数据对象元数据和状态控制逻辑代码,以及状态机在编译时进行关联,数据对象元数据和状态控制逻辑代码,以及状态机一般需要确定明确的对应关系。从上述特点中可以看出,相关技术虽然在一定程度上实现了数据对象和业务逻辑的分离,提高了开发效率和用户体验。但由于依赖代码实现控制逻辑,这些技术仍存在以下一些不足1.数据对象和控制逻辑编程的并行开展存在限制。因为数据对象及其活动的控制逻辑依赖状态的代码在数据对象的活动开发时需要硬代码在活动内部写好,导致数据对象的活动的逻辑代码和状态元素紧密耦合,编写数据对象业务逻辑代码时,必须明确状态的控制规则,从而编写逻辑代码;而状态控制逻辑的更改,通常也需要同步修改代码文件来实现,不能很好地达到支持数据对象的控制逻辑与状态控制逻辑分离,并行实现,不产生相互影响的目的。2.在企业管理软件中,经常会有根据不同用户定义不同的状态,状态控制逻辑和转换逻辑,现有技术在运行期间,不能很好地支持状态控制逻辑的扩展。因此,需要一种新的数据对象与状态控制逻辑分离技术,不需要修改数据对象及其活动的逻辑代码,就可实现数据对象和活动与控制逻辑相分离的目的。
技术实现思路
本专利技术正是基于上述问题,提出了一种新的数据对象与状态控制逻辑分离技术,不需要修改数据对象及其活动的逻辑代码,就可实现数据对象和活动与控制逻辑相分离的目的。有鉴于此,根据本专利技术的一个方面,提供了一种数据对象与状态控制逻辑分离系统,包括关联单元,将所述数据对象与状态管理器中的状态数据通过绑定进行关联,所述状态数据包括状态类型以及对应于所述状态类型的控制逻辑,由状态管理器管理所述状态数据;所述状态管理器,在将针对所述数据对象执行活动时,读取所述数据对象的当前状态,根据与所述当前状态对应的控制逻辑,判断所述活动是否允许被执行,以及在接收到来自执行单元的通知时,基于所述状态数据将所述数据对象的原状态切换至目标状态,在所述状态管理器切换所述数据对象的状态后,将所述目标状态的值传送至所述数据对象,以更新所述数据对象的状态属性;所述执行单元,在判断出所述活动允许被执行时,执行所述活动,并在所述活动被执行结束后,向所述状态管理器发送通知。通过数据绑定为数据对象和状态数据之间提供数据同步的交互途径。在数据对象元数据中指定绑定源和绑定路径,元数据被加载并创建为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑定源。在上述技术方案中,优选的,所述执行单元还用于在将执行所述活动时,获取所述数据对象的实例,并发出以所述实例作为参数的事件,以及在所述活动被执行结束后,发出活动完成事件;所述状态管理器还用于监听所述事件,并调用状态校验方法判断所述活动是否允许被执行,以及监听所述活动完成事件,调用状态转换方法执行状态转换过程。在上述技术方案中,优选的,所述状态管理器还用于按照与所述活动对应的插件规范,将与所述数据对象对应的状态控制逻辑处理成一个插件,并将所述插件注册至所述活动的插件列表中,所述插件包括校验插件和状态切换插件;所述执行单元在将执行所述活动时,获取所述数据对应的实例,调用所述校验插件对所述活动进行校验,在校验通过时,执行所述活动,在所述活动执行结束时,调用所述状态切换插件,执行状态切换。在上述技术方案中,优选的,所述执行单元还用于在所述活动内部编写状态校验方法和状态切换方法的代码,在针对所述数据对象执行所述活动时,调用所述状态管理器的状态校验方法,在校验通过时,执行所述活动,以及在所述活动执行结束时,调用所述状态管理器的状态切换方法,执行状态切换。因此,通过上述技术方案,在实现状态管理器的基础上,数据处理通过事件处理或插件机制或服务调用,将数据对象和状态管理器建立逻辑关联。在执行活动时,自动获取数据对象的当前状态值,执行前通知状态管理器校验活动是否可执行,活动执行完成后通知状态管理器切换当前状态,状态管理器切换当前状态后,绑定机制通知数据对象状态已更改,并自动传送最新状态值,然后刷新数据对象的状态属性。在上述任一技术方案中,优选的,所述状态管理还用于在接收到更新请求时,根据所述更新请求扩展、修改和/或新建所管理的状态数据。状态管理器中的状态集合、状态控制项集合和状态转换控制项集合支持根据实际需要在运行时动态扩展和修改或新建,以支持实际流程对于状态的灵活配置。根据本专利技术的另一方面,还提供了一种数据对象与状态控制逻辑分离方法,包括步骤802,将所述数据对象与状态数据通过绑定进行关联,所述状态数据包括状态类型以及对应于所述状态类型的控制逻辑,由状态管理器管理所述状态数据;步骤804,在将针对所述数据对象执行活动时,所述状态管理器管理读取所述数据对象的当前状态,根据与所述当前状态对应的控制逻辑,判断所述活动是否允许被执行;步骤806,在判断出所述活动允许被执行时,执行所述活动,并在所述活动被执行结束后,通知所述状态管理器基于所述状态数据将所述数据对象的原状态切换至目标状态;步骤808,在所述状态管理器切换所述数据对象的状态后,将所述目标状态的值传送至所述数据对象,以更新所述数据对象的状态属性。通过数据绑定为数据对象和状态数据之间提供数据同步的交互途径。在数据对象元数据中指定绑定源和绑定路径,元数据被加载并创建为数据对象后,控件可根据绑定上下文自动获取绑定的数据,并在更改时同步更新绑定源。在上述技术方案中,优选的,所述步骤804具体包括在将执行所述活动时,获取所述数据对象的实例,并发出以所述实例作为参数的事件,所述状态管理器监听所述事件,并调用状态校验方法判断所述活动是否允许被执行;所述步骤806具体包括在所述活动被执行结束后,发出活动完成事件,所述状态管理器监听所述活动完成事件,调用状态转换方法执行状态转换过程。在上述技术方案中,优选的,所述步骤804具体包括所述状态管理器按照与所述活动对应的插件规范,将与所述数据对象对应的状态控制逻辑处理成一个插件,并将所述插件注册至所述活动的插件列表中,所述插件包括校验插件和状态切换插件,在将执行所述活动时,获取所述数据对应的实例,调用所述校验插件,在校验通过时,执行所述活动;所述步骤806具体包括在所述活动执行结束时,调用所述状态切换插件,执行状态切换。在上述技术方案中,优选的,所述步骤804具体包括在所述活动内部编写状态校验方法和状态切换方法的代码,在针对所述数据对象执行所述活动时,调用所述状态管理器的状态校验方法,在校验通过时,执行所述活动;所述步骤808具体包括在所述活动执行结束时,调用所述状态管理器的状态切换方法,执行状态切换。因此,通过上述技术方案,在实现状态管理器的基础上,数据处理通过事件处理或本文档来自技高网
...

【技术保护点】
一种数据对象与状态控制逻辑分离系统,其特征在于,包括:关联单元,将所述数据对象与状态管理器中的状态数据通过绑定进行关联,所述状态数据包括状态类型以及对应于所述状态类型的控制逻辑,由状态管理器管理所述状态数据;所述状态管理器,在将针对所述数据对象执行活动时,读取所述数据对象的当前状态,根据与所述当前状态对应的控制逻辑,判断所述活动是否允许被执行,以及在接收到来自执行单元的通知时,基于所述状态数据将所述数据对象的原状态切换至目标状态,在所述状态管理器切换所述数据对象的状态后,将所述目标状态的值传送至所述数据对象,以更新所述数据对象的状态属性;所述执行单元,在判断出所述活动允许被执行时,执行所述活动,并在所述活动被执行结束后,向所述状态管理器发送通知。

【技术特征摘要】
1.一种数据对象与状态控制逻辑分离系统,其特征在于,包括 关联单元,将所述数据对象与状态管理器中的状态数据通过绑定进行关联,所述状态数据包括状态类型以及对应于所述状态类型的控制逻辑,由状态管理器管理所述状态数据; 所述状态管理器,在将针对所述数据对象执行活动时,读取所述数据对象的当前状态,根据与所述当前状态对应的控制逻辑,判断所述活动是否允许被执行,以及在接收到来自执行单元的通知时,基于所述状态数据将所述数据对象的原状态切换至目标状态,在所述状态管理器切换所述数据对象的状态后,将所述目标状态的值传送至所述数据对象,以更新所述数据对象的状态属性; 所述执行单元,在判断出所述活动允许被执行时,执行所述活动,并在所述活动被执行结束后,向所述状态管理器发送通知。2.根据权利要求1所述的数据对象与状态控制逻辑分离系统,其特征在于,所述执行单元还用于在将执行所述活动时,获取所述数据对象的实例,并发出以所述实例作为参数的事件,以及在所述活动被执行结束后,发出活动完成事件; 所述状态管理器还用于监听所述事件,并调用状态校验方法判断所述活动是否允许被执行,以及监听所述活动完成事件,调用状态转换方法执行状态转换过程。3.根据权利要求1所述的数据对象与状态控制逻辑分离系统,其特征在于,所述状态管理器还用于按照与所述活动对应的插件规范,将与所述数据对象对应的状态控制逻辑处理成一个插件,并将所述插件注册至所述活动的插件列表中,所述插件包括校验插件和状态切换插件; 所述执行单元在将执行所述活动时,获取所述数据对应的实例,调用所述校验插件对所述活动进行校验,在校验通过时,执行所述活动,在所述活动执行结束时,调用所述状态切换插件,执行状态切换。4.根据权利要求1所述的数据对象与状态控制逻辑分离系统,其特征在于,所述执行单元还用于在所述活动内部编写状态校验方法和状态切换方法的代码,在针对所述数据对象执行所述活动时,调用所述状态管理器的状态校验方法,在校验通过时,执行所述活动,以及在所述活动执行结束时,调用所述状态管理器的状态切换方法,执行状态切换。5.根据权利要求1至4中任一项所述的数据对象与状态控制逻辑分离系统,其特征在于,所述状态管理还用于在接收到更新请求时,根据所述更新请求扩展、修改和/或新建所管理的状态数据。6.一种数据对象...

【专利技术属性】
技术研发人员:乔洪昌罗涛
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1