BPS工作流默认客户端界面中包括"待办任务列表"、"已办任务列表"等纯流程信息,而为了业务操作人员更全面了解任务相关的业务信息,往往需要在任务列表中显示相关的业务属性信息。
本场景适用BPS服务器与用户应用集中部署的方式,流程引擎的数据库和应用的数据库存放在同一数据库中。
业务场景描述:
在报销流程中,审批人登录系统后能结合工作项和报销业务表查询到待审批的报销单信息,查询条件为报销人,如下图所示:
create table EXPENSEINFO ( EXPID NUMERIC( 18 ) not null , PROCESSINSTID NUMERIC( 18 ) not null , EXPNAME VARCHAR( 20 ) not null , EXPMONEY NUMBER not null , REASON VARCHAR( 255 ), ISBUDGETITEM CHAR( 1 ), AUDITOR VARCHAR( 20 ) ); alter table EXPENSEINFO add constraint P_EXP primary key (EXPID); -- Add comments to the columns comment on column EXPENSEINFO.EXPID is '报销单编号' ; comment on column EXPENSEINFO.PROCESSINSTID is '流程实例ID' ; comment on column EXPENSEINFO.EXPNAME is '报销人' ; comment on column EXPENSEINFO.EXPMONEY is '报销金额' ; comment on column EXPENSEINFO.REASON is '报销原因' ; comment on column EXPENSEINFO.ISBUDGETITEM is '是否是预算内项目' ; comment on column EXPENSEINFO.AUDITOR is '财务审阅人' ; |
<?xml version= "1.0" encoding= "UTF-8" standalone= "no" ?> <xs:schema xmlns= pdata" xmlns:sdo= "commonj.sdo" xmlns:sdoJava= "commonj.sdo/java" xmlns:xs= "<a href="" "="">" targetNamespace= pdata" > <xs:complexType name= "Expenseinfo" > <xs:sequence> <xs:any/> <xs:element name= "expid" type= "xs:long" /> <xs:element name= "processinstid" type= "xs:long" /> <xs:element name= "expname" type= "xs:string" /> <xs:element name= "expmoney" type= "xs:long" /> <xs:element name= "reason" type= "xs:string" /> <xs:element name= "isbudgetitem" type= "xs:string" /> <xs:element name= "auditor" type= "xs:string" /> </xs:sequence> </xs:complexType> </xs:schema> |
<?xml version= "1.0" encoding= "UTF-8" ?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "<a href=".0.dtd" "="">.0.dtd" > <hibernate-mapping> < class dynamic-insert= "true" dynamic-update= "true" entity-name= pdata.Expenseinfo" table= "EXPENSEINFO" > <tuplizer class = "com.primeton.server.das.tuplizer.SDOEntityTuplizer" entity-mode= "sdo" /> <id name= "expid" type= "long" > <column length= "18" name= "EXPID" /> <generator class = "assigned" /> </id> <property name= "processinstid" type= "long" > <column length= "18" name= "PROCESSINSTID" not- null = "true" /> </property> <property name= "expname" type= "string" > <column length= "20" name= "EXPNAME" not- null = "true" /> </property> <property name= "expmoney" type= "long" > <column length= "22" name= "EXPMONEY" not- null = "true" /> </property> <property name= "reason" type= "string" > <column length= "255" name= "REASON" /> </property> <property name= "isbudgetitem" type= "string" > <column length= "1" name= "ISBUDGETITEM" /> </property> <property name= "auditor" type= "string" > <column length= "20" name= "AUDITOR" /> </property> </ class > </hibernate-mapping> |
public List<WFWorkItem> getUserTasks4SDO(User user,ExpenseInfoForm expenseInfoForm, PageCond pageCond) throws WFServiceException { List<WFWorkItem> tasklist = new ArrayList(); //获取工作列表查询器接口 IWFWorklistQueryManager workListMng = WorklistQueryManager(); //创建并封装工作项查询对象 DataObject workItemFilter=ate( "com.iteria" , "criteriaType" ); workItemFilter.set( "_entity" , s.workflow.data.WFWorkItem" ); //创建并封装业务查询对象 DataObject bizEntityFilter=ate( "com.iteria" , "criteriaType" ); bizEntityFilter.set( "_entity" , pdata.Expenseinfo" ); String expname = Expname(); if (expname != null && ! "" .equals(expname)) { bizEntityFilter.set( "/_and[1]/_expr[1]/expname" , expname); bizEntityFilter.set( "/_and[1]/_expr[1]/_op" , "like" ); bizEntityFilter.set( "/_and[1]/_expr[1]/_likeRule" , "all" ); } DataObject pageCondSDO=ate( s.foundation" , "PageCond" ); pageCondSDO.set( "begin" , Begin()); pageCondSDO.set( "length" , Length()); pageCondSDO.set( "isCount" , IsCount()); DataObject[] objs = workListMng.UserId(), "ALL" , "ALL" , bizEntityFilter, workItemFilter, "processinstid" , pageCondSDO); //回填查询记录数,更新输入的分页信息 pageCond.Int( "count" )); //将查询结果(DataObject数组类型)转化为WFWorkItem的List类型(JavaBean类型) tasklist = vertToUserObjectList(objs, s.workflow.data.WFWorkItem. class ); return tasklist; } |
本文发布于:2024-01-28 23:01:32,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170645409610920.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |