CN103744680B - 一种业务流程处理方法及装置 - Google Patents
一种业务流程处理方法及装置 Download PDFInfo
- Publication number
- CN103744680B CN103744680B CN201410020538.9A CN201410020538A CN103744680B CN 103744680 B CN103744680 B CN 103744680B CN 201410020538 A CN201410020538 A CN 201410020538A CN 103744680 B CN103744680 B CN 103744680B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- artifact
- model
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种业务流程处理方法及装置,所述业务流程处理方法包括:解析Artifact数据模型,得到业务数据表、各节点的读数据和写数据;解析JBPM流程模型,得到各节点的属性信息;根据所述业务数据表,生成数据持久层;根据各节点的所述读数据、写数据以及属性信息,生成视图呈现层;根据各节点的所述读数据、写数据以及所述视图呈现层,生成数据控制层。
Description
技术领域
本发明涉及业务流程建模技术,尤其涉及一种业务流程处理方法及装置。
背景技术
传统的工作流流程模型是通过活动节点间的协作来描述业务的信息结构、资源的组织以及业务目标的实现。工作流技术作为一个典型的过程建模方法,强调的是活动的顺序,以及每个活动中需要执行的操作,但是却忽略了数据信息在活动间的迁移,基于此思想所设计的工作流往往以过程为中心,业务目标通过过程一步一步地进行实现,也即通过每个活动节点的固有顺序进行实现,一旦某个活动节点中的业务逻辑发生变化之后,其后的所有活动节点操作都要跟着改变,如此会带来巨大的工作量。
以数据为中心的工作流技术日益受到人们的重视。作为面向对象的工作流技术中的佼佼者,以工件(Artifact)为中心的工作流技术,将工作流的活动节点作为单个的对象,此活动节点所操作的数据作为对象的属性,此活动节点的操作作为对象的方法。利用Artifact技术可以开发出具有灵活性的业务***、提高产品设计生产管理的规范化程度、缩短文档传递的时间、减少业务处理过程。同时,提高了服务端和数据段架构的高效性,使得数据的改变不影响流程本身,流程的改变也不影响数据。
随着人类对软件工程研究的日益深入,软件项目的规模和复杂程度也随之增加,传统的开发模式限于开发周期、成本、人员调配上的因素,不适用于超大规模项目的设计和实现。为此,一些应用框架如Java 2平台企业版(J2EE,Java 2Platform EnterpriseEdition)、源代码(Struts)、Hibernate、Spring的出现,让开发人员避免了大量的代码如数据库访问,网页(Web)页面流转控制等底层逻辑代码的编写;但是,同一层中的类或接口的代码往往具有类似的结构,而且一些配置文件、数据库的操作以及与用户交互的界面的设计都是相似的,这样就不可避免要编写基于这些应用框架的应用程序编程接口(API,Application Programming Interface)的一些重复繁琐的代码。
并且,当对数据库结构做一些必要的改动时,对应的后台代码也要有相应的改变,才能适应需求的变化,这样不可避免的还是要手动去后台修改大量的代码。无论是业务变化、用户需求改变、功能修正等都会对开发项目的进度控制、成本核算、开发周期、***性能产生巨大的影响。
因此,如何提高开发效率、降低开发成本以及快速更好的处理需求变更,成为了一个亟待解决的问题。
发明内容
为解决上述技术问题,本发明实施例提供了一种业务流程处理方法及装置。
本发明实施例的技术方案是这样实现的:
一种业务流程处理方法,所述方法包括:
解析Artifact数据模型,得到业务数据表、各节点的读数据和写数据;
解析业务流程管理(JBPM,Java Business Process Management)流程模型,得到各节点的属性信息;
根据所述业务数据表,生成数据持久层;
根据各节点的所述读数据、写数据以及属性信息,生成视图呈现层;
根据各节点的所述读数据、写数据以及所述视图呈现层,生成数据控制层。
优选地,所述Artifact数据模型包括:Artifact生成模型、Artifact绑定模型以及Artifact映射模型;
相应地,所述解析Artifact数据模型,得到业务数据表、各节点的读数据和写数据,包括:
解析所述Artifact生成模型以及所述Artifact映射模型,得到业务数据表;
解析所述Artifact绑定模型以及所述Artifact映射模型,得到各节点的读数据和写数据。
优选地,所述根据所述业务数据表,生成数据持久层,包括:
根据所述业务数据表的数据结构,生成与所述业务数据表对应的简单Java对象(Pojo,Plain old java objects)类文件、Hibernate映射文件、业务逻辑(Service)类文件、数据访问(Dao,Data access objects)类文件、业务配置文件。
优选地,所述根据各节点的所述读数据、写数据以及属性信息,生成视图呈现层,包括:
根据各节点的所述读数据、写数据,生成超文本标记语言(Html,Hyper textmark-up language)标签;
根据各节点的所述属性信息,生成JavaScript数据;
基于所述Html标签以及所述JavaScript数据,生成视图呈现层,所述视图呈现层以Java服务器页面(Jsp,Java server pages)文件表征,所述Jsp文件包括:Html标签、体(Body)标签以及JavaScript数据。
优选地,所述根据各节点的所述读数据、写数据以及所述视图呈现层,生成数据控制层,包括:
针对每个节点,根据所述节点的读数据、Pojo类文件以及Service类文件,生成与所述节点对应的读控制(ReadAction)类文件;
针对每个节点,根据所述节点的写数据、Pojo类文件以及Service类文件,生成与所述节点对应的写控制器(SaveAction)类文件;
根据所述ReadAction类文件、Jsp文件以及SaveAction类文件,生成(控制)Action配置信息,并将所述Action配置信息设置于配置文件中。
一种业务流程处理装置,所述装置包括:Artifact数据模型解析模块、JBPM流程模型解析模块、数据持久层生成模块、视图呈现层生成模块以及数据控制层生成模块;其中,
所述Artifact数据模型解析模块,用于解析Artifact数据模型,得到业务数据表、各节点的读数据和写数据;
所述JBPM流程模型解析模块,用于解析JBPM流程模型,得到各节点的属性信息;
所述数据持久层生成模块,用于根据所述业务数据表,生成数据持久层;
所述视图呈现层生成模块,用于根据各节点的所述读数据、写数据以及属性信息,生成视图呈现层;
所述数据控制层生成模块,用于根据各节点的所述读数据、写数据以及所述视图呈现层,生成数据控制层。
优选地,所述Artifact数据模型包括:Artifact生成模型、Artifact绑定模型以及Artifact映射模型;
相应地,所述Artifact数据模型解析模块包括:第一解析子模块、第二解析子模块;其中,
所述第一解析子模块,用于解析所述Artifact生成模型以及所述Artifact映射模型,得到业务数据表;
所述第二解析子模块,用于解析所述Artifact绑定模型以及所述Artifact映射模型,得到各节点的读数据和写数据。
优选地,所述数据持久层生成模块,还用于根据所述业务数据表的数据结构,生成与所述业务数据表对应的Pojo类文件、Hibernate映射文件、Service类文件、Dao类文件、业务配置文件。
优选地,所述视图呈现层生成模块包括:第一生成子模块、第二生成子模块、第三生成子模块;其中,
所述第一生成子模块,用于根据各节点的所述读数据、写数据,生成Html标签;
所述第二生成子模块,用于根据各节点的所述属性信息,生成JavaScript数据;
所述第三生成子模块,用于基于所述Html标签以及所述JavaScript数据,生成视图呈现层,所述视图呈现层以Jsp文件表征,所述Jsp文件包括:Html标签、Body标签以及JavaScript数据。
优选地,所述数据控制层生成模块包括:第四生成子模块、第五生成子模块、第六生成子模块、配置子模块;其中,
所述第四生成子模块,用于针对每个节点,根据所述节点的读数据、Pojo类文件以及Service类文件,生成与所述节点对应的ReadAction类文件;
所述第五生成子模块,用于针对每个节点,根据所述节点的写数据、Pojo类文件以及Service类文件,生成与所述节点对应的SaveAction类文件;
所述第六生成子模块,用于根据所述ReadAction类文件、Jsp文件以及SaveAction类文件,生成控制Action配置信息;
所述配置子模块,用于将所述Action配置信息设置于配置文件中。
本发明实施例的技术方案中,首先生成数据持久层,然后生成视图呈现层,最后生成数据控制层,采用数据持久层-视图呈现层-数据控制层架构的业务流程处理技术,提高了业务流程开发的效率和质量,节省了大量的人力资源。并且,本发明实施例以面向Artifact的流程建模为中心,将关键的业务数据作为过程设计的重要角色,实现了流程与数据的解耦和,以关键数据在业务过程中的变化作为过程设计的主线,易于实现。
附图说明
图1为本发明实施例的业务流程处理方法的流程示意图;
图2为本发明实施例中获取各节点的读数据和写数据的流程示意图;
图3为本发明实施例中生成ReadAction类文件的流程示意图;
图4为本发明实施例中生成视图呈现层的流程示意图;
图5为本发明实施例中生成SaveAction类文件的流程示意图;
图6为本发明实施例的业务流程处理装置的结构组成示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
图1为本发明实施例的业务流程处理方法的流程示意图,本示例中的业务流程处理方法应用于业务流程处理装置中;如图1所示,所述业务流程处理方法包括以下步骤:
步骤101:解析Artifact数据模型,得到业务数据表、各节点的读数据和写数据。
具体地,由业务流程处理装置中的Artifact数据模型解析模块解析Artifact数据模型,以得到业务数据表、各节点的读数据和写数据。
优选地,所述Artifact数据模型包括:Artifact生成模型、Artifact绑定模型以及Artifact映射模型;
相应地,所述解析Artifact数据模型,得到业务数据表、各节点的读数据和写数据,包括:
解析所述Artifact生成模型以及所述Artifact映射模型,得到业务数据表;
解析所述Artifact绑定模型以及所述Artifact映射模型,得到各节点的读数据和写数据。
步骤102:解析JBPM流程模型,得到各节点的属性信息。
具体地,由业务流程处理装置中的JBPM流程模型解析模块解析JBPM流程模型,以得到各节点的属性信息。
这里,各节点是指人工活动节点。
这里,属性信息包括:节点名称、任务的执行者、节点的迁移路径。其中,节点的迁移路径可以是一条或者多条。
步骤103:根据所述业务数据表,生成数据持久层。
具体地,由业务流程处理装置中的数据持久层生成模块根据所述业务数据表,以生成数据持久层。
优选地,所述根据所述业务数据表,生成数据持久层,包括:
根据所述业务数据表的数据结构,生成与所述业务数据表对应的Pojo类文件、Hibernate映射文件、Service类文件、Dao类文件、业务配置文件。
上述方案中,与所述业务数据表对应是指与所述业务数据表的名称相对应。
这里,在Service类文件中,需引用与其名称相对应的Dao类文件的一个实例。
上述方案中,生成与所述业务数据表对应的Pojo类文件,具体为:获取业务数据表的字段类型和字段名称;向Pojo类文件中写入与所述业务数据表的字段类型和字段名称对应的属性信息,同时写入每个属性信息所对应的获取(getter)应用和设置(setter)应用。
上述方案中,生成与所述业务数据表对应的Hibernate映射文件,具体为:根据业务数据表的字段类型和字段名称,主键信息以及主键数据的生成方式,生成与所述业务数据表对应的Hibernate映射文件。
上述方案中,生成与所述业务数据表对应的Service类文件,具体为:向Service类文件写入与其对应的Dao类文件的实例,同时写入此实例所对应的getter应用和setter应用;然后根据这些实例调用数据库CRUD的基本操作。
上述方案中,生成与所述业务数据表对应的Dao类文件,具体为:向所述Dao类文件中写入调用Hibernate接口的数据库CRUD的基本操作。
步骤104:根据各节点的所述读数据、写数据以及属性信息,生成视图呈现层。
优选地,所述根据各节点的所述读数据、写数据以及属性信息,生成视图呈现层,包括:
根据各节点的所述读数据、写数据,生成Html标签;
根据各节点的所述属性信息,生成JavaScript数据;
基于所述Html标签以及所述JavaScript数据,生成视图呈现层,所述视图呈现层以Jsp文件表征,所述Jsp文件包括:Html标签、Body标签以及JavaScript数据。
这里,视图呈现层用于显示数据信息。
这里,Jsp文件的名称与节点名称相对应。
步骤105:根据各节点的所述读数据、写数据以及所述视图呈现层,生成数据控制层。
优选地,所述根据各节点的所述读数据、写数据以及所述视图呈现层,生成数据控制层,包括:
针对每个节点,根据所述节点的读数据、Pojo类文件以及Service类文件,生成与所述节点对应的ReadAction类文件;
针对每个节点,根据所述节点的写数据、Pojo类文件以及Service类文件,生成与所述节点对应的SaveAction类文件;
根据所述ReadAction类文件、Jsp文件以及SaveAction类文件,生成Action配置信息,并将所述Action配置信息设置于配置文件中。
这里,ReadAction类文件、SaveAction类文件与节点名称相对应。
这里,Action配置信息包括:调用路径和调用返回。
上述方案中,根据所述节点的读数据、Pojo类文件以及Service类文件,生成与所述节点对应的ReadAction类文件具体为:根据所述节点的读数据、Pojo类文件的实例以及Service类文件的实例,生成与所述节点对应的ReadAction类文件。
上述方案中,根据所述节点的写数据、Pojo类文件以及Service类文件,生成与所述节点对应的SaveAction类文件具体为:根据所述写数据、Pojo类文件的实例以及Service类文件的实例,生成与所述节点对应的SaveAction类文件。
实际业务的开发成本集中于业务流程模块的开发以及业务变更后相关代码的修改,采用本发明实施例的技术方案,开发人员可以根据需求进行相应的Artifact建模,然后在工作流开发环境中用流程定义语言来设计流程图,对于每个人工任务活动节点均绑定了Artifact数据,便于开发人员获知需要操作的数据,最后解析相关的Artifact模型文件,以生成所需要的业务代码。
图2为本发明实施例中获取各节点的读数据和写数据的流程示意图,本示例对应于图1所示的业务流程处理方法中的步骤101,本示例可通过以下步骤实现:
步骤201:解析Artifact绑定模型,得到各节点的数据信息fieldMap<tableName,List<NodeField>>。
其中,对象NodeField的信息为{fieldName,info,artifactName}。
步骤202:针对每个节点的所有数据,解析Artifact映射模型,并将数据存储至map<fieldName,NodeField>中。
其中,对象NodeField的信息为{tableName,info,artifactName}。
步骤203:判断map的fieldName是从数据库中读还是写入到数据库中;如果是读,则执行步骤204;如果是写,则执行步骤206。
步骤204:获取临时readTemp<fieldName,NodeField>。
具体地,由步骤202和步骤203可得临时readTemp<fieldName,NodeField>,但是,由于多个字段同属于同一张表,tableName数据会出现多次,存在了大量的数据冗余,同时在进行业务操作的时候,使用的是Hibernate模型,因此,只需要对整个对象操作即可。
步骤205:处理readTemp<fieldName,NodeField>,结束本流程。
具体地,以tableName作为key值,List<NodeField>为value值的readMap<tableName,List<NodeField>>,遍历readTemp的时候,如果已经存在此tableName,则在相应value的List中添加当前的NodeField;如果不存在此tableName,则新建一个List添加当前的NodeField作为对应此tableName的value值。
步骤206:获取临时saveTemp<fieldName,NodeField>。
具体地,由步骤202和步骤203可得临时saveTemp<fieldName,NodeField>,但是,由于多个字段同属于同一张表,tableName数据会出现多次,存在了大量的数据冗余,同时在进行业务操作的时候,使用的是Hibernate模型,因此,只需要对整个对象操作即可。
步骤207:处理saveTemp<fieldName,NodeField>。
具体地,以tableName作为key值,List<NodeField>为value值的saveMap<tableName,List<NodeField>>,遍历saveTemp的时候,如果已经存在此tableName,则在相应value的List中添加当前的NodeField;如果不存在此tableName,则新建一个List添加当前的NodeField作为对应此tableName的value值。
图3为本发明实施例中生成ReadAction类文件的流程示意图,本示例对应于图1所示的业务流程处理方法中的步骤105,本示例可通过以下步骤实现:
步骤301:根据taskId获取唯一标识ArtifactID。
其中,String ArtifactID=(String)taskService.getVariable(taskId,"pid")。
步骤302:获取readMap中的首个key值。
这里,首个Key值也即tableName。
步骤303:判断key值是否为空;如果为空,则执行入步骤306;如果不为空,则执行步骤304。
步骤304:通过唯一标识ArtifactID获取readTable实例信息。
这里,获取实例信息的方式可以通过以下三种方式实现:用户从数据库获取方式、***获取用户信息方式、页面获取用户信息方式;其中,
用户从数据库获取这种方式为,table=tableBusiness.getByArtifactID(ArtifactID);
***获取用户信息方式为:User user=(User)ActionContext.getContext().getSession().get("user");
页面获取用户信息方式为:table=new Table()。
步骤305:获取readMap的下一个key值,即tableName;执行步骤303。
步骤306:返回至JspDetail页面,将获取的实例信息显示在页面中。
图4为本发明实施例中生成视图呈现层的流程示意图,本示例对应于图1所示的业务流程处理方法中的步骤104,本示例可通过以下步骤实现:
步骤401:获取readMap中的首个key值。
这里,首个Key值也即tableName。
步骤402:判断key值是否为空;如果为空,则执行步骤408;如果不为空,则执行步骤403。
步骤403:遍历此key值所对应的value中的fieldList,获取首个Field。
步骤404:判断此Field值是否为空;如果为空,则执行步骤407;如果不为空,则执行步骤405。
步骤405:在页面中显示此字段信息。
在步骤405中,需判断此字段信息是否为***从页面中获取,如果是,则为true,否则为false;同时判断此字段在页面中的Html格式,具体为input or textarea;此外,还要判断此字段在saveMap中是否存在,如果不存在,则为readonly,如果存在,则为读可写;并且,还要删除saveMap中的此字段。
步骤406:获取当前table下value中的fieldList的下一个Field,执行步骤404。
步骤407:获取readMap中的下一个key,即tableName;执行步骤402。
步骤408:readMap遍历完,执行步骤409。
步骤409:获取saveMap中的首个key值。
这里,首个Key值也即tableName。
步骤410:判断key值是否为空;如果为空,则执行步骤416;如果不为空,则执行步骤411。
步骤411:遍历此key值所对应的value中的fieldList,获取首个Field。
步骤412:判断此Field值是否为空;如果为空,则执行步骤415;如果不为空,则执行步骤413。
步骤413:在页面中显示此字段信息。
在步骤413中,需要判断此字段信息是不是一个主键ID或者从***写入,如果满足其中一种情况,则跳到下一个Field,如果都不满足,判断此字段信息在页面中的Html格式,如input or textarea;
对于所有的readMap和saveMap中的字段信息,需注意页面排版格式的对齐,input类型一行两个字段,textarea类型一行一个字段,如果之前奇数个字段,补一个空字段。
步骤414:获取当前table下value中的fieldList的下一个Field,执行步骤412。
步骤415:获取saveMap中的下一个key,即tableName;执行步骤410。
步骤416:saveMap遍历完毕,执行步骤417。
步骤417:获取人工活动节点的相关信息。
这里,人工活动节点的相关信包括:节点名称、任务执行者、以及迁移路径。优选地,将迁移路径名称以及下一活动节点的执行者封装为一个变量submitResult,中间以逗号隔开。
在步骤417中,当前活动节点如果有多条路径的话,需要生成多个单选按钮radio,每选择一个按钮,生成对应的submitResult,如果只有一条默认路径的话,则不需要单选按钮,直接生成一个隐藏字段submitResult即可。
步骤418:生成部分JavaScript代码。
这里,部分JavaScript代码包括:页面提交的所调用的SaveAction方法,步骤405中的isFromPage如果为true,则需要生成一段从页面获取信息的JavaScript代码(通过userId获取用户信息),确定saveMap中读数据以及saveMap中写数据保存时是否有非空,长度大小等其他约束条件,生成验证标签数据合法性的JavaScript代码。
步骤419:页面信息处理完之后,跳转到SaveAction,同时将变量submitResult传递给后台。
图5为本发明实施例中生成SaveAction类文件的流程示意图,本示例对应于图1所示的业务流程处理方法中的步骤105,本示例可通过以下步骤实现:
步骤501:根据当前任务的taskId获取唯一标识ArtifactID。
这里,ArtifactID为:String ArtifactID=(String)taskService.getVariable(taskId,"pid")。
步骤502:获取saveMap的首个key值,即tableName。
步骤503:判断此key值是否为空;如果为空,则进入步骤512;如果不为空,则进入步骤504。
步骤504:遍历此key值对应的value中的fieldList。
在步骤504中,有一个遍历的过程,判断每一个Field是不是包含ID(标记isID=false),如果有,isID=true,如果没有,判断此字段的来源、***获取时间、***获取用户信息、以及用户输入,然后继续遍历,直到遍历完fieldList中所有的Field;其中,
***获取时间为:Calendar rightNow=Calendar.getInstance();SimpleDateFormat fmt=new SimpleDateFormat(\"yyyy/MM/dd HH:mm:ss\");StringsysDatetime=fmt.format(rightNow.getTime());table.setField(sysDatetime);
***获取用户信息为:User user=(User)ActionContext.getContext().getSession().get(\"user\");String userName=user.getId();table.setField(username);
用户输入为:直接从前端传到后台,不需要额外处理。
步骤505:判断是否存在字段包含有ID;如果有,则执行步骤506,如果没有,则执行步骤508。
步骤506-步骤507:当此表中存在字段包含了ID,针对此表在当前活动节点上执行Save操作。
具体地,首先执行table.setArtifactID(ArtifactID),然后执行Save操作:tableBusiness.save(table)。
步骤508-步骤510:当此表中不存在字段包含ID,针对此表在当前活动节点上执行Update操作。
步骤508:获取没更新前数据库中原有的数据。
具体地,获取没更新前数据库中原有的数据为:Tabletemp=tableBusiness.getByArtifactID(ArtifactID)。
步骤509:遍历此key对应的value中的fieldList,对于每一个Field,执行temp.setField(table.getField())操作。
步骤510:执行Update操作。
具体地,Update操作为:tableBusiness.update(temp)。
步骤511:获取saveMap下一个key值,即tableName,执行步骤503。
步骤512:saveMap遍历完,进入提交阶段。
步骤513:获取从前端传来的submitResult变量值,以逗号将submitResult分隔开,获取路径名称以及下一任务的执行者,然后调用JBPM的completeTask(taskId,tranName,map)API来触发流程流转。
步骤514:提交结束,返回成功(return SUCCESS)提示信息。
本实施例中的上述方案可以通过代码生成器实现,所述代码生成器可以采用开发工具Eclipse插件形式进行安装部署,用户只需要把插件复制到对应的开发工具的目录,在对应的项目中选中进行代码的辅助生成,如此,缩短了开发人员的开发周期,提高了开发效率。
本实施例中的上述方案无论在可用性还是在代码生成质量上以及生成效率上都得到了极大的提高,并且在针对业务逻辑的代码生成方面做出了创新,开发人员只需要可视化的绑定Artifact数据,并设置好Artifact数据的信息以及与底层数据库的映射关系,就可以生成符合相关业务逻辑的代码。
图6为本发明实施例的业务流程处理装置的结构组成示意图,如图6所示,所述装置包括:Artifact数据模型解析模块61、JBPM流程模型解析模块62、数据持久层生成模块63、视图呈现层生成模块64以及数据控制层生成模块65;其中,
所述Artifact数据模型解析模块61,用于解析Artifact数据模型,得到业务数据表、各节点的读数据和写数据;
所述JBPM流程模型解析模块62,用于解析JBPM流程模型,得到各节点的属性信息;
所述数据持久层生成模块63,用于根据所述业务数据表,生成数据持久层;
所述视图呈现层生成模块64,用于根据各节点的所述读数据、写数据以及属性信息,生成视图呈现层;
所述数据控制层生成模块65,用于根据各节点的所述读数据、写数据以及所述视图呈现层,生成数据控制层。
优选地,所述Artifact数据模型包括:Artifact生成模型、Artifact绑定模型以及Artifact映射模型;
相应地,所述Artifact数据模型解析模块61包括:第一解析子模块611、第二解析子模块612;其中,
所述第一解析子模块611,用于解析所述Artifact生成模型以及所述Artifact映射模型,得到业务数据表;
所述第二解析子模块612,用于解析所述Artifact绑定模型以及所述Artifact映射模型,得到各节点的读数据和写数据。
优选地,所述数据持久层生成模块63,还用于根据所述业务数据表的数据结构,生成与所述业务数据表对应的Pojo类文件、Hibernate映射文件、Service类文件、Dao类文件、业务配置文件。
优选地,所述视图呈现层生成模块64包括:第一生成子模块641、第二生成子模块642、第三生成子模块643;其中,
所述第一生成子模块641,用于根据各节点的所述读数据、写数据,生成Html标签;
所述第二生成子模块642,用于根据各节点的所述属性信息,生成JavaScript数据;
所述第三生成子模块643,用于基于所述Html标签以及所述JavaScript数据,生成视图呈现层,所述视图呈现层以Jsp文件表征,所述Jsp文件包括:Html标签、Body标签以及JavaScript数据。
优选地,所述数据控制层生成模块65包括:第四生成子模块651、第五生成子模块652、第六生成子模块653、配置子模块654;其中,
所述第四生成子模块651,用于针对每个节点,根据所述节点的读数据、Pojo类文件以及Service类文件,生成与所述节点对应的ReadAction类文件;
所述第五生成子模块652,用于针对每个节点,根据所述节点的写数据、Pojo类文件以及Service类文件,生成与所述节点对应的SaveAction类文件;
所述第六生成子模块653,用于根据所述ReadAction类文件、Jsp文件以及SaveAction类文件,生成控制Action配置信息;
所述配置子模块654,用于将所述Action配置信息设置于配置文件中。
本领域技术人员应当理解,图6所示的业务流程处理装置中的各模块及其子模块的实现功能可参照前述业务流程处理方法的相关描述而理解。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块,即可以位于一个地方,也可以分布到多个网络模块上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能模块可以全部集成在一个处理模块中,也可以是各模块分别单独作为一个模块,也可以两个或两个以上模块集成在一个模块中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (8)
1.一种业务流程处理方法,其特征在于,所述方法包括:
解析工件Artifact数据模型,得到业务数据表、各节点的读数据和写数据;
解析业务流程管理JBPM流程模型,得到各节点的属性信息;
根据所述业务数据表,生成数据持久层;
根据各节点的所述读数据、写数据以及属性信息,生成视图呈现层;
根据各节点的所述读数据、写数据以及所述视图呈现层,生成数据控制层;
所述Artifact数据模型包括:Artifact生成模型、Artifact绑定模型以及Artifact映射模型;相应地,解析Artifact数据模型,得到业务数据表、各节点的读数据和写数据,包括:
解析所述Artifact生成模型以及所述Artifact映射模型,得到业务数据表;
解析所述Artifact绑定模型以及所述Artifact映射模型,得到各节点的读数据和写数据。
2.根据权利要求1所述的业务流程处理方法,其特征在于,所述根据所述业务数据表,生成数据持久层,包括:
根据所述业务数据表的数据结构,生成与所述业务数据表对应的简单Java对象Pojo类文件、Hibernate映射文件、业务逻辑Service类文件、数据访问Dao类文件、业务配置文件。
3.根据权利要求2所述的业务流程处理方法,其特征在于,所述根据各节点的所述读数据、写数据以及属性信息,生成视图呈现层,包括:
根据各节点的所述读数据、写数据,生成超文本标记语言Html标签;
根据各节点的所述属性信息,生成JavaScript数据;
基于所述Html标签以及所述JavaScript数据,生成视图呈现层,所述视图呈现层以Java服务器页面Jsp文件表征,所述Jsp文件包括:Html标签、Body标签以及JavaScript数据。
4.根据权利要求3所述的业务流程处理方法,其特征在于,所述根据各节点的所述读数据、写数据以及所述视图呈现层,生成数据控制层,包括:
针对每个节点,根据所述节点的读数据、Pojo类文件以及Service类文件,生成与所述节点对应的读控制ReadAction类文件;
针对每个节点,根据所述节点的写数据、Pojo类文件以及Service类文件,生成与所述节点对应的写控制器SaveAction类文件;
根据所述ReadAction类文件、Jsp文件以及SaveAction类文件,生成控制Action配置信息,并将所述Action配置信息设置于配置文件中。
5.一种业务流程处理装置,其特征在于,所述装置包括:Artifact数据模型解析模块、JBPM流程模型解析模块、数据持久层生成模块、视图呈现层生成模块以及数据控制层生成模块;其中,
所述Artifact数据模型解析模块,用于解析Artifact数据模型,得到业务数据表、各节点的读数据和写数据;
所述JBPM流程模型解析模块,用于解析JBPM流程模型,得到各节点的属性信息;
所述数据持久层生成模块,用于根据所述业务数据表,生成数据持久层;
所述视图呈现层生成模块,用于根据各节点的所述读数据、写数据以及属性信息,生成视图呈现层;
所述数据控制层生成模块,用于根据各节点的所述读数据、写数据以及所述视图呈现层,生成数据控制层;
所述Artifact数据模型包括:Artifact生成模型、Artifact绑定模型以及Artifact映射模型;
相应地,所述Artifact数据模型解析模块包括:第一解析子模块、第二解析子模块;其中,
所述第一解析子模块,用于解析所述Artifact生成模型以及所述Artifact映射模型,得到业务数据表;
所述第二解析子模块,用于解析所述Artifact绑定模型以及所述Artifact映射模型,得到各节点的读数据和写数据。
6.根据权利要求5所述的业务流程处理装置,其特征在于,所述数据持久层生成模块,还用于根据所述业务数据表的数据结构,生成与所述业务数据表对应的Pojo类文件、Hibernate映射文件、Service类文件、Dao类文件、业务配置文件。
7.根据权利要求6所述的业务流程处理装置,其特征在于,所述视图呈现层生成模块包括:第一生成子模块、第二生成子模块、第三生成子模块;其中,
所述第一生成子模块,用于根据各节点的所述读数据、写数据,生成Html标签;
所述第二生成子模块,用于根据各节点的所述属性信息,生成JavaScript数据;
所述第三生成子模块,用于基于所述Html标签以及所述JavaScript数据,生成视图呈现层,所述视图呈现层以Jsp文件表征,所述Jsp文件包括:Html标签、Body标签以及JavaScript数据。
8.根据权利要求7所述的业务流程处理装置,其特征在于,所述数据控制层生成模块包括:第四生成子模块、第五生成子模块、第六生成子模块、配置子模块;其中,
所述第四生成子模块,用于针对每个节点,根据所述节点的读数据、Pojo类文件以及Service类文件,生成与所述节点对应的ReadAction类文件;
所述第五生成子模块,用于针对每个节点,根据所述节点的写数据、Pojo类文件以及Service类文件,生成与所述节点对应的SaveAction类文件;
所述第六生成子模块,用于根据所述ReadAction类文件、Jsp文件以及SaveAction类文件,生成控制Action配置信息;
所述配置子模块,用于将所述Action配置信息设置于配置文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410020538.9A CN103744680B (zh) | 2014-01-16 | 2014-01-16 | 一种业务流程处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410020538.9A CN103744680B (zh) | 2014-01-16 | 2014-01-16 | 一种业务流程处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103744680A CN103744680A (zh) | 2014-04-23 |
CN103744680B true CN103744680B (zh) | 2017-02-15 |
Family
ID=50501700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410020538.9A Active CN103744680B (zh) | 2014-01-16 | 2014-01-16 | 一种业务流程处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103744680B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740284A (zh) * | 2014-12-11 | 2016-07-06 | 航天信息股份有限公司 | 一种差异性汇总申报***及方法 |
CN104484177B (zh) * | 2014-12-17 | 2017-12-05 | 南京莱斯信息技术股份有限公司 | 一种mybatis命名空间映射的方法 |
CN104866951B (zh) * | 2015-04-27 | 2019-01-18 | 广州杰赛科技股份有限公司 | 业务流程中的业务信息更新方法和*** |
CN105225031A (zh) * | 2015-09-06 | 2016-01-06 | 浪潮软件股份有限公司 | 一种支持工作流参与者类型扩展的方法 |
TW201717115A (zh) * | 2015-11-02 | 2017-05-16 | 財團法人資訊工業策進會 | 商業流程管理系統及商業流程管理方法 |
CN106873957A (zh) * | 2016-06-23 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 一种业务流程的处理方法和设备 |
CN106874388B (zh) * | 2017-01-11 | 2020-08-11 | 中科院微电子研究所昆山分所 | 一种基于关系型数据库的异构***数据级联操作自动构建方法 |
CN107122171A (zh) * | 2017-03-23 | 2017-09-01 | 北京邮电大学 | 自动生成业务流程中数据操作的方法及*** |
CN107273138A (zh) * | 2017-07-04 | 2017-10-20 | 杭州铜板街互联网金融信息服务有限公司 | 基于Android业务模块间交互的解耦方法和*** |
CN107506179B (zh) * | 2017-07-07 | 2020-09-15 | 中国建设银行股份有限公司 | 一种界面原型数据生成方法和计算机设备 |
CN109117609B (zh) * | 2018-08-31 | 2021-01-29 | 中国农业银行股份有限公司 | 一种请求拦截方法及装置 |
CN109447392A (zh) * | 2018-09-11 | 2019-03-08 | 浙江大学 | 一种基于Artifact的业务流程精化方法 |
CN110059958A (zh) * | 2019-04-18 | 2019-07-26 | 东华大学 | 一种基于ArtiFlow的印染业务流程的建模方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624108B1 (en) * | 2003-06-25 | 2009-11-24 | Sun Microsystems, Inc. | Method and apparatus for formally specifying application-specific read/write consistency |
US8024703B2 (en) * | 2004-10-22 | 2011-09-20 | International Business Machines Corporation | Building an open model driven architecture pattern based on exemplars |
CN102999475A (zh) * | 2012-11-21 | 2013-03-27 | 用友软件股份有限公司 | 执行数生成装置和通过计算机实现的执行数生成方法 |
CN103383645A (zh) * | 2013-07-29 | 2013-11-06 | 北京邮电大学 | 代码生成方法及*** |
CN102968306B (zh) * | 2012-11-29 | 2016-01-20 | 广东全通教育股份有限公司 | 一种基于数据模型驱动的代码自动生成方法和*** |
-
2014
- 2014-01-16 CN CN201410020538.9A patent/CN103744680B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624108B1 (en) * | 2003-06-25 | 2009-11-24 | Sun Microsystems, Inc. | Method and apparatus for formally specifying application-specific read/write consistency |
US8024703B2 (en) * | 2004-10-22 | 2011-09-20 | International Business Machines Corporation | Building an open model driven architecture pattern based on exemplars |
CN102999475A (zh) * | 2012-11-21 | 2013-03-27 | 用友软件股份有限公司 | 执行数生成装置和通过计算机实现的执行数生成方法 |
CN102968306B (zh) * | 2012-11-29 | 2016-01-20 | 广东全通教育股份有限公司 | 一种基于数据模型驱动的代码自动生成方法和*** |
CN103383645A (zh) * | 2013-07-29 | 2013-11-06 | 北京邮电大学 | 代码生成方法及*** |
Non-Patent Citations (3)
Title |
---|
以Aritfact为中心的工作流技术研究及应用;梅杰;《中国优秀硕士学位论文全文数据库信息科技辑》;20120715(第7期);I138-1279 * |
基于Artifact的流程设计平台;丁兴中;《软件》;20131231;第34卷(第12期);第1-5页 * |
工作流中基于用户制导的人工界面及后台代码自动生成研究和设计;宋永超;《中国优秀硕士学位论文全文数据库信息科技辑》;20131115(第11期);第20-43页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103744680A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744680B (zh) | 一种业务流程处理方法及装置 | |
CN103383645B (zh) | 代码生成方法及*** | |
CN107967316A (zh) | 一种数据同步方法、设备及计算机可读存储介质 | |
CN109542556B (zh) | 一种基于Activiti的流程与表单交互方法及*** | |
CN103019718B (zh) | 在集中式源控制环境中使用分布式源控制 | |
CN110287097A (zh) | 批量测试方法、装置及计算机可读存储介质 | |
CN104794048B (zh) | 一种ui自动化测试方法和*** | |
CN107463362A (zh) | 基于多个Jenkins的持续部署的方法和*** | |
CN107729230A (zh) | 一种基于控件模式下的web自动化测试装置及测试方法 | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
CN107832207A (zh) | 接口性能测试方法、装置、存储介质和计算机设备 | |
CN109697064A (zh) | 一种自定义页面的生成方法及装置 | |
CN110069246A (zh) | 一种Java Web应用快速开发的平台***及其应用 | |
CN106648587A (zh) | 一种基于注解的Web应用代码生成方法 | |
US20120266131A1 (en) | Automatic program generation device, method, and computer program | |
CN107368346A (zh) | 一种基于元数据和脚本引擎的代码生成方法及装置 | |
US10067859B2 (en) | Constructing test-centric model of application | |
CN107741950A (zh) | 数据同步任务的处理方法、装置、处理器及服务端 | |
CN107092478B (zh) | 一种软件构件库与构件开发工具的集成***与方法 | |
US7469258B2 (en) | Information processing method, apparatus and program in XML driven architecture | |
US20180081878A1 (en) | Enhanced batch updates on records and related records system and method | |
US20070185929A1 (en) | Method and apparatus for processing monitoring | |
CN109408092A (zh) | 前端版本发布的方法及装置、存储介质及电子设备 | |
CN110162299A (zh) | web程序及其快速开发框架、开发方法与相关设备 | |
KR101599471B1 (ko) | 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |